Pipe Line Filters: Титульная страница

  • Титульная страница
  • Группы
  • Пространства имен
  • Классы
  • Файлы
  • Описания
  • Примеры

Pipe Line Filters Документация

Version 1.01

Введение

Библиотека содержит:
  1. классы и функции для работы с изображениями Handling with images
    • создание
    • загрузка из файла
    • сохранение на диск
    • поддерживаются форматы: pgm, ppm,tiff, bmp, oz, iff (внутренний формат для изображений типа float)
    • контейнер, обеспечивающий хранение в памяти изображения и удобный доступ до пикселей
    • отрисовку изображения в окне под Windows
  2. библиотеку для потоковой фильтрации изображений Pipe Line Filters.
  3. средства общего назначения Общего назначения (файлы, время, память, система)., включая работу
    • с бинарными файлами
    • с INI и XML файлами,
    • с именами файловой системы
    • со временем и датой
    • с памятью
  4. Численные алгоритмы Numerical calculations , включая
    • интегрирование ( nmQUANC8 )
    • кубические сплайны (nmSPLINE nmSPLINE_FREE nmSEVAL)
    • решение алгебраического нелинейного уроанения (nmZEROIN)
    • поиск минимума функции одной переменной (nmFMIN)
    • сингулярное разложение (nmSVD)
    • транспонирование матрицы (nmVTRAN)
    • работа с процентными точками распределения Стьюдента (nmTStudentPerc****)
    • работа со спецфункциями (nmGAMMLN)
    • вычисление полинома (nmPoly)

Разделы с общей информацией (Background)

  • ReadMe
  • Использование библиотеки и настройки компилятора
  • How to ... Работа с изображениями в библиотеке AImage
  • How to ... Доступ до пикселей в С#
  • How to ... Доступ до пикселей в режиме отображения файла на память
  • Потоковая фильтрация изображений
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Алфавитный указатель групп

  • Классы
  • Файлы
  • Описания
  • Примеры

Pipe Line Filters Группы

Полный список групп.
  • Handling with images
  • Numerical calculations
  • Templates library of algorithms.
    • Макросы для линеаризованного создания списка типов
    • Списки стандартных (встроенных) типов
    • Some basic templates
  • Работа с XML и INI файлами и структурами данных
    • XML specific interface.
      • Функции для вставки и удаления нод в XML дерево.
      • XML tree search functions
    • INI and XML common interface
      • Базовые функции XML
      • XML: Alternative INI and XML common interface
      • Базовые функции INI
      • INI: Alternative INI and XML common interface
  • Общего назначения (файлы, время, память, система).
    • Преобразование строк в данные и наоборот.
    • Работа с файлами.
    • Работа с файловой системой (имена и аттрибуты файлов, директорий, пути, итд).
    • Работа с памятью.
    • Работа со временем.
  • Pipe Line Filters.
    • Convolution kernels.
    • Elementary filters
    • Complex filters
    • Source and target filters
    • Iterators and Utilities for Elementary Filters
    • Ports and buffers
      • StripBuffer Initialization functions
      • StripBuffer current position / info
      • Image data reading from StripBuffer
      • Writing into StripBuffer


Pipe Line Filters: Handling with images

  • Примеры

Handling with images

Классы

class | AImage
Base class for all images. Подробнее...
class | AImageMem8
Interface for 8 bit per pixel container. Подробнее...
class | AImageMem16
interface for 16 bit per pixel container Подробнее...
class | AImageMemFloat
Interface for float per pixel container //////. Подробнее...
class | AImageMemRgb8
Interface for TrueColor 8 bit per each pixel sample container. Подробнее...
class | AImageMemRgb16
Interface for TrueColor 16 bit per each pixel sample container. Подробнее...
class | tplAImageReference< ImgT >
class | tplAImageFragment< ImgT >
class | ImageFragment8
class | ImageFragment16
class | ImageFragmentRgb8
class | ImageMem16Stuff
class | YImageFrame

Макросы

#define | IMAGE_MAX_FRAME 64

Определения типов

typedef uint8_t | Pixel8
typedef Pixel8 * | Pixel8Ptr
typedef uint16_t | Pixel16
typedef Pixel16 * | Pixel16Ptr
typedef float | PixelFloat
typedef PixelFloat * | PixelFloatPtr
typedef AImage * | AImagePtr
typedef AImageMem8 * | AImageMem8Ptr
typedef AImageMem16 * | AImageMem16Ptr
typedef AImageMemFloat * | AImageMemFloatPtr
typedef AImageMemRgb8 * | AImageMemRgb8Ptr
typedef AImageMemRgb16 * | AImageMemRgb16Ptr

Функции

AImage * | AImageLoad (AImage *img, bool replace, const char *fname, ProgressCounter *indicator=0)
Функция загрузки изображения в память.
void | AImageSave (const AImage *img, const char *fname, ProgressCounter *indicator=0)
Функция сохранения изображения в файл.
bool | AImageIsCompatible (AImage *img, AImage::YImageClass iclass, short width, short height, short bitsPerPix)
AImage * | AImageCreate (AImage *img, AImage::YImageClass iclass, short width, short height, short bitsPerPix)
Функция создания изображения (объект).
AImage * | AImageCreate (AImage *img, AImage::Info inf)

Макросы

#define IMAGE_MAX_FRAME 64

Типы

typedef AImageMem16* AImageMem16Ptr

typedef AImageMem8* AImageMem8Ptr

typedef AImageMemFloat* AImageMemFloatPtr

typedef AImageMemRgb16* AImageMemRgb16Ptr

typedef AImageMemRgb8* AImageMemRgb8Ptr

typedef AImage* AImagePtr

typedef uint16_t Pixel16

typedef Pixel16* Pixel16Ptr

typedef uint8_t Pixel8

typedef Pixel8* Pixel8Ptr

typedef float PixelFloat

typedef PixelFloat* PixelFloatPtr

Функции

AImage* AImageCreate | ( | AImage * | img,
 |  | AImage::Info | inf |
 | ) |  |  | [inline]

AImage* AImageCreate | ( | AImage * | img,
 |  | AImage::YImageClass | iclass,
 |  | short | width,
 |  | short | height,
 |  | short | bitsPerPix
 | ) |  |

Функция создания изображения (объект).

img - указатель на объект, производный от AImage или 0. Если указатель не нулевой,
то функция попытается разместить новый объект в существующем. Например, если тип и размер старого и вновь создаваемого изображения совпадают, то вообще никаких действий выаполнено не будет и можно продолжать использовать старый объект. Вообще смысл переменной img в функциях AImageLoad, AImageCreate состоит в том, чтобы минимизировать нагрузку на систему распределения памяти.
img - указатель на объект (изображение), производный от AImage, который
требуется сохранить.
iclass - переменная типа AImage::YImageClass, тип создаваемого изображения.
width - ширина изображения в пикселях
height - высота изображения в пикселях
bitsPerPix - количество бит на пиксель, в случае цветного изображения - бит на пиксель
для одной цветовой плоскости, не указывать для TrueColor 24 bkb 48, вместо этого - 8 и 16 соответственно. Для изображения типа float - 32 бита.
Возвращает:
В любом случае функция возвращает указатель на объект, в который помещено изображение. Или 0 в случае ошибки. Хотя в большинстве случаев в случае ошибки происходит exception, в котором объясняется что случилось.
Не забывать удалять объект! Это выполняется оператором delete, лучший вариант - хранение этого указателя в std::auto_ptr<AImage>, что гарантирует удаление объекта при выходе из блока видимости.
См. также:
AImageLoad, AImageSave, AImageCreate
Примеры:
test_alg_bresenham.cpp, test_color_registration.cpp, test_image_registration_via_fft.cpp, test_image_registration_via_oflow.cpp, test_plf_filters.cpp и test_plf_filters_rgb.cpp.

bool AImageIsCompatible | ( | AImage * | img,
 |  | AImage::YImageClass | iclass,
 |  | short | width,
 |  | short | height,
 |  | short | bitsPerPix
 | ) |  |

AImage* AImageLoad | ( | AImage * | img,
 |  | bool | replace,
 |  | const char * | fname,
 |  | ProgressCounter * | indicator = 0
 | ) |  |

Функция загрузки изображения в память.

fname - имя файла-изображения
indicator - счетчик прогресса исполнения, см. class ProgressCounter и
глобальную переменную indicator, определенную в файле consolap.h
img - указатель на объект, производный от AImage или 0. Поведение определяется значением:
replace - если false, то библиотека попытается загрузить изображение в
существующий объект, который был передан через переменную img. Если это невозможно, например img указывает объект содержащий серое изображение AImageMem16, а файл содержит изображение TrueColor, то никаких действий выполнено не будет.
Если replace==true, то старый объект будет удален и создан новый, в который изображение может быть помещено.
Возвращает:
В любом случае функция возвращает указатель на объект, в который помещено изображение. Или 0 в случае ошибки. Хотя в большинстве случаев в случае ошибки происходит exception, в котором объясняется что случилось.
Не забывать удалять объект! Это выполняется оператором delete, лучший вариант - хранение этого указателя в std::auto_ptr<AImage>, что гарантирует удаление объекта при выходе из блока видимости.
См. также:
AImageLoad, AImageSave, AImageCreate
Смысл переменной img в функциях AImageLoad, AImageCreate состоит в том, чтобы минимизировать нагрузку на систему распределения памяти. Нормальный способ работы, если например есть окно Windows в котором помещается изображение состоит в следующем:
 class MyWindow
    : public Window // тот класс, от которого производятся окна, например CMdiChild, в MFC
{
    .....
    AImage* image;
    VirtDib draw_obj;
    ZoomFactor2D zoom;
    BYTE *map_table;
    .....
public:
    MyWindow()
    {
        image=0; // еще изображения нет, надо обеспечить, чтобы не было попытки
                 //удалить (\c delete) объект, который еще не создан.
        map_table=0; // С помощью этой таблицы можно управлять отображением на экране,
                     // например делать гамма коррекцию или негатив для отрисовки,
                     // не изменяя самого изображения image и <tt>не создавая его копии</tt>!
                     // надо только следить, чтобы размер этой таблицы соответствовал
                     // количеству бит на пиксель изображения, чтобы не произошло
                     //обращения в чужую память.
    }
    virtual ~MyWindow() {Clear();} // гарантировать удаление
    void Clear()
    {
        if(image)
        {
            delete image;
            image=0;
        }
    }
    .....
    // действия, которые надо предпринять по сообщению WM_PAINT
    void Paint(HWND hWnd, HDC hdc)
    {
        HBRUSH hBrush=CreateSolidBrush(...);
        draw_obj.DefaultPaint(hWnd,hdc,hBrush,image,zoom,map_table);
        // освободить кисть
    }
    // Далее - действия, которые могут инициализироваться нажатием кнопок интерфейса или меню
    // Внимание: когда изменяется размер изображения или зум - следует не забывать подстроить
    // параметры скроллбаров окна.
    void Load(const char* fname)
    {
        image=AImageLoad(image,true,fname,my_graphical_indicator_or_null);
    }
    void Save(const char* fname)
    {
        AImageSave(image,fname,my_graphical_indicator_or_null);
    }
    void New()
    {
        image=AImageCreate(image,AImage::YImageClass::IMGC_GRAYSCALE,500,400,12);
    }
    .....
};
Примеры:
invert.cpp, test_color_registration.cpp, test_fast_gauss.cpp, test_image_registration_via_fft.cpp, test_image_registration_via_oflow.cpp, test_plf_filters.cpp, test_plf_filters_rgb.cpp и work_with_image.cpp.

void AImageSave | ( | const AImage * | img,
 |  | const char * | fname,
 |  | ProgressCounter * | indicator = 0
 | ) |  |

Функция сохранения изображения в файл.

fname - имя файла-изображения
indicator - счетчик прогресса исполнения, см. class ProgressCounter и
глобальную переменную indicator, определенную в файле consolap.h
img - указатель на объект (изображение), производный от AImage, который
требуется сохранить.
Внимание!!! Тип файла определяется расширением имени файла. Не каждый формат файла допускает сохранение любого типа изображения. Например, нельзя серое изображение сохранить в *.bmp, так как в *.bmp нет понятия GRAYSCALE, а есть только TrueColor и ПАЛИТРОВЫЕ изображения, а это не одно и то же! Формально на экране такое изображение может выглядеть как серое, но способы работы с ним (алгоритмы) совершенно другие, или надо его преобразовывать в GrayScale.
См. также:
AImageLoad, AImageSave, AImageCreate
Примеры:
invert.cpp, test_alg_bresenham.cpp, test_color_registration.cpp, test_fast_gauss.cpp, test_image_registration_via_fft.cpp, test_image_registration_via_oflow.cpp, test_plf_filters.cpp, test_plf_filters_rgb.cpp и work_with_image.cpp.


Pipe Line Filters: Numerical calculations

  • Примеры

Numerical calculations

Численные методы Подробнее...

Функции

double | nmPoly (double x, const double *coef, int n)
int | nmPow (int a, int b)
double | nmQUANC8 (double(*FUN)(double, void *), const double A, const double B, void *param, const double ABSERR, const double RELERR, double &ERREST, int &NOFUN, double &FLAG)
double | nmFMIN (double(*FUN)(double, void *), double AX, double BX, void *param, double TOL)
double | nmZEROIN (double(*FUN)(double, void *), double AX, double BX, void *param, double TOL)
void | nmSPLINE_FREE (int n, const double *x, const double *y, double *b, double *c, double *d)
void | nmSPLINE (int n, const double *x, const double *y, double *b, double *c, double *d)
double | nmSEVAL (int n, double u, const double *x, const double *y, const double *b, const double *c, const double *d)
double | nmGAMMLN (double xx)
int | nmSVD (int NM, int M, int N, double *A, double *W, double *U, double *V, double *RV1)
int | nmVDCPS (int N, int *IPF, int *IEXP, int *IPWR)
Разлагает число N на простые множители, взято из библиотеки IMSL.
void | nmVTRAN (double *A, int N, int M)
Транспонирует прямоугольную матрицу на том же месте, взято из библиотеки IMSL.
template<class T>
T | nmMaxArrayElem (int n, const T *array)
Поиск максимального элемента в массиве.
double | nmNormQRev (double p)
double | nmBetaFnForStudent (double n)
вычисляет B(1/2,n/2)==Г(1/2)Г(n/2)/Г((n+1)/2)
double | nmTStudentPercPtNlRoot (double p, int n)
double | nmTStudentPercPtAssimpt (double p, int n)
double | nmTStudentPercPt (double p, int n)
double | nmTStudentPercPtViaIntegral (double p, double n)
double | nmTStudentPercPtTauThreshold (double p, int n)
template<class T>
T | nmRang (int k, T *a, int n)
template<class T>
T | nmMedian (T *a, int n)
template<class T>
void | nmMedian1D (T *data, int n, int half_wnd_size, T *buf, bool reflect_edjes=false)
template<class T, class TT>
void | nmLinearLeastSquares (int n, const T *x, const TT *y, double &slope, double &intercept)
template<class T>
int | nmFindBadByStudent (int n, const T *array, const double *tau2, double *mean, double *disp2)
template<class T>
double | nmMeanAndDisp (int n, const T *array, double *dispsqr=0)
template<class T, class TT>
int | nmFindBadByStudent (int n, const T *x, const TT *y, const double *tau2)
template<class T>
double | nmFilteredMeanByStudent (int n, T *array, const double *tau2, int *n_rest=0)

Подробное описание

Численные методы

Функции

double nmBetaFnForStudent ( double n )

вычисляет B(1/2,n/2)==Г(1/2)Г(n/2)/Г((n+1)/2)

template<class T>
double nmFilteredMeanByStudent | ( | int | n,
 |  | T * | array,
 |  | const double * | tau2,
 |  | int * | n_rest = 0
 | ) |  |

template<class T, class TT>
int nmFindBadByStudent | ( | int | n,
 |  | const T * | x,
 |  | const TT * | y,
 |  | const double * | tau2
 | ) |  |

template<class T>
int nmFindBadByStudent | ( | int | n,
 |  | const T * | array,
 |  | const double * | tau2,
 |  | double * | mean,
 |  | double * | disp2
 | ) |  |

double nmFMIN | ( | double(*)(double, void *) | FUN,
 |  | double | AX,
 |  | double | BX,
 |  | void * | param,
 |  | double | TOL
 | ) |  |

Поиск минимума функции 1 переменной X на интервале [AX,BX]. См. [Forsythe80]

double nmGAMMLN ( double xx )

вычисляет ln(Г(x)) См. [NRC2]

template<class T, class TT>
void nmLinearLeastSquares | ( | int | n,
 |  | const T * | x,
 |  | const TT * | y,
 |  | double & | slope,
 |  | double & | intercept
 | ) |  |

template<class T>
T nmMaxArrayElem | ( | int | n,
 |  | const T * | array
 | ) |  |

Поиск максимального элемента в массиве.

template<class T>
double nmMeanAndDisp | ( | int | n,
 |  | const T * | array,
 |  | double * | dispsqr = 0
 | ) |  |

template<class T>
T nmMedian | ( | T * | a,
 |  | int | n
 | ) |  |

template<class T>
void nmMedian1D | ( | T * | data,
 |  | int | n,
 |  | int | half_wnd_size,
 |  | T * | buf,
 |  | bool | reflect_edjes = false
 | ) |  |

double nmNormQRev ( double p )

tstudent.cpp ////////////////////////// 0<p<=0.5

double nmPoly | ( | double | x,
 |  | const double * | coef,
 |  | int | n
 | ) |  |

numeric0.cpp ////////////////////////// !!! n -степень полинома, а не размерность массива=(n+1) !!!!!

int nmPow | ( | int | a,
 |  | int | b
 | ) |  |

double nmQUANC8 | ( | double(*)(double, void *) | FUN,
 |  | const double | A,
 |  | const double | B,
 |  | void * | param,
 |  | const double | ABSERR,
 |  | const double | RELERR,
 |  | double & | ERREST,
 |  | int & | NOFUN,
 |  | double & | FLAG
 | ) |  |

Численное интегрирование функции одной переменной. Метод Ньютена-Котеса 8 порядка.

FUN(x,void *param) - функция
A - левая граница интервала ингерирования
B - правая граница интервала ингерирования
param - через этот указатель в функцию можно передавать различне параметры
Источник:
Дж.Форсайт, М.Малькольм, К.Моулер. Машинные методы математических вычислений. Москва. Мир. 1980. 280 стр. Пер. с англ. Х.Д.Икрамова.

Оригинал:
Prentice-hall, inc. Englrwood clifs, N.J. 07632 1977

template<class T>
T nmRang | ( | int | k,
 |  | T * | a,
 |  | int | n
 | ) |  |

!! Next functions suppose, that types T and TT may be !! reduced to double without lost in accuracy.

double nmSEVAL | ( | int | n,
 |  | double | u,
 |  | const double * | x,
 |  | const double * | y,
 |  | const double * | b,
 |  | const double * | c,
 |  | const double * | d
 | ) |  |

Вычисление значения аппроксимирующего сплайна с использованием коэффициентов полученных nmSPLINE_FREE или nmSPLINE См. [Forsythe80]

void nmSPLINE | ( | int | n,
 |  | const double * | x,
 |  | const double * | y,
 |  | double * | b,
 |  | double * | c,
 |  | double * | d
 | ) |  |

Вычисление коэффициентов кубического сплайна, граничные условия - аппроксимация кубическим полиномом. См. [Forsythe80]

void nmSPLINE_FREE | ( | int | n,
 |  | const double * | x,
 |  | const double * | y,
 |  | double * | b,
 |  | double * | c,
 |  | double * | d
 | ) |  |

Вычисление коэффициентов кубического сплайна, граничные условия - свободные концы. См. [Forsythe80]

int nmSVD | ( | int | NM,
 |  | int | M,
 |  | int | N,
 |  | double * | A,
 |  | double * | W,
 |  | double * | U,
 |  | double * | V,
 |  | double * | RV1
 | ) |  |

Вычисляет сингулярное разложение матрицы. См. [Forsythe80]

double nmTStudentPercPt | ( | double | p,
 |  | int | n
 | ) |  |

double nmTStudentPercPtAssimpt | ( | double | p,
 |  | int | n
 | ) |  |

double nmTStudentPercPtNlRoot | ( | double | p,
 |  | int | n
 | ) |  |

Процентные точки распределения Стьюдента Диапазон параметров n>=1; 0<p<1

double nmTStudentPercPtTauThreshold | ( | double | p,
 |  | int | n
 | ) |  |

double nmTStudentPercPtViaIntegral | ( | double | p,
 |  | double | n
 | ) |  |

int nmVDCPS | ( | int | N,
 |  | int * | IPF,
 |  | int * | IEXP,
 |  | int * | IPWR
 | ) |  |

Разлагает число N на простые множители, взято из библиотеки IMSL.

void nmVTRAN | ( | double * | A,
 |  | int | N,
 |  | int | M
 | ) |  |

Транспонирует прямоугольную матрицу на том же месте, взято из библиотеки IMSL.

double nmZEROIN | ( | double(*)(double, void *) | FUN,
 |  | double | AX,
 |  | double | BX,
 |  | void * | param,
 |  | double | TOL
 | ) |  |

Поиск нуля функции 1 переменной X на интервале [AX,BX] (решение уравнения f(x)=0). См. [Forsythe80]


Pipe Line Filters: Templates library of algorithms.

  • Примеры

Templates library of algorithms.

Граф связей класса Templates library of algorithms.:

Содердит набор шаблонов алгоритмов общего назначения, используется как остальными компонентами библиотеки так и предназначено для активного непосредственного использования пользователями библиотеки. Подробнее...

Группы

Макросы для линеаризованного создания списка типов
Списки стандартных (встроенных) типов
Определение списков базовых типов:.
Some basic templates

Подробное описание

Содердит набор шаблонов алгоритмов общего назначения, используется как остальными компонентами библиотеки так и предназначено для активного непосредственного использования пользователями библиотеки.


Pipe Line Filters: Макросы для линеаризованного создания списка типов

  • Примеры

Макросы для линеаризованного создания списка типов
[Templates library of algorithms.]

Граф связей класса Макросы для линеаризованного создания списка типов:

Макросы

#define | TYPELIST_1(T1) Vtl::Types::Typelist<T1,Vtl::Types::NullType>
#define | TYPELIST_2(T1, T2) Vtl::Types::Typelist<T1,TYPELIST_1(T2) >
#define | TYPELIST_3(T1, T2, T3) Vtl::Types::Typelist<T1,TYPELIST_2(T2,T3) >
#define | TYPELIST_4(T1, T2, T3, T4) Vtl::Types::Typelist<T1,TYPELIST_3(T2,T3,T4) >
#define | TYPELIST_5(T1, T2, T3, T4, T5) Vtl::Types::Typelist<T1,TYPELIST_4(T2,T3,T4,T5) >
#define | TYPELIST_6(T1, T2, T3, T4, T5, T6) Vtl::Types::Typelist<T1,TYPELIST_5(T2,T3,T4,T5,T6) >
#define | TYPELIST_7(T1, T2, T3, T4, T5, T6, T7) Vtl::Types::Typelist<T1,TYPELIST_6(T2,T3,T4,T5,T6,T7) >
#define | TYPELIST_8(T1, T2, T3, T4, T5, T6, T7, T8) Vtl::Types::Typelist<T1,TYPELIST_7(T2,T3,T4,T5,T6,T7,T8) >
#define | TYPELIST_9(T1, T2, T3, T4, T5, T6, T7, T8, T9) Vtl::Types::Typelist<T1,TYPELIST_8(T2,T3,T4,T5,T6,T7,T8,T9) >
#define | TYPELIST_10(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) Vtl::Types::Typelist<T1,TYPELIST_9(T2,T3,T4,T5,T6,T7,T8,T9,T10) >
#define | TYPELIST_11(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) Vtl::Types::Typelist<T1,TYPELIST_10(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11) >
#define | TYPELIST_12(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) Vtl::Types::Typelist<T1,TYPELIST_11(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12) >
#define | TYPELIST_13(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) Vtl::Types::Typelist<T1,TYPELIST_12(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13) >
#define | TYPELIST_14(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) Vtl::Types::Typelist<T1,TYPELIST_13(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14) >
#define | TYPELIST_15(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) Vtl::Types::Typelist<T1,TYPELIST_14(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15) >

Макросы

#define TYPELIST_1 ( T1 ) Vtl::Types::Typelist<T1,Vtl::Types::NullType>

Линеаризованное создание списка типов Typelist из нескольких типов.
Например:
typedef TYPELIST_2(signed char,short) MyTList_1;
typedef TYPELIST_3(signed char,short,int) MyTList_2;

#define TYPELIST_10 | ( | T1,
 |  | T2,
 |  | T3,
 |  | T4,
 |  | T5,
 |  | T6,
 |  | T7,
 |  | T8,
 |  | T9,
 |  | T10 | ) | Vtl::Types::Typelist<T1,TYPELIST_9(T2,T3,T4,T5,T6,T7,T8,T9,T10) >

#define TYPELIST_11 | ( | T1,
 |  | T2,
 |  | T3,
 |  | T4,
 |  | T5,
 |  | T6,
 |  | T7,
 |  | T8,
 |  | T9,
 |  | T10,
 |  | T11 | ) | Vtl::Types::Typelist<T1,TYPELIST_10(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11) >

#define TYPELIST_12 | ( | T1,
 |  | T2,
 |  | T3,
 |  | T4,
 |  | T5,
 |  | T6,
 |  | T7,
 |  | T8,
 |  | T9,
 |  | T10,
 |  | T11,
 |  | T12 | ) | Vtl::Types::Typelist<T1,TYPELIST_11(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12) >

#define TYPELIST_13 | ( | T1,
 |  | T2,
 |  | T3,
 |  | T4,
 |  | T5,
 |  | T6,
 |  | T7,
 |  | T8,
 |  | T9,
 |  | T10,
 |  | T11,
 |  | T12,
 |  | T13 | ) | Vtl::Types::Typelist<T1,TYPELIST_12(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13) >

#define TYPELIST_14 | ( | T1,
 |  | T2,
 |  | T3,
 |  | T4,
 |  | T5,
 |  | T6,
 |  | T7,
 |  | T8,
 |  | T9,
 |  | T10,
 |  | T11,
 |  | T12,
 |  | T13,
 |  | T14 | ) | Vtl::Types::Typelist<T1,TYPELIST_13(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14) >

#define TYPELIST_15 | ( | T1,
 |  | T2,
 |  | T3,
 |  | T4,
 |  | T5,
 |  | T6,
 |  | T7,
 |  | T8,
 |  | T9,
 |  | T10,
 |  | T11,
 |  | T12,
 |  | T13,
 |  | T14,
 |  | T15 | ) | Vtl::Types::Typelist<T1,TYPELIST_14(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15) >

#define TYPELIST_2 | ( | T1,
 |  | T2 | ) | Vtl::Types::Typelist<T1,TYPELIST_1(T2) >

#define TYPELIST_3 | ( | T1,
 |  | T2,
 |  | T3 | ) | Vtl::Types::Typelist<T1,TYPELIST_2(T2,T3) >

#define TYPELIST_4 | ( | T1,
 |  | T2,
 |  | T3,
 |  | T4 | ) | Vtl::Types::Typelist<T1,TYPELIST_3(T2,T3,T4) >

#define TYPELIST_5 | ( | T1,
 |  | T2,
 |  | T3,
 |  | T4,
 |  | T5 | ) | Vtl::Types::Typelist<T1,TYPELIST_4(T2,T3,T4,T5) >

#define TYPELIST_6 | ( | T1,
 |  | T2,
 |  | T3,
 |  | T4,
 |  | T5,
 |  | T6 | ) | Vtl::Types::Typelist<T1,TYPELIST_5(T2,T3,T4,T5,T6) >

#define TYPELIST_7 | ( | T1,
 |  | T2,
 |  | T3,
 |  | T4,
 |  | T5,
 |  | T6,
 |  | T7 | ) | Vtl::Types::Typelist<T1,TYPELIST_6(T2,T3,T4,T5,T6,T7) >

#define TYPELIST_8 | ( | T1,
 |  | T2,
 |  | T3,
 |  | T4,
 |  | T5,
 |  | T6,
 |  | T7,
 |  | T8 | ) | Vtl::Types::Typelist<T1,TYPELIST_7(T2,T3,T4,T5,T6,T7,T8) >

#define TYPELIST_9 | ( | T1,
 |  | T2,
 |  | T3,
 |  | T4,
 |  | T5,
 |  | T6,
 |  | T7,
 |  | T8,
 |  | T9 | ) | Vtl::Types::Typelist<T1,TYPELIST_8(T2,T3,T4,T5,T6,T7,T8,T9) >


Pipe Line Filters: Списки стандартных (встроенных) типов

  • Примеры

Списки стандартных (встроенных) типов
[Templates library of algorithms.]

Граф связей класса Списки стандартных (встроенных) типов:

Определение списков базовых типов:. Подробнее...

Определения типов

typedef TL::NoDuplicates<
TYPELIST_8(signed char, short,
int, long, int8_t, int16_t,
int32_t, int64_t)>::Result 		Vtl::Types::SignedIntegerTypes
все знаковые встроенные целые типы
typedef TL::NoDuplicates<
TYPELIST_8(unsigned char,
unsigned short, unsigned
int, unsigned long, uint8_t,
uint16_t, uint32_t, uint64_t)>::Result 		Vtl::Types::UnsignedIntegerTypes
все беззнаковые встроенные целые типы
typedef TL::NoDuplicates<
TYPELIST_3(float, double,
long double)>::Result 		Vtl::Types::RealTypes
все вещественные встроенные целые типы
typedef TL::NoDuplicates<
TYPELIST_3(bool, char, wchar_t)>::Result 		Vtl::Types::OtherIntegerTypes
остальные встроенные "целые" типы, такие как bool,char,wchar_t
typedef TL::NoDuplicates<
TL::Append< SignedIntegerTypes,
UnsignedIntegerTypes >::Result
>::Result 		Vtl::Types::IntegerTypes
все знаковые и беззнаковые встроенные целые типы.
typedef TL::NoDuplicates<
TL::Append< IntegerTypes,
OtherIntegerTypes >::Result
>::Result 		Vtl::Types::AllIntegerTypes
все знаковые и беззнаковые встроенные целые типы, включая OtherIntegerTypes (такие как 'char').
typedef TL::NoDuplicates<
TL::Append< SignedIntegerTypes,
RealTypes >::Result >::Result 		Vtl::Types::SignedTypes
все знаковые встроенные типы - целые и с плавающей точкой.
typedef TL::NoDuplicates<
TL::Append< IntegerTypes,
RealTypes >::Result >::Result 		Vtl::Types::ArithTypes
все численные встроенные типы - целые знаковые и беззнаковые и с плавающей точкой.
typedef TL::NoDuplicates<
TL::Append< ArithTypes, OtherIntegerTypes
>::Result >::Result 		Vtl::Types::AllArithTypes
все численные встроенные типы - целые знаковые и беззнаковые и с плавающей точкой, включая OtherIntegerTypes (такие как 'char').

Подробное описание

Определение списков базовых типов:.

Типы

typedef TL::NoDuplicates<TL::Append<ArithTypes,OtherIntegerTypes>::Result>::Result Vtl::Types::AllArithTypes

все численные встроенные типы - целые знаковые и беззнаковые и с плавающей точкой, включая OtherIntegerTypes (такие как 'char').

typedef TL::NoDuplicates<TL::Append<IntegerTypes,OtherIntegerTypes>::Result>::Result Vtl::Types::AllIntegerTypes

все знаковые и беззнаковые встроенные целые типы, включая OtherIntegerTypes (такие как 'char').

typedef TL::NoDuplicates<TL::Append<IntegerTypes,RealTypes>::Result>::Result Vtl::Types::ArithTypes

все численные встроенные типы - целые знаковые и беззнаковые и с плавающей точкой.

typedef TL::NoDuplicates<TL::Append<SignedIntegerTypes,UnsignedIntegerTypes>::Result>::Result Vtl::Types::IntegerTypes

все знаковые и беззнаковые встроенные целые типы.

typedef TL::NoDuplicates<TYPELIST_3(bool,char,wchar_t)>::Result Vtl::Types::OtherIntegerTypes

остальные встроенные "целые" типы, такие как bool,char,wchar_t

typedef TL::NoDuplicates<TYPELIST_3(float,double,long double)>::Result Vtl::Types::RealTypes

все вещественные встроенные целые типы

typedef TL::NoDuplicates<TYPELIST_8(signed char,short,int,long,int8_t,int16_t,int32_t,int64_t)>::Result Vtl::Types::SignedIntegerTypes

все знаковые встроенные целые типы

typedef TL::NoDuplicates<TL::Append<SignedIntegerTypes,RealTypes>::Result>::Result Vtl::Types::SignedTypes

все знаковые встроенные типы - целые и с плавающей точкой.

typedef TL::NoDuplicates<TYPELIST_8(unsigned char,unsigned short,unsigned int,unsigned long,uint8_t,uint16_t,uint32_t,uint64_t)>::Result Vtl::Types::UnsignedIntegerTypes

все беззнаковые встроенные целые типы


Pipe Line Filters: Some basic templates

  • Примеры

Some basic templates
[Templates library of algorithms.]

Граф связей класса Some basic templates:

Функции

template<typename T>
T | Vtl::sqr (T v)
template<typename T>
T | Vtl::max (T a, T b, T c)
template<typename T>
T | Vtl::max (T a, T b, T c, T d)
template<typename T>
T | Vtl::min (T a, T b, T c)
template<typename T>
T | Vtl::min (T a, T b, T c, T d)
template<typename T1, typename T2, typename T3>
T1 | Vtl::ToBounds (T1 var, T2 min, T3 max)

Функции

template<typename T>
T Vtl::max | ( | T | a,
 |  | T | b,
 |  | T | c,
 |  | T | d
 | ) |  |

Примеры:
test_color_registration.cpp, test_fast_gauss.cpp, test_image_registration_via_fft.cpp, test_Integral_Transforms.cpp и test_spec_functions.cpp.

template<typename T>
T Vtl::max | ( | T | a,
 |  | T | b,
 |  | T | c
 | ) |  |

template<typename T>
T Vtl::min | ( | T | a,
 |  | T | b,
 |  | T | c,
 |  | T | d
 | ) |  |

template<typename T>
T Vtl::min | ( | T | a,
 |  | T | b,
 |  | T | c
 | ) |  |

template<typename T>
T Vtl::sqr ( T v )

Примеры:
test_plf_kernels.cpp.

template<typename T1, typename T2, typename T3>
T1 Vtl::ToBounds | ( | T1 | var,
 |  | T2 | min,
 |  | T3 | max
 | ) |  |


Pipe Line Filters: Работа с XML и INI файлами и структурами данных

  • Примеры

Работа с XML и INI файлами и структурами данных

Граф связей класса Работа с XML и INI файлами и структурами данных:

Группы

XML specific interface.
INI and XML common interface

Классы

class | YXML::Xercesc
class | YXML::XMLdoc
class | YXML::DNode
class | YXML::DNode::AttrRef
class | YXML::DNode::IsOR
class | YXML::DNode::IsAND
struct | YXML::IsElem
struct | YXML::IsName< Cmp >
struct | YXML::IsAttr< T, Cmp >
struct | YXML::IsAttrIn< T >
class | WinIniFile
class | WiNode
class | WiNode::AttrRef
class | YXML::Xercesc
class | YXML::DNode
class | YXML::DNode::IsOR
class | YXML::DNode::IsAND
struct | YXML::IsElem
struct | YXML::IsName< Cmp >
struct | YXML::IsAttr< T, Cmp >
struct | YXML::IsAttrIn< T >

Определения типов

typedef IsName< std::equal_to<
std::string > > 		YXML::IsNameEq
проверяет, что тип ноды есть ELEMENT? а имя совпадает с заданным.
typedef IsAttr< std::string,
std::equal_to< std::string > > 		YXML::IsAttrEq
Проверяет, что аттрибут лексикографически равен заданной строке.

Функции

IsOR | YXML::DNode::Is::operator|| (const Is &rhs) const
IsAND | YXML::DNode::Is::operator && (const Is &rhs) const

Типы

typedef IsAttr<std::string,std::equal_to<std::string> > YXML::IsAttrEq

Проверяет, что аттрибут лексикографически равен заданной строке.

typedef IsName<std::equal_to<std::string> > YXML::IsNameEq

проверяет, что тип ноды есть ELEMENT? а имя совпадает с заданным.

Примеры:
test_yxml_ini.cpp.

Функции

DNode::IsAND YXML::DNode::Is::operator && ( const Is & rhs ) const [inline, inherited]

DNode::IsOR YXML::DNode::Is::operator|| ( const Is & rhs ) const [inline, inherited]


Pipe Line Filters: XML specific interface.

  • Примеры

XML specific interface.
[Работа с XML и INI файлами и структурами данных]

Граф связей класса XML specific interface.:

Группы

Функции для вставки и удаления нод в XML дерево.
XML tree search functions

Функции

Type | YXML::DNode::getType () const
Возвращает тип ноды.
std::string | YXML::DNode::getName () const
Возвращает имя ноды, имеет смысл только для типа ELEMENT.
bool | YXML::DNode::IsNode () const
Аналог проверки указателя на NULL.

Подробное описание

Интерфейс ,специфичный для XML, не поддерживается для INI файлов.

Функции

std::string DNode::getName ( ) const [inherited]

Возвращает имя ноды, имеет смысл только для типа ELEMENT.

Примеры:
test_yxml_ini.cpp и test_yxml_xml.cpp.

DNode::Type DNode::getType ( ) const [inherited]

Возвращает тип ноды.

Примеры:
test_yxml_xml.cpp.

bool YXML::DNode::IsNode ( ) const [inline, inherited]

Аналог проверки указателя на NULL.

Примеры:
test_yxml_ini.cpp, test_yxml_learn.cpp и test_yxml_xml.cpp.


Pipe Line Filters: Функции для вставки и удаления нод в XML дерево.

  • Примеры

Функции для вставки и удаления нод в XML дерево.
[XML specific interface.]

Граф связей класса Функции для вставки и удаления нод в XML дерево.:

Функции

DNode | YXML::DNode::AppendChild (Type type, const DataString data)
DNode | YXML::DNode::InsertAfter (Type type, const DataString data)
DNode | YXML::DNode::InsertBefore (Type type, const DataString data)
void | YXML::DNode::Delete ()
void | YXML::DNode::setValue (const DataString data)
Work only at TEXT and COMMENT nodes.
DataString | YXML::DNode::getValue () const
Work only at TEXT and COMMENT nodes.

Подробное описание

Функции для вставки и удаления нод в XML дерево.

Функции

DNode DNode::AppendChild | ( | Type | type,
 |  | const DataString | data |
 | ) |  |  | [inherited]

Примеры:
test_yxml_ini.cpp, test_yxml_learn.cpp и test_yxml_xml.cpp.

void DNode::Delete ( ) [inherited]

DataString DNode::getValue ( ) const [inherited]

Work only at TEXT and COMMENT nodes.

Примеры:
test_yxml_xml.cpp.

DNode DNode::InsertAfter | ( | Type | type,
 |  | const DataString | data |
 | ) |  |  | [inherited]

Примеры:
test_yxml_learn.cpp.

DNode DNode::InsertBefore | ( | Type | type,
 |  | const DataString | data |
 | ) |  |  | [inherited]

Примеры:
test_yxml_ini.cpp.

void DNode::setValue ( const DataString data ) [inherited]

Work only at TEXT and COMMENT nodes.


Pipe Line Filters: XML tree search functions

  • Примеры

XML tree search functions
[XML specific interface.]

Граф связей класса XML tree search functions:

DNode | YXML::DNode::FirstChild (const Is &cond) const
DNode | YXML::DNode::Next (const Is &cond) const
DNode | YXML::DNode::LastChild (const Is &cond) const
DNode | YXML::DNode::Prev (const Is &cond) const

Функции

DNode | YXML::DNode::Parent () const
DNode | YXML::DNode::FirstChild () const
DNode | YXML::DNode::LastChild () const
DNode | YXML::DNode::Next () const
DNode | YXML::DNode::Prev () const
DNode | YXML::DNode::FirstChild (std::string name) const
DNode | YXML::DNode::Next (std::string name) const
DNode | YXML::DNode::LastChild (std::string name) const
DNode | YXML::DNode::Prev (std::string name) const
template<typename T>
DNode | YXML::DNode::FirstChild (std::string name, std::string attr, const T &attr_val) const
template<typename T>
DNode | YXML::DNode::Next (std::string name, std::string attr, const T &attr_val) const
template<typename T>
DNode | YXML::DNode::LastChild (std::string name, std::string attr, const T &attr_val) const
template<typename T>
DNode | YXML::DNode::Prev (std::string name, std::string attr, const T &attr_val) const

Подробное описание

Функции для поиска по XML дереву.

Функции

template<typename T>
DNode YXML::DNode::FirstChild | ( | std::string | name,
 |  | std::string | attr,
 |  | const T & | attr_val |
 | ) |  |  | const [inline, inherited]

DNode YXML::DNode::FirstChild ( std::string name ) const [inline, inherited]

DNode DNode::FirstChild ( const Is & cond ) const [inherited]

Поиск первой (последней) дочерней ноды, удовлетворяющей условиям, заданным функтором

Аргументы:
cond - функтор, производный от DNode::Is,
Возвращает:
возвращает найденную ноду, или пустую ноду если такой ноды нет. see IsNode Условия поиска
См. также:
DNode::IsCond,IsElem,IsName,IsNameEq,IsAttr,IsAttrIn,DNode::IsOR,DNode::IsAND
Можно определять свои функторы, производя их от класса DNode::Is. Есть упрощенные версии для простых условий поиска,
См. также:
FirstChild(std::string name) const

Next(std::string name) const

LastChild(std::string name) const

Prev(std::string name) const

FirstChild(std::string ,std::string attr,const T& ) const

Next(std::string ,std::string attr,const T& ) const

LastChild(std::string ,std::string attr,const T& ) const

Prev(std::string ,std::string attr,const T& ) const

DNode DNode::FirstChild ( ) const [inherited]

Примеры:
test_yxml_ini.cpp, test_yxml_learn.cpp и test_yxml_xml.cpp.

template<typename T>
DNode YXML::DNode::LastChild | ( | std::string | name,
 |  | std::string | attr,
 |  | const T & | attr_val |
 | ) |  |  | const [inline, inherited]

DNode YXML::DNode::LastChild ( std::string name ) const [inline, inherited]

DNode DNode::LastChild ( const Is & cond ) const [inherited]

DNode DNode::LastChild ( ) const [inherited]

template<typename T>
DNode YXML::DNode::Next | ( | std::string | name,
 |  | std::string | attr,
 |  | const T & | attr_val |
 | ) |  |  | const [inline, inherited]

DNode YXML::DNode::Next ( std::string name ) const [inline, inherited]

DNode DNode::Next ( const Is & cond ) const [inherited]

DNode DNode::Next ( ) const [inherited]

Примеры:
test_yxml_ini.cpp, test_yxml_learn.cpp и test_yxml_xml.cpp.

DNode DNode::Parent ( ) const [inherited]

template<typename T>
DNode YXML::DNode::Prev | ( | std::string | name,
 |  | std::string | attr,
 |  | const T & | attr_val |
 | ) |  |  | const [inline, inherited]

DNode YXML::DNode::Prev ( std::string name ) const [inline, inherited]

DNode DNode::Prev ( const Is & cond ) const [inherited]

DNode DNode::Prev ( ) const [inherited]


Pipe Line Filters: INI and XML common interface

  • Примеры

INI and XML common interface
[Работа с XML и INI файлами и структурами данных]

Граф связей класса INI and XML common interface:

Группы

Базовые функции XML
XML: Alternative INI and XML common interface
Базовые функции INI
INI: Alternative INI and XML common interface

Подробное описание

При записи значения/аттрибута если их не было в файле - они создаются, если были - заменяются на новые значения.
В INI - необходимые поддеревья создаются в момент записи значения/аттрибута,
В XML - в момент вызова GetNode() если ноды ранее не было в файле - она создается,
Если была - идет работа с ней, при наличии в файле нескольких одноименных нод - идет работа с ПЕРВОЙ из них, доступа до остальных через "INI and XML common interface" НЕТ!!! Следует использовать специализированный интерфейс XML, тогда возможна работа только с файлами в формате XML.

При записи значения/аттрибута если их не было в файле - они создаются, если были - заменяются на новые значения.
В INI - необходимые поддеревья создаются в момент записи значения/аттрибута,
В XML - в момент вызова GetNode() если ноды ранее не было в файле - она создается,
Если была - идет работа с ней, при наличии в файле нескольких одноименных нод - идет работа с ПЕРВОЙ из них, доступа до остальных через "INI and XML common interface" НЕТ!!! Следует использовать специализированный интерфейс XML, тогда возможна работа только с файлами в формате XML.


Pipe Line Filters: Базовые функции XML

  • Примеры

Базовые функции XML
[INI and XML common interface]

Граф связей класса Базовые функции XML:

Функции

DNode | YXML::DNode::GetNode (const std::string node_name)
Возвращает ноду с заданным именем, если их несколько, то первую, если ее нет, то она будет создана.
void | YXML::DNode::SetValue (const DataString data)
Смысл операции зависит от типа ноды, если ELEMENT - то вкладывает текстовую ноду с указанным содержимым, если TEXT или COMMENT - заменяет текстовое содержание на указанное.
DataString | YXML::DNode::GetValue () const
void | YXML::DNode::SetAttr (const std::string attr_name, const DataString attr_value)
смысл операции идентичен для XML и INI
DataString | YXML::DNode::GetAttr (const std::string attr_name) const
смысл операции идентичен для XML и INI

Подробное описание

По соображениям удобства записи рекомендуется использовать альтернативный интерфейс
См. также:
XML: Alternative INI and XML common interface, который представляет собой оболочку на эти функции

Функции

DataString DNode::GetAttr ( const std::string attr_name ) const [inherited]

смысл операции идентичен для XML и INI

Примеры:
test_yxml_ini.cpp и test_yxml_xml.cpp.

DNode DNode::GetNode ( const std::string node_name ) [inherited]

Возвращает ноду с заданным именем, если их несколько, то первую, если ее нет, то она будет создана.

DataString DNode::GetValue ( ) const [inherited]

void DNode::SetAttr | ( | const std::string | attr_name,
 |  | const DataString | attr_value |
 | ) |  |  | [inherited]

смысл операции идентичен для XML и INI

Примеры:
test_yxml_xml.cpp.

void DNode::SetValue ( const DataString data ) [inherited]

Смысл операции зависит от типа ноды, если ELEMENT - то вкладывает текстовую ноду с указанным содержимым, если TEXT или COMMENT - заменяет текстовое содержание на указанное.


Pipe Line Filters: XML: Alternative INI and XML common interface

  • Примеры

XML: Alternative INI and XML common interface
[INI and XML common interface]

Граф связей класса XML: Alternative INI and XML common interface:

Функции

DNode | YXML::DNode::operator() (const std::string node_name)
AttrRef | YXML::DNode::operator[] (const std::string &attr)
возвращает временный объект, нужный только для преобразования к DataString или записи в него из DataString
const AttrRef | YXML::DNode::operator[] (const std::string &attr) const
DNode & | YXML::DNode::operator= (const DataString data)
YXML::DNode::operator DataString () const

Подробное описание

Альтернативный INI and XML common interface, более удобный в записи.

Функции

YXML::DNode::operator DataString ( ) const [inline, inherited]

DNode YXML::DNode::operator() ( const std::string node_name ) [inline, inherited]

DNode& YXML::DNode::operator= ( const DataString data ) [inline, inherited]

const DNode::AttrRef YXML::DNode::operator[] ( const std::string & attr ) const [inline, inherited]

DNode::AttrRef YXML::DNode::operator[] ( const std::string & attr ) [inline, inherited]

возвращает временный объект, нужный только для преобразования к DataString или записи в него из DataString


Pipe Line Filters: Базовые функции INI

  • Примеры

Базовые функции INI
[INI and XML common interface]

Граф связей класса Базовые функции INI:

Функции

bool | WiNode::IsNode () const
Аналог проверки указателя на NULL.
WiNode | WiNode::GetNode (const std::string node_name)
const WiNode | WiNode::GetNode (const std::string node_name) const
void | WiNode::SetValue (const DataString data)
DataString | WiNode::GetValue () const
void | WiNode::SetAttr (const std::string attr_name, const DataString attr_value)
DataString | WiNode::GetAttr (const std::string attr_name) const

Подробное описание

По соображениям удобства записи рекомендуется использовать альтернативный интерфейс
См. также:
INI: Alternative INI and XML common interface, который представляет собой оболочку на эти функции

Функции

DataString WiNode::GetAttr ( const std::string attr_name ) const [inherited]

const WiNode WiNode::GetNode ( const std::string node_name ) const [inherited]

WiNode WiNode::GetNode ( const std::string node_name ) [inherited]

DataString WiNode::GetValue ( ) const [inherited]

bool WiNode::IsNode ( ) const [inline, inherited]

Аналог проверки указателя на NULL.

void WiNode::SetAttr | ( | const std::string | attr_name,
 |  | const DataString | attr_value |
 | ) |  |  | [inherited]

void WiNode::SetValue ( const DataString data ) [inherited]


Pipe Line Filters: INI: Alternative INI and XML common interface

  • Примеры

INI: Alternative INI and XML common interface
[INI and XML common interface]

Граф связей класса INI: Alternative INI and XML common interface:

Функции

WiNode | WiNode::operator() (const std::string node_name)
const WiNode | WiNode::operator() (const std::string node_name) const
AttrRef | WiNode::operator[] (const std::string &attr)
const AttrRef | WiNode::operator[] (const std::string &attr) const
WiNode & | WiNode::operator= (const DataString data)
WiNode::operator DataString () const

Подробное описание

Альтернативный INI and XML common interface, более удобный в записи.

Функции

WiNode::operator DataString ( ) const [inline, inherited]

const WiNode WiNode::operator() ( const std::string node_name ) const [inline, inherited]

WiNode WiNode::operator() ( const std::string node_name ) [inline, inherited]

WiNode& WiNode::operator= ( const DataString data ) [inline, inherited]

const WiNode::AttrRef WiNode::operator[] ( const std::string & attr ) const [inline, inherited]

WiNode::AttrRef WiNode::operator[] ( const std::string & attr ) [inline, inherited]


Pipe Line Filters: Общего назначения (файлы, время, память, система).

  • Примеры

Общего назначения (файлы, время, память, система).

Граф связей класса Общего назначения (файлы, время, память, система).:

Группы

Преобразование строк в данные и наоборот.
Работа с файлами.
Работа с файловой системой (имена и аттрибуты файлов, директорий, пути, итд).
Работа с памятью.
Работа со временем.

Макросы

#define | MAX(a, b) ( ((a)>(b)) ? (a) : (b) )
#define | MIN(a, b) ( ((a)<(b)) ? (a) : (b) )
#define | MAX3(a, b, c) MAX(MAX(a,b),c)
#define | MAX4(a, b, c, d) MAX(MAX(a,b),MAX(c,d))
#define | MIN3(a, b, c) MIN(MIN(a,b),c)
#define | MIN4(a, b, c, d) MIN(MIN(a,b),MIN(c,d))
#define | ABS(a) (((a)<0)?-(a):(a))
#define | IN_BOUNDS(var, min, max) (((var)<(min))?(min):(((var)>(max))?(max):(var)))
#define | SIGN(X1, X2) ((X2 >= 0) ? ABS(X1) : -ABS(X1))

Макросы

#define ABS ( a ) (((a)<0)?-(a):(a))

#define IN_BOUNDS | ( | var,
 |  | min,
 |  | max | ) | (((var)<(min))?(min):(((var)>(max))?(max):(var)))

#define MAX | ( | a,
 |  | b | ) | ( ((a)>(b)) ? (a) : (b) )

#define MAX3 | ( | a,
 |  | b,
 |  | c | ) | MAX(MAX(a,b),c)

#define MAX4 | ( | a,
 |  | b,
 |  | c,
 |  | d | ) | MAX(MAX(a,b),MAX(c,d))

#define MIN | ( | a,
 |  | b | ) | ( ((a)<(b)) ? (a) : (b) )

#define MIN3 | ( | a,
 |  | b,
 |  | c | ) | MIN(MIN(a,b),c)

#define MIN4 | ( | a,
 |  | b,
 |  | c,
 |  | d | ) | MIN(MIN(a,b),MIN(c,d))

#define SIGN | ( | X1,
 |  | X2 | ) | ((X2 >= 0) ? ABS(X1) : -ABS(X1))


Pipe Line Filters: Преобразование строк в данные и наоборот.

  • Примеры

Преобразование строк в данные и наоборот.
[Общего назначения (файлы, время, память, система).]

Граф связей класса Преобразование строк в данные и наоборот.:

Пространства имен

namespace | Gen
Классы общего назначения.

Классы

class | DataString


Pipe Line Filters: Работа с файлами.

  • Примеры

Работа с файлами.
[Общего назначения (файлы, время, память, система).]

Граф связей класса Работа с файлами.:

Классы

class | YFile
Обеспечивает простой доступ до файлов на бинарное чтение/запись. Наиболее ходовые и понятные опции открытия файла. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы. Подробнее...
class | YFileRead
Обеспечивает простой доступ до файлов на бинарное чтение. Файл открывается с наиболее ходовые и правильными опциями. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы. Подробнее...
class | YFileWrite
Обеспечивает простой доступ до файлов на бинарное чтение. Файл открывается с наиболее ходовые и правильными опциями. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы. Подробнее...
class | DebugBase
class | DebugToFile


Pipe Line Filters: Работа с файловой системой (имена и аттрибуты файлов, директорий, пути, итд).

  • Примеры

Работа с файловой системой (имена и аттрибуты файлов, директорий, пути, итд).
[Общего назначения (файлы, время, память, система).]

Граф связей класса Работа с файловой системой (имена и аттрибуты файлов, директорий, пути, итд).:

Функции

int | YFileSys::StrCmpI (const std::string &s1, const std::string &s2)
std::string | YFileSys::getEnv (const char *var_name)
std::string | YFileSys::getEnv (std::string var_name)
bool | YFileSys::isFullName (std::string path)
bool | YFileSys::isExists (std::string path)
bool | YFileSys::isFileExist (std::string path)
bool | YFileSys::isDirExist (std::string path)
bool | YFileSys::isPathExist (std::string path)
size_t | YFileSys::getFileSize (std::string path)
YDataTime | YFileSys::getTime (std::string path)
bool | YFileSys::rm (std::string path)
bool | YFileSys::CreateDir (std::string path)
std::string | YFileSys::remExt (std::string path)
std::string | YFileSys::getExt (std::string path)
std::string | YFileSys::getDir (std::string path)
std::string | YFileSys::getName (std::string path)
std::string | YFileSys::getNameWithoutExt (std::string path)
std::string | YFileSys::changeExt (std::string path, std::string ext)
std::string | YFileSys::changeExtIf (std::string path, std::string extToChange, std::string ext)
std::string | YFileSys::cwd ()
void | YFileSys::cwd (std::string path)

Функции

std::string YFileSys::changeExt | ( | std::string | path,
 |  | std::string | ext
 | ) |  |

Без проверки, удаляет в path расширение, если оно найдено функцией getExt() и добавляет ext в качестве расширения, если надо добавляет перед ext точку. ext может содержать все что угодно - это на контроле пользователя

std::string YFileSys::changeExtIf | ( | std::string | path,
 |  | std::string | extToChange,
 |  | std::string | ext
 | ) |  |

Заменяет в path расширение на указанное аналогично функции changeExt, но со следующем анализом: Расширение extToChange может быть составным, например L1a.pds . Функция действует следующим образом: Находит в extToChange простое расширение (.pds) и расширение в path, если они совпадают, то удаляет его из path, находит в extToChange следующее простое расширение и.т.д .Если очередное расширение path не совпало с очередным простым расширением из extToChange , остатку path добавляется ext и результат возвращается

bool YFileSys::CreateDir ( std::string path )

void YFileSys::cwd ( std::string path )

std::string YFileSys::cwd ( )

std::string YFileSys::getDir ( std::string path )

std::string YFileSys::getEnv ( std::string var_name ) [inline]

std::string YFileSys::getEnv ( const char * var_name )

std::string YFileSys::getExt ( std::string path )

size_t YFileSys::getFileSize ( std::string path )

std::string YFileSys::getName ( std::string path )

std::string YFileSys::getNameWithoutExt ( std::string path ) [inline]

YDataTime YFileSys::getTime ( std::string path )

bool YFileSys::isDirExist ( std::string path )

bool YFileSys::isExists ( std::string path )

bool YFileSys::isFileExist ( std::string path )

Примеры:
test_yxml_learn.cpp.

bool YFileSys::isFullName ( std::string path )

bool YFileSys::isPathExist ( std::string path )

std::string YFileSys::remExt ( std::string path )

bool YFileSys::rm ( std::string path )

int YFileSys::StrCmpI | ( | const std::string & | s1,
 |  | const std::string & | s2
 | ) |  |


Pipe Line Filters: Работа с памятью.

  • Примеры

Работа с памятью.
[Общего назначения (файлы, время, память, система).]

Граф связей класса Работа с памятью.:

Классы

class | PtrDelete< T >
class | PtrArrayDel< T >
class | YSmallAllocLtd
class | YTArray< T >
class | YTDynArray< T >
class | YTHistListTag< T >
class | YTHistList< T >

Функции

void | YTHistList::Add (const T &val)

Функции

template<class T>
void YTHistList< T >::Add ( const T & val ) [inherited]


Pipe Line Filters: Работа со временем.

  • Примеры

Работа со временем.
[Общего назначения (файлы, время, память, система).]

Граф связей класса Работа со временем.:

Классы

class | YDtTm
class | YTimeInterval
class | YDataTime
class | YDataTimeZone


Pipe Line Filters: Pipe Line Filters.

  • Примеры

Pipe Line Filters.

Граф связей класса Pipe Line Filters.:

Пространства имен

namespace | Vtl::Plf::Impl
Детали реализации. Пользователям библиотеки не следует использовать отсюда ничего. Никаких гарантий поддержки совместимости с предыдущими версиями не дается. Все может измениться внезапно и полностью.

Группы

Convolution kernels.
Ядра для сверток, кросскорреляции и оконых функций и необходимый инструментарий для вычисления сверток/кроскорреляции/домножения на функцию окна.
Elementary filters
Элементарные фильтры из которых строятся сложные фильтры в системе потоковой фильтрации (Pipe Line Filtering).
Complex filters
Сложные (составные) фильтры построенные в системе потоковой фильтрации (Pipe Line Filtering) из элементарных и составных фильтров.
Source and target filters
Фильтры источники и приемники данных (изображений) для системы потоковой фильтрации (Pipe Line Filtering).
Iterators and Utilities for Elementary Filters
Итераторы и утилиты для написания элементарных фильтров в системе потоковой фильтрации (Pipe Line Filtering).
Ports and buffers
Классы, обеспечивающие работу с буфферами и портами, на которых основана система потоковой фильтрации. Основная идея: не строить промежуточные изображения целиком, а на основе некоторой порции (полосы шириной с изорбражение и минимально требуемой высоты) сразу вычислять следующее изображение. Таким образом можно сказать, что промежуточные изображения виртуальные.

Классы

class | Vtl::Plf::FilterBase
Базовый класс. Подробнее...
class | Vtl::Plf::FilterComplex
Базовый класс для написания сложных (составных) фильтров, представляющих собой комбинацию элементарных и/или составных фильтров. Элементарные фильтры должны наследоваться из class FilterElementary. Подробнее...
class | Vtl::Plf::FilterElementary
Базовый класс для написания всех элементарных фильтров. Подробнее...
class | Vtl::Plf::FiltersSystem
"Главный класс", обеспечивает функционирование системы потоковой фильтрации Подробнее...


Pipe Line Filters: Convolution kernels.

  • Примеры

Convolution kernels.
[Pipe Line Filters.]

Граф связей класса Convolution kernels.:

Ядра для сверток, кросскорреляции и оконых функций и необходимый инструментарий для вычисления сверток/кроскорреляции/домножения на функцию окна. Подробнее...

Пространства имен

namespace Vtl::Plf::Kernel
Ядра для сверток, кросскорреляции и оконых функций и необходимый инструментарий для вычисления сверток/кроскорреляции/домножения на функцию окна.

Подробное описание

Ядра для сверток, кросскорреляции и оконых функций и необходимый инструментарий для вычисления сверток/кроскорреляции/домножения на функцию окна.


Pipe Line Filters: Elementary filters

  • Примеры

Elementary filters
[Pipe Line Filters.]

Граф связей класса Elementary filters:

Элементарные фильтры из которых строятся сложные фильтры в системе потоковой фильтрации (Pipe Line Filtering). Подробнее...

Пространства имен

namespace | Vtl::ImAlg::C
Цветовые системы координат, цветовые пространства. Функторы для конвертации из одной системы координат в другую. Функторы для классов PixByPix3to1 и PixByPix3to3 : работа с цветовыми системами координат. НЕДОДЕЛАНО! Проверено только YCbCr.
namespace | Vtl::Plf::F11
Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value).
namespace | Vtl::Plf::F21
Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2).
namespace | Vtl::Plf::F31
Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2,T1 value3).
namespace | Vtl::Plf::F51
Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2,T1 value3,T1 value4,T1 value5).
namespace | Vtl::Plf::F23
Функторы с сигнатурой template<typename T,typename Iterator> void operator()(T v1,T v2,Iterator o11,Iterator o12,Iterator o22) const;.
namespace | Vtl::Plf::F33
Функторы с сигнатурой template<typename T,typename Iterator> void operator()(T v11,T v12,T v22,Iterator out_1,Iterator out_2,Iterator out_3) const;.
namespace | Vtl::Plf::Fpie
Функторы, получающие указатель на пиксели изображения и работающие по локальной окрестности ((F)unctor receiving (P)ointer to (I)mage data and using local (E)nvironment data). Как правило только специфическое использование в рамках потоковой библиотеки обработки изображений (Plf).

Классы

class | Vtl::Plf::Levels< T, P >
Преобразование значение пикселя по формуле. Класс реализует преобразование яркости по таблице или формуле пиксел в пиксел. По возможности следует избегать применение этого класса, используя вместо него постобработку выходов фильтров с тем же функтором. Оправданное применение этого класса - это когда выход некоторого вильтра надо подать на входы нескольких разных фильтров, причем на часть из них с постобработкой, а на другие без (или с разными постобработками). Точно также бессмыслено соединение фильров Levels в цепочку - пишите сразу функтор, который делает все преобразования за один раз, если требуется скомбинировать несколько постробработок - а написать общий функтор сложно или лень есть функтор для комбинирования Vtl::Plf::F::Comb . Подробнее...
class | Vtl::Plf::PixByPix2to1< T, F, P >
Вычисление изображения из двух, значение пикселя вычисляется как некоторая функция из значений пикселей двух исходных изображений, взятых в тех же координатах (x,y). Подробнее...
class | Vtl::Plf::PixByPix3to1< T, Func, P >
Класс служит для генерации изображения по трем исходным, значение пикселя изображения определяется значением пикселей в тех же координатах на исходных изображениях. Действия определяются вторым шаблонным параметром. Типичные применения:. Подробнее...
class | Vtl::Plf::PixByPix4to1< T, Func, P >
Класс служит для генерации изображения по четырем исходным,. Подробнее...
class | Vtl::Plf::PixByPix5to1< T, Func, P >
Класс служит для генерации изображения по пяти исходным,. Подробнее...
class | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
Класс служит для генерации 3 изображений по 3 исходным, значение пикселя на выходных изображениях определяется значением пикселей в тех же координатах на исходных изображениях. Действия определяются вторым шаблонным параметром. Типичные применения переход к другой системе цветовых координат,. Подробнее...
class | Vtl::Plf::PixByPix2to3< T, P >
На базе двух изображений [image] и [image] вычисляет 3 новых по формулам:

т.е. компоненты корреляционной матрицы, которая симметричная и положительно определенная. (чтобы эта матрица стала собственно корреляционной, остается еще выполнить усреднение компонент в каком либо смысле, например по локальной окрестности. Подробнее...
class | Vtl::Plf::EnvProc1to1< T, Func, P >
Имеет 1 вход и 1 выход. Пиксель в координатах (x,y) на выходном изображении принимает значение, которое вычисляется по окрестности на входном изображении. Способ обработки задается функтором - вторым шаблонным параметром. Типичное применение - выполнение процедуры
  • "Non Maximum Supression" в детекторах уголков (Vtl::Plf::F::Harris, Vtl::Plf::F::MinEigenVal)
  • построение контурного препарата H-image и проч. несепарабельные и сложные обработки. Функтор должен соответствовать шаблону:.
Подробнее...
class | Vtl::Plf::EnvProc3to1< T, Func, P >
Имеет 3 входа и 1 выход. Пиксель в координатах (x,y) на выходном изображении принимает значение, которое вычисляется по окрестности точки (x,y) на входном изображении in_val с учетом значений в точке (x,y) на изображениях in_gx,in_gy. Способ обработки задается функтором - вторым шаблонным параметром. Типичное применение - выполнение процедуры "Non Maximum Supression" в детекторах линий (Vtl::Plf::Canny). Функтор должен соответствовать шаблону:. Подробнее...
class | Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
Имеет 1 вход и 2 выходa. Типовой примекр применения - анализ окрестности точки и выдача двумерного вектора, например какого-то аналога градиента, например H-image [HImg2003],. Подробнее...
class | Vtl::Plf::ConvolveHorz< T, P >
Класс реализует для каждой строки изображения свертку с указанным ядром. Подробнее...
class | Vtl::Plf::ConvolveVert< T, P >
Класс реализует для каждой строки изображения свертку по столбцам с указанным ядром (по количеству строк соотв. размеру ядра. Подробнее...
class | Vtl::Plf::FilterResampleHorz< T, P >
Класс реализует ресамплинг (растяжение/сжатие) каждой строки изображения. Подробнее...
class | Vtl::Plf::FilterResampleVert< T, P >
Класс реализует ресамплинг (растяжение/сжатие) каждого столбца изображения. Подробнее...

Подробное описание

Элементарные фильтры из которых строятся сложные фильтры в системе потоковой фильтрации (Pipe Line Filtering).


Pipe Line Filters: Complex filters

  • Примеры

Complex filters
[Pipe Line Filters.]

Граф связей класса Complex filters:

Сложные (составные) фильтры построенные в системе потоковой фильтрации (Pipe Line Filtering) из элементарных и составных фильтров. Подробнее...

Классы

class | Vtl::Plf::SeparableConv2D< T, P >
Вычисляет сепарабельную двумерную свертку. По соображениям эффективности системы PLF сначала по вертикали, затем по горизонтали:. Подробнее...
class | Vtl::Plf::Average< T, P >
Вычисляет сепарабельную двумерную свертку c одинаковыми ядрами по X и по Y. Обычно используется для сглаживания (Mean, Average) изображения, в частности Гауссова сглаживания (. Подробнее...
class | Vtl::Plf::Sharpen< T, P >
Вычисляет <I(x,y)>+amp*(I(x,y-<I(x,y)>). Среднее вычисляется двуерной сверткой с сепарабельным ядром, обычно используется Гауссово ядро. Поднимает на изображении границы и мелкие детали (в т.ч. шумы). Алгоритм Sharpen, описывается классическим выражением [Pratt82] [image] , где $ k $ - коэффициент усиления. При $ k=1 $ результатом является исходное изображение, при $ k=0 $ -сглаженное, при $ 0 < k < 1$ - изображение с ослабленными деталями, при $ 1 < k $ - изображение с усиленными деталями. Подробнее...
class | Vtl::Plf::AverageGauss< T, P >
Выполняет сглаживание (Mean, Average) изображения по гауссовой окрестности (. Подробнее...
class | Vtl::Plf::HImage< T, P >
Контурный препарат H-image [HImg2003],. Подробнее...
class | Vtl::Plf::BiLateral< T, P >
BiLateral фильтрация изображения [Tomasi98bilateral],. Подробнее...
class | Vtl::Plf::GradientModul< T, P >
Вычисляет модуль градиента для каждой точки изображения по локальной окрестности. Контурный препарат Канни. Подробнее...
class | Vtl::Plf::MeanAndDisp< T, P >
Вычисляет среднее и дисперсию по окрестности (путем свертки с гауссом). Подробнее...
class | Vtl::Plf::StatDiff< T, P >
Выполняет статистическое дифференцирование изображения. Среднее и дисперсия вычисляются с помощью свертки с Гауссом. Подробнее...
class | Vtl::Plf::DeNoise< T, P >
Выполняет подавление импульсного шума. Среднее и дисперсия вычисляются с помощью свертки с Гауссом. Подробнее...
class | Vtl::Plf::Canny< T, P >
Детектор краев Канни. Подробнее...
class | Vtl::Plf::DiZenzo< T, P >
Детектор краев DiZenzo. Аналог детектора Канни, но работает с цветными изображениями, находит и те края, которые исчезают при преобразовании изображения в градации серого. [DiZenzo86]. Подробнее...
class | Vtl::Plf::HImageEdge< T, P >
Детектор краев на основе контурного препарата H-image [HImg2003], \see Vtl::Plf::F::Himg, Vtl::Plf::HImage. Подробнее...
class | Vtl::Plf::GradientCorr< T, P >
Вычисляет произведения компонент вектора градиента: . Подробнее...
class | Vtl::Plf::Detect< T, Func, P >
Обнаруживает уголки, линии и т.п. в зависимости от второго шаблонного аргумента в качестве которого могут использоваться:. Подробнее...
class | Vtl::Plf::HarrisLaplace< T, Func, P >
Обнаруживает. Подробнее...
class | Vtl::Plf::Resample< T, P >
Выполняет масштабирование (resampling) изображения (билинейная интерполяция). Подробнее...

Подробное описание

Сложные (составные) фильтры построенные в системе потоковой фильтрации (Pipe Line Filtering) из элементарных и составных фильтров.


Pipe Line Filters: Source and target filters

  • Примеры

Source and target filters
[Pipe Line Filters.]

Граф связей класса Source and target filters:

Фильтры источники и приемники данных (изображений) для системы потоковой фильтрации (Pipe Line Filtering). Подробнее...

Классы

class | Vtl::Plf::SrcArray< T, I, P >
class | Vtl::Plf::SrcAImage< T, I, P >
Источник изображений для системы потоковой фильтрации на базе изображений, размещенных в памяти в контейнере типа AImageMem8, AImageMem16, AImageMemFloat. Подробнее...
class | Vtl::Plf::SrcAImageRgb< T, I, P >
class | Vtl::Plf::DstArray< T, Pixel >
Фильтр - приемник серого изображения. Изображение представляется как одномерный массив в котором пиксели лежат слева направо, срока за строкой. Подробнее...
class | Vtl::Plf::DstAImage< T, I >
Фильтр - приемник серого изображения. Допустимые типы изображения - серые изображения, определенные в aimage.h а именно: AImageMem8, AImageMem16, AImageMemFloat. Подробнее...
class | Vtl::Plf::DstContainer< T, C, P >
Фильтр - приемник серого изображения. Помещает в контейнер только отдельные точки, в которых значение изображения больше threshold. Контейнер сам может решать что с таким точками делать - сохранять все или только нгекоторые. Типичное применение - например детектор Харриса. Подробнее...

Подробное описание

Фильтры источники и приемники данных (изображений) для системы потоковой фильтрации (Pipe Line Filtering).


Pipe Line Filters: Iterators and Utilities for Elementary Filters

  • Примеры

Iterators and Utilities for Elementary Filters
[Pipe Line Filters.]

Граф связей класса Iterators and Utilities for Elementary Filters:

Итераторы и утилиты для написания элементарных фильтров в системе потоковой фильтрации (Pipe Line Filtering). Подробнее...

Классы

class | Vtl::Plf::ColumnIteratorFast< T >
Итератор для получения информации из ImageRef. Подробнее...
class | Vtl::Plf::LineIterator< T >
Итератор для получения информации из ImageRef. Подробнее...

Подробное описание

Итераторы и утилиты для написания элементарных фильтров в системе потоковой фильтрации (Pipe Line Filtering).


Pipe Line Filters: Ports and buffers

  • Примеры

Ports and buffers
[Pipe Line Filters.]

Граф связей класса Ports and buffers:

Классы, обеспечивающие работу с буфферами и портами, на которых основана система потоковой фильтрации. Основная идея: не строить промежуточные изображения целиком, а на основе некоторой порции (полосы шириной с изорбражение и минимально требуемой высоты) сразу вычислять следующее изображение. Таким образом можно сказать, что промежуточные изображения виртуальные. Подробнее...

Группы

StripBuffer Initialization functions
Функции инициализации полосового буфера.
StripBuffer current position / info
Информация о текущей позиции буфера. Информация о размере виртуального изображения, его полосе, представляемой буфером и положении этой полосы; задержка создаваемая буфером.
Image data reading from StripBuffer
Инструментарий для доступа (чтения) данных полосы изображения из буфера.
Writing into StripBuffer
Инструментарий для вставки новой строки в буффер.

Классы

class | Vtl::Plf::Port
Базовый класс для понятия "\b порт". Определяет функциональность, необходимую для работы системы фильтров. Подробнее...
class | Vtl::Plf::InPortBase
Базовый класс для понятия "\b входной порт". Определяет функциональность, необходимую для работы системы фильтров. Подробнее...
class | Vtl::Plf::OutPortBase
Базовый класс для понятия "\b выходной порт". Определяет функциональность, необходимую для работы системы фильтров. Подробнее...
class | Vtl::Plf::InPort< T >
Класс реализует функциональность понятия "\с входной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering. Подробнее...
class | Vtl::Plf::InPortComb< T >
class | Vtl::Plf::OutPortNoPostProc< T >
Класс реализует базовую функциональность понятия \с "выходной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering. Подробнее...
class | Vtl::Plf::OutPort< T, P >
Класс реализует функциональность понятия \с "выходной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering. Добавляет функциональность постобработки к классу OutPortNoPostProc. Подробнее...
class | Vtl::Plf::StripBuffer< T >
Класс полосового буффера. Собственнно хранит полосу виртуального изображения, которое получилось в результате рабюоты фильтра, и которое обрабатывает последующий фильтр. Подробнее...
struct | Vtl::Plf::ImgSize
Структура служит для хранения размеров изображения - ширина и высота. Подробнее...
struct | Vtl::Plf::Extent
Служит для хранения информации о размере дополнения изображения за края (путем зеркального отражения). Подробнее...
class | Vtl::Plf::ImageRef< T >
Класс служит интерфейсом 'только для чтения' к полосе изображения, хранящейся в данный момент в StripBuffer, который в свою очередь находится в OutPortNoPostProc. Подробнее...
class | Vtl::Plf::Strip
Служит для описания полосы изображения, находящейся в class StripBuffer и полосы, которая нужна для обработки class InPort. Подробнее...
class | Vtl::Plf::Fifo< T >
Реализует очередь. Подробнее...

Подробное описание

Классы, обеспечивающие работу с буфферами и портами, на которых основана система потоковой фильтрации. Основная идея: не строить промежуточные изображения целиком, а на основе некоторой порции (полосы шириной с изорбражение и минимально требуемой высоты) сразу вычислять следующее изображение. Таким образом можно сказать, что промежуточные изображения виртуальные.

Существует два типа портов:

1) Входной (InPort)

2) Выходной (OutPortNoPostProc)

OutPortNoPostProc - владелец данных (StripBuffer). StripBuffer - представляет виртуальное изображение (в том смысле, что всего изображения обычно в памяти не существует, существует только необходимый для обработки фрагмент - полоса из нескольких строк, необходимых для обработки фильтром). Фильтр результаты обработки пишет в OutPortNoPostProc, когда он готов к приему данных, т.е. наиболее старая строка уже обработана и ее можно забыть и соответственно появилось место куда класть новую строку. InPort - ни чем не владеет, он подключается к OutPortNoPostProc и является одним из входов фильтра.

Общая часть портов:

  • знают к какому фильтру принадлежат;
  • имеют свой номер уникальный в фильтре и раздельную нумерацию по входам и по выходам;
  • знают размер изображения, причем:
    • OutPortNoPostProc его непосредственно хранит в StripBuffer (это виртуальнгое изображение)
    • InPort - спрашивает его у того OutPortNoPostProc, к которому подключен.

Раздельная часть:

OutPortNoPostProc:

  • знает кто к нему подключен (хранит список подключенных к нему InPort);
  • знает где находится (какие строки в данный момент хранятся в StripBuffer, базовую строку Y);
  • имеет функцию для установления соединения с InPort (вызывается пользователем библиотеки при
    построении маршрута обработки - соединении фильтров между собой);
  • имеет инструментарий (итераторы, функции начала и конца) для закладки в буфер очередной новой строки;
  • имеет необходимые функции инициализации (вызываются библиотекой).

InPort:

  • знает к кому подключен (хранит указатель на OutPortNoPostProc);
  • знает какая полоса ему нужна,т.е. при обработки строки Y нужна полоса вокруг нее
    от Y-Extent.before до Y+Extent.forward включительно (оба конца);
  • знает до какой строки Y данный уже обработаны и больше не понадобятся;
  • имеет инструментарий (дает класс, ссылающийся на фрагмент буфера OutPortNoPostProc
    как на изображение) для предоставления доступа к полосе виртуального изображения;
  • имеет необходимые функции инициализации (вызываются библиотекой).


Pipe Line Filters: StripBuffer Initialization functions

  • Примеры

StripBuffer Initialization functions
[Ports and buffers]

Граф связей класса StripBuffer Initialization functions:

Функции инициализации полосового буфера. Подробнее...

Функции

void | Vtl::Plf::StripBuffer::init_1 (const ImgSize &sz)
void | Vtl::Plf::StripBuffer::init_2 (const Extent &ext)
void | Vtl::Plf::StripBuffer::init_3 (int increase_delay_by)
void | Vtl::Plf::StripBuffer::init_4 ()
void | Vtl::Plf::StripBuffer::Rewind ()

Подробное описание

Функции инициализации полосового буфера.

Инициализация многоступенчатая:

  • 1) Установить размер изображения - функция void init_1(const ImgSize& sz). После того как установлен размер изображения буфера, т.е. выходного порта (OutPortNoPostProc), подключенные к нему входные порты (InPort) следующего фильтра узнают размер изображения. Когда фильтр знает размеры всех входных изображений, он может вычислить размеры своих выходных изображений, например решить, что выходное изображение имеет те же размеры, или в 1.7 раза больше, или независимо от всего имеет размер 640х480 и т.д. Эта цифра устанавливается для соответствующего выходного порта фильтра, т.е. фактически для буфера, содержащегося в этом OutPortNoPostProc в виде члена данных.
  • 2) Функция void init_2(const Extent& ext): Установить размеры требуемой полосы -Extent - (эквивалентно величине дополнения изображения за края). После того, как определились размеры всех входных изображений фильтра, фильтр может расчитать требуемую величину Extent по каждому входу и сообщить ее InPort, который сообщит ее тому OutPortNoPostProc, к которому подключен. OutPortNoPostProc, приняв запросы от всех подключенных к нему InPort, установить свой буфер в максимальные значения Extent из всех затребованных, таким образом буфер будет способен снабжать информацией сразу все подключенные входные порты, удовлетворяя запросам каждого.
  • 3) Функция void init_3(int increase_delay_by): Увеличить задержку, вызываемую буфером. Каждый буфер вызывает задержку между поступлением туда строки с номером Y и готовностью строки Y с полосой Extent вокруг нее к чтению (обработке следующим фильтром), как подробнее объясняется в разделе StripBuffer current position / info. Таким образом подготовка к работе системы фильтрации выглядт следующим образом: программист создает экземпляры необходимых объектов - элементарных фильтров, увязывает между собой их выходы и входы и отдает системе фильтрации. Теперь система начинает процесс инициализации: поиском в ширину от источников данных движется к последующим фильтрам в порядке, определяемой топологической сортировкой направленного графа. Как только очередной фильтр достигнут по всем возможным путям, он запрашивает размер изображений на своих входах, вычисляет требуемые Extents и сообщает своим входам что требуется, вычисляет размер изображений результатов и сообщает размер своим выходам. Однако, если фильтр имеет несколько входов, то может так случиться, что на эти входы поступают изображения, полученные из одного источника путем РАЗНЫХ фильтраций, и суммарная задержка вычисленная по этим цепочкам будет различна. Это приведет к блокировке работы системы, так как по одному входу данные уже готовы и их следует обработать, иначе предыдущая цепочка вынуждена ждать, чтобы не "забыть" те данные, которые фильтр пока не обработал. По другому же входу данные еще только ожидаются и поэтому фильтр не может начать обработку всех своих входов. Однако, увеличив размер Extent.forward в буфере, можно увеличить задержку, им вызываемую. Таким образом, выброав входящую ветвь фильтра, по которой суммарная задаржка минимальна, можно где то в ней увеличито указанный параметр так, чтобы задержка сравнялась с суммарной задержкой по ветви с наибюольшей задержкой. На этой идее основана автоматическая настройка системы фильтрации. При повторных просмотрах графа фильтра с уже заданными размерами изображений и Extent система с помощью этой фунгкции корректирует Extent буферов, чтобы уравновесить ветви фильтров.
  • 4) Функция void init_4(): собственно инициализация внутренних параметров и выделение памяти под буфер. Вызывается системой, когда уже все параметры буферов определились.

Функции

template<typename T>
void Vtl::Plf::StripBuffer< T >::init_1 ( const ImgSize & sz ) [inline, inherited]

template<typename T>
void Vtl::Plf::StripBuffer< T >::init_2 ( const Extent & ext ) [inline, inherited]

template<typename T>
void Vtl::Plf::StripBuffer< T >::init_3 ( int increase_delay_by ) [inline, inherited]

template<typename T>
void Vtl::Plf::StripBuffer< T >::init_4 ( ) [inline, inherited]

template<typename T>
void Vtl::Plf::StripBuffer< T >::Rewind ( ) [inline, inherited]


Pipe Line Filters: StripBuffer current position / info

  • Примеры

StripBuffer current position / info
[Ports and buffers]

Граф связей класса StripBuffer current position / info:

Информация о текущей позиции буфера. Информация о размере виртуального изображения, его полосе, представляемой буфером и положении этой полосы; задержка создаваемая буфером. Подробнее...

Функции

ImgSize | Vtl::Plf::StripBuffer::ImageSize () const
Размер виртуального изображения, которое представляет этот буфер, делая доступной для чтения полосу изображения, определяемую параметрами Extent.
Extent | Vtl::Plf::StripBuffer::ext () const
Размер буфера. Параметры Extent буфера - буфер для каждой текущей строки Y() изображения размером ImageSize(), готовой к обработке хранит тавкже строки от Y()-ext().before до Y()+ext().forward включительно. Влево и вправо изображение дополняется на ext().left и ext().right пикселей путем отраженияотносительно границ, дополнение изображения по вертикали также осуществляется путем отражения на ext().before вверх и ext().forward строк вниз.
int | Vtl::Plf::StripBuffer::delay () const
Задержка в строках между поступлением 'y' строки в буфер и готовностью к обработке строки 'y' вместе с полосой ext().
Strip | Vtl::Plf::StripBuffer::delay (Extent extent) const
Задержка в строках между поступлением 'y' строки в буфер и готовностью к обработке строки 'y' вместе с полосой 'extent'. Возвращает интервал задаржек, строка доступна для чтения при либой задержке из этого интервала.
int | Vtl::Plf::StripBuffer::Y () const
Текущая строка изображения, доступная для чтения (вместе со всей полосой Extent).
int | Vtl::Plf::StripBuffer::Y_wait () const
Строка изображения, которую надо будет поместить в буфер при его очередном обновлении. До обновления в буфере находятся строки от Y_last() до Y_wait()-1 включительно.
int | Vtl::Plf::StripBuffer::Y_last () const
Самая старая строка изображения которая одержится в буфере, при очередном обновлении буфера (подвижке вниз по изображению на одну строку), эта строка уйдет из буфера, будет безвозвратно забыта.
Strip | Vtl::Plf::StripBuffer::getCurStrip () const
Задержка в строках между поступлением 'y' строки в буфер и готовностью к обработке строки 'y' вместе с полосой 'extent'. Возвращает интервал задаржек, строка доступна для чтения при либой задержке из этого интервала.

Подробное описание

Информация о текущей позиции буфера. Информация о размере виртуального изображения, его полосе, представляемой буфером и положении этой полосы; задержка создаваемая буфером.

Если из буфера требуется читать все его содержимое, определяемое структурой Extent, то в тот момент, когда на очереди закладка туда строки Y_wait(), готова для чтения строка Y() == Y_wait()-delay(). Поэтому можно говорить о том, что буфер создает ЗАДЕРЖКУ delay(). В этот момент в буфере находятся строки изображения включительно начиная с Y_last() по Y_wait()-1

Функции

template<typename T>
Strip Vtl::Plf::StripBuffer< T >::delay ( Extent extent ) const [inline, inherited]

Задержка в строках между поступлением 'y' строки в буфер и готовностью к обработке строки 'y' вместе с полосой 'extent'. Возвращает интервал задаржек, строка доступна для чтения при либой задержке из этого интервала.

template<typename T>
int Vtl::Plf::StripBuffer< T >::delay ( ) const [inline, inherited]

Задержка в строках между поступлением 'y' строки в буфер и готовностью к обработке строки 'y' вместе с полосой ext().

template<typename T>
Extent Vtl::Plf::StripBuffer< T >::ext ( ) const [inline, inherited]

Размер буфера. Параметры Extent буфера - буфер для каждой текущей строки Y() изображения размером ImageSize(), готовой к обработке хранит тавкже строки от Y()-ext().before до Y()+ext().forward включительно. Влево и вправо изображение дополняется на ext().left и ext().right пикселей путем отраженияотносительно границ, дополнение изображения по вертикали также осуществляется путем отражения на ext().before вверх и ext().forward строк вниз.

template<typename T>
Strip Vtl::Plf::StripBuffer< T >::getCurStrip ( ) const [inline, inherited]

Задержка в строках между поступлением 'y' строки в буфер и готовностью к обработке строки 'y' вместе с полосой 'extent'. Возвращает интервал задаржек, строка доступна для чтения при либой задержке из этого интервала.

template<typename T>
ImgSize Vtl::Plf::StripBuffer< T >::ImageSize ( ) const [inline, inherited]

Размер виртуального изображения, которое представляет этот буфер, делая доступной для чтения полосу изображения, определяемую параметрами Extent.

template<typename T>
int Vtl::Plf::StripBuffer< T >::Y ( ) const [inline, inherited]

Текущая строка изображения, доступная для чтения (вместе со всей полосой Extent).

template<typename T>
int Vtl::Plf::StripBuffer< T >::Y_last ( ) const [inline, inherited]

Самая старая строка изображения которая одержится в буфере, при очередном обновлении буфера (подвижке вниз по изображению на одну строку), эта строка уйдет из буфера, будет безвозвратно забыта.

template<typename T>
int Vtl::Plf::StripBuffer< T >::Y_wait ( ) const [inline, inherited]

Строка изображения, которую надо будет поместить в буфер при его очередном обновлении. До обновления в буфере находятся строки от Y_last() до Y_wait()-1 включительно.


Pipe Line Filters: Image data reading from StripBuffer

  • Примеры

Image data reading from StripBuffer
[Ports and buffers]

Граф связей класса Image data reading from StripBuffer:

Инструментарий для доступа (чтения) данных полосы изображения из буфера. Подробнее...

Функции

const ImageRef< T > & | Vtl::Plf::StripBuffer::getImg () const
ImageRef< T > | Vtl::Plf::StripBuffer::getImg (const Extent &ex1, const Strip &strip) const

Подробное описание

Инструментарий для доступа (чтения) данных полосы изображения из буфера.

Возвращают объект template<typename T> class ImageRef, который обеспечивает интерфейс к данным внутри буфера,данные не копируются. Полоса изображения представляется как отдельное изображение, строка с номером y=0 соответствует текущей обрабатываемомй строке. В изображение входят строки с номерами от -ext().before до +ext().forward. х=0 соответствует левому краю изображения не считая отражений, ширина без учета отражений задается параметром w().

Внимание:
Не рекомендуется при написании элементарных фильтров использовать на прямую доступ к пикселям через этот объект. Вместо этого рекомендуется создавать промежуточный объект итератор, который инициализуется от этого объекта (принимая его как параметр конструктора). Такой подход позволяет писать алгоритмы в обобщенном виде и повышает читабельность и переносимость кода а также более устойчив к возможным модификациям библиотеки.
В качестве примера таких итераторов см.
  • template<typename T> class ColumnIteratorFast;
  • template<typename T> class LineIterator;
    А в качестве примера их использования классы
  • template<typename T> class ConvolveHorz;
  • template<typename T> class ConvolveVert;

Функции

template<typename T>
ImageRef<T> Vtl::Plf::StripBuffer< T >::getImg | ( | const Extent & | ex1,
 |  | const Strip & | strip |
 | ) |  |  | const [inline, inherited]

template<typename T>
const ImageRef<T>& Vtl::Plf::StripBuffer< T >::getImg ( ) const [inline, inherited]


Pipe Line Filters: Writing into StripBuffer

  • Примеры

Writing into StripBuffer
[Ports and buffers]

Граф связей класса Writing into StripBuffer:

Инструментарий для вставки новой строки в буффер. Подробнее...

Определения типов

typedef T * | Vtl::Plf::StripBuffer::Iter_Line

Функции

void | Vtl::Plf::StripBuffer::InsertNextLineStart ()
void | Vtl::Plf::StripBuffer::InsertNextLineFinished ()
void | Vtl::Plf::StripBuffer::PopTail ()
Iter_Line | Vtl::Plf::StripBuffer::begin_line_insert ()
Iter_Line | Vtl::Plf::StripBuffer::end_line_insert ()
void | Vtl::Plf::StripBuffer::_hFlipLeft (Iter_Line it, int len)
void | Vtl::Plf::StripBuffer::_hFlipRight (Iter_Line it, int len)
void | Vtl::Plf::StripBuffer::_mirrorLineRelCenter (int src_y, int dst_y)

Переменные

T * | Vtl::Plf::StripBuffer::ptr_beg_ins

Подробное описание

Инструментарий для вставки новой строки в буффер.

Типы

template<typename T>
typedef T* Vtl::Plf::StripBuffer< T >::Iter_Line [inherited]

Функции

template<typename T>
void Vtl::Plf::StripBuffer< T >::_hFlipLeft | ( | Iter_Line | it,
 |  | int | len |
 | ) |  |  | [inline, private, inherited]

template<typename T>
void Vtl::Plf::StripBuffer< T >::_hFlipRight | ( | Iter_Line | it,
 |  | int | len |
 | ) |  |  | [inline, private, inherited]

template<typename T>
void Vtl::Plf::StripBuffer< T >::_mirrorLineRelCenter | ( | int | src_y,
 |  | int | dst_y |
 | ) |  |  | [inline, private, inherited]

template<typename T>
Iter_Line Vtl::Plf::StripBuffer< T >::begin_line_insert ( ) [inline, inherited]

template<typename T>
Iter_Line Vtl::Plf::StripBuffer< T >::end_line_insert ( ) [inline, inherited]

template<typename T>
void Vtl::Plf::StripBuffer< T >::InsertNextLineFinished ( ) [inline, inherited]

template<typename T>
void Vtl::Plf::StripBuffer< T >::InsertNextLineStart ( ) [inline, inherited]

template<typename T>
void Vtl::Plf::StripBuffer< T >::PopTail ( ) [inline, inherited]

Переменные

template<typename T>
T* Vtl::Plf::StripBuffer< T >::ptr_beg_ins [private, inherited]

Инициализируется при вызове InsertNextLineStart(), ис пользуется для возврата begin_line_insert() и end_line_insert() , функция InsertNextLineFinished() проверяет на нуль и зануляет - исключительно для удобства отладки.


Pipe Line Filters: Классы

  • Примеры
  • Иерархия классов
  • Члены классов

Pipe Line Filters Классы

Классы с их кратким описанием.
Vtl::Plf::F11::Abs< T > | Functor Abs - вычисляет абсолютную величину (модуль) вещественного числа
Vtl::Plf::F21::AbsDif< T >
Basics3D::AbsoluteDualQuadric
AErrorStatusBase
Vtl::ImAlg::Transf::Affine< T >
Vtl::ImAlg::Model::Affine< T > | Класс - модель преобразования, соответствует поиску полного афинного преобразования (Shi-Tomasi [KLT_ST] )
AImage | Base class for all images
AImage::Bgr
AImage::Error
AImage::Info | Иногда удобно вернуть из функции сразу все основные параметры изображения, например функция определяет какое изображение надо создать чтобы принять результат фильтрации неким фильтром. Удобно вернуть такую структуру и на ее основе создать изображение или проверить можно ли положить результат в уже имеющееся изображение
AImage::Rgb
AImageMem16 | Interface for 16 bit per pixel container
AImageMem8 | Interface for 8 bit per pixel container
AImageMemFloat | Interface for float per pixel container //////
AImageMemRgb16 | Interface for TrueColor 16 bit per each pixel sample container
AImageMemRgb8 | Interface for TrueColor 8 bit per each pixel sample container
AImageProxy
Vtl::Meta::Align< T, sz, align_to >
Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >
Vtl::Meta::Align< T, sz, align_to >::Align_< 0, size >
Vtl::Types::TL::Append | Добавление элемента или списка типов
Vtl::Types::TL::AppendIf< TList, U, append > | Добавлять к списку типов, если последний шаблонный аргумент - TRUE
Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, ndim >
Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, 0 >
ATransformFunction
Vtl::Plf::Average< T, P > | Вычисляет сепарабельную двумерную свертку c одинаковыми ядрами по X и по Y. Обычно используется для сглаживания (Mean, Average) изображения, в частности Гауссова сглаживания (
Vtl::Plf::AverageGauss< T, P > | Выполняет сглаживание (Mean, Average) изображения по гауссовой окрестности (
Vtl::ImAlg::WndFun::Bartlett< T, D > | Окно Бартлета (Bartlett - треугольное). Определяется формулой
Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | Базовый класс для написания ядер свертки/кросскорреляции/оконых функций. Тип определяется вторым шаблонным параметром. ВНИМАНИЕ! Ядро для свертки отличается от других ядер тем, что оно хранится в обратном порядке, так, что свертка вычисляется как кросскорреляция. В этой связи когда через функцию void _Init(int left,int right) задается носитель ядра, то в случае, если это ядро свертки - то в этой функции задается именно область, где функция, с которой будет осуществляться свертка отлична от нуля. Класс же Base возвращает в качестве left() b right() левую и правую "полуширину" функции, с которой будет вычисляться кросскорреляция, т.е. для ядра кросскорреляции и окна - те же left и right, а для ядра свертки right и left
Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >
Vtl::ImAlg::Model::Base< T > | Класс - используется только в качестве базового класса для моделей. Закрыт для прямого использования. Нужен только для определения и реализации общих для этих классов действий в одном месте (для избежания copy-pase)
Vtl::ImAlg::Model::BaseAffine< T > | Класс - используется только в качестве базового класса для моделей укладывающихся в рамки афинной. Закрыт для прямого использования. Нужен только для определения и реализации общих для этих классов действий в одном месте (для избежания copy-pase)
Vtl::NumAlg::Spf::bess | Returns the Bessel functions for any real x
Vtl::Plf::F11::Bias< T > | Functor Bias - добавляет к значению каждого пикселя константу
Vtl::Plf::BiLateral< T, P > | BiLateral фильтрация изображения [Tomasi98bilateral],
Vtl::Plf::Fpie::BiLateralSmooth< T > | Функтор BiLateralSmooth для EnvProc1to1. BiLateral - фильтрация. НЕ СДЕЛАНО!
Vtl::Meta::BitsIn< n > | Подсчет числа единичных битов в n . Алгоритм из [Henry S. Warren, Jr. 2002], стр. 76
Vtl::Meta::BitsIn< 0 >
Vtl::ImAlg::WndFun::Blackman< T, D > | Окно Блэкмана (Blackman)
Vtl::ImAlg::WndFun::BlackmanHarris< T, D > | Окно Блэкмана-Харриса (Blackman-Harris)
Vtl::ImAlg::WndFun::BlackmanNuttall< T, D > | Окно Блэкмана-Нуттол (Blackman-Nuttall)
IFF::BMP_BitMapFileHeader
IFF::BMP_BitMapInfoHeader
IFF::BmpRead
IFF::BmpWrite
Loki::Bool2Type< v > | Analogous to Loki::Int2Type but for boolean type. Used to simplify code: instead using Loki::Int2Type<((a>b)?1:0)>() now use Loki::Bool2Type<(a>b)>()
Vtl::ImAlg::Conv::Impl::Buffer< T, K > | Буфер для сверток
Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >
Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >
Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >
Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 >
Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I >
Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >
Vtl::ImAlg::Registration::Impl::OFlow::BuildG< n >
Vtl::ImAlg::Registration::Impl::OFlow::BuildG< 0 >
Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >
Vtl::Img::BuildIter1DList< T_Layout >
Vtl::Img::BuildIter1DList< T_Layout >::build< i >
Vtl::Img::BuildIter1DList< T_Layout >::build< ND >
Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, i >
Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, 1 >
Basics3D::C_AbsDifference
Basics3D::C_AutoCalibration
Basics3D::C_Combination
Basics3D::C_DrawEpipolarLines
Basics3D::C_Epipole
Basics3D::C_FundamentalMatrix
Basics3D::C_HomographyMatrix
Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, m >
Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, n >
Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n,-1 >
Basics3D::C_Point2D
Basics3D::C_Point2DParam
Basics3D::C_Points2DParamSet
Basics3D::C_ProjectiveMatrix
Basics3D::C_StructureComputation
Basics3D::C_Transform
Basics3D::C_TransformMatrices
Basics3D::C_Triangulation
Basics3D::Structure::CameraPos< T >
Basics3D::Fm2Essential::CameraPoseFromEssential< T >
Vtl::Plf::Canny< T, P > | Детектор краев Канни
Vtl::Plf::Fpie::CannyNMS< T > | Функтор для EnvProc3to1, выполняет процедуру подавления немаксимальных точек в стиле Канни (Non Maximum Suppression)
Vtl::Plf::Fpie::CannyNMS_2< T > | Функтор для EnvProc3to1, выполняет процедуру подавления немаксимальных точек в стиле Канни (Non Maximum Suppression)
Hanina::Check_4_grad_sign_change< T >
childPipe
Vtl::NumAlg::Lin::cholesky
Vtl::ImAlg::Bres::Circle< T > | Алгоритм 'рисования' окружности
Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T > | Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Если для преобразования Фурье в качестве вещественной части было предъявлени изображение I1, а в качестве мнимой - I2 и было выполнено ПФ, то вызов proc_pos_neg_freq() с этим функтором приводит к вычислению inplace выражения F1.F2*
Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >
Cluster1D< T, DatumType >
Cluster2D< T, DatumType >
Vtl::Plf::ColumnIteratorFast< T > | Итератор для получения информации из ImageRef
Vtl::Plf::F11::Comb< T, F1, F2 > | Functor Comb - предназначен для комбинирования нескольких функторов в один
Hanina::Comb_ridge< T1, T2 >
Vtl::ImAlg::WndFun::common_Trig< T, D, K > | База для тригонометрических окон
Basics3D::Structure::Comp3D< T >
Vtl::Img::complex_type< double >
Vtl::Img::complex_type< float >
Vtl::Meta::IL::ConCat< Head, IndexList< i, Tail > >
Vtl::Meta::IL::ConCat< Head, Loki::NullType >
Vtl::ImAlg::Registration::Container< Real_t > | Контейнер для работы с системой Vtl::Plf. После обнаружения характеристических точек не рисует их на изображение, а помещает их координаты и значение в список. Сохраняет только max_size_ точек, для которых отклик фильтра был максимален. Число max_size_ не должно быть слишком большим, иначе работает не эффективно, типично max_size_ ~ 8
Vtl::ImAlg::Registration::Container< Real_t >::Point
Vtl::ImAlg::Conv::Conv< T, K > | Вычисление свертки, края массива дополняются отражением
Vtl::ImAlg::Conv::Conv2D | Выполняет свертку/кросскорреляцию циклическую или с дополнением за края методом отражения двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data,width,height, nls (Next line shift, величина, которую надо прибавить к указателю, чтобы он указывал на пиксель следующей строки строго под текущим) с двумерным сепарабельным ядром, заданным ОДНОМЕРНЫМ ядром/ядрами. K, K1, K2 - тип ядра свертки(кросскорреляции) Ядро должно быть класса Kernel::Base или производным от него, созданным с параметрами kernel_type_=KT_Conv или KT_Corr (в зввисимости от того требуется вычислить свертку или кросскорреляцию) , параметр шаблона Base double_kernel_ ДОЛЖЕН БЫТЬ true
Vtl::Types::Conversion< T, U > | Проверка, существует ли преобразование по умолчанию (cast) из типа T в тип U
Vtl::Plf::F11::Convert< T > | Functor Sqrt - Преобразует тип аргумента к типу T
Vtl::Plf::F11::Convert2ByteBounded | Functor Sqrt - Преобразует тип аргумента к типу T
Vtl::Plf::F11::ConvertMult< T > | Functor Mult - умножавет значение каждого пикселя на константу и преобразует к типу T
Vtl::ImAlg::Conv::ConvInplace< T, K > | Вычисление свертки, края массива дополняются отражением
Vtl::Plf::ConvolveHorz< T, P > | Класс реализует для каждой строки изображения свертку с указанным ядром
Vtl::Plf::ConvolveVert< T, P > | Класс реализует для каждой строки изображения свертку по столбцам с указанным ядром (по количеству строк соотв. размеру ядра
CoordArray2D
Vtl::Plf::F23::CorrMatrix< T, Iter > Функтор CorrMatrix для PixByPix2to3. Из двух величин [image] e [image] вычисляет 3 новых по формулам:
Vtl::Plf::F23::CorrMatrixAdd< T, Iter >
Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I >
Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K >
Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I >
Vtl::Meta::IL::Count< v, IndexList< i, Tail > >
Vtl::Meta::IL::Count< v, Loki::NullType >
CoverageMatrix
Vtl::ImAlg::Conv::CyclicConv< T, K > | Вычисление циклической свертки
Vtl::ImAlg::Conv::CyclicConvInplace< T, K > | Вычисление циклической свертки inplace
DataString
Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
Vtl::Img::DataType< ST_c32f >
Vtl::Img::DataType< ST_c64f >
Vtl::Img::DataType< ST_f32 >
Vtl::Img::DataType< ST_f64 >
Vtl::Img::DataType< ST_s16 >
Vtl::Img::DataType< ST_s32 >
Vtl::Img::DataType< ST_s64 >
Vtl::Img::DataType< ST_s8 >
Vtl::Img::DataType< ST_u16 >
Vtl::Img::DataType< ST_u32 >
Vtl::Img::DataType< ST_u64 >
Vtl::Img::DataType< ST_u8 >
Vtl::Img::DataTypeId< T > | По типу данных найти идентификатор данных (see SampleType)
Vtl::Img::DataTypeId< T >::Comp< T1, T2 >
Vtl::Img::DataTypeList2TypeList< T >
Vtl::Img::DataTypeList2TypeList< Types::Typelist< T1, T2 > >
DatumR< T >
DatumXY< T >
Vtl::Meta::IL::Debug< IndexList< i, Loki::NullType > >
Vtl::Meta::IL::Debug< IndexList< i, Tail > >
Vtl::Meta::IL::Debug< Loki::NullType >
DebugBase
DebugToFile
Vtl::Plf::Impl::DelayAdjuster
Vtl::Plf::DeNoise< T, P > | Выполняет подавление импульсного шума. Среднее и дисперсия вычисляются с помощью свертки с Гауссом
Vtl::Plf::F31::DeNoise< T > Функтор DeNoise для PixByPix3to1. Из трех величин [image] представляющих собой яркость в точке, среднюю яркость и корень из дисперсии, вычисленные по окрестности точки вычисляет величину:
Vtl::Meta::det< Matrix >
Vtl::Meta::det_poly_coef< Matrix, N >
Vtl::Plf::Detect< T, Func, P > | Обнаруживает уголки, линии и т.п. в зависимости от второго шаблонного аргумента в качестве которого могут использоваться:
Vtl::Meta::Impl::determinant< N, Il1, Il2, j >
Vtl::Meta::Impl::determinant< 1, Il1, Il2, 0 >
Vtl::Meta::Impl::determinant< N, Il1, Il2, N >
Vtl::Plf::F21::Dif< T >
Vtl::Plf::F31::DiffEigenVal< T > Функтор DiffEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет разность собственных значений (детектор краев исключая двумерные особенности(уголки)): ,
где [image] , т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $ , и [image] ,
Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC > | Функтор - таблица непосредственно заданных значений
Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > | Функтор - таблица непосредственно заданных значений. Значения не копируются и указатель на них должен оставаться валидным в течении всего времени жизни функтора! Целесообразно использовать в том случае, когда массив значений задается строкой констант, в противном случае следует использовать class Directю
Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
Vtl::Plf::F21::Disp< T > | Функтор sqrtOfSumSqr для фильтра PixByPix2to1. Из двух серых изображений - среднего и среднего от квадрата яркости вычисляет одно по формуле [image] , т.е. служит для вычисления величины
DistributionMatrix
Vtl::Plf::DiZenzo< T, P > | Детектор краев DiZenzo. Аналог детектора Канни, но работает с цветными изображениями, находит и те края, которые исчезают при преобразовании изображения в градации серого. [DiZenzo86]
Vtl::Plf::F33::DiZenzo< T, Iter > Функтор DiZenzo для PixByPix3to3. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет наибольшее собственное значение (детектор краев) и соответствующий собственный вектор (направлен по нормали к краю). По первому выходу выдает с.з, а по 2 и 3 - x и y компоненты нормированного с.в. соответственно
DllModule
Basics3D::Structure::Dlt< T >
DMatrixElem
YXML::DNode
YXML::DNode::AttrRef
YXML::DNode::Is
YXML::DNode::IsAND
YXML::DNode::IsCond
YXML::DNode::IsOR
Vtl::ImAlg::WndFun::DoG< T, D > | Окно в виде разности Гауссианов (обрезанных). Определяется формулой
Vtl::Plf::F11::DoNothing< T > | Functor DoNothing - заглушка
Vtl::ImAlg::Bres::Draw< Pixel >
Vtl::ImAlg::Bres::DrawDotted< Pixel >
Vtl::ImAlg::Bres::DrawGradient< Pixel >
Vtl::Plf::DstAImage< T, I > | Фильтр - приемник серого изображения. Допустимые типы изображения - серые изображения, определенные в aimage.h а именно: AImageMem8, AImageMem16, AImageMemFloat
Vtl::Plf::DstArray< T, Pixel > | Фильтр - приемник серого изображения. Изображение представляется как одномерный массив в котором пиксели лежат слева направо, срока за строкой
Vtl::Plf::DstContainer< T, C, P > | Фильтр - приемник серого изображения. Помещает в контейнер только отдельные точки, в которых значение изображения больше threshold. Контейнер сам может решать что с таким точками делать - сохранять все или только нгекоторые. Типичное применение - например детектор Харриса
Vtl::Plf::Impl::Edge | Ребро графа, используется в представлении списка смежных вершин в классе Node. Содержит идентификаторы выходного порта и фильтра от которого передается изображение (id_outp, id_of) и идентификаторы входного порта и фильтра к которому передается изображение (id_inp, id_if)
Students::Curve::EdgeDetect< T >
Vtl::ImAlg::Edt::EdtEdgeCoord
Vtl::ImAlg::C::EElEll | Цветовое пространство, введенное в работе [Geusebroek 2001 Color Invariance] . Обладает свойствами инвариантности к теням, бликам и.т.д (shading, highlighting)
Vtl::ImAlg::C::EElEll::B< T > | Функтор EElEll -> B для PixByPix3to1
Vtl::ImAlg::C::EElEll::E< T > | Функтор EElEll: RGB -> E для PixByPix3to1
Vtl::ImAlg::C::EElEll::El< T > | Функтор EElEll: RGB -> E_lambda для PixByPix3to1
Vtl::ImAlg::C::EElEll::Ell< T > | Функтор EElEll: RGB -> E_lambda_lambda для PixByPix3to1
Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter > | Функтор для PixByPix3to3
Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter > | Функтор для PixByPix3to3
Vtl::ImAlg::C::EElEll::G< T > | Функтор EElEll -> G для PixByPix3to1
Vtl::ImAlg::C::EElEll::R< T > | Функтор EElEll -> R для PixByPix3to1
Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter > | Функтор для PixByPix3to3
Vtl::NumAlg::Lin::eigen
Vtl::Meta::IL::Elem< 0, IndexList< j, T > >
Vtl::Meta::IL::Elem< i, IndexList< j, T > >
Vtl::Meta::IL::Elem< i, Loki::NullType >
Vtl::ImAlg::Bres::Ellipse< T > | Алгоритм 'рисования' эллипса с произвольно ориентированной большой осью
Vtl::ImAlg::Bres::EllipseH< F > | Алгоритм 'рисования' эллипса с полуосями в горизонтальном и вертикальном направлении. // Listing 7-2
Vtl::Types::EmptyType
Vtl::Meta::EnumTraits | Свойства типв enum {} : знаковый или беззнаковый, максимальнрое хранимое значени, минимальное хранимое значение
Vtl::Meta::EnumTraits::Bits< mask >
Vtl::Meta::EnumTraits::Bits< 0 >
Vtl::Meta::EnumTraits::IsEnum
Vtl::Meta::EnumTraits::MaxEnum< false, i >
Vtl::Meta::EnumTraits::MaxEnum< true, i >
Vtl::Plf::EnvProc1to1< T, Func, P > Имеет 1 вход и 1 выход. Пиксель в координатах (x,y) на выходном изображении принимает значение, которое вычисляется по окрестности на входном изображении. Способ обработки задается функтором - вторым шаблонным параметром. Типичное применение - выполнение процедуры
  • "Non Maximum Supression" в детекторах уголков (Vtl::Plf::F::Harris, Vtl::Plf::F::MinEigenVal)
  • построение контурного препарата H-image и проч. несепарабельные и сложные обработки. Функтор должен соответствовать шаблону:
Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > | Имеет 1 вход и 2 выходa. Типовой примекр применения - анализ окрестности точки и выдача двумерного вектора, например какого-то аналога градиента, например H-image [HImg2003],
Vtl::Plf::EnvProc3to1< T, Func, P > | Имеет 3 входа и 1 выход. Пиксель в координатах (x,y) на выходном изображении принимает значение, которое вычисляется по окрестности точки (x,y) на входном изображении in_val с учетом значений в точке (x,y) на изображениях in_gx,in_gy. Способ обработки задается функтором - вторым шаблонным параметром. Типичное применение - выполнение процедуры "Non Maximum Supression" в детекторах линий (Vtl::Plf::Canny). Функтор должен соответствовать шаблону:
Vtl::Types::TL::EQ< s1, s2 >
Basics3D::Eq4Degree
Vtl::Types::TL::Erase | Удаление элемента из списка типов
Vtl::Meta::IL::Erase< i, IndexList< i, T > >
Vtl::Meta::IL::Erase< i, IndexList< j, T > >
Vtl::Meta::IL::Erase< i, Loki::NullType >
Vtl::Types::TL::EraseAll | Удаление всех вхождений элемента из списка типов
Vtl::Meta::IL::EraseAt< 0, IndexList< j, T > >
Vtl::Meta::IL::EraseAt< i, IndexList< j, T > >
Vtl::Meta::IL::EraseAt< i, Loki::NullType >
Vtl::Meta::IL::ERROR__Index_out_of_IndexList_range< j > | Used for error reporting (invalid index in IndexList) during compile
ErrorStatusBase
Vtl::Plf::Extent | Служит для хранения информации о размере дополнения изображения за края (путем зеркального отражения)
Dbg::Format::F
Vtl::Alg::Factorial< N > | Вычисляет факториал во время компиляции
Vtl::Alg::Factorial< 0 >
Vtl::ImAlg::Conv::FastGaussConvolve< T, D > | Быстрая рекурсивная реализация свертки с гауссом и его первыми 3 производными. По статье [Young_Vliet_1995]
FFT_2D
Vtl::Plf::Fifo< T > | Реализует очередь
Vtl::ImAlg::Bres::Fill< T > | Алгоритм заполнения области
Hanina::FillingHessianMatrix3x3
Vtl::Plf::FilterBase | Базовый класс
Vtl::Plf::FilterComplex | Базовый класс для написания сложных (составных) фильтров, представляющих собой комбинацию элементарных и/или составных фильтров. Элементарные фильтры должны наследоваться из class FilterElementary
Vtl::Plf::FilterElementary | Базовый класс для написания всех элементарных фильтров
Vtl::Plf::FilterResampleHorz< T, P > | Класс реализует ресамплинг (растяжение/сжатие) каждой строки изображения
Vtl::Plf::FilterResampleVert< T, P > | Класс реализует ресамплинг (растяжение/сжатие) каждого столбца изображения
Vtl::Plf::FiltersSystem | "Главный класс", обеспечивает функционирование системы потоковой фильтрации
Vtl::Plf::FiltersSystem::EdgeLabel_DelayB
Vtl::Plf::FiltersSystem::EdgeLabel_Unknown
Vtl::Types::TL::FindIf | По списку типов составляет новый список типов таких, что проверка типа по условию Comparator выполняется
Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > | Class FKern, реализует ядра сверток для любых функторов из Vtl::Plf::Kern::F, (см. там описание требуемого устройства функтора)
Vtl::ImAlg::WndFun::FlatTop< T, D > | Окно Плоская-вершина (FlatTop), нормированное
IFF::FloatImageFile
IFF::FloatImageFile::Header
Dbg::Fmt< T, format_type >
Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >
Basics3D::FmTools< T >
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >
Basics3D::g
Vtl::NumAlg::Spf::Gamma
Vtl::Plf::F11::GammaCor< T > | Functor GammaCor - выполняет гамма коррекцию, т.е. преобразует значение каждого пикселя V по закону $ M*(V/M)^(1/gamma) $ , где. M - максимально возможное значение пикселя, например для беззнаковых целых типов изображения M=(1<<bits)-1
Vtl::Plf::F11::GammaCorMult< T > | Functor GammaCorMult - Эквивалентен последовательному применению функторов Mult, затем GammaCor, но более вычислительно эффективен
Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > | Окно Гаусса (Gauss). Определяется формулой
Vtl::Types::TL::GE< s1, s2 >
Vtl::Plf::OLSI::Gistogramm< T > | Служит для ....
Vtl::Plf::OLSI::Gistogramm2< T > | Служит для ....
Vtl::Plf::GradientCorr< T, P > | Вычисляет произведения компонент вектора градиента:
Vtl::Plf::GradientModul< T, P > | Вычисляет модуль градиента для каждой точки изображения по локальной окрестности. Контурный препарат Канни
Vtl::Plf::Impl::GraphBuilder | Строит граф системы потоковой фильтрации, обеспечивает топологическую сортировку графа, поиск петель и циклов, проверку все ли источники и приемники заданы, отсутствие "висячих" связей. Результат возвращает в std::vector<Node> graph; класса FiltersSystem
Vtl::Types::TL::GT< s1, s2 >
Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > | Предикат GreaterThan: Specialization for boost::ublas::c_vector
Vtl::ImAlg::WndFun::Hamming< T, D > | Окно Хeмминга (Hamming). Определяется формулой [image] при 0 <= x <= size-1
Vtl::ImAlg::WndFun::Hann< T, D > | Окно Ханна (Hann). Определяется формулой [image] при 0 <= x <= size-1
Vtl::Plf::F31::Harris< T > Функтор Harris для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет величину отклика детектора Харриса-Стефенса: , Обычно k=0.04. Используется свойство независимости следа и детерминанта матрицы от выбора системы координат.
Внимание: этот функтор на выход выдает значение не $ Harris $, а [image] . Корень четвертой степени появляется из соображений, что [image], а множитель [image] из-за того, что производные [image], т.е. обратно пропорциональны приращению координаты на которой в среднем оценивается приращение функции (производные вычисляются с помощью свертки). Множитель 6.3 - эмпирический. Эта модификация выполнена для того, чтобы динамический диапазон получаемого изображения соответствовал динамическомй диапазону фильтруемого изображения (например [0-255] -> [0-255].
Важно: множитель [image] существенен для монгомасштабных (multiscale) детекторов Харриса, впервые введен в статье
Y. Dufournaud, C. Schmid, and R. Horaud, "Matching images with different resolutions", Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR’00), 2000 (Hilton Head Island, SC, USA). V. 1, P. 612-618. ISBN: 0-7695-0662-3. http://citeseer.ist.psu.edu/dufournaud00matching.html
Сам детектор Харриса вводится в статье:
C. G. Harris and M. Stephens, "A combined corner and edge detector," In Proc. 4th Alvey Vision Conf., Manchester, pages 147-151, 1988
Vtl::Plf::HarrisLaplace< T, Func, P > | Обнаруживает
Vtl::Plf::F51::HarrisLaplace< T > | Функтор HarrisLaplace для PixByPix5to1
Vtl::Plf::Fpie::HarrisNMS< T > | Функтор HarrisNMS для EnvProc1to1. Находит точки максимальной яркости. Проверяет 8 соседних пикселей, если яркость в каждом из них меньше яркости центральной точки пишет на выход значение яркости без изменений, в противном случае - выход равен 0
Vtl::Plf::Fpie::HarrisNMS_Smooth< T > | Функтор HarrisNMS_Smooth для EnvProc1to1 аналогичен HarrisNMS, но возвращает 1/10 от суммы центрального пикселя и всей окрестности 3х3. Находит точки максимальной яркости. Проверяет 8 соседних пикселей, если яркость в каждом из них меньше яркости центральной точки пишет на выход значение яркости без изменений, в противном случае - выход равен 0
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > | Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье)
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T > | Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье)
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T >
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T > | Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > | Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье) и фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > | Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье) и фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T >
Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > | Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ и приводится только для сравнения и полноты. Ищется сдвиг, поворот и масштаб (до 1.8)
Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным [Yurin_RegBushBroom2008] на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ. Ищется сдвиг, поворот и масштаб (до 1.8)
Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным [Yurin_RegBushBroom2008] на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ и приводится только для сравнения и полноты. Ищется сдвиг, поворот и масштаб (до 1.8)
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 >
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >
Hanina::Hessian3D< T >
Vtl::Plf::F31::HessianDet< T >
Vtl::Plf::F31::HessianDetSqrt< T >
Hanina::HessianDetSqrt< T >
Hanina::HessianEigenDiff< T >
Hanina::HessianEigenDiffAndMaxCurvatureDirection
Vtl::Plf::HImage< T, P > | Контурный препарат H-image [HImg2003],
Vtl::Plf::HImageEdge< T, P > | Детектор краев на основе контурного препарата H-image [HImg2003], \see Vtl::Plf::F::Himg, Vtl::Plf::HImage
Vtl::Plf::Fpie::Himg< T > | Функтор Himg для EnvProc1to1. Вычисляет контурный препарат H-image [HImg2003]
Vtl::Plf::Fpie::Himg2< T > | Функтор Himg2 для EnvProc1to2. Вычисляет вектор квази-градиента для контурного препарата H-image [HImg2003]
Vtl::ImAlg::Transf::Homography< T >
Vtl::ImAlg::Model::Homography< T > | Класс - модель преобразования, соответствует поиску проективного преобразования ( [Zokai_Wolberg_2005] )
Vtl::ImAlg::C::HSI< LinSys > | Цветовое пространство HSI (or may be refered as IHS). The Hue/Saturation/Intensity
Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter > | Функтор для PixByPix3to3
Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter > | Функтор для PixByPix3to3
Vtl::ImAlg::C::HSL | Цветовое пространство HSL . The Hue/Saturation/Value
Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter > | Функтор для PixByPix3to3
Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter > | Функтор для PixByPix3to3
Vtl::ImAlg::C::HSV | Цветовое пространство HSV . The Hue/Saturation/Value model was created by A. R. Smith in 1978. It is based on such intuitive color characteristics as tint, shade and tone (or family, purety and intensity). The coordinate system is cylindrical, and the colors are defined inside a hexcone. The hue value H runs from 0 to 360?. The saturation S is the degree of strength or purity and is from 0 to 1. Purity is how much white is added to the color, so S=1 makes the purest color (no white). Brightness V also ranges from 0 to 1, where 0 is the black
Vtl::ImAlg::C::HSV::fromRGB< T, Iter > | Функтор для PixByPix3to3
Vtl::ImAlg::C::HSV::toRGB< T, Iter > | Функтор для PixByPix3to3
Vtl::Meta::IL::ICount< v, 0, IndexList< j, T > >
Vtl::Meta::IL::ICount< v, i, IndexList< j, T > >
Vtl::Meta::IL::ICount< v, i, Loki::NullType >
Basics3D::IFunc
Basics3D::IFuncWithDer
Vtl::Img::Image< P, planes, interleave >
Vtl::Img::Image< P, planes, BIP >
Vtl::Img::Image< P, planes, SEP >
Vtl::Img::ImageBase< P, planes, interleave >
ImageContainer< ImgType >
Vtl::Img::ImageDataLayout
Vtl::Img::ImageDataLayoutHolder
ImageFragment16
ImageFragment8
ImageFragmentRgb8
Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >
Vtl::Img::ImageInfo | Общая информация об изображении
ImageMem16
ImageMem16Stuff
ImageMem16Stuff::Error
ImageMem8
ImageMemFloat
ImageMemRgb8
Vtl::Img::ImageNDref< T_SList, T_Layout >
Vtl::Img::ImageNDref< T_SList, T_Layout >::Iter1D< i >
Vtl::Img::ImageNDref< T_SList, T_Layout >::IterBands
ImageProxy< ImageT >
ImageProxyConst< ImageT >
ImageProxyVector
Vtl::Plf::ImageRef< T > | Класс служит интерфейсом 'только для чтения' к полосе изображения, хранящейся в данный момент в StripBuffer, который в свою очередь находится в OutPortNoPostProc
ImageResample
ImageResample::ImageResampleParams
ImageResize
ImageRotate
Vtl::Img::ImageStorageStrategyNew< T >
ImageTransform
ImageTransformCellImpl
ImageTransformImpl
ImageTransformMatrixFastImpl
ImageTransformMatrixImpl
ImageVectorT< Base, Bit8, Bit16 >
Vtl::Plf::Kernel::ImageWin< T > | Ограничение изображения окном
Vtl::Plf::ImgSize | Структура служит для хранения размеров изображения - ширина и высота
Vtl::Meta::IndexList< i, T >
Vtl::Types::TL::IndexOf | Поиск заданного элемента в списке типов, если не найден - возвращает -1;
Vtl::Meta::IL::IndexOf< i, IndexList< i, T > >
Vtl::Meta::IL::IndexOf< i, IndexList< j, T > >
Vtl::Meta::IL::IndexOf< i, Loki::NullType >
Vtl::Plf::InPort< T > | Класс реализует функциональность понятия "\с входной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering
Vtl::Plf::InPortBase | Базовый класс для понятия "\b входной порт". Определяет функциональность, необходимую для работы системы фильтров
Vtl::Plf::InPortComb< T >
Vtl::Types::Int2Type< v >
Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > | Билинейной интерполяцией вычислить интенсивность изображенйи в точке (x,y). Координаты x,y задаются относительно левого верхнего угла изображения
Vtl::Types::IntOrReal | Определение констант для выбора типа
Vtl::ImAlg::Tools::findMax::is_center_max_in3x3< num_equal_neihbours >
YXML::IsAttr< T, Cmp >
YXML::IsAttrIn< T >
Vtl::ImAlg::Edt::isEdge< T >
YXML::IsElem
Vtl::Types::TL::isIn< TList, T > | Проверка в списке ли?
Vtl::Types::isIntOrReal< T > | Проверка на этапе компиляции к какой группе относится тип T Vtl::Types::IntOrReal
YXML::IsName< Cmp >
Vtl::Alg::isOdd< N > | Определяет на стадии компиляции нечетное число или нет. Если нечетное, то Vtl::Alg::isOdd::value равно 1, иначе 0
Vtl::Types::isSameType< T1, T2 > | Проверка, совпадают ли типы. Если оба шаблонных параметра одинакового типа - то поле value=1, иначе value=0
Vtl::Types::isSUIntOrReal< T > | Проверка на этапе компиляции к какомй группе относится тип T Vtl::Types::SUIntOrReal
Vtl::Img::Iterator_1D< T, T_stride >
Vtl::Img::Iterator_1D< T, 0 >
Vtl::Img::Iterator_ND< T_Layout >
Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList
Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< i >
Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< ND >
Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::MoveX_selector< i >
Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >
Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >
Vtl::Img::Iterator_ND_spec< T_Layout, isGray, isSubSpace >
Vtl::Img::Iterator_ND_spec< T_Layout, false, false >
Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::IterBands
Vtl::Img::Iterator_ND_spec< T_Layout, false, true >
Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::IterBands
Vtl::Img::Iterator_ND_spec< T_Layout, true, false >
Vtl::Img::Iterator_ND_spec< T_Layout, true, true >
Vtl::ImAlg::C::IV1V2 | Специально цветовое пространство, используется struct HSI
Vtl::ImAlg::C::IV1V2::B< T > | Функтор IV1V2 -> B
Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter > | Функтор для PixByPix3to3, преобразование RGB -> IV1V2
Vtl::ImAlg::C::IV1V2::G< T > | Функтор IV1V2 -> G
Vtl::ImAlg::C::IV1V2::I< T > | Функтор IV1V2: RGB -> I
Vtl::ImAlg::C::IV1V2::R< T > | Функтор IV1V2 -> R
Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter > | Функтор для PixByPix3to3, преобразование IV1V2 -> RGB
Vtl::ImAlg::C::IV1V2::V1< T > | Функтор IV1V2: RGB -> V1
Vtl::ImAlg::C::IV1V2::V2< T > | Функтор IV1V2: RGB -> V2
Vtl::ImAlg::WndFun::Kaiser< T, D > | Окно Кайзера (Kaiser). Определяется формулой [image] , где $ I_0( . )$ - модифицированная функция Бесселя
Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
Vtl::ImAlg::C::Lab | Цветовое пространство L*a*b*
Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > | Функтор для PixByPix3to3
Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > | Функтор для PixByPix3to3
Vtl::ImAlg::WndFun::Laws5< T > | Энергетические текстурные характеристики Лавса
Vtl::ImAlg::WndFun::Laws5< T >::E5
Vtl::ImAlg::WndFun::Laws5< T >::L5
Vtl::ImAlg::WndFun::Laws5< T >::R5
Vtl::ImAlg::WndFun::Laws5< T >::S5
Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > | Specialization Compile time known Nbands
Vtl::Meta::Layout< T, IList >
Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > | Specialization RunTime known Nbands
Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >
Vtl::Types::TL::LE< s1, s2 >
Vtl::Types::TL::Length | Определение длины списка типов
Vtl::Meta::IL::Length< IndexList< i, T > >
Vtl::Meta::IL::Length< Loki::NullType >
Vtl::Plf::Levels< T, P > | Преобразование значение пикселя по формуле. Класс реализует преобразование яркости по таблице или формуле пиксел в пиксел. По возможности следует избегать применение этого класса, используя вместо него постобработку выходов фильтров с тем же функтором. Оправданное применение этого класса - это когда выход некоторого вильтра надо подать на входы нескольких разных фильтров, причем на часть из них с постобработкой, а на другие без (или с разными постобработками). Точно также бессмыслено соединение фильров Levels в цепочку - пишите сразу функтор, который делает все преобразования за один раз, если требуется скомбинировать несколько постробработок - а написать общий функтор сложно или лень есть функтор для комбинирования Vtl::Plf::F::Comb
Vtl::Plf::F11::Lin< T > | Functor Lin - преобразует значение каждого пикселя по закону a*x+b
Vtl::ImAlg::Bres::Line< F > | Алгоритм Брезенхэма 'рисования' линии. Написан по мотивам [Wilton] , Listing 6-2 . В отличие от книги не используется операция перестановки концов отрезка (Swap), чтобы движение вдоль линии всегда шло в направлении возрастания координаты, так как при желании рисовать например ломаные пунктирные линии это будет приводить к нарушению шаблона (маски) пунктира. Поэтому обработка различных направлений движения сделана отдельно. Класс реализован так, что он не занимается собственно рисованием, а вызывает для этой цели функтор (параметр шаблона), который умеет выполнять следующие действия:
LineFun
Vtl::Plf::LineIterator< T > | Итератор для получения информации из ImageRef
Vtl::ImAlg::Resamp::LinGrid< T > | Для диапазона величин value_min , value_max задает РАВНОМЕРНУЮ сетку из N=N_grid_cells узлов. Номеру ячейки 0 соответвтует величина value_min, а номеру (N-1) - величина value_max. Промежуточным ячейкам i сетки соответствуют величины value_min+step*i , где шаг сетки равномерный: step=(value_max-value_min)/(N-1)
Vtl::Plf::F11::Log< T > | Functor Log - Вычисляет натуральный логарифм и возвращает максимум из полученной величины и порога
Vtl::ImAlg::Resamp::LogGrid< T > | Для диапазона величин value_min , value_max задает ЛОГАРИФМИЧЕСКУЮ сетку из N=N_grid_cells узлов. Номеру ячейки 0 соответвтует величина value_min, а номеру (N-1) - величина value_max. Промежуточным ячейкам i сетки соответствуют величины value_min*exp(step*i) , где логарифмический шаг сетки : step=(log(value_max)-log(value_min))/(N-1)
Vtl::Types::TL::LT< s1, s2 >
Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > | Предикат LessThan: Specialization for boost::ublas::c_vector
Hanina::Luv_from_xy_derivatives< T >
Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 > | Создать список из указанных индексов (в указанном порядке, без контроля повторов). В ЭТОМ И ТОЛЬКО ЭТОМ АЛГОРИТМЕ -1 считается недопустимым индексом и используется как указатель конца списка
Vtl::Meta::IL::Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >
Vtl::Meta::IL::MakeInRange< i, n > | Создать список из последовательных индексов i, i+1, i+2, ... n-1. Например MakeInRange<12,15>::Result - это списко чисел 12,13,14
Vtl::Meta::IL::MakeInRange< n, n >
Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >
Vtl::Types::TL::MakeTypelist<>
Vtl::Plf::F31::MaxEigenVal< T > Функтор MaxEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет максимальное собственное значение (детектор краев DiZenzo): ,
где [image], т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $ , и [image] ,
Vtl::Plf::MeanAndDisp< T, P > | Вычисляет среднее и дисперсию по окрестности (путем свертки с гауссом)
Vtl::Plf::OLSI::mediana< T > | Служит для хранение значение медианы в гистограмме
Vtl::Plf::medianFilter< T, P > | Медианная фильтрация изображения
Vtl::Plf::medianFilter2< T, P > | Быстрая медианная фильтрация изображения, основанная на построении частичных гистограмм
Vtl::ImAlg::Edt::Meijster
MImages2Gray
Vtl::Plf::F31::MinEigenVal< T > Функтор MinEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет минимальное собственное значение (детектор уголков Канаде-Лукаса): ,
где [image], т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $, и [image] ,
MSlidingEqualization
Vtl::Plf::F11::Mult< T > | Functor Mult - умножавет значение каждого пикселя на константу
Vtl::Types::TL::NE< s1, s2 >
Vtl::Plf::F11::Negative< T > | Functor Negative - делает негатив изображения, считается что яркость изображения меняется от 0 до maxval, последнюю величина нада задать
Vtl::Plf::Impl::Node | Узел графа, используется в классах FiltersSystem и GraphBuilder
Vtl::Types::TL::NoDuplicates | Удаление дубликатов вхождений элементов в список типов
Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< n, TT >
Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< 0, TT >
Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< n, TT >
Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< 0, TT >
Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< n, TT >
Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< 0, TT >
Vtl::Types::NullType | Нулевой маркер типов
Vtl::ImAlg::WndFun::Nuttall< T, D > | Окно Нуттол (Nuttall), непрерывные первые производные
Vtl::ImAlg::Transf::Offset< T >
Vtl::ImAlg::Model::Offset< T > | Класс - модель преобразования, соответствует поиску чистого сдвига, (Kanade-Lukas [KLT_TK])
Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > | Совмещение изображений методом оптического потока, см. прострнство имен Vtl::ImAlg::Registration::Model и класс AllocStrategy
Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | Класс отвечает за выделение памяти для работы совмещения по оптическому потоку (Kanade-Lukas [KLT_TK] , Shi-Tomasi [KLT_ST], Projective transform [Zokai_Wolberg_2005] )
Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size
Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >
Vtl::Plf::OutPort< T, P > | Класс реализует функциональность понятия \с "выходной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering. Добавляет функциональность постобработки к классу OutPortNoPostProc
Vtl::Plf::OutPortBase | Базовый класс для понятия "\b выходной порт". Определяет функциональность, необходимую для работы системы фильтров
Vtl::Plf::OutPortBase::Connection
Vtl::Plf::OutPortNoPostProc< T > | Класс реализует базовую функциональность понятия \с "выходной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering
IFF::OzFile
IFF::OzFile::Header
Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, m >
Hanina::p33< T, 0, 1 >
Hanina::p33< T, 0, 2 >
Hanina::p33< T, 1, 2 >
Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, n >
Vtl::Img::PaletteAccess
IFF::PBMfile
Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >
Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, k >
Vtl::Meta::Impl::permut< IList1, Loki::NullType, isOdd, 0, 0 >
Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > | Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Вычисляет выражение для преобразования Хартли аналогичное по свойствам выражению F1.F2* для преобразования Фурье. Результат может быть помещен вместо одного из преобразований Хартли. Функтор применим для любой размерности пространства, в т.ч. ndim>2
Vtl::ImAlg::Resamp::PhiGrid< T >
Vtl::Img::pic_plane< pel, stride >
Vtl::Plf::PixByPix2to1< T, F, P > | Вычисление изображения из двух, значение пикселя вычисляется как некоторая функция из значений пикселей двух исходных изображений, взятых в тех же координатах (x,y)
Vtl::Plf::PixByPix2to3< T, P > На базе двух изображений [image] и [image] вычисляет 3 новых по формулам:

т.е. компоненты корреляционной матрицы, которая симметричная и положительно определенная. (чтобы эта матрица стала собственно корреляционной, остается еще выполнить усреднение компонент в каком либо смысле, например по локальной окрестности
Vtl::Plf::PixByPix3to1< T, Func, P > | Класс служит для генерации изображения по трем исходным, значение пикселя изображения определяется значением пикселей в тех же координатах на исходных изображениях. Действия определяются вторым шаблонным параметром. Типичные применения:
Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > | Класс служит для генерации 3 изображений по 3 исходным, значение пикселя на выходных изображениях определяется значением пикселей в тех же координатах на исходных изображениях. Действия определяются вторым шаблонным параметром. Типичные применения переход к другой системе цветовых координат,
Vtl::Plf::PixByPix4to1< T, Func, P > | Класс служит для генерации изображения по четырем исходным,
Vtl::Plf::PixByPix5to1< T, Func, P > | Класс служит для генерации изображения по пяти исходным,
Vtl::Types::PixelTraits< T >
Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::Real >
Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::SInt >
Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::UInt >
Hanina::Planes3< T >
Basics3D::PointStatus | Define struct to clear namespace from personal enum names
PolyFun
Vtl::Plf::Port | Базовый класс для понятия "\b порт". Определяет функциональность, необходимую для работы системы фильтров
Vtl::Types::TL::Print< TList > | Отладка - печать списка: фактических имен типов и sizeof элементов списка
Vtl::Meta::printPermutations
Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >
Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >
ProcessMatrix
Vtl::Plf::F21::Prod< T > | Функтор Prod для фильтра PixByPix2to1. Из двух серых изображений вычисляет одно по формуле $ I_1(x,y)*I_2(x,y) $
ProgressCounter
Basics3D::Structure::ProjectiveToMetric< T >
Vtl::NumAlg::Lin::PseudoInverseElem< T >
Vtl::NumAlg::Lin::PseudoInverseElemPositive< T >
Basics3D::Structure::Pt< T >
PtrArrayDel< T >
PtrDelete< T >
Vtl::Meta::IL::PushBack< i, IndexList< j, Tail > >
Vtl::Meta::IL::PushBack< i, Loki::NullType >
Vtl::Meta::IL::PushFront< i, IList > | Создать новый список состоящий из числа i за которым идут числа из списка IList
Vtl::NumAlg::Lin::QR
Quaternion< T >
ReadPipe
ReadString
Vtl::ImAlg::WndFun::Rect< T, D > | Прямоугольное окно . Определяется формулой
Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown > | Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Отражает данные из полуплоскости (верхней или нижней), заданной параметром fromUpToDown в другую. Данные не имеющие пары прописываются нулем
Vtl::Plf::Resample< T, P > | Выполняет масштабирование (resampling) изображения (билинейная интерполяция)
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D >
Vtl::Img::Rgb< T >
IFF::RgbQuad
Vtl::Img::SampleAccess
Gen::Data::SaveFormat
Hanina::ScaleScan3x3< T >
Vtl::Types::Select< flag, Type1, Type2 > | Выбор типа на этапе комспиляции, if flag==true - первый тип, иначе - второй
Vtl::Plf::SeparableConv2D< T, P > | Вычисляет сепарабельную двумерную свертку. По соображениям эффективности системы PLF сначала по вертикали, затем по горизонтали:
Vtl::ImAlg::Tools::findMax::SetPixel< T, stride >
Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > | Алгоритм перемещения по пикселям, в предположении, что пиксели расположены в памяти в виде одномерного массива, строка за строкой. Смещение к пикселю с тем же X на следующей строке может быть отрицательным и может превышать по модулю количество пикселей в строке изображения. Способ отрисовки пиксекля задается функтором D, в качестве образца такого функтора см. классы Vtl::Alg::Bres::Draw, Vtl::Alg::Bres::DrawDotted
Vtl::Plf::Sharpen< T, P > | Вычисляет <I(x,y)>+amp*(I(x,y-<I(x,y)>). Среднее вычисляется двуерной сверткой с сепарабельным ядром, обычно используется Гауссово ядро. Поднимает на изображении границы и мелкие детали (в т.ч. шумы). Алгоритм Sharpen, описывается классическим выражением [Pratt82] [image] , где $ k $ - коэффициент усиления. При $ k=1 $ результатом является исходное изображение, при $ k=0 $ -сглаженное, при $ 0 < k < 1$ - изображение с ослабленными деталями, при $ 1 < k $ - изображение с усиленными деталями
Vtl::Plf::F21::Sharpen< T > | Функтор Sharpen для фильтра PixByPix2to1. Из двух серых изображений - среднего и среднего от квадрата яркости вычисляет одно по формуле [image] , т.е. служит для вычисления величины
Vtl::ImAlg::Model::Similarity< T > | Класс - модель преобразования, соответствует поиску полного афинного преобразования (Shi-Tomasi [KLT_ST] )
Vtl::ImAlg::WndFun::Sinc< T, 0 > | Окно в виде функции sinc(x) . Определяется формулой
Vtl::Meta::SizeList< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >
Vtl::Meta::SizeList_base< T_IList >
Vtl::Meta::Impl::SizeList_base_0< IList, sz >
Vtl::Meta::Impl::SizeList_base_0< IList, 0 >
Vtl::ImAlg::Model::SkewXOffset< T > | Класс - модель преобразования, соответствует поиску перекоса по x (Shi-Tomasi [Yurin_RegBushBroom2008] )
Vtl::ImAlg::Model::SkewYOffset< T > | Класс - модель преобразования, соответствует поиску перекоса по y (Shi-Tomasi [Yurin_RegBushBroom2008] )
Vtl::ImAlg::Conv::SliceIter< T, stride > | Итератор по массиву, шаг известен на момент компиляции
Vtl::ImAlg::Conv::SliceIter< T, 0 > | Итератор по массиву, шаг НЕ известен на момент компиляции и становится известным только в runtime
Vtl::ImAlg::Conv::SliceIterConst< T, stride > | Итератор по массиву, шаг известен на момент компиляции
Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | Итератор по массиву, шаг НЕ известен на момент компиляции и становится известным только в runtime
Vtl::Types::TL::SmallestType | Поиск в списке типов типа с наименьшим sizeof
Basics3D::SolveEq
Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ > Specialization for boost::ublas::c_vector. Алгоритмы неявной сортировки. Вместо сортировки элементов контейнера, создается массив индексов элементов в контейнере. и сортируюутся эти индексы. С помощью функции operator[] можно получить индекс указанного порядкового элемента в исходном контейнере или с помощью щператора преобразования типа к const int* индексироваться просто как в массиве (константный указатель на такой массив может передаваться функциям, см. напр. функции Implicit::sort).
Пример:
Vtl::NumAlg::Implicit::Sort_base< N_ >
Vtl::NumAlg::Implicit::Sort_base< 0 >
Basics3D::SortS< T >
Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Если для преобразования Фурье в качестве вещественной части было предъявлени изображение I1, а в качестве мнимой - I2 и было выполнено ПФ, то вызов proc_pos_neg_freq() с этим функтором позволяет извлечь преобразования Фурье ОТДЕЛЬНО для I1 и I2
Vtl::Plf::F11::Sqr< T > | Functor Sqr - преобразует значение каждого пикселя $v$ по закону
Vtl::Plf::F11::Sqrt< T > | Functor Sqrt - вычисляет квадратный корень
Vtl::Plf::F21::SqrtOfSumSqr< T > | Функтор SqrtOfSumSqr для фильтра PixByPix2to1. Из двух серых изображений вычисляет одно по формуле
Vtl::Plf::SrcAImage< T, I, P > | Источник изображений для системы потоковой фильтрации на базе изображений, размещенных в памяти в контейнере типа AImageMem8, AImageMem16, AImageMemFloat
Vtl::Plf::SrcAImageRgb< T, I, P >
Vtl::Plf::SrcArray< T, I, P >
Vtl::Plf::StatDiff< T, P > | Выполняет статистическое дифференцирование изображения. Среднее и дисперсия вычисляются с помощью свертки с Гауссом
Vtl::Plf::F31::StatDiff< T > | Функтор StatDiff для PixByPix3to1. Из трех величин [image] представляющих собой яркостьв точке, среднюю яркость и корень из дисперсии, вычисленные по окрестности точки вычисляет выражение для статистического дифференцирования изображения, [Pratt82]
Vtl::Plf::F31::StatDiffThresh< T >
Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > | Класс, для выделения нескольких блоков памяти (и их освобождения). Обеспечивает выравнивание блоков, и обеспечивает, чтобы смещение между любой парой блоков не равнялось указанному числу. Подробнее см. описание к макроопределению PROCESSOR_MEMORY_AVOID_PTR_DIFF
Vtl::Plf::Strip | Служит для описания полосы изображения, находящейся в class StripBuffer и полосы, которая нужна для обработки class InPort
Vtl::Plf::StripBuffer< T > | Класс полосового буффера. Собственнно хранит полосу виртуального изображения, которое получилось в результате рабюоты фильтра, и которое обрабатывает последующий фильтр
Vtl::Types::SUIntOrReal | Определение констант для выбора типа
Vtl::Plf::F21::Sum< T >
Vtl::Plf::F31::Sum3< T > | Функтор Sum3 для PixByPix3to1. Вычисляет
Vtl::NumAlg::Lin::svd
Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, nd >
Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, 1 >
Vtl::Img::T2DataType< T > | По типу данных найти описатель тьипа DataType<>
Basics3D::T_ImagesSet< Image >
T_Layout
Basics3D::T_MatrixOperations
Basics3D::T_MistakeFunc< Operations >
Basics3D::T_Model< Operations >
Basics3D::T_Points2DSet< Point >
Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ > | Ядро, задаваемое таблично
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >
Basics3D::test
Vtl::NumAlg::IntTransf::Utils::F::Test< T > | Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Тестовый пример
Vtl::Plf::F11::Threshold< T, Comp > | Functor Threshold
IFF::Tiff8Read
IFF::Tiff8Write
IFF::TIFF_Header
IFF::TIFF_IFD
IFF::TIFF_IFDentry
IFF::TIFF_ImageParms
IFF::TiffReadIFD
IFF::TiffTag
IFF::TiffWriteIFD
Vtl::Dbg::TimeElapsed
Vtl::Plf::F11::ToBounds< T > | Functor Bounds - ограничивает выходные значения к диапазону min_val -:- max_val
tplAImageFragment< ImgT >
tplAImageReference< ImgT >
Vtl::Plf::F31::Trace< T > | Функтор Trace для PixByPix3to1. Только та часть, которая вычитается в детекторе Харриса
Traits
Vtl::Types::Traits< T >
Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D >
Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D >
Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >
TransformCell
triangulateio
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >
Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >
TriResult
Vtl::Types::Type2Type< T >
Vtl::Types::TL::TypeAt | Индексированный доступ к списку типов
Vtl::Types::TL::TypeLargerThen | Поиск в списке типов типа с sizeof больше, чем у указанного вторым параметром шаблона
Vtl::Types::Typelist< T, U > | Списки типов. см. также Макросы для линеаризованного создания списка типов и namespace Vtl::Types::TL
Basics3D::Types< T > | Типы для использования в задачах восстановления 3D по изображениям. Использовать при определении типов во всех классахъ и функциях
VirtDib
VirtDib::Inf
WinIniFile
WiNode
WiNode::AttrRef
WritePipe
Vtl::Alg::x_to_N< N > | Вычисляет x^N, т.е. pow(x,N). N - целое известное на момент компиляции
Vtl::Alg::x_to_N< N >::x_to_N__< 0, 0 >
Vtl::Alg::x_to_N< N >::x_to_N__< 1, 1 >
Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 >
Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 >
YXML::Xercesc
YXML::XMLdoc
Vtl::ImAlg::C::XYZ | Converts RGB709 to CIE XYZ color coordinates
Vtl::ImAlg::C::XYZ::B< T > | Функтор XYZ: XYZ -> B для PixByPix3to1
Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter > | Функтор для PixByPix3to3
Vtl::ImAlg::C::XYZ::G< T > | Функтор XYZ: XYZ -> G для PixByPix3to1
Vtl::ImAlg::C::XYZ::R< T > | Функтор XYZ: XYZ -> R для PixByPix3to1
Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter > | Функтор для PixByPix3to3
Vtl::ImAlg::C::XYZ::X< T > | Функтор XYZ: RGB -> X для PixByPix3to1
Vtl::ImAlg::C::XYZ::Y< T > | Функтор XYZ: RGB -> Y для PixByPix3to1
Vtl::ImAlg::C::XYZ::Z< T > | Функтор XYZ: RGB -> Z для PixByPix3to1
Vtl::ImAlg::C::YCbCr | Цветовое пространство YCbCr
Vtl::ImAlg::C::YCbCr::B< T > | Функтор YCbCr -> B для PixByPix3to1
Vtl::ImAlg::C::YCbCr::Cb< T > | Функтор YCbCr: RGB -> Cb для PixByPix3to1
Vtl::ImAlg::C::YCbCr::Cr< T > | Функтор YCbCr: RGB -> Cr для PixByPix3to1
Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter > | Функтор для PixByPix3to3
Vtl::ImAlg::C::YCbCr::G< T > | Функтор YCbCr -> G для PixByPix3to1
Vtl::ImAlg::C::YCbCr::R< T > | Функтор YCbCr -> R для PixByPix3to1
Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter > | Функтор для PixByPix3to3
Vtl::ImAlg::C::YCbCr::Y< T > | Функтор YCbCr: RGB -> Y для PixByPix3to1
YDataTime
YDataTimeZone
YDtTm
YFile | Обеспечивает простой доступ до файлов на бинарное чтение/запись. Наиболее ходовые и понятные опции открытия файла. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы
YFileRead | Обеспечивает простой доступ до файлов на бинарное чтение. Файл открывается с наиболее ходовые и правильными опциями. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы
YFileWrite | Обеспечивает простой доступ до файлов на бинарное чтение. Файл открывается с наиболее ходовые и правильными опциями. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы
YImageFrame
Vtl::ImAlg::C::YIQ | Цветовое пространство YIQ
Vtl::ImAlg::C::YIQ::B< T > | Функтор YIQ -> B
Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter > | Функтор для PixByPix3to3, преобразование RGB -> YIQ
Vtl::ImAlg::C::YIQ::G< T > | Функтор YIQ -> G
Vtl::ImAlg::C::YIQ::I< T > | Функтор YIQ: RGB -> I
Vtl::ImAlg::C::YIQ::Q< T > | Функтор YIQ: RGB -> Q
Vtl::ImAlg::C::YIQ::R< T > | Функтор YIQ -> R
Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter > | Функтор для PixByPix3to3, преобразование YIQ -> RGB
Vtl::ImAlg::C::YIQ::Y< T > | Функтор YIQ: RGB -> Y
YPoint< T >
YRect< T >
YSmallAllocLtd
YTArray< T >
YTDynArray< T >
YTHistList< T >
YTHistListTag< T >
YTimeInterval
Vtl::ImAlg::C::YUV | Цветовое пространство YUV
Vtl::ImAlg::C::YUV::B< T > | Функтор YUV -> B
Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter > | Функтор для PixByPix3to3, преобразование RGB -> YUV
Vtl::ImAlg::C::YUV::G< T > | Функтор YUV -> G
Vtl::ImAlg::C::YUV::R< T > | Функтор YUV -> R
Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter > | Функтор для PixByPix3to3, преобразование YUV -> RGB
Vtl::ImAlg::C::YUV::U< T > | Функтор YUV: RGB -> U
Vtl::ImAlg::C::YUV::V< T > | Функтор YUV: RGB -> V
Vtl::ImAlg::C::YUV::Y< T > | Функтор YUV: RGB -> Y
Hanina::ZeroCross< T >
Hanina::ZeroCrossVisualization< T >
ZoomFactor
ZoomFactor2D
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Шаблон структуры Vtl::Plf::F11::Abs< T >

  • Члены классов
Vtl::Plf::F11::Abs

Шаблон структуры Vtl::Plf::F11::Abs< T >

functor Abs - вычисляет абсолютную величину (модуль) вещественного числа. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

template<typename T1>
T operator() (T1 val)

Подробное описание

template<typename T>
struct Vtl::Plf::F11::Abs< T >

functor Abs - вычисляет абсолютную величину (модуль) вещественного числа.
Примеры:

test_fast_gauss.cpp.

Методы

template<typename T>
template<typename T1>
T Vtl::Plf::F11::Abs< T >::operator() ( T1 val ) [inline]

Объявления и описания членов структуры находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон структуры Vtl::Plf::F21::AbsDif< T >

Vtl::Plf::F21::AbsDif

Шаблон структуры Vtl::Plf::F21::AbsDif< T >

#include <plf_functors.h>

Полный список членов класса

Открытые члены

template<typename T1>
T | operator() (T1 val1, T1 val2)
T | operator() (uint8_t val1, uint8_t val2)
T | operator() (uint16_t val1, uint16_t val2)
T | operator() (uint32_t val1, uint32_t val2)

template<typename T>
struct Vtl::Plf::F21::AbsDif< T >

Методы

template<typename T>
template<typename T1>
T Vtl::Plf::F21::AbsDif< T >::operator() | ( | T1 | val1,
 |  | T1 | val2 |
 | ) |  |  | [inline]

template<typename T>
T Vtl::Plf::F21::AbsDif< T >::operator() | ( | uint8_t | val1,
 |  | uint8_t | val2 |
 | ) |  |  | [inline]

template<typename T>
T Vtl::Plf::F21::AbsDif< T >::operator() | ( | uint16_t | val1,
 |  | uint16_t | val2 |
 | ) |  |  | [inline]

template<typename T>
T Vtl::Plf::F21::AbsDif< T >::operator() | ( | uint32_t | val1,
 |  | uint32_t | val2 |
 | ) |  |  | [inline]

Объявления и описания членов структуры находятся в файле:
  • plf_functors.h


Pipe Line Filters: Класс Basics3D::AbsoluteDualQuadric

Basics3D::AbsoluteDualQuadric

Класс Basics3D::AbsoluteDualQuadric

#include <AbsoluteDualQuadric.h>

Полный список членов класса

Открытые члены

int | Get (Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 16 > &out_Q, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P1)

Закрытые члены

void | CreateSystem (Vtl::NumAlg::Lin::ublas::c_matrix< double, 8, 10 > &out_s, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P1)
int | SolveDet0 (Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 16 > &out_Q, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 8, 10 > &in_s)

Методы

void Basics3D::AbsoluteDualQuadric::CreateSystem | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 8, 10 > & | out_s,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > & | in_P,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > & | in_P1 |
 | ) |  |  | [private]

int Basics3D::AbsoluteDualQuadric::SolveDet0 | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 16 > & | out_Q,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 8, 10 > & | in_s |
 | ) |  |  | [private]

int Basics3D::AbsoluteDualQuadric::Get | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 16 > & | out_Q,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > & | in_P,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > & | in_P1
 | ) |  |

Объявления и описания членов классов находятся в файлах:
  • AbsoluteDualQuadric.h
  • AbsoluteDualQuadric.cpp


Pipe Line Filters: Класс AErrorStatusBase

Класс AErrorStatusBase

#include <progrcnt.h>

Граф наследования:AErrorStatusBase:

[см. легенду]
Полный список членов класса

Открытые члены

AErrorStatusBase ()
virtual | ~AErrorStatusBase ()
virtual const char * | ClassName () const=0
virtual const char * | DerivedClassName () const=0
virtual const char * | File () const=0
virtual int | Line () const=0
virtual const char * | Msg () const=0
operator const char * () const

Подробное описание

Примеры:

invert.cpp, test_color_registration.cpp и work_with_image.cpp.

Конструктор(ы)

AErrorStatusBase::AErrorStatusBase ( ) [inline]

virtual AErrorStatusBase::~AErrorStatusBase ( ) [inline, virtual]

Методы

virtual const char* AErrorStatusBase::ClassName ( ) const [pure virtual]

Замещается в ErrorStatusBase.

Примеры:
invert.cpp и work_with_image.cpp.

virtual const char* AErrorStatusBase::DerivedClassName ( ) const [pure virtual]

Замещается в ErrorStatusBase.

Примеры:
invert.cpp и work_with_image.cpp.

virtual const char* AErrorStatusBase::File ( ) const [pure virtual]

Замещается в ErrorStatusBase.

Примеры:
invert.cpp и work_with_image.cpp.

virtual int AErrorStatusBase::Line ( ) const [pure virtual]

Замещается в ErrorStatusBase.

Примеры:
invert.cpp и work_with_image.cpp.

virtual const char* AErrorStatusBase::Msg ( ) const [pure virtual]

Замещается в ErrorStatusBase.

Примеры:
invert.cpp, test_color_registration.cpp и work_with_image.cpp.

AErrorStatusBase::operator const char * ( ) const [inline]

Объявления и описания членов класса находятся в файле:
  • progrcnt.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Transf::Affine< T >

Vtl::ImAlg::Transf::Affine

Шаблон класса Vtl::ImAlg::Transf::Affine< T >

#include <img_trans_models.h>

Полный список членов класса

Открытые типы

enum | { isStrightLineSaving = 1 }
typedef T | value_type
typedef Vtl::NumAlg::Lin::ublas::c_matrix<
T, 2, 2 > 		MatrixA
typedef Vtl::NumAlg::Lin::ublas::c_vector<
T, 2 > 		VectorB

Открытые члены

Affine ()
Affine (Affine &at)
Affine (const MatrixA &A_, const VectorB &b_)
Affine & | operator= (const Affine &at)
template<typename T1, typename T2>
void | operator() (T1 x, T2 y, T &x_out, T &y_out) const
template<typename T1, typename T2>
VectorB | operator() (T1 x, T2 y) const
VectorB | operator() (VectorB x) const

Закрытые данные

MatrixA A
VectorB b

Друзья

template<typename TT>
std::ostream & | operator<< (std::ostream &os, const Affine< TT > &transf)

template<typename T>
class Vtl::ImAlg::Transf::Affine< T >

Определения типов

template<typename T>
typedef T Vtl::ImAlg::Transf::Affine< T >::value_type

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_matrix<T,2,2> Vtl::ImAlg::Transf::Affine< T >::MatrixA

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_vector<T,2> Vtl::ImAlg::Transf::Affine< T >::VectorB

Перечисления

template<typename T>
anonymous enum

Элементы перечислений:
isStrightLineSaving

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Transf::Affine< T >::Affine ( ) [inline]

template<typename T>
Vtl::ImAlg::Transf::Affine< T >::Affine ( Affine< T > & at ) [inline]

template<typename T>
Vtl::ImAlg::Transf::Affine< T >::Affine | ( | const MatrixA & | A_,
 |  | const VectorB & | b_ |
 | ) |  |  | [inline]

Методы

template<typename T>
Affine& Vtl::ImAlg::Transf::Affine< T >::operator= ( const Affine< T > & at ) [inline]

template<typename T>
template<typename T1, typename T2>
void Vtl::ImAlg::Transf::Affine< T >::operator() | ( | T1 | x,
 |  | T2 | y,
 |  | T & | x_out,
 |  | T & | y_out |
 | ) |  |  | const [inline]

template<typename T>
template<typename T1, typename T2>
VectorB Vtl::ImAlg::Transf::Affine< T >::operator() | ( | T1 | x,
 |  | T2 | y |
 | ) |  |  | const [inline]

template<typename T>
VectorB Vtl::ImAlg::Transf::Affine< T >::operator() ( VectorB x ) const [inline]

Документация по друзьям класса и функциям, отноносящимся к классу

template<typename T>
template<typename TT>
std::ostream& operator<< | ( | std::ostream & | os,
 |  | const Affine< TT > & | transf |
 | ) |  |  | [friend]

Данные класса

template<typename T>
MatrixA Vtl::ImAlg::Transf::Affine< T >::A [private]

template<typename T>
VectorB Vtl::ImAlg::Transf::Affine< T >::b [private]

Объявления и описания членов класса находятся в файле:
  • img_trans_models.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Model::Affine< T >

Vtl::ImAlg::Model::Affine

Шаблон класса Vtl::ImAlg::Model::Affine< T >

Класс - модель преобразования, соответствует поиску полного афинного преобразования (Shi-Tomasi [KLT_ST] ). Подробнее...

#include <img_trans_models.h>

Граф наследования:Vtl::ImAlg::Model::Affine< T >:

[см. легенду]
Граф связей класса Vtl::ImAlg::Model::Affine< T >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { N = 6 }

Открытые члены

void | setIdentity ()
void | Inverse ()
template<class VectorP>
void | set (VectorP theta_)
void | UpdateByNewAfterThis (Affine &model_new)
template<unsigned n>
T | Dx (T x, T y) const
template<unsigned n>
T | Dy (T x, T y) const

Закрытые члены

template<unsigned n>
T | _D (T x, T y) const

Подробное описание

template<typename T>
class Vtl::ImAlg::Model::Affine< T >

Класс - модель преобразования, соответствует поиску полного афинного преобразования (Shi-Tomasi [KLT_ST] ).
Примеры:

test_image_registration_via_oflow.cpp.

Перечисления

template<typename T>
anonymous enum

Элементы перечислений:
N

Методы

template<typename T>
void Vtl::ImAlg::Model::Affine< T >::setIdentity ( ) [inline]

template<typename T>
void Vtl::ImAlg::Model::Affine< T >::Inverse ( ) [inline]

template<typename T>
template<class VectorP>
void Vtl::ImAlg::Model::Affine< T >::set ( VectorP theta_ ) [inline]

template<typename T>
void Vtl::ImAlg::Model::Affine< T >::UpdateByNewAfterThis ( Affine< T > & model_new ) [inline]

template<typename T>
template<unsigned n>
T Vtl::ImAlg::Model::Affine< T >::Dx | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline]

Возвращает значение производной от модели по параметру номер n, 0 < =n < N в точке x, y Возвращает при n=0 -> [ x , 0 ]; n=1 -> [ y , 0 ]; n=2 -> [ 1 , 0 ]; n=3 -> [ 0 , x ]; n=4 -> [ 0 , y ]; n=5 -> [ 0 , 1 ];

template<typename T>
template<unsigned n>
T Vtl::ImAlg::Model::Affine< T >::Dy | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline]

template<typename T>
template<unsigned n>
T Vtl::ImAlg::Model::Affine< T >::_D | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline, private]

Объявления и описания членов класса находятся в файле:
  • img_trans_models.h


Pipe Line Filters: Класс AImage

Класс AImage
[Handling with images]

Base class for all images. Подробнее...

#include <aimage.h>

Граф наследования:AImage:

[см. легенду]
Полный список членов класса

Открытые типы

enum YImageClass {
IMGC_UNKNOWN, IMGC_BILEVEL, IMGC_GRAYSCALE, IMGC_PALETTE,
IMGC_RGB, IMGC_FLOAT
}
Тип изображения, как его интерпретировать. Подробнее...
enum YImageStore {
IMGS_Unknown, IMGS_AImageMem8, IMGS_AImageMem16, IMGS_AImageMemFloat,
IMGS_AImageMemRgb8, IMGS_AImageMemRgb16
}
Тип пикселей изображения и их раскладка, какие реально данные содержатся и как устроен контейнер. Подробнее...

Открытые члены

virtual const char * | ClassName () const
virtual AImage * | GetFullImage () const
virtual AImage::YImageStore | GetImageStore () const=0
AImage ()
virtual | ~AImage ()
virtual bool | IsOk () const=0
virtual bool | Create (short width, short height, short bitsPerPix, bool hasPalette=false)=0
virtual void | Clear ()=0
virtual int | Width () const=0
virtual int | Height () const=0
virtual int | Bits () const=0
virtual int | NextLineShift () const=0
virtual int | NumPlanes () const
virtual AImage * | GetPlane (int plane)
virtual const AImage * | GetPlane (int plane) const
virtual YImageClass | ImageClass () const=0
virtual const char * | ImageStore () const
virtual const char * | ImageClassName () const
Info | GetImageInfo () const
virtual int | GetPaletteEntries () const
virtual AImage::Rgb * | Palette () const
virtual void | read (int x, int y, Pixel16 *data, int len) const =0
virtual void | ChangeBits (int bits)
specific, not use without special permissions!
virtual void | ChangeHeight (short new_height)
specific, not use without special permissions!

Открытые статические члены

static const char * | ImageStoreName (YImageStore istore)
static const char * | ImageClassName (YImageClass iclass)
static const char * | ThisClassName ()
static bool | CopyPalette (AImage *to, const AImage *from)

Классы

struct | Bgr
class | Error
struct | Info
Иногда удобно вернуть из функции сразу все основные параметры изображения, например функция определяет какое изображение надо создать чтобы принять результат фильтрации неким фильтром. Удобно вернуть такую структуру и на ее основе создать изображение или проверить можно ли положить результат в уже имеющееся изображение. Подробнее...
struct | Rgb

Подробное описание

Base class for all images.
Примеры:

invert.cpp, test_color_registration.cpp, test_image_registration_via_fft.cpp, test_image_registration_via_oflow.cpp и work_with_image.cpp.

Перечисления

enum AImage::YImageClass

Тип изображения, как его интерпретировать.

Элементы перечислений:
IMGC_UNKNOWN
IMGC_BILEVEL
IMGC_GRAYSCALE
IMGC_PALETTE
IMGC_RGB
IMGC_FLOAT

enum AImage::YImageStore

Тип пикселей изображения и их раскладка, какие реально данные содержатся и как устроен контейнер.

Элементы перечислений:
IMGS_Unknown
IMGS_AImageMem8
IMGS_AImageMem16
IMGS_AImageMemFloat
IMGS_AImageMemRgb8
IMGS_AImageMemRgb16

Конструктор(ы)

AImage::AImage ( ) [inline]

virtual AImage::~AImage ( ) [inline, virtual]

Методы

const char * AImage::ImageStoreName ( YImageStore istore ) [static]

const char * AImage::ImageClassName ( YImageClass iclass ) [static]

const char * AImage::ThisClassName ( ) [static]

Переопределяется в AImageMem8, AImageMem16, AImageMemFloat, AImageMemRgb8, AImageMemRgb16, ImageFragment8, ImageFragment16, ImageFragmentRgb8, ImageMem16Stuff, ImageMem8, ImageMem16, ImageMemFloat и ImageMemRgb8.

virtual const char* AImage::ClassName ( ) const [inline, virtual]

Переопределяется в AImageMem8, AImageMem16, AImageMemFloat, AImageMemRgb8, AImageMemRgb16, ImageFragment8, ImageFragment16, ImageFragmentRgb8, ImageMem16Stuff, ImageMem8, ImageMem16, ImageMemFloat, ImageMemRgb8, tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 > и tplAImageReference< AImageMem8 >.

virtual AImage* AImage::GetFullImage ( ) const [inline, virtual]

returns 0 - if this is image container pointer - if this is reference to image container or reference to ...

Переопределяется в tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 > и tplAImageReference< AImageMem8 >.

virtual AImage::YImageStore AImage::GetImageStore ( ) const [pure virtual]

Замещается в AImageMem8, AImageMem16, AImageMemFloat, AImageMemRgb8, AImageMemRgb16, tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 > и tplAImageReference< AImageMem8 >.

Примеры:
test_color_registration.cpp, test_image_registration_via_fft.cpp, test_image_registration_via_oflow.cpp и work_with_image.cpp.

virtual bool AImage::IsOk ( ) const [pure virtual]

Замещается в ImageMem16Stuff, ImageMem8, ImageMem16, ImageMemFloat, ImageMemRgb8, tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 > и tplAImageReference< AImageMem8 >.

virtual bool AImage::Create | ( | short | width,
 |  | short | height,
 |  | short | bitsPerPix,
 |  | bool | hasPalette = false |
 | ) |  |  | [pure virtual]

Замещается в ImageMem16Stuff, ImageMem8, ImageMem16, ImageMemFloat, ImageMemRgb8, tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 > и tplAImageReference< AImageMem8 >.

virtual void AImage::Clear ( ) [pure virtual]

Замещается в ImageMem16Stuff, ImageMem8, ImageMem16, ImageMemFloat, ImageMemRgb8, tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 > и tplAImageReference< AImageMem8 >.

virtual int AImage::Width ( ) const [pure virtual]

Замещается в ImageMem16Stuff, ImageMem8, ImageMem16, ImageMemFloat, ImageMemRgb8, tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 >, tplAImageReference< AImageMem8 >, tplAImageFragment< AImageMemRgb8 >, tplAImageFragment< AImageMem16 > и tplAImageFragment< AImageMem8 >.

Примеры:
invert.cpp, test_color_registration.cpp, test_fast_gauss.cpp и work_with_image.cpp.

virtual int AImage::Height ( ) const [pure virtual]

Замещается в ImageMem16Stuff, ImageMem8, ImageMem16, ImageMemFloat, ImageMemRgb8, tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 >, tplAImageReference< AImageMem8 >, tplAImageFragment< AImageMemRgb8 >, tplAImageFragment< AImageMem16 > и tplAImageFragment< AImageMem8 >.

Примеры:
invert.cpp, test_color_registration.cpp, test_fast_gauss.cpp и work_with_image.cpp.

virtual int AImage::Bits ( ) const [pure virtual]

Замещается в ImageMem16Stuff, ImageMem8, ImageMem16, ImageMemFloat, ImageMemRgb8, tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 >, tplAImageReference< AImageMem8 >, tplAImageFragment< AImageMemRgb8 >, tplAImageFragment< AImageMem16 > и tplAImageFragment< AImageMem8 >.

Примеры:
invert.cpp, test_color_registration.cpp и test_plf_filters.cpp.

virtual int AImage::NextLineShift ( ) const [pure virtual]

Замещается в ImageMem16Stuff, ImageMem8, ImageMem16, ImageMemFloat, ImageMemRgb8, tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 >, tplAImageReference< AImageMem8 >, tplAImageFragment< AImageMemRgb8 >, tplAImageFragment< AImageMem16 > и tplAImageFragment< AImageMem8 >.

Примеры:
invert.cpp, test_alg_bresenham.cpp, test_color_registration.cpp и test_fast_gauss.cpp.

virtual int AImage::NumPlanes ( ) const [inline, virtual]

Переопределяется в AImageMemRgb8, AImageMemRgb16, tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 > и tplAImageReference< AImageMem8 >.

virtual AImage* AImage::GetPlane ( int plane ) [inline, virtual]

Переопределяется в AImageMemRgb8 и AImageMemRgb16.

virtual const AImage* AImage::GetPlane ( int plane ) const [inline, virtual]

Переопределяется в AImageMemRgb8 и AImageMemRgb16.

virtual YImageClass AImage::ImageClass ( ) const [pure virtual]

Замещается в ImageMem16Stuff, ImageMem8, ImageMem16, ImageMemFloat, ImageMemRgb8, tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 > и tplAImageReference< AImageMem8 >.

Примеры:
invert.cpp, test_color_registration.cpp, test_image_registration_via_fft.cpp и test_image_registration_via_oflow.cpp.

virtual const char* AImage::ImageStore ( ) const [inline, virtual]

virtual const char* AImage::ImageClassName ( ) const [inline, virtual]

Info AImage::GetImageInfo ( ) const [inline]

bool AImage::CopyPalette | ( | AImage * | to,
 |  | const AImage * | from |
 | ) |  |  | [static]

virtual int AImage::GetPaletteEntries ( ) const [inline, virtual]

Переопределяется в ImageMem8, ImageMem16, tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 > и tplAImageReference< AImageMem8 >.

Примеры:
invert.cpp.

virtual AImage::Rgb* AImage::Palette ( ) const [inline, virtual]

Переопределяется в ImageMem8, ImageMem16, tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 > и tplAImageReference< AImageMem8 >.

virtual void AImage::read | ( | int | x,
 |  | int | y,
 |  | Pixel16 * | data,
 |  | int | len |
 | ) |  |  | const [pure virtual]

Замещается в ImageFragment8, ImageFragment16, ImageFragmentRgb8, ImageMem16Stuff, ImageMem8, ImageMem16, ImageMemFloat, ImageMemRgb8, tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 > и tplAImageReference< AImageMem8 >.

virtual void AImage::ChangeBits ( int bits ) [inline, virtual]

specific, not use without special permissions!

Переопределяется в ImageMem8 и ImageMem16.

virtual void AImage::ChangeHeight ( short new_height ) [inline, virtual]

specific, not use without special permissions!

Переопределяется в tplAImageReference< AImageMemRgb8 >, tplAImageReference< AImageMem16 > и tplAImageReference< AImageMem8 >.

Объявления и описания членов классов находятся в файлах:
  • aimage.h
  • imagemem.cpp


Pipe Line Filters: Структура AImage::Bgr

AImage::Bgr

Структура AImage::Bgr

#include <aimage.h>

Полный список членов класса

Открытые атрибуты

Pixel8 b
Pixel8 g
Pixel8 r

Данные класса

Pixel8 AImage::Bgr::b

Pixel8 AImage::Bgr::g

Pixel8 AImage::Bgr::r

Объявления и описания членов структуры находятся в файле:
  • aimage.h


Pipe Line Filters: Класс AImage::Error

AImage::Error

Класс AImage::Error

#include <aimage.h>

Граф наследования:AImage::Error:

[см. легенду]
Граф связей класса AImage::Error:

[см. легенду]
Полный список членов класса

Открытые члены

Error (const char *fname, int nline, const AImage *obj, const char *msgfmt,...)

Закрытые данные

char message [512]

Конструктор(ы)

AImage::Error::Error | ( | const char * | fname,
 |  | int | nline,
 |  | const AImage * | obj,
 |  | const char * | msgfmt,
 |  |  | ...
 | ) |  |

Данные класса

char AImage::Error::message[512] [private]

Объявления и описания членов классов находятся в файлах:
  • aimage.h
  • image_io.cpp


Pipe Line Filters: Структура AImage::Info

AImage::Info

Структура AImage::Info

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

#include <aimage.h>

Полный список членов класса

Открытые атрибуты

int | width
int | height
int | bits
YImageClass iclass
YImageStore istore

Подробное описание

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

Данные класса

int AImage::Info::width

int AImage::Info::height

int AImage::Info::bits

YImageClass AImage::Info::iclass

YImageStore AImage::Info::istore

Объявления и описания членов структуры находятся в файле:
  • aimage.h


Pipe Line Filters: Структура AImage::Rgb

AImage::Rgb

Структура AImage::Rgb

#include <aimage.h>

Полный список членов класса

Открытые атрибуты

Pixel8 r
Pixel8 g
Pixel8 b

Подробное описание

Примеры:

invert.cpp.

Данные класса

Pixel8 AImage::Rgb::r

Pixel8 AImage::Rgb::g

Примеры:
invert.cpp.

Pixel8 AImage::Rgb::b

Примеры:
invert.cpp.

Объявления и описания членов структуры находятся в файле:
  • aimage.h


Pipe Line Filters: Класс AImageMem16

Класс AImageMem16
[Handling with images]

interface for 16 bit per pixel container Подробнее...

#include <aimage.h>

Граф наследования:AImageMem16:

[см. легенду]
Граф связей класса AImageMem16:

[см. легенду]
Полный список членов класса

Открытые типы

typedef Pixel16 | Pixel

Открытые члены

virtual const char * | ClassName () const
virtual AImage::YImageStore | GetImageStore () const
AImageMem16 ()
virtual | ~AImageMem16 ()
virtual Pixel16 * | operator[] (int y) const =0
virtual void | SetTo (Pixel16 color)

Открытые статические члены

static const char * | ThisClassName ()
static void | SetTo (AImageMem16 *img, Pixel16 color)

Закрытые члены

AImageMem16 (const AImageMem16 &im)

Подробное описание

interface for 16 bit per pixel container
Примеры:

invert.cpp и test_color_registration.cpp.

Определения типов

typedef Pixel16 AImageMem16::Pixel

Конструктор(ы)

AImageMem16::AImageMem16 ( const AImageMem16 & im ) [private]

AImageMem16::AImageMem16 ( ) [inline]

virtual AImageMem16::~AImageMem16 ( ) [inline, virtual]

Методы

const char * AImageMem16::ThisClassName ( ) [static]

Переопределяет метод предка AImage.

Переопределяется в ImageFragment16, ImageMem16Stuff и ImageMem16.

virtual const char* AImageMem16::ClassName ( ) const [inline, virtual]

Переопределяет метод предка AImage.

Переопределяется в ImageFragment16, ImageMem16Stuff, ImageMem16 и tplAImageReference< AImageMem16 >.

virtual AImage::YImageStore AImageMem16::GetImageStore ( ) const [inline, virtual]

Замещает AImage.

Переопределяется в tplAImageReference< AImageMem16 >.

virtual Pixel16* AImageMem16::operator[] ( int y ) const [pure virtual]

Замещается в ImageFragment16, ImageMem16Stuff и ImageMem16.

void AImageMem16::SetTo | ( | AImageMem16 * | img,
 |  | Pixel16 | color |
 | ) |  |  | [static]

virtual void AImageMem16::SetTo ( Pixel16 color ) [inline, virtual]

Переопределяется в ImageFragment16.

Объявления и описания членов классов находятся в файлах:
  • aimage.h
  • imagemem.cpp


Pipe Line Filters: Класс AImageMem8

Класс AImageMem8
[Handling with images]

Interface for 8 bit per pixel container. Подробнее...

#include <aimage.h>

Граф наследования:AImageMem8:

[см. легенду]
Граф связей класса AImageMem8:

[см. легенду]
Полный список членов класса

Открытые типы

typedef Pixel8 | Pixel

Открытые члены

virtual const char * | ClassName () const
virtual AImage::YImageStore | GetImageStore () const
AImageMem8 ()
virtual | ~AImageMem8 ()
virtual Pixel8 * | operator[] (int y) const =0
virtual void | SetTo (Pixel8 color)

Открытые статические члены

static const char * | ThisClassName ()
static void | SetTo (AImageMem8 *img, Pixel8 color)

Подробное описание

Interface for 8 bit per pixel container.
Примеры:

invert.cpp, test_alg_bresenham.cpp, test_color_registration.cpp, test_fast_gauss.cpp, test_image_registration_via_fft.cpp, test_plf_filters.cpp, test_plf_filters_rgb.cpp и work_with_image.cpp.

Определения типов

typedef Pixel8 AImageMem8::Pixel

Примеры:
test_alg_bresenham.cpp, test_color_registration.cpp и test_image_registration_via_fft.cpp.

Конструктор(ы)

AImageMem8::AImageMem8 ( ) [inline]

virtual AImageMem8::~AImageMem8 ( ) [inline, virtual]

Методы

const char * AImageMem8::ThisClassName ( ) [static]

Переопределяет метод предка AImage.

Переопределяется в ImageFragment8 и ImageMem8.

virtual const char* AImageMem8::ClassName ( ) const [inline, virtual]

Переопределяет метод предка AImage.

Переопределяется в ImageFragment8, ImageMem8 и tplAImageReference< AImageMem8 >.

virtual AImage::YImageStore AImageMem8::GetImageStore ( ) const [inline, virtual]

Замещает AImage.

Переопределяется в tplAImageReference< AImageMem8 >.

virtual Pixel8* AImageMem8::operator[] ( int y ) const [pure virtual]

Замещается в ImageFragment8 и ImageMem8.

void AImageMem8::SetTo | ( | AImageMem8 * | img,
 |  | Pixel8 | color |
 | ) |  |  | [static]

Примеры:
test_alg_bresenham.cpp.

virtual void AImageMem8::SetTo ( Pixel8 color ) [inline, virtual]

Переопределяется в ImageFragment8.

Объявления и описания членов классов находятся в файлах:
  • aimage.h
  • imagemem.cpp


Pipe Line Filters: Класс AImageMemFloat

Класс AImageMemFloat
[Handling with images]

Interface for float per pixel container //////. Подробнее...

#include <aimage.h>

Граф наследования:AImageMemFloat:

[см. легенду]
Граф связей класса AImageMemFloat:

[см. легенду]
Полный список членов класса

Открытые типы

typedef PixelFloat | Pixel

Открытые члены

virtual const char * | ClassName () const
virtual AImage::YImageStore | GetImageStore () const
AImageMemFloat ()
virtual | ~AImageMemFloat ()
virtual PixelFloat * | operator[] (int y) const =0
virtual void | SetTo (PixelFloat color)=0

Открытые статические члены

static const char * | ThisClassName ()

Подробное описание

Interface for float per pixel container //////.

Определения типов

typedef PixelFloat AImageMemFloat::Pixel

Конструктор(ы)

AImageMemFloat::AImageMemFloat ( ) [inline]

virtual AImageMemFloat::~AImageMemFloat ( ) [inline, virtual]

Методы

const char * AImageMemFloat::ThisClassName ( ) [static]

Переопределяет метод предка AImage.

Переопределяется в ImageMemFloat.

virtual const char* AImageMemFloat::ClassName ( ) const [inline, virtual]

Переопределяет метод предка AImage.

Переопределяется в ImageMemFloat.

virtual AImage::YImageStore AImageMemFloat::GetImageStore ( ) const [inline, virtual]

Замещает AImage.

virtual PixelFloat* AImageMemFloat::operator[] ( int y ) const [pure virtual]

Замещается в ImageMemFloat.

virtual void AImageMemFloat::SetTo ( PixelFloat color ) [pure virtual]

Замещается в ImageMemFloat.

Объявления и описания членов классов находятся в файлах:
  • aimage.h
  • imagemem.cpp


Pipe Line Filters: Класс AImageMemRgb16

Класс AImageMemRgb16
[Handling with images]

Interface for TrueColor 16 bit per each pixel sample container. Подробнее...

#include <aimage.h>

Граф наследования:AImageMemRgb16:

[см. легенду]
Граф связей класса AImageMemRgb16:

[см. легенду]
Полный список членов класса

Открытые типы

typedef AImageMem16 | PlaneImageType
typedef Pixel16 | Pixel

Открытые члены

virtual const char * | ClassName () const
virtual AImage::YImageStore | GetImageStore () const
AImageMemRgb16 ()
virtual | ~AImageMemRgb16 ()
virtual int | NumPlanes () const
virtual AImageMem16 * | GetPlane16 (int plane) const=0
virtual AImage * | GetPlane (int plane)
virtual const AImage * | GetPlane (int plane) const
virtual void | SetTo (Rgb color)=0

Открытые статические члены

static const char * | ThisClassName ()

Подробное описание

Interface for TrueColor 16 bit per each pixel sample container.

Определения типов

typedef AImageMem16 AImageMemRgb16::PlaneImageType

typedef Pixel16 AImageMemRgb16::Pixel

Конструктор(ы)

AImageMemRgb16::AImageMemRgb16 ( ) [inline]

virtual AImageMemRgb16::~AImageMemRgb16 ( ) [inline, virtual]

Методы

const char * AImageMemRgb16::ThisClassName ( ) [static]

Переопределяет метод предка AImage.

virtual const char* AImageMemRgb16::ClassName ( ) const [inline, virtual]

Переопределяет метод предка AImage.

virtual AImage::YImageStore AImageMemRgb16::GetImageStore ( ) const [inline, virtual]

Замещает AImage.

virtual int AImageMemRgb16::NumPlanes ( ) const [inline, virtual]

Переопределяет метод предка AImage.

virtual AImageMem16* AImageMemRgb16::GetPlane16 ( int plane ) const [pure virtual]

virtual AImage* AImageMemRgb16::GetPlane ( int plane ) [inline, virtual]

Переопределяет метод предка AImage.

virtual const AImage* AImageMemRgb16::GetPlane ( int plane ) const [inline, virtual]

Переопределяет метод предка AImage.

virtual void AImageMemRgb16::SetTo ( Rgb color ) [pure virtual]

Объявления и описания членов классов находятся в файлах:
  • aimage.h
  • imagemem.cpp


Pipe Line Filters: Класс AImageMemRgb8

Класс AImageMemRgb8
[Handling with images]

Interface for TrueColor 8 bit per each pixel sample container. Подробнее...

#include <aimage.h>

Граф наследования:AImageMemRgb8:

[см. легенду]
Граф связей класса AImageMemRgb8:

[см. легенду]
Полный список членов класса

Открытые типы

typedef AImageMem8 | PlaneImageType
typedef Pixel8 | Pixel

Открытые члены

virtual const char * | ClassName () const
virtual AImage::YImageStore | GetImageStore () const
AImageMemRgb8 ()
virtual | ~AImageMemRgb8 ()
virtual int | NumPlanes () const
virtual AImageMem8 * | GetPlane8 (int plane) const=0
virtual AImage * | GetPlane (int plane)
virtual const AImage * | GetPlane (int plane) const
virtual void | SetTo (Rgb color)

Открытые статические члены

static const char * | ThisClassName ()
static void | SetTo (AImageMemRgb8 *img, Rgb color)

Подробное описание

Interface for TrueColor 8 bit per each pixel sample container.
Примеры:

invert.cpp, test_color_registration.cpp, test_plf_filters_rgb.cpp и work_with_image.cpp.

Определения типов

typedef AImageMem8 AImageMemRgb8::PlaneImageType

typedef Pixel8 AImageMemRgb8::Pixel

Конструктор(ы)

AImageMemRgb8::AImageMemRgb8 ( ) [inline]

virtual AImageMemRgb8::~AImageMemRgb8 ( ) [inline, virtual]

Методы

const char * AImageMemRgb8::ThisClassName ( ) [static]

Переопределяет метод предка AImage.

Переопределяется в ImageFragmentRgb8 и ImageMemRgb8.

virtual const char* AImageMemRgb8::ClassName ( ) const [inline, virtual]

Переопределяет метод предка AImage.

Переопределяется в ImageFragmentRgb8, ImageMemRgb8 и tplAImageReference< AImageMemRgb8 >.

virtual AImage::YImageStore AImageMemRgb8::GetImageStore ( ) const [inline, virtual]

Замещает AImage.

Переопределяется в tplAImageReference< AImageMemRgb8 >.

virtual int AImageMemRgb8::NumPlanes ( ) const [inline, virtual]

Переопределяет метод предка AImage.

Переопределяется в tplAImageReference< AImageMemRgb8 >.

virtual AImageMem8* AImageMemRgb8::GetPlane8 ( int plane ) const [pure virtual]

Замещается в ImageFragmentRgb8 и ImageMemRgb8.

Примеры:
invert.cpp, test_color_registration.cpp, test_plf_filters_rgb.cpp и work_with_image.cpp.

virtual AImage* AImageMemRgb8::GetPlane ( int plane ) [inline, virtual]

Переопределяет метод предка AImage.

virtual const AImage* AImageMemRgb8::GetPlane ( int plane ) const [inline, virtual]

Переопределяет метод предка AImage.

void AImageMemRgb8::SetTo | ( | AImageMemRgb8 * | img,
 |  | Rgb | color |
 | ) |  |  | [static]

virtual void AImageMemRgb8::SetTo ( Rgb color ) [inline, virtual]

Переопределяется в ImageFragmentRgb8.

Объявления и описания членов классов находятся в файлах:
  • aimage.h
  • imagemem.cpp


Pipe Line Filters: Класс AImageProxy

Класс AImageProxy

#include <imtransf.h>

Граф наследования:AImageProxy:

[см. легенду]
Полный список членов класса

Открытые члены

virtual | ~AImageProxy ()
virtual int | width () const=0
virtual int | height () const=0
virtual int | bits () const=0
virtual AImage::YImageClass | imageClass () const=0
virtual int | get (int x, int y) const=0
virtual int | maxValue () const=0
virtual void | set (int x, int y, int value)=0
virtual AImageProxy * | clone () const=0

Конструктор(ы)

virtual AImageProxy::~AImageProxy ( ) [inline, virtual]

Методы

virtual int AImageProxy::width ( ) const [pure virtual]

Замещается в ImageProxy< ImageT > и ImageProxyConst< ImageT >.

virtual int AImageProxy::height ( ) const [pure virtual]

Замещается в ImageProxy< ImageT > и ImageProxyConst< ImageT >.

virtual int AImageProxy::bits ( ) const [pure virtual]

Замещается в ImageProxy< ImageT > и ImageProxyConst< ImageT >.

virtual AImage::YImageClass AImageProxy::imageClass ( ) const [pure virtual]

Замещается в ImageProxy< ImageT > и ImageProxyConst< ImageT >.

virtual int AImageProxy::get | ( | int | x,
 |  | int | y |
 | ) |  |  | const [pure virtual]

Замещается в ImageProxy< ImageT > и ImageProxyConst< ImageT >.

virtual int AImageProxy::maxValue ( ) const [pure virtual]

Замещается в ImageProxy< ImageT > и ImageProxyConst< ImageT >.

virtual void AImageProxy::set | ( | int | x,
 |  | int | y,
 |  | int | value |
 | ) |  |  | [pure virtual]

Замещается в ImageProxy< ImageT > и ImageProxyConst< ImageT >.

virtual AImageProxy* AImageProxy::clone ( ) const [pure virtual]

Замещается в ImageProxy< ImageT > и ImageProxyConst< ImageT >.

Объявления и описания членов класса находятся в файле:
  • imtransf.h


Pipe Line Filters: Шаблон класса Vtl::Meta::Align< T, sz, align_to >

Vtl::Meta::Align

Шаблон класса Vtl::Meta::Align< T, sz, align_to >

#include <vtl_meta_tools.h>

Полный список членов класса

Открытые типы

enum | { value = Align_<is_next, value = Align_<is_next }

Закрытые типы

enum | { is_next = ((sz*sizeof(T))align_to) }

Классы

struct | Align_
struct | Align_< 0, size >

Подробное описание

template<typename T, int sz, int align_to>
class Vtl::Meta::Align< T, sz, align_to >

То же самое, что и функция int align(int sz,int align_to), но если sz и align_to изветсны на момент компиляции вычисление производится тоже в момент компиляции, а не в runtime. Результат - в поле value. Например
 enum { size=11};
 enum { new_size = Align<float,size,8>::value };

Перечисления

template<typename T, int sz, int align_to>
anonymous enum [private]

Элементы перечислений:
is_next

template<typename T, int sz, int align_to>
anonymous enum

Элементы перечислений:
value
value

Объявления и описания членов класса находятся в файле:
  • vtl_meta_tools.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >

Vtl::Meta::Align::Align_

Шаблон структуры Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >

Полный список членов класса

Открытые типы

enum | { sz2 = size+1 }
enum | { is_next = ((sz2*sizeof(T))align_to) }
enum | { value = Align_<is_next, value = Align_<is_next }

template<typename T, int sz, int align_to>
template<int next, int size>
struct Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >

Перечисления

template<typename T, int sz, int align_to>
template<int next, int size>
anonymous enum

Элементы перечислений:
sz2

template<typename T, int sz, int align_to>
template<int next, int size>
anonymous enum

Элементы перечислений:
is_next

template<typename T, int sz, int align_to>
template<int next, int size>
anonymous enum

Элементы перечислений:
value
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_tools.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::Align< T, sz, align_to >::Align_< 0, size >

Vtl::Meta::Align::Align_< 0, size >

Шаблон структуры Vtl::Meta::Align< T, sz, align_to >::Align_< 0, size >

Полный список членов класса

Открытые типы

enum { value = size }

template<typename T, int sz, int align_to>
template<int size>
struct Vtl::Meta::Align< T, sz, align_to >::Align_< 0, size >

Перечисления

template<typename T, int sz, int align_to>
template<int size>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_tools.h


Pipe Line Filters: Класс Vtl::Types::TL::Append

Vtl::Types::TL::Append

Класс Vtl::Types::TL::Append

Добавление элемента или списка типов. Подробнее...

#include <alexandresku.h>

Подробное описание

Добавление элемента или списка типов.

    Vtl::Types::TL::Append<class TList,class T>
Например:

Объявления и описания членов класса находятся в файле:

  • alexandresku.h

 Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008
Author: Dmitry V. Yurin
  [image]
 http://imaging.cs.msu.su/index.html


Pipe Line Filters: Шаблон структуры Vtl::Types::TL::AppendIf< TList, U, append >

Vtl::Types::TL::AppendIf

Шаблон структуры Vtl::Types::TL::AppendIf< TList, U, append >

Добавлять к списку типов, если последний шаблонный аргумент - TRUE. Подробнее...

#include <alexandresku.h>

Полный список членов класса

Открытые типы

typedef TList Result

Подробное описание

template<class TList, class U, bool append>
struct Vtl::Types::TL::AppendIf< TList, U, append >

Добавлять к списку типов, если последний шаблонный аргумент - TRUE.

Определения типов

template<class TList, class U, bool append>
typedef TList Vtl::Types::TL::AppendIf< TList, U, append >::Result

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, ndim >

Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct

Шаблон структуры Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, ndim >

#include <integral_transforms.h>

Полный список членов класса

Открытые статические члены

static I value (I n[])

template<typename I, size_t ndim>
struct Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, ndim >

Методы

template<typename I, size_t ndim>
static I Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, ndim >::value ( I n[] ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон структуры Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, 0 >

Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, 0 >

Шаблон структуры Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, 0 >

#include <integral_transforms.h>

Полный список членов класса

Открытые статические члены

static I value (I n[])

template<typename I>
struct Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, 0 >

Методы

template<typename I>
static I Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, 0 >::value ( I n[] ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Класс ATransformFunction

Класс ATransformFunction

#include <imtransf.h>

Полный список членов класса

Открытые члены

virtual YPoint< double > | forward (const YPoint< double > &p) const =0
virtual YPoint< double > | reverse (const YPoint< double > &p) const =0
virtual bool | canForward (const YPoint< double > &p) const =0
virtual bool | canReverse (const YPoint< double > &p) const =0
virtual ATransformFunction * | clone () const=0

Методы

virtual YPoint<double> ATransformFunction::forward ( const YPoint< double > & p ) const [pure virtual]

virtual YPoint<double> ATransformFunction::reverse ( const YPoint< double > & p ) const [pure virtual]

virtual bool ATransformFunction::canForward ( const YPoint< double > & p ) const [pure virtual]

virtual bool ATransformFunction::canReverse ( const YPoint< double > & p ) const [pure virtual]

virtual ATransformFunction* ATransformFunction::clone ( ) const [pure virtual]

Объявления и описания членов класса находятся в файле:
  • imtransf.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Average< T, P >

Vtl::Plf::Average

Шаблон класса Vtl::Plf::Average< T, P >
[Complex filters]

Вычисляет сепарабельную двумерную свертку c одинаковыми ядрами по X и по Y. Обычно используется для сглаживания (Mean, Average) изображения, в частности Гауссова сглаживания (. Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::Average< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::Average< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

InPort< T > & | in ()
OutPort< T, P > & | out ()
Average ()
Average (std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel_1D, P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel_1D, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~Average ()

Закрытые члены

Average (const Average &)
Average & | operator= (const Average &)

Закрытые данные

SeparableConv2D< T, P > | conv2D

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::Average< T, P >

Вычисляет сепарабельную двумерную свертку c одинаковыми ядрами по X и по Y. Обычно используется для сглаживания (Mean, Average) изображения, в частности Гауссова сглаживания (.

См. также:
class AverageGauss). В отличие от последнего класса, этот класс принимает не параметры $ sigma$ и размер окрестности в сигмах, а ядро свертки, что позволяет:
  • сглаживать по другим ядрам
  • при необходимости сглаживать с оджинаковыми ядрами по многим разным ветвям фильтрации подставить адрес одного и того же ядра для каждой ветви (экономия памяти, совместное использование одного ядра).
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Average< T, P >::Average ( const Average< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Average< T, P >::Average ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Average< T, P >::Average | ( | std::string | name,
 |  | const Kernel::Base< T, Kernel::KT_Conv > * | kernel_1D,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::Average< T, P >::~Average ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Average& Vtl::Plf::Average< T, P >::operator= ( const Average< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T>& Vtl::Plf::Average< T, P >::in ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::Average< T, P >::out ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::Average< T, P >::Init | ( | std::string | name,
 |  | const Kernel::Base< T, Kernel::KT_Conv > * | kernel_1D,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
SeparableConv2D<T,P> Vtl::Plf::Average< T, P >::conv2D [private]

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::Plf::AverageGauss< T, P >

Vtl::Plf::AverageGauss

Шаблон класса Vtl::Plf::AverageGauss< T, P >
[Complex filters]

Выполняет сглаживание (Mean, Average) изображения по гауссовой окрестности (. Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::AverageGauss< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::AverageGauss< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

InPort< T > & | in ()
OutPort< T, P > & | out ()
AverageGauss ()
AverageGauss (std::string name, float sigma=1.0f, float env_sigmas=2.5f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (std::string name, float sigma=1.0f, float env_sigmas=2.5f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~AverageGauss ()

Закрытые типы

typedef Vtl::ImAlg::WndFun::Gauss<
T, 0 > 		G0

Закрытые члены

AverageGauss (const AverageGauss &)
AverageGauss & | operator= (const AverageGauss &)

Закрытые данные

Vtl::Plf::Kernel::FKern< T > | gauss
Average< T, P > | aver

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::AverageGauss< T, P >

Выполняет сглаживание (Mean, Average) изображения по гауссовой окрестности (.

См. также:
class Average).

Структура фильтра Vtl::Plf::Average - сглаживание изображения по гауссовой окрестности

Результат воздействия на изображение

этим фильтром
Примеры:

test_plf_filters.cpp.

Определения типов

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
typedef Vtl::ImAlg::WndFun::Gauss<T,0> Vtl::Plf::AverageGauss< T, P >::G0 [private]

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::AverageGauss< T, P >::AverageGauss ( const AverageGauss< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::AverageGauss< T, P >::AverageGauss ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::AverageGauss< T, P >::AverageGauss | ( | std::string | name,
 |  | float | sigma = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::AverageGauss< T, P >::~AverageGauss ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
AverageGauss& Vtl::Plf::AverageGauss< T, P >::operator= ( const AverageGauss< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T>& Vtl::Plf::AverageGauss< T, P >::in ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::AverageGauss< T, P >::out ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::AverageGauss< T, P >::Init | ( | std::string | name,
 |  | float | sigma = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Kernel::FKern<T> Vtl::Plf::AverageGauss< T, P >::gauss [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Average<T,P> Vtl::Plf::AverageGauss< T, P >::aver [private]

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::Bartlett< T, D >

Vtl::ImAlg::WndFun::Bartlett

Шаблон класса Vtl::ImAlg::WndFun::Bartlett< T, D >

Окно Бартлета (Bartlett - треугольное). Определяется формулой. Подробнее...

#include <windowing_fun.h>

Полный список членов класса

Открытые типы

typedef T | arg_type

Открытые члены

template<class TT>
Bartlett (TT size_)
template<class TT>
T | operator() (TT x) const
arg_type | size () const
arg_type | center () const
arg_type | left () const
arg_type | right () const

Открытые статические члены

static const char * | Name ()

Закрытые члены

T | result (T x, Loki::Int2Type< 0 >) const
T | result (T x, Loki::Int2Type< 1 >) const

Закрытые данные

const T | c
const arg_type | _size_

Подробное описание

template<typename T, unsigned D>
class Vtl::ImAlg::WndFun::Bartlett< T, D >

Окно Бартлета (Bartlett - треугольное). Определяется формулой.

Первая производная имеют вид:

Производные более высокого порядка не определены.

Примеры:

test_plf_kernels.cpp.

Определения типов

template<typename T, unsigned D>
typedef T Vtl::ImAlg::WndFun::Bartlett< T, D >::arg_type

Конструктор(ы)

template<typename T, unsigned D>
template<class TT>
Vtl::ImAlg::WndFun::Bartlett< T, D >::Bartlett ( TT size_ ) [inline]

Методы

template<typename T, unsigned D>
static const char* Vtl::ImAlg::WndFun::Bartlett< T, D >::Name ( ) [inline, static]

template<typename T, unsigned D>
template<class TT>
T Vtl::ImAlg::WndFun::Bartlett< T, D >::operator() ( TT x ) const [inline]

template<typename T, unsigned D>
arg_type Vtl::ImAlg::WndFun::Bartlett< T, D >::size ( ) const [inline]

template<typename T, unsigned D>
arg_type Vtl::ImAlg::WndFun::Bartlett< T, D >::center ( ) const [inline]

template<typename T, unsigned D>
arg_type Vtl::ImAlg::WndFun::Bartlett< T, D >::left ( ) const [inline]

template<typename T, unsigned D>
arg_type Vtl::ImAlg::WndFun::Bartlett< T, D >::right ( ) const [inline]

template<typename T, unsigned D>
T Vtl::ImAlg::WndFun::Bartlett< T, D >::result | ( | T | x,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | const [inline, private]

template<typename T, unsigned D>
T Vtl::ImAlg::WndFun::Bartlett< T, D >::result | ( | T | x,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | const [inline, private]

Данные класса

template<typename T, unsigned D>
const T Vtl::ImAlg::WndFun::Bartlett< T, D >::c [private]

template<typename T, unsigned D>
const arg_type Vtl::ImAlg::WndFun::Bartlett< T, D >::_size_ [private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >

Vtl::Plf::Kernel::Base

Шаблон класса Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >

Базовый класс для написания ядер свертки/кросскорреляции/оконых функций. Тип определяется вторым шаблонным параметром. ВНИМАНИЕ! Ядро для свертки отличается от других ядер тем, что оно хранится в обратном порядке, так, что свертка вычисляется как кросскорреляция. В этой связи когда через функцию void _Init(int left,int right) задается носитель ядра, то в случае, если это ядро свертки - то в этой функции задается именно область, где функция, с которой будет осуществляться свертка отлична от нуля. Класс же Base возвращает в качестве left() b right() левую и правую "полуширину" функции, с которой будет вычисляться кросскорреляция, т.е. для ядра кросскорреляции и окна - те же left и right, а для ядра свертки right и left. Подробнее...

#include <plf_kernels_1d.h>

Граф наследования:Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { kernel_type = kernel_type_ }
enum | { double_kernel = double_kernel_?1:0 }
typedef T | value_type
typedef T & | reference_type
typedef const T & | const_reference_type
typedef T * | pointer_type
typedef const T * | const_pointer_type
typedef T * | iterator
typedef const T * | const_iterator

Открытые члены

Type | type () const
virtual | ~Base ()
const_iterator | center () const
Итератор на левый край ядра.
const_iterator | begin () const
Итератор на центр ядра.
const_iterator | end () const
Итератор на элемент СЛЕДУЮЩИЙ за последним (справа), как в STL.
const T * | Center () const
Возвращает указатель, индекс массива - позиция элемента в ядре, 0 - центральный элемент ядра, допустимые значения индекса i: -left <= i <= right.
const T * | Left () const
Возвращает указатель, индекс массива - позиция элемента в ядре, 0 - крайний левый элемент ядра, допустимые значения индекса i: 0<= i < size.
const T * | Right () const
Возвращает указатель, индекс массива - позиция элемента в ядре, 0 - крайний правый элемент ядра (А НЕ СЛЕДУЮЩИЙ ЗА ПРАВЫМ!), допустимые значения индекса i: -(size-1)<= i <= 0.
int | size () const
Размер ядра, количество элементов массива, size == left+1+right.
int | left () const
Внимание! left>=0.
int | right () const
std::string | Name () const
std::string | SaveForMathLab () const
Сохранить в формате, который считывается Matlab. Для этого результат возврата надо сохранить в файл и считать из Matlab с помощью функции load().

Защищенные члены

Base (std::string name)
void | _Init (int left, int right)
Ширина окна равна left+1+right. Если left=right=0, то окно шириной 1. "Нуль" начала координат находится там, где 1 в формуле left+1+right.
void | _Init_Last_step ()
iterator center_internal ()
iterator begin_internal ()
iterator end_internal ()
template<unsigned N>
void | normalize ()
Выполняет нормировку вычисленного ядра (на случай если функция не нормирована). Шаблонный параметр указывает какая производная функции используется в качестве ядра. Нормировочная константа вычисляется из соображений, чтобы интеграл в указанных пределах от оригинальной функции был равен нулю. Значение шаблонного аргумента 0 соответствует нулевой производной, т.е. самой функции. Для ядер типа окна (KT_Win) нормировка по умолчанию не произволдится, в случае необходимости следует переопределить в производном классе функцию normalize_window().
virtual void | normalize_window ()

Закрытые члены

Base ()
Base (const Base &)
Base & | operator= (const Base &)
void | _double_ker (Loki::Int2Type< 1 >)
void | _double_ker (Loki::Int2Type< 0 >)
void | multBy (T val)

Закрытые данные

std::vector< T > | data
iterator ptr_left
iterator ptr_center
iterator ptr_after_right
int | _size
int | _left
int | _right
std::string | filtername

Подробное описание

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
class Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >

Базовый класс для написания ядер свертки/кросскорреляции/оконых функций. Тип определяется вторым шаблонным параметром. ВНИМАНИЕ! Ядро для свертки отличается от других ядер тем, что оно хранится в обратном порядке, так, что свертка вычисляется как кросскорреляция. В этой связи когда через функцию void _Init(int left,int right) задается носитель ядра, то в случае, если это ядро свертки - то в этой функции задается именно область, где функция, с которой будет осуществляться свертка отлична от нуля. Класс же Base возвращает в качестве left() b right() левую и правую "полуширину" функции, с которой будет вычисляться кросскорреляция, т.е. для ядра кросскорреляции и окна - те же left и right, а для ядра свертки right и left.
Примеры:

test_plf_kernels.cpp.

Определения типов

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
typedef T Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::value_type

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
typedef T& Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::reference_type

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
typedef const T& Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::const_reference_type

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
typedef T* Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::pointer_type

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
typedef const T* Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::const_pointer_type

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
typedef T* Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::iterator

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
typedef const T* Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::const_iterator

Перечисления

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
anonymous enum

Элементы перечислений:
kernel_type

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
anonymous enum

Элементы перечислений:
double_kernel

Конструктор(ы)

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::Base ( ) [private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::Base ( const Base< T, kernel_type_, double_kernel_ > & ) [private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::Base ( std::string name ) [inline, protected]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
virtual Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::~Base ( ) [inline, virtual]

Методы

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
Base& Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::operator= ( const Base< T, kernel_type_, double_kernel_ > & ) [private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
void Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::_Init | ( | int | left,
 |  | int | right |
 | ) |  |  | [inline, protected]

Ширина окна равна left+1+right. Если left=right=0, то окно шириной 1. "Нуль" начала координат находится там, где 1 в формуле left+1+right.

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
void Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::_Init_Last_step ( ) [inline, protected]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
void Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::_double_ker ( Loki::Int2Type< 1 > ) [inline, private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
void Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::_double_ker ( Loki::Int2Type< 0 > ) [inline, private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
Type Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::type ( ) const [inline]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
const_iterator Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::center ( ) const [inline]

Итератор на левый край ядра.

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
const_iterator Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::begin ( ) const [inline]

Итератор на центр ядра.

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
const_iterator Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::end ( ) const [inline]

Итератор на элемент СЛЕДУЮЩИЙ за последним (справа), как в STL.

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
const T* Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::Center ( ) const [inline]

Возвращает указатель, индекс массива - позиция элемента в ядре, 0 - центральный элемент ядра, допустимые значения индекса i: -left <= i <= right.

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
const T* Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::Left ( ) const [inline]

Возвращает указатель, индекс массива - позиция элемента в ядре, 0 - крайний левый элемент ядра, допустимые значения индекса i: 0<= i < size.

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
const T* Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::Right ( ) const [inline]

Возвращает указатель, индекс массива - позиция элемента в ядре, 0 - крайний правый элемент ядра (А НЕ СЛЕДУЮЩИЙ ЗА ПРАВЫМ!), допустимые значения индекса i: -(size-1)<= i <= 0.

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
int Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::size ( ) const [inline]

Размер ядра, количество элементов массива, size == left+1+right.

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
int Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::left ( ) const [inline]

Внимание! left>=0.

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
int Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::right ( ) const [inline]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
std::string Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::Name ( ) const [inline]

Взвращает имя ядра, удобно для целей отладки, накладные расходы от присвоения имен ядрам в прогремме не велики, поэтому библиотека ТЕРБУЕТ это делать, конструктора без параметров у ядра нет, как минимум имя ядру должно быть дано. В случае, когда ядро строится на основе функтора (см. Vtl::Plf::Kernel::FKern) - ядру присваивается имя, взятое у функтора.

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
std::string Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::SaveForMathLab ( ) const [inline]

Сохранить в формате, который считывается Matlab. Для этого результат возврата надо сохранить в файл и считать из Matlab с помощью функции load().

Например:
С++:

 template<class K>
 void save(const K* kernel)
 {
    std::string name=std::string("kernel_")+kernel->Name()+".txt";
    std::string s=kernel->SaveForMathLab();
    std::ofstream os;
    os.open(name.c_str(),std::ios_base::out | std::ios_base::trunc );
        os << s;
    os.flush();
    os.close();
 }
 int main(int argc, const char*argv[])
 {
        typedef Vtl::Plf::Kernel::F::Blackman<float,0> FF;
        FF func(19);
        Vtl::Plf::Kernel::FKern<float,FF> ker(func);
        save(&ker);
 }
Matlab:
 >> a=load('kernel_Blackman.txt');
 >> x=a(:,1);
 >> y=a(:,2);
 >> plot(x,y);

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
iterator Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::center_internal ( ) [inline, protected]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
iterator Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::begin_internal ( ) [inline, protected]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
iterator Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::end_internal ( ) [inline, protected]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
template<unsigned N>
void Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::normalize ( ) [inline, protected]

Выполняет нормировку вычисленного ядра (на случай если функция не нормирована). Шаблонный параметр указывает какая производная функции используется в качестве ядра. Нормировочная константа вычисляется из соображений, чтобы интеграл в указанных пределах от оригинальной функции был равен нулю. Значение шаблонного аргумента 0 соответствует нулевой производной, т.е. самой функции. Для ядер типа окна (KT_Win) нормировка по умолчанию не произволдится, в случае необходимости следует переопределить в производном классе функцию normalize_window().

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
virtual void Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::normalize_window ( ) [inline, protected, virtual]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
void Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::multBy ( T val ) [inline, private]

Данные класса

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
std::vector<T> Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::data [private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
iterator Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::ptr_left [private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
iterator Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::ptr_center [private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
iterator Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::ptr_after_right [private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
int Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::_size [private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
int Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::_left [private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
int Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::_right [private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
std::string Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >::filtername [private]

Объявления и описания членов класса находятся в файле:
  • plf_kernels_1d.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >

Vtl::ImAlg::Registration::Base

Шаблон класса Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >

#include <img_registration.h>

Граф наследования:Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >:

[см. легенду]
Граф связей класса Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >:

[см. легенду]
Полный список членов класса

Защищенные типы

typedef Storage< Real_t, MemBlocks > | Storage_t

Защищенные члены

virtual | ~Base ()
Base ()
void | Init (typename Storage_t::Offsets_t &s)
template<unsigned n_img>
Real_t * | _img ()
template<typename Iter>
void | _Insert (Vtl::Plf::OutPortNoPostProc< Real_t > *input, Iter src_begin, Iter src_end, Real_t *img, int w, int h, int nls)

Защищенные статические члены

template<unsigned n_img>
static std::string | Name (std::string name)

Защищенные данные

Storage_t storage_

template<typename Real_t, unsigned MemBlocks>
class Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >

Определения типов

template<typename Real_t, unsigned MemBlocks>
typedef Storage<Real_t,MemBlocks> Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >::Storage_t [protected]

Конструктор(ы)

template<typename Real_t, unsigned MemBlocks>
virtual Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >::~Base ( ) [inline, protected, virtual]

template<typename Real_t, unsigned MemBlocks>
Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >::Base ( ) [inline, protected]

Методы

template<typename Real_t, unsigned MemBlocks>
void Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >::Init ( typename Storage_t::Offsets_t & s ) [inline, protected]

template<typename Real_t, unsigned MemBlocks>
template<unsigned n_img>
Real_t* Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >::_img ( ) [inline, protected]

template<typename Real_t, unsigned MemBlocks>
template<unsigned n_img>
static std::string Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >::Name ( std::string name ) [inline, static, protected]

template<typename Real_t, unsigned MemBlocks>
template<typename Iter>
void Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >::_Insert | ( | Vtl::Plf::OutPortNoPostProc< Real_t > * | input,
 |  | Iter | src_begin,
 |  | Iter | src_end,
 |  | Real_t * | img,
 |  | int | w,
 |  | int | h,
 |  | int | nls |
 | ) |  |  | [inline, protected]

После вызова этой функции указанное изображение оказывается в указанном внутреннем буфере, Выполнено ограничение окном и свертка с оконной функцией для ограничения спектра, размер изображения теперь равен тому, который задан при вызове функции Init() соответствующего класса и является степенгью 2. Необходимое дополнение нулями выполнено.

Данные класса

template<typename Real_t, unsigned MemBlocks>
Storage_t Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >::storage_ [protected]

Объявления и описания членов класса находятся в файле:
  • img_registration.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Model::Base< T >

Vtl::ImAlg::Model::Base

Шаблон класса Vtl::ImAlg::Model::Base< T >

Класс - используется только в качестве базового класса для моделей. Закрыт для прямого использования. Нужен только для определения и реализации общих для этих классов действий в одном месте (для избежания copy-pase). Подробнее...

#include <img_trans_models.h>

Граф наследования:Vtl::ImAlg::Model::Base< T >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef T | value_type
typedef Vtl::NumAlg::Lin::ublas::c_vector<
T, 2 > 		Vector2

Открытые члены

T | getCof (int w, int h) const
Vector2 | getCenter (int w, int h) const
void | getCenter (int w, int h, Vector2 &v) const

Защищенные члены

Base ()
~Base ()

Подробное описание

template<typename T>
class Vtl::ImAlg::Model::Base< T >

Класс - используется только в качестве базового класса для моделей. Закрыт для прямого использования. Нужен только для определения и реализации общих для этих классов действий в одном месте (для избежания copy-pase).

Определения типов

template<typename T>
typedef T Vtl::ImAlg::Model::Base< T >::value_type

Переопределяется в Vtl::ImAlg::Model::Homography< T >.

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_vector<T,2> Vtl::ImAlg::Model::Base< T >::Vector2

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Model::Base< T >::Base ( ) [inline, protected]

template<typename T>
Vtl::ImAlg::Model::Base< T >::~Base ( ) [inline, protected]

Методы

template<typename T>
T Vtl::ImAlg::Model::Base< T >::getCof | ( | int | w,
 |  | int | h |
 | ) |  |  | const [inline]

template<typename T>
Vector2 Vtl::ImAlg::Model::Base< T >::getCenter | ( | int | w,
 |  | int | h |
 | ) |  |  | const [inline]

template<typename T>
void Vtl::ImAlg::Model::Base< T >::getCenter | ( | int | w,
 |  | int | h,
 |  | Vector2 & | v |
 | ) |  |  | const [inline]

Объявления и описания членов класса находятся в файле:
  • img_trans_models.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Model::BaseAffine< T >

Vtl::ImAlg::Model::BaseAffine

Шаблон класса Vtl::ImAlg::Model::BaseAffine< T >

Класс - используется только в качестве базового класса для моделей укладывающихся в рамки афинной. Закрыт для прямого использования. Нужен только для определения и реализации общих для этих классов действий в одном месте (для избежания copy-pase). Подробнее...

#include <img_trans_models.h>

Граф наследования:Vtl::ImAlg::Model::BaseAffine< T >:

[см. легенду]
Граф связей класса Vtl::ImAlg::Model::BaseAffine< T >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { isLinear = 1 }
enum | { isStrightLineSaving = 1 }
typedef Vtl::NumAlg::Lin::ublas::c_matrix<
T, 2, 2 > 		MatrixA
typedef Vtl::NumAlg::Lin::ublas::c_vector<
T, 2 > 		VectorB
typedef Transf::Affine< T > | Transf

Открытые члены

Transf | getTransf (int w, int h) const
template<typename Pixel>
void | Interp (const Pixel *in, int w, int h, int nls, Pixel *out, int nls_out, Pixel fill=Pixel(0)) const
T | max_err_at_rect (BaseAffine &model_2, T x1, T y1, T x2, T y2) const

Открытые атрибуты

MatrixA A
VectorB b

Защищенные члены

BaseAffine ()
~BaseAffine ()
void | _setIdentity ()

Подробное описание

template<typename T>
class Vtl::ImAlg::Model::BaseAffine< T >

Класс - используется только в качестве базового класса для моделей укладывающихся в рамки афинной. Закрыт для прямого использования. Нужен только для определения и реализации общих для этих классов действий в одном месте (для избежания copy-pase).

Определения типов

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_matrix<T,2,2> Vtl::ImAlg::Model::BaseAffine< T >::MatrixA

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_vector<T,2> Vtl::ImAlg::Model::BaseAffine< T >::VectorB

template<typename T>
typedef Transf::Affine<T> Vtl::ImAlg::Model::BaseAffine< T >::Transf

Перечисления

template<typename T>
anonymous enum

Элементы перечислений:
isLinear

template<typename T>
anonymous enum

Элементы перечислений:
isStrightLineSaving

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Model::BaseAffine< T >::BaseAffine ( ) [inline, protected]

template<typename T>
Vtl::ImAlg::Model::BaseAffine< T >::~BaseAffine ( ) [inline, protected]

Методы

template<typename T>
void Vtl::ImAlg::Model::BaseAffine< T >::_setIdentity ( ) [inline, protected]

template<typename T>
Transf Vtl::ImAlg::Model::BaseAffine< T >::getTransf | ( | int | w,
 |  | int | h |
 | ) |  |  | const [inline]

template<typename T>
template<typename Pixel>
void Vtl::ImAlg::Model::BaseAffine< T >::Interp | ( | const Pixel * | in,
 |  | int | w,
 |  | int | h,
 |  | int | nls,
 |  | Pixel * | out,
 |  | int | nls_out,
 |  | Pixel | fill = Pixel(0) |
 | ) |  |  | const [inline]

template<typename T>
T Vtl::ImAlg::Model::BaseAffine< T >::max_err_at_rect | ( | BaseAffine< T > & | model_2,
 |  | T | x1,
 |  | T | y1,
 |  | T | x2,
 |  | T | y2 |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
MatrixA Vtl::ImAlg::Model::BaseAffine< T >::A

template<typename T>
VectorB Vtl::ImAlg::Model::BaseAffine< T >::b

Объявления и описания членов класса находятся в файле:
  • img_trans_models.h


Pipe Line Filters: Класс Vtl::NumAlg::Spf::bess

Vtl::NumAlg::Spf::bess

Класс Vtl::NumAlg::Spf::bess

Returns the Bessel functions for any real x. Подробнее...

#include <spec_functions.h>

Полный список членов класса

Открытые статические члены

template<unsigned n>
static float | J (float x)
Функция Бесселя первого рода $ J_n(x) $ целочисленного порядка n.
template<unsigned n>
static float | Y (float x)
Функция Бесселя второго рода $ Y_n(x) $ целочисленного порядка n.
template<unsigned n>
static float | I (float x)
Модифицированная функция Бесселя $ I_n(x) $ целочисленного порядка n.
template<unsigned n>
static float | K (float x)
Модифицированная функция Бесселя $ K_n(x) $ целочисленного порядка n.
static float | Int_J0 (float x)
This function calculates the value of integral of bessel function Jo(t) by dt from 0. to x by means of summarizing Chebyshev polinoms set. The calculation error is less then +/- 1.5e-08. x belong to interval (-7,+oo). [Luke_Y_L__M_Mir_1980].

Закрытые статические члены

static float | bessj (float x, Loki::Int2Type< 0 >)
Returns the Bessel function J0(x) for any real x.
static float | bessy (float x, Loki::Int2Type< 0 >)
static float | bessj (float x, Loki::Int2Type< 1 >)
Returns the Bessel function J1(x) for any real x.
static float | bessy (float x, Loki::Int2Type< 1 >)
Returns the Bessel function Y1(x) for positive x.
template<unsigned n>
static float | bessy (float x, Loki::Int2Type< n >)
template<unsigned n>
static float | bessj (float x, Loki::Int2Type< n >)
Returns the Bessel function Jn(x) for any real x and n >= 2.
static float | bessi (float x, Loki::Int2Type< 0 >)
static float | bessk (float x, Loki::Int2Type< 0 >)
Returns the modified Bessel function K0(x) for positive real x.
static float | bessi (float x, Loki::Int2Type< 1 >)
Returns the modified Bessel function I1(x) for any real x.
static float | bessk (float x, Loki::Int2Type< 1 >)
Returns the modified Bessel function K1(x) for positive real x.
template<unsigned n>
static float | bessk (float x, Loki::Int2Type< n >)
Returns the modified Bessel function Kn(x) for positive x and n >= 2.
template<unsigned n>
static float | bessi (float x, Loki::Int2Type< n >)
Returns the modified Bessel function In(x) for any real x and n >= 2.

Подробное описание

Returns the Bessel functions for any real x.

Методы

static float Vtl::NumAlg::Spf::bess::bessj | ( | float | x,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static, private]

Returns the Bessel function J0(x) for any real x.

static float Vtl::NumAlg::Spf::bess::bessy | ( | float | x,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static, private]

static float Vtl::NumAlg::Spf::bess::bessj | ( | float | x,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static, private]

Returns the Bessel function J1(x) for any real x.

static float Vtl::NumAlg::Spf::bess::bessy | ( | float | x,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static, private]

Returns the Bessel function Y1(x) for positive x.

template<unsigned n>
static float Vtl::NumAlg::Spf::bess::bessy | ( | float | x,
 |  | Loki::Int2Type< n > |  |
 | ) |  |  | [inline, static, private]

Returns the Bessel function Yn(x) for positive x and n >= 2.

We now turn to the second task, namely how to use the recurrence formulas (6.5.6) and (6.5.7) to get the Bessel functions Jn(x) and Yn(x) for n >= 2. The latter of these is straightforward, since its upward recurrence is always stable:

template<unsigned n>
static float Vtl::NumAlg::Spf::bess::bessj | ( | float | x,
 |  | Loki::Int2Type< n > |  |
 | ) |  |  | [inline, static, private]

Returns the Bessel function Jn(x) for any real x and n >= 2.

static float Vtl::NumAlg::Spf::bess::bessi | ( | float | x,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static, private]

static float Vtl::NumAlg::Spf::bess::bessk | ( | float | x,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static, private]

Returns the modified Bessel function K0(x) for positive real x.

static float Vtl::NumAlg::Spf::bess::bessi | ( | float | x,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static, private]

Returns the modified Bessel function I1(x) for any real x.

static float Vtl::NumAlg::Spf::bess::bessk | ( | float | x,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static, private]

Returns the modified Bessel function K1(x) for positive real x.

template<unsigned n>
static float Vtl::NumAlg::Spf::bess::bessk | ( | float | x,
 |  | Loki::Int2Type< n > |  |
 | ) |  |  | [inline, static, private]

Returns the modified Bessel function Kn(x) for positive x and n >= 2.

template<unsigned n>
static float Vtl::NumAlg::Spf::bess::bessi | ( | float | x,
 |  | Loki::Int2Type< n > |  |
 | ) |  |  | [inline, static, private]

Returns the modified Bessel function In(x) for any real x and n >= 2.

template<unsigned n>
static float Vtl::NumAlg::Spf::bess::J ( float x ) [inline, static]

Функция Бесселя первого рода $ J_n(x) $ целочисленного порядка n.

template<unsigned n>
static float Vtl::NumAlg::Spf::bess::Y ( float x ) [inline, static]

Функция Бесселя второго рода $ Y_n(x) $ целочисленного порядка n.

template<unsigned n>
static float Vtl::NumAlg::Spf::bess::I ( float x ) [inline, static]

Модифицированная функция Бесселя $ I_n(x) $ целочисленного порядка n.

template<unsigned n>
static float Vtl::NumAlg::Spf::bess::K ( float x ) [inline, static]

Модифицированная функция Бесселя $ K_n(x) $ целочисленного порядка n.

static float Vtl::NumAlg::Spf::bess::Int_J0 ( float x ) [inline, static]

This function calculates the value of integral of bessel function Jo(t) by dt from 0. to x by means of summarizing Chebyshev polinoms set. The calculation error is less then +/- 1.5e-08. x belong to interval (-7,+oo). [Luke_Y_L__M_Mir_1980].

Объявления и описания членов класса находятся в файле:
  • spec_functions.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F11::Bias< T >

Vtl::Plf::F11::Bias

Шаблон класса Vtl::Plf::F11::Bias< T >

functor Bias - добавляет к значению каждого пикселя константу. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

Bias ()
Bias (T add_to_pixel)
T | operator() (T val) const

Закрытые данные

T | bias

Подробное описание

template<typename T>
class Vtl::Plf::F11::Bias< T >

functor Bias - добавляет к значению каждого пикселя константу.

Функтор для FilterLevels и постобработок во всех вильтрах. Каждый выход любого фильтра должен представляться, классом OutPort, его второй шаблонный параметр - функтор, который задает обработку пиксель в пиксель, которая будет проведена после того, как фильтр отработал и записал строку, но до того как будет проведены отражения буфера отнгосительно краев и данные станут доступны следующему фильтру. По возможности следует избегать использовать класс FilterLevels и по возможности пользоваться постобработками из за соображений эффективности. do nothing

Конструктор(ы)

template<typename T>
Vtl::Plf::F11::Bias< T >::Bias ( ) [inline]

template<typename T>
Vtl::Plf::F11::Bias< T >::Bias ( T add_to_pixel ) [inline]

Методы

template<typename T>
T Vtl::Plf::F11::Bias< T >::operator() ( T val ) const [inline]

Данные класса

template<typename T>
T Vtl::Plf::F11::Bias< T >::bias [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Plf::BiLateral< T, P >

Vtl::Plf::BiLateral

Шаблон класса Vtl::Plf::BiLateral< T, P >
[Complex filters]

BiLateral фильтрация изображения [Tomasi98bilateral],. Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::BiLateral< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::BiLateral< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

InPort< T > & | in ()
OutPort< T, P > & | out ()
Должен быть подключен! Модуль градиента.
BiLateral ()
BiLateral (std::string name, float epsilon, float sigma=2.0f, float env_sigmas=2.0f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (std::string name, float epsilon, float sigma=2.0f, float env_sigmas=2.0f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
output_maxval==float((1<<bits)-1)
virtual | ~BiLateral ()

Закрытые члены

BiLateral (const BiLateral &)
BiLateral & | operator= (const BiLateral &)

Закрытые данные

EnvProc1to1< T, Fpie::BiLateralSmooth<
T >, P > 		bi

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::BiLateral< T, P >

BiLateral фильтрация изображения [Tomasi98bilateral],.

См. также:
Vtl::Plf::F::BiLateral.

Структура фильтра Vtl::Plf::BiLateral фильтрации изображений (сглаживание не размывающее границы, edge preserving)

Результат воздействия на изображение

этим фильтром
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::BiLateral< T, P >::BiLateral ( const BiLateral< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::BiLateral< T, P >::BiLateral ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::BiLateral< T, P >::BiLateral | ( | std::string | name,
 |  | float | epsilon,
 |  | float | sigma = 2.0f,
 |  | float | env_sigmas = 2.0f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::BiLateral< T, P >::~BiLateral ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
BiLateral& Vtl::Plf::BiLateral< T, P >::operator= ( const BiLateral< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T>& Vtl::Plf::BiLateral< T, P >::in ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::BiLateral< T, P >::out ( ) [inline]

Должен быть подключен! Модуль градиента.

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::BiLateral< T, P >::Init | ( | std::string | name,
 |  | float | epsilon,
 |  | float | sigma = 2.0f,
 |  | float | env_sigmas = 2.0f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

output_maxval==float((1<<bits)-1)

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
EnvProc1to1<T,Fpie::BiLateralSmooth<T>,P > Vtl::Plf::BiLateral< T, P >::bi [private]

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Fpie::BiLateralSmooth< T >

Vtl::Plf::Fpie::BiLateralSmooth

Шаблон класса Vtl::Plf::Fpie::BiLateralSmooth< T >

Функтор BiLateralSmooth для EnvProc1to1. BiLateral - фильтрация. НЕ СДЕЛАНО! Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

void | set_IterNextLineShift (int modul_nls)
Extent | ext () const
BiLateralSmooth (float epsilon=20.0f, float sigma=2.0f, float env_sigmas=2.0f)
T | operator() (const T *input)

Закрытые члены

T | fun (int x, int y, T fx, T fy)

Закрытые данные

int | r
float | sigma_22
int | nls
float | eps_22

Подробное описание

template<typename T>
class Vtl::Plf::Fpie::BiLateralSmooth< T >

Функтор BiLateralSmooth для EnvProc1to1. BiLateral - фильтрация. НЕ СДЕЛАНО!

Конструктор(ы)

template<typename T>
Vtl::Plf::Fpie::BiLateralSmooth< T >::BiLateralSmooth | ( | float | epsilon = 20.0f,
 |  | float | sigma = 2.0f,
 |  | float | env_sigmas = 2.0f |
 | ) |  |  | [inline]

Методы

template<typename T>
void Vtl::Plf::Fpie::BiLateralSmooth< T >::set_IterNextLineShift ( int modul_nls ) [inline]

!!! MUST be called by filter BEFORE using 'operator()', by default next line shist parameter set to value which probably most quick lead a 'Invalid memory access' error (for bug search convenience).

template<typename T>
Extent Vtl::Plf::Fpie::BiLateralSmooth< T >::ext ( ) const [inline]

template<typename T>
T Vtl::Plf::Fpie::BiLateralSmooth< T >::operator() ( const T * input ) [inline]

template<typename T>
T Vtl::Plf::Fpie::BiLateralSmooth< T >::fun | ( | int | x,
 |  | int | y,
 |  | T | fx,
 |  | T | fy |
 | ) |  |  | [inline, private]

Данные класса

template<typename T>
int Vtl::Plf::Fpie::BiLateralSmooth< T >::r [private]

template<typename T>
float Vtl::Plf::Fpie::BiLateralSmooth< T >::sigma_22 [private]

template<typename T>
int Vtl::Plf::Fpie::BiLateralSmooth< T >::nls [private]

template<typename T>
float Vtl::Plf::Fpie::BiLateralSmooth< T >::eps_22 [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::BitsIn< n >

Vtl::Meta::BitsIn

Шаблон структуры Vtl::Meta::BitsIn< n >

Подсчет числа единичных битов в n . Алгоритм из [Henry S. Warren, Jr. 2002], стр. 76. Подробнее...

#include <vtl_meta_permutations.h>

Полный список членов класса

Открытые типы

enum | { temp = (n/2)+BitsIn<(n/2)>::temp }
enum | { value = n-unsigned(temp) }

Подробное описание

template<unsigned n>
struct Vtl::Meta::BitsIn< n >

Подсчет числа единичных битов в n . Алгоритм из [Henry S. Warren, Jr. 2002], стр. 76.

Перечисления

template<unsigned n>
anonymous enum

Элементы перечислений:
temp

template<unsigned n>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_permutations.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::BitsIn< 0 >

Vtl::Meta::BitsIn< 0 >

Шаблон структуры Vtl::Meta::BitsIn< 0 >

#include <vtl_meta_permutations.h>

Полный список членов класса

Открытые типы

enum | { temp = 0 }
enum | { value = 0 }

template<>
struct Vtl::Meta::BitsIn< 0 >

Перечисления

anonymous enum

Элементы перечислений:
temp

anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_permutations.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::Blackman< T, D >

Vtl::ImAlg::WndFun::Blackman

Шаблон класса Vtl::ImAlg::WndFun::Blackman< T, D >

Окно Блэкмана (Blackman). Подробнее...

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Blackman< T, D >:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::Blackman< T, D >:

[см. легенду]
Полный список членов класса

Открытые члены

template<typename TT>
Blackman (TT size_)

Открытые статические члены

static const char * | Name ()

Закрытые статические члены

static double * | cof ()

Подробное описание

template<typename T, unsigned D>
class Vtl::ImAlg::WndFun::Blackman< T, D >

Окно Блэкмана (Blackman).

См. также:
common_Trig
Примеры:

test_plf_kernels.cpp.

Конструктор(ы)

template<typename T, unsigned D>
template<typename TT>
Vtl::ImAlg::WndFun::Blackman< T, D >::Blackman ( TT size_ ) [inline]

Методы

template<typename T, unsigned D>
static const char* Vtl::ImAlg::WndFun::Blackman< T, D >::Name ( ) [inline, static]

template<typename T, unsigned D>
static double* Vtl::ImAlg::WndFun::Blackman< T, D >::cof ( ) [inline, static, private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::BlackmanHarris< T, D >

Vtl::ImAlg::WndFun::BlackmanHarris

Шаблон класса Vtl::ImAlg::WndFun::BlackmanHarris< T, D >

Окно Блэкмана-Харриса (Blackman-Harris). Подробнее...

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::BlackmanHarris< T, D >:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::BlackmanHarris< T, D >:

[см. легенду]
Полный список членов класса

Открытые члены

template<typename TT>
BlackmanHarris (TT size_)

Открытые статические члены

static const char * | Name ()

Закрытые статические члены

static double * | cof ()

Подробное описание

template<typename T, unsigned D>
class Vtl::ImAlg::WndFun::BlackmanHarris< T, D >

Окно Блэкмана-Харриса (Blackman-Harris).

См. также:
common_Trig

Конструктор(ы)

template<typename T, unsigned D>
template<typename TT>
Vtl::ImAlg::WndFun::BlackmanHarris< T, D >::BlackmanHarris ( TT size_ ) [inline]

Методы

template<typename T, unsigned D>
static const char* Vtl::ImAlg::WndFun::BlackmanHarris< T, D >::Name ( ) [inline, static]

template<typename T, unsigned D>
static double* Vtl::ImAlg::WndFun::BlackmanHarris< T, D >::cof ( ) [inline, static, private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >

Vtl::ImAlg::WndFun::BlackmanNuttall

Шаблон класса Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >

Окно Блэкмана-Нуттол (Blackman-Nuttall). Подробнее...

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >:

[см. легенду]
Полный список членов класса

Открытые члены

template<typename TT>
BlackmanNuttall (TT size_)

Открытые статические члены

static const char * | Name ()

Закрытые статические члены

static double * | cof ()

Подробное описание

template<typename T, unsigned D>
class Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >

Окно Блэкмана-Нуттол (Blackman-Nuttall).

См. также:
common_Trig

Конструктор(ы)

template<typename T, unsigned D>
template<typename TT>
Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >::BlackmanNuttall ( TT size_ ) [inline]

Методы

template<typename T, unsigned D>
static const char* Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >::Name ( ) [inline, static]

template<typename T, unsigned D>
static double* Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >::cof ( ) [inline, static, private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Структура IFF::BMP_BitMapFileHeader

IFF::BMP_BitMapFileHeader

Структура IFF::BMP_BitMapFileHeader

#include <bmp.h>

Полный список членов класса

Открытые атрибуты

uint16_t bfType
uint32_t bfSize
uint16_t bfReserved1
uint16_t bfReserved2
uint32_t bfOffBits

Данные класса

uint16_t IFF::BMP_BitMapFileHeader::bfType

uint32_t IFF::BMP_BitMapFileHeader::bfSize

uint16_t IFF::BMP_BitMapFileHeader::bfReserved1

uint16_t IFF::BMP_BitMapFileHeader::bfReserved2

uint32_t IFF::BMP_BitMapFileHeader::bfOffBits

Объявления и описания членов структуры находятся в файле:
  • bmp.h


Pipe Line Filters: Структура IFF::BMP_BitMapInfoHeader

IFF::BMP_BitMapInfoHeader

Структура IFF::BMP_BitMapInfoHeader

#include <bmp.h>

Полный список членов класса

Открытые атрибуты

uint32_t biSize
uint32_t biWidth
uint32_t biHeight
uint16_t biPlanes
uint16_t biBitCount
uint32_t biCompression
uint32_t biSizeImage
uint32_t biXPelsPerMeter
uint32_t biYPelsPerMeter
uint32_t biClrUsed
uint32_t biClrImportant

Данные класса

uint32_t IFF::BMP_BitMapInfoHeader::biSize

uint32_t IFF::BMP_BitMapInfoHeader::biWidth

uint32_t IFF::BMP_BitMapInfoHeader::biHeight

uint16_t IFF::BMP_BitMapInfoHeader::biPlanes

uint16_t IFF::BMP_BitMapInfoHeader::biBitCount

uint32_t IFF::BMP_BitMapInfoHeader::biCompression

uint32_t IFF::BMP_BitMapInfoHeader::biSizeImage

uint32_t IFF::BMP_BitMapInfoHeader::biXPelsPerMeter

uint32_t IFF::BMP_BitMapInfoHeader::biYPelsPerMeter

uint32_t IFF::BMP_BitMapInfoHeader::biClrUsed

uint32_t IFF::BMP_BitMapInfoHeader::biClrImportant

Объявления и описания членов структуры находятся в файле:
  • bmp.h


Pipe Line Filters: Класс IFF::BmpRead

IFF::BmpRead

Класс IFF::BmpRead

#include <bmp.h>

Граф наследования:IFF::BmpRead:

[см. легенду]
Граф связей класса IFF::BmpRead:

[см. легенду]
Полный список членов класса

Открытые типы

enum | Type { BT_BILEVEL, BT_INDEX, BT_RGB }

Открытые члены

BmpRead (const char *filename)
virtual | ~BmpRead ()
Type GetType ()
int | GetPaletteEntries () const
const RgbQuad * | GetPalette ()
int | Width () const
int | Height () const
int | Bits () const
void | read (int x, int y, Byte *data, int len)

Закрытые данные

BMP_BitMapFileHeader header
BMP_BitMapInfoHeader info
uint32_t bytes_per_row
int | pal_entries
RgbQuad * _pal
Type img_class
uint32_t base_offset

Перечисления

enum IFF::BmpRead::Type

Элементы перечислений:
BT_BILEVEL
BT_INDEX
BT_RGB

Конструктор(ы)

BmpRead::BmpRead ( const char * filename )

BmpRead::~BmpRead ( ) [virtual]

Методы

Type IFF::BmpRead::GetType ( ) [inline]

int IFF::BmpRead::GetPaletteEntries ( ) const [inline]

const RgbQuad* IFF::BmpRead::GetPalette ( ) [inline]

int IFF::BmpRead::Width ( ) const [inline]

int IFF::BmpRead::Height ( ) const [inline]

int IFF::BmpRead::Bits ( ) const [inline]

void BmpRead::read | ( | int | x,
 |  | int | y,
 |  | Byte * | data,
 |  | int | len
 | ) |  |

Данные класса

BMP_BitMapFileHeader IFF::BmpRead::header [private]

BMP_BitMapInfoHeader IFF::BmpRead::info [private]

uint32_t IFF::BmpRead::bytes_per_row [private]

int IFF::BmpRead::pal_entries [private]

RgbQuad* IFF::BmpRead::_pal [private]

Type IFF::BmpRead::img_class [private]

uint32_t IFF::BmpRead::base_offset [private]

Объявления и описания членов классов находятся в файлах:
  • bmp.h
  • bmp.cpp


Pipe Line Filters: Класс IFF::BmpWrite

IFF::BmpWrite

Класс IFF::BmpWrite

#include <bmp.h>

Граф наследования:IFF::BmpWrite:

[см. легенду]
Граф связей класса IFF::BmpWrite:

[см. легенду]
Полный список членов класса

Открытые типы

enum | Type { BT_BILEVEL, BT_INDEX, BT_RGB }

Открытые члены

BmpWrite (const char *filename, int width, int height, IFF::BmpWrite::Type iclass, const RgbQuad *pal)
virtual | ~BmpWrite ()
Type GetType ()
int | GetPaletteEntries () const
int | Width () const
int | Height () const
int | Bits () const
void | write (int x, int y, const Byte *data, int len)

Закрытые данные

BMP_BitMapFileHeader header
BMP_BitMapInfoHeader info
uint32_t bytes_per_row
int | pal_entries
uint32_t pal_offset
Type img_class
uint32_t base_offset

Перечисления

enum IFF::BmpWrite::Type

Элементы перечислений:
BT_BILEVEL
BT_INDEX
BT_RGB

Конструктор(ы)

IFF::BmpWrite::BmpWrite | ( | const char * | filename,
 |  | int | width,
 |  | int | height,
 |  | IFF::BmpWrite::Type | iclass,
 |  | const RgbQuad * | pal
 | ) |  |

BmpWrite::~BmpWrite ( ) [virtual]

Методы

Type IFF::BmpWrite::GetType ( ) [inline]

int IFF::BmpWrite::GetPaletteEntries ( ) const [inline]

int IFF::BmpWrite::Width ( ) const [inline]

int IFF::BmpWrite::Height ( ) const [inline]

int IFF::BmpWrite::Bits ( ) const [inline]

void BmpWrite::write | ( | int | x,
 |  | int | y,
 |  | const Byte * | data,
 |  | int | len
 | ) |  |

Данные класса

BMP_BitMapFileHeader IFF::BmpWrite::header [private]

BMP_BitMapInfoHeader IFF::BmpWrite::info [private]

uint32_t IFF::BmpWrite::bytes_per_row [private]

int IFF::BmpWrite::pal_entries [private]

uint32_t IFF::BmpWrite::pal_offset [private]

Type IFF::BmpWrite::img_class [private]

uint32_t IFF::BmpWrite::base_offset [private]

Объявления и описания членов классов находятся в файлах:
  • bmp.h
  • bmp.cpp


Pipe Line Filters: Шаблон структуры Loki::Bool2Type< v >

Loki::Bool2Type

Шаблон структуры Loki::Bool2Type< v >

Analogous to Loki::Int2Type but for boolean type. Used to simplify code: instead using Loki::Int2Type<((a>b)?1:0)>() now use Loki::Bool2Type<(a>b)>(). Подробнее...

#include <vtl_meta_tools.h>

Полный список членов класса

Открытые типы

enum { value = v }

Подробное описание

template<bool v>
struct Loki::Bool2Type< v >

Analogous to Loki::Int2Type but for boolean type. Used to simplify code: instead using Loki::Int2Type<((a>b)?1:0)>() now use Loki::Bool2Type<(a>b)>().

Перечисления

template<bool v>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_tools.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::Impl::Buffer< T, K >

Vtl::ImAlg::Conv::Impl::Buffer

Шаблон класса Vtl::ImAlg::Conv::Impl::Buffer< T, K >

Буфер для сверток. Подробнее...

#include <convolve.h>

Граф наследования:Vtl::ImAlg::Conv::Impl::Buffer< T, K >:

[см. легенду]
Полный список членов класса

Открытые члены

Buffer (const K &kernel)
void | rewind ()
void | push (T data_elem)
T | pop ()

Открытые атрибуты

const K & | ker

Защищенные данные

std::vector< T > | data
int | pos

Подробное описание

template<typename T, class K>
class Vtl::ImAlg::Conv::Impl::Buffer< T, K >

Буфер для сверток.

Параметры шаблона:
T - тип данных, которые подвергаются свертке
K - тип ядра свертки(кросскорреляции) Ядро должно быть класса Kernel::Base или производным от него, созданным с параметрами kernel_type_=KT_Conv или KT_Corr (в зввисимости от того требуется вычислить свертку или кросскорреляцию) , параметр шаблона Base double_kernel_ ДОЛЖЕН БЫТЬ true.

Конструктор(ы)

template<typename T, class K>
Vtl::ImAlg::Conv::Impl::Buffer< T, K >::Buffer ( const K & kernel ) [inline]

Методы

template<typename T, class K>
void Vtl::ImAlg::Conv::Impl::Buffer< T, K >::rewind ( ) [inline]

template<typename T, class K>
void Vtl::ImAlg::Conv::Impl::Buffer< T, K >::push ( T data_elem ) [inline]

template<typename T, class K>
T Vtl::ImAlg::Conv::Impl::Buffer< T, K >::pop ( ) [inline]

Данные класса

template<typename T, class K>
std::vector<T> Vtl::ImAlg::Conv::Impl::Buffer< T, K >::data [protected]

template<typename T, class K>
int Vtl::ImAlg::Conv::Impl::Buffer< T, K >::pos [protected]

template<typename T, class K>
const K& Vtl::ImAlg::Conv::Impl::Buffer< T, K >::ker

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >

Vtl::ImAlg::Registration::Impl::OFlow::BuildB

Шаблон класса Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >

#include <img_registration_oflow.h>

Полный список членов класса

Открытые типы

typedef VectorB::value_type | value_type

Открытые члены

BuildB (VectorB &B_)
template<typename T>
void | operator() (VectorB &G, T deltaI, T mask)

Закрытые данные

VectorB & | B

template<bool UseMask, class VectorB>
class Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >

Определения типов

template<bool UseMask, class VectorB>
typedef VectorB::value_type Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >::value_type

Конструктор(ы)

template<bool UseMask, class VectorB>
Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >::BuildB ( VectorB & B_ ) [inline]

Методы

template<bool UseMask, class VectorB>
template<typename T>
void Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >::operator() | ( | VectorB & | G,
 |  | T | deltaI,
 |  | T | mask |
 | ) |  |  | [inline]

Данные класса

template<bool UseMask, class VectorB>
VectorB& Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >::B [private]

Объявления и описания членов класса находятся в файле:
  • img_registration_oflow.h


Pipe Line Filters: Шаблон класса Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >

Vtl::Meta::BuildDefaultLayout

Шаблон класса Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >

#include <vtl_meta_SizeList.h>

Полный список членов класса

Открытые типы

typedef IL::PushBack< NBands,
Temp >::Result 		Result

Закрытые типы

enum | { sz = IL::Length<IList>::value }
enum | { bbstride = S<sz, bands_stride }
typedef S< sz-1, Interleave > | SS
typedef IL::PushBack< bbstride,
typename SS::Result >::Result 		Temp

Классы

struct | S
struct | S< 0, 0 >
struct | S< 0, I >
struct | S< i, i >

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
class Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >

Определения типов

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
typedef S<sz-1,Interleave> Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::SS [private]

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
typedef IL::PushBack<bbstride,typename SS::Result>::Result Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::Temp [private]

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
typedef IL::PushBack<NBands,Temp>::Result Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::Result

Перечисления

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
anonymous enum [private]

Элементы перечислений:
sz

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
anonymous enum [private]

Элементы перечислений:
bbstride
bands_stride

Объявления и описания членов класса находятся в файле:
  • vtl_meta_SizeList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >

Vtl::Meta::BuildDefaultLayout::S

Шаблон структуры Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >

Полный список членов класса

Открытые типы

enum { bands_stride = S<i-1, bands_stride = S<i-1 }
enum {
stride = (i==Granulation)? 1 : Align< T, i, i, value,
value
}
typedef IL::PushBack< stride,
typename S< i-1, I >::Result
>::Result 		Result

Подробное описание

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
template<int i, int I>
struct Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >

ИЗМЕНИТЬ! Если i==Granulation, to stride=1; Что делать, если I==Granulation ??? Внимание, если i>=Granulation - не выполнять Align - указатели не выравниваются!

Определения типов

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
template<int i, int I>
typedef IL::PushBack<stride,typename S<i-1,I>::Result>::Result Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >::Result

Перечисления

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
template<int i, int I>
anonymous enum

Элементы перечислений:
bands_stride
bands_stride

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
template<int i, int I>
anonymous enum

Элементы перечислений:
stride
i
i
value
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_SizeList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 >

Vtl::Meta::BuildDefaultLayout::S< 0, 0 >

Шаблон структуры Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 >

Полный список членов класса

Открытые типы

enum | { bands_stride = 1 }
enum | { stride = NBands }
typedef IndexList< stride,
Loki::NullType > 		Result

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
template<>
struct Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 >

Определения типов

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
typedef IndexList<stride,Loki::NullType> Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 >::Result

Перечисления

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
anonymous enum

Элементы перечислений:
bands_stride

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
anonymous enum

Элементы перечислений:
stride

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_SizeList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I >

Vtl::Meta::BuildDefaultLayout::S< 0, I >

Шаблон структуры Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I >

Полный список членов класса

Открытые типы

enum | { bands_stride = 0 }
enum | { stride = 1 }
typedef IndexList< stride,
Loki::NullType > 		Result

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
template<int I>
struct Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I >

Определения типов

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
template<int I>
typedef IndexList<stride,Loki::NullType> Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I >::Result

Перечисления

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
template<int I>
anonymous enum

Элементы перечислений:
bands_stride

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
template<int I>
anonymous enum

Элементы перечислений:
stride

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_SizeList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >

Vtl::Meta::BuildDefaultLayout::S< i, i >

Шаблон структуры Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >

Полный список членов класса

Открытые типы

enum {
bands_stride = (i==Granulation)? 1 : Align< T, i, i, value,
value
}
enum { stride = bands_stride * NBands }
typedef IL::PushBack< stride,
typename S< i-1, i >::Result
>::Result 		Result

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
template<int i>
struct Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >

Определения типов

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
template<int i>
typedef IL::PushBack<stride,typename S<i-1,i>::Result>::Result Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >::Result

Перечисления

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
template<int i>
anonymous enum

Элементы перечислений:
bands_stride
i
i
value
value

template<typename T, class IList, int NBands, int Interleave, int Granulation, int align_to>
template<int i>
anonymous enum

Элементы перечислений:
stride

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_SizeList.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::Registration::Impl::OFlow::BuildG< n >

Vtl::ImAlg::Registration::Impl::OFlow::BuildG

Шаблон структуры Vtl::ImAlg::Registration::Impl::OFlow::BuildG< n >

#include <img_registration_oflow.h>

Полный список членов класса

Открытые статические члены

template<class M, class VectorG, typename T>
static void vec (VectorG &GG, const M &model, T x, T y, T gx, T gy)

template<unsigned n>
struct Vtl::ImAlg::Registration::Impl::OFlow::BuildG< n >

Методы

template<unsigned n>
template<class M, class VectorG, typename T>
static void Vtl::ImAlg::Registration::Impl::OFlow::BuildG< n >::vec | ( | VectorG & | GG,
 |  | const M & | model,
 |  | T | x,
 |  | T | y,
 |  | T | gx,
 |  | T | gy |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • img_registration_oflow.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::Registration::Impl::OFlow::BuildG< 0 >

Vtl::ImAlg::Registration::Impl::OFlow::BuildG< 0 >

Шаблон структуры Vtl::ImAlg::Registration::Impl::OFlow::BuildG< 0 >

#include <img_registration_oflow.h>

Полный список членов класса

Открытые статические члены

template<class M, class VectorG, typename T>
static void vec (VectorG &GG, const M &model, T x, T y, T gx, T gy)

template<>
struct Vtl::ImAlg::Registration::Impl::OFlow::BuildG< 0 >

Методы

template<class M, class VectorG, typename T>
static void Vtl::ImAlg::Registration::Impl::OFlow::BuildG< 0 >::vec | ( | VectorG & | GG,
 |  | const M & | model,
 |  | T | x,
 |  | T | y,
 |  | T | gx,
 |  | T | gy |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • img_registration_oflow.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >

Vtl::ImAlg::Registration::Impl::OFlow::BuildHB

Шаблон класса Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >

#include <img_registration_oflow.h>

Полный список членов класса

Открытые типы

typedef VectorB::value_type | value_type

Открытые члены

BuildHB (MatrixH &H_, VectorB &B_)
template<typename T>
void | operator() (VectorB &G, T deltaI, T mask)

Закрытые данные

MatrixH & | H
VectorB & | B

template<bool UseMask, class MatrixH, class VectorB>
class Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >

Определения типов

template<bool UseMask, class MatrixH, class VectorB>
typedef VectorB::value_type Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >::value_type

Конструктор(ы)

template<bool UseMask, class MatrixH, class VectorB>
Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >::BuildHB | ( | MatrixH & | H_,
 |  | VectorB & | B_ |
 | ) |  |  | [inline]

Методы

template<bool UseMask, class MatrixH, class VectorB>
template<typename T>
void Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >::operator() | ( | VectorB & | G,
 |  | T | deltaI,
 |  | T | mask |
 | ) |  |  | [inline]

Данные класса

template<bool UseMask, class MatrixH, class VectorB>
MatrixH& Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >::H [private]

template<bool UseMask, class MatrixH, class VectorB>
VectorB& Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >::B [private]

Объявления и описания членов класса находятся в файле:
  • img_registration_oflow.h


Pipe Line Filters: Шаблон класса Vtl::Img::BuildIter1DList< T_Layout >

Vtl::Img::BuildIter1DList

Шаблон класса Vtl::Img::BuildIter1DList< T_Layout >

#include <vtl_image.h>

Полный список членов класса

Открытые типы

typedef Iterator_1D_selector<
value_type, Vtl::Meta::IL::Elem<
ND+1, IList >::value >::Result 		BandsIterator
typedef build< 0 >::Result | Result

Закрытые типы

enum | { ND = Vtl::Meta::IL::Length<IList>::value-2 }
typedef T_Layout::value_type | value_type
typedef T_Layout::SList::IList | IList

Классы

struct | build
struct | build< ND >
struct | Iterator_1D_selector
struct | Iterator_1D_selector< T, 1 >

template<class T_Layout>
class Vtl::Img::BuildIter1DList< T_Layout >

Определения типов

template<class T_Layout>
typedef T_Layout::value_type Vtl::Img::BuildIter1DList< T_Layout >::value_type [private]

template<class T_Layout>
typedef T_Layout::SList::IList Vtl::Img::BuildIter1DList< T_Layout >::IList [private]

template<class T_Layout>
typedef Iterator_1D_selector<value_type,Vtl::Meta::IL::Elem<ND+1,IList>::value>::Result Vtl::Img::BuildIter1DList< T_Layout >::BandsIterator

template<class T_Layout>
typedef build<0>::Result Vtl::Img::BuildIter1DList< T_Layout >::Result

Перечисления

template<class T_Layout>
anonymous enum [private]

Элементы перечислений:
ND

Объявления и описания членов класса находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон структуры Vtl::Img::BuildIter1DList< T_Layout >::build< i >

Vtl::Img::BuildIter1DList::build

Шаблон структуры Vtl::Img::BuildIter1DList< T_Layout >::build< i >

Полный список членов класса

Открытые типы

typedef Loki::Typelist< typename
Iterator_1D_selector< value_type,
Vtl::Meta::IL::Elem< i, IList
>::value >::Result, typename
build< i+1 >::Result > 		Result

template<class T_Layout>
template<int i>
struct Vtl::Img::BuildIter1DList< T_Layout >::build< i >

Определения типов

template<class T_Layout>
template<int i>
typedef Loki::Typelist<typename Iterator_1D_selector<value_type,Vtl::Meta::IL::Elem<i,IList>::value >::Result,typename build<i+1>::Result > Vtl::Img::BuildIter1DList< T_Layout >::build< i >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон структуры Vtl::Img::BuildIter1DList< T_Layout >::build< ND >

Vtl::Img::BuildIter1DList::build< ND >

Шаблон структуры Vtl::Img::BuildIter1DList< T_Layout >::build< ND >

Полный список членов класса

Открытые типы

typedef Loki::Typelist< BandsIterator,
Loki::NullType > 		Result

template<class T_Layout>
template<>
struct Vtl::Img::BuildIter1DList< T_Layout >::build< ND >

Определения типов

template<class T_Layout>
typedef Loki::Typelist< BandsIterator ,Loki::NullType > Vtl::Img::BuildIter1DList< T_Layout >::build< ND >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон структуры Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, i >

Vtl::Img::BuildIter1DList::Iterator_1D_selector

Шаблон структуры Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, i >

Полный список членов класса

Открытые типы

typedef Iterator_1D< T, i > Result

template<class T_Layout>
template<typename T, int i>
struct Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, i >

Определения типов

template<class T_Layout>
template<typename T, int i>
typedef Iterator_1D<T,i> Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, i >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон структуры Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, 1 >

Vtl::Img::BuildIter1DList::Iterator_1D_selector< T, 1 >

Шаблон структуры Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, 1 >

Полный список членов класса

Открытые типы

typedef T * Result

template<class T_Layout>
template<typename T>
struct Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, 1 >

Определения типов

template<class T_Layout>
template<typename T>
typedef T* Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, 1 >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_image.h


Pipe Line Filters: Класс Basics3D::C_AbsDifference

Basics3D::C_AbsDifference

Класс Basics3D::C_AbsDifference

#include <AbsDifference.h>

Граф связей класса Basics3D::C_AbsDifference:

[см. легенду]
Полный список членов класса

Открытые члены

C_AbsDifference (const AImageMem8 *in_im1, const AImageMem8 *in_im2)
void | Apply ()
void | Save (const char *in_filename)

Закрытые данные

const AImageMem8 * | m_im1
const AImageMem8 * | m_im2
AImageMem8 * m_dif

Конструктор(ы)

Basics3D::C_AbsDifference::C_AbsDifference | ( | const AImageMem8 * | in_im1,
 |  | const AImageMem8 * | in_im2
 | ) |  |

Методы

void Basics3D::C_AbsDifference::Apply ( )

void Basics3D::C_AbsDifference::Save ( const char * in_filename )

Данные класса

const AImageMem8* Basics3D::C_AbsDifference::m_im1 [private]

const AImageMem8* Basics3D::C_AbsDifference::m_im2 [private]

AImageMem8* Basics3D::C_AbsDifference::m_dif [private]

Объявления и описания членов классов находятся в файлах:
  • AbsDifference.h
  • AbsDifference.cpp


Pipe Line Filters: Класс Basics3D::C_AutoCalibration

Basics3D::C_AutoCalibration

Класс Basics3D::C_AutoCalibration

#include <AutoCalibration.h>

Полный список членов класса

Открытые члены

void | DecomposeProjMatr (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_K, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_R, Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &out_t, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P)
int | GetH (std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 4 >> &out_H, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P1)
void | GetRightP (std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 >> &out_P, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_K, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_K1, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_E, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F)

Закрытые члены

void | FocalLength (double out_f1[2], double out_f2[2], const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F)
double | DirectSearchOfFocalLenth (const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F)

Методы

void Basics3D::C_AutoCalibration::FocalLength | ( | double | out_f1[2],
 |  | double | out_f2[2],
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_F |
 | ) |  |  | [private]

double Basics3D::C_AutoCalibration::DirectSearchOfFocalLenth ( const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & in_F ) [private]

void Basics3D::C_AutoCalibration::DecomposeProjMatr | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_K,
 |  | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_R,
 |  | Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > & | out_t,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > & | in_P
 | ) |  |

int Basics3D::C_AutoCalibration::GetH | ( | std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 4 >> & | out_H,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > & | in_P,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > & | in_P1
 | ) |  |

void Basics3D::C_AutoCalibration::GetRightP | ( | std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 >> & | out_P,
 |  | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_K,
 |  | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_K1,
 |  | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_E,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_F
 | ) |  |

Объявления и описания членов классов находятся в файлах:
  • AutoCalibration.h
  • AutoCalibration.cpp


Pipe Line Filters: Класс Basics3D::C_Combination

Basics3D::C_Combination

Класс Basics3D::C_Combination

#include <Combination.h>

Граф связей класса Basics3D::C_Combination:

[см. легенду]
Полный список членов класса

Открытые члены

C_Combination (const T_ImagesSet< AImageMem8 > &in_img)
void | Make ()
void | MarkCorrespondences (const std::vector< T_Points2DSet< C_Point2D >> &in_PointsSet, int in_N)
void | MarkCorrespondences (const T_Points2DSet< C_Point2D > &in_PointsSet, int in_n, int in_N)
void | Save (const char *in_outputImageName)
~C_Combination ()

Закрытые данные

const T_ImagesSet< AImageMem8 > & | m_img
AImageMem8 * m_comb

Конструктор(ы)

Basics3D::C_Combination::C_Combination ( const T_ImagesSet< AImageMem8 > & in_img )

Basics3D::C_Combination::~C_Combination ( )

Методы

void Basics3D::C_Combination::Make ( )

void Basics3D::C_Combination::MarkCorrespondences | ( | const std::vector< T_Points2DSet< C_Point2D >> & | in_PointsSet,
 |  | int | in_N
 | ) |  |

void Basics3D::C_Combination::MarkCorrespondences | ( | const T_Points2DSet< C_Point2D > & | in_PointsSet,
 |  | int | in_n,
 |  | int | in_N
 | ) |  |

void Basics3D::C_Combination::Save ( const char * in_outputImageName )

Данные класса

const T_ImagesSet<AImageMem8>& Basics3D::C_Combination::m_img [private]

AImageMem8* Basics3D::C_Combination::m_comb [private]

Объявления и описания членов классов находятся в файлах:
  • Combination.h
  • Combination.cpp


Pipe Line Filters: Класс Basics3D::C_DrawEpipolarLines

Basics3D::C_DrawEpipolarLines

Класс Basics3D::C_DrawEpipolarLines

#include <DrawEpipolarLines.h>

Граф связей класса Basics3D::C_DrawEpipolarLines:

[см. легенду]
Полный список членов класса

Открытые члены

C_DrawEpipolarLines (const AImageMem8 *in_src0, const AImageMem8 *in_src1)
void | Apply (const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_m, const T_Points2DSet< C_Point2D > &in_points, int i)
void | Save (const char *in_outputImageName, const int in_i)
void | GetRandColor (int *r, int *g, int *b)
void | Ends (const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > &in_Line, const int in_h, const int in_w, int *out_x1, int *out_y1, int *out_x2, int *out_y2)
void | DrawLine (AImageMem8 *in_img, const int in_nls, const int in_col, const int in_x1, const int in_y1, const int in_x2, const int in_y2)

Закрытые данные

const AImageMem8 * | m_src0
const AImageMem8 * | m_src1
AImageMemRgb8 * m_dst0
AImageMemRgb8 * m_dst1

Конструктор(ы)

Basics3D::C_DrawEpipolarLines::C_DrawEpipolarLines | ( | const AImageMem8 * | in_src0,
 |  | const AImageMem8 * | in_src1
 | ) |  |

Методы

void Basics3D::C_DrawEpipolarLines::Apply | ( | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_m,
 |  | const T_Points2DSet< C_Point2D > & | in_points,
 |  | int | i
 | ) |  |

void Basics3D::C_DrawEpipolarLines::Save | ( | const char * | in_outputImageName,
 |  | const int | in_i
 | ) |  |

void Basics3D::C_DrawEpipolarLines::GetRandColor | ( | int * | r,
 |  | int * | g,
 |  | int * | b
 | ) |  |

void Basics3D::C_DrawEpipolarLines::Ends | ( | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > & | in_Line,
 |  | const int | in_h,
 |  | const int | in_w,
 |  | int * | out_x1,
 |  | int * | out_y1,
 |  | int * | out_x2,
 |  | int * | out_y2
 | ) |  |

void Basics3D::C_DrawEpipolarLines::DrawLine | ( | AImageMem8 * | in_img,
 |  | const int | in_nls,
 |  | const int | in_col,
 |  | const int | in_x1,
 |  | const int | in_y1,
 |  | const int | in_x2,
 |  | const int | in_y2
 | ) |  |

Данные класса

const AImageMem8* Basics3D::C_DrawEpipolarLines::m_src0 [private]

const AImageMem8* Basics3D::C_DrawEpipolarLines::m_src1 [private]

AImageMemRgb8* Basics3D::C_DrawEpipolarLines::m_dst0 [private]

AImageMemRgb8* Basics3D::C_DrawEpipolarLines::m_dst1 [private]

Объявления и описания членов классов находятся в файлах:
  • DrawEpipolarLines.h
  • DrawEpipolarLines.cpp


Pipe Line Filters: Класс Basics3D::C_Epipole

Basics3D::C_Epipole

Класс Basics3D::C_Epipole

#include <Epipole.h>

Полный список членов класса

Открытые статические члены

static void | Left (Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &out_e, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F)
static void | Right (Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &out_e, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F)
static void | Normalize (Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &in_out)

Методы

void Basics3D::C_Epipole::Left | ( | Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > & | out_e,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_F |
 | ) |  |  | [static]

void Basics3D::C_Epipole::Right | ( | Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > & | out_e,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_F |
 | ) |  |  | [static]

void Basics3D::C_Epipole::Normalize ( Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > & in_out ) [static]

Объявления и описания членов классов находятся в файлах:
  • Epipole.h
  • Epipole.cpp


Pipe Line Filters: Класс Basics3D::C_FundamentalMatrix

Basics3D::C_FundamentalMatrix

Класс Basics3D::C_FundamentalMatrix

#include <FundamentalMatrix.h>

Полный список членов класса

Открытые статические члены

static int | SampleSize ()
static double | DistThresh (double in_sigma)
static void | CreateSystem (Vtl::NumAlg::Lin::ublas::matrix< double > &out_M, const T_Points2DSet< C_Point2D > &in_Points)
static void | CreateSystem (Vtl::NumAlg::Lin::ublas::matrix< double > &out_M, const std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &in_Matrices)
static void | Find (std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out, const Vtl::NumAlg::Lin::ublas::matrix< double > &in_System)
static double | Dist (const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > &in_p1, const C_Point2D &in_p2)
static double | MistFunc (const Vtl::NumAlg::Lin::ublas::vector< double > &in_matrix, const C_Point2D &in_p1, const C_Point2D &in_p2)
static void | DerivativeOfMistFunc (Vtl::NumAlg::Lin::ublas::vector< double > &out, const Vtl::NumAlg::Lin::ublas::vector< double > &in_matrix, const C_Point2D &in_p1, const C_Point2D &in_p2)
static void | NormMatrix (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_M, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_M, const double in_err)
static void | FromHomographies (std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out_FM, const std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &in_H)
static void | ApplyRansac (std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out_matrix, std::vector< T_Points2DSet< C_Point2D >> &out_inliers, std::vector< T_Points2DSet< C_Point2D >> &in_pointsSet, const T_ImagesSet< AImageMem8 > &in_img, const int in_i, const double in_sigma)
static void | RecomputeWithAllPoints (std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out_matrix, std::vector< T_Points2DSet< C_Point2D >> &out_inliers, std::vector< C_Points2DParamSet > &in_pointsParamSet, const T_ImagesSet< AImageMem8 > &in_img, const int in_i, const double in_sigma, const double in_t)

Закрытые статические члены

static void | SevenPointsAlg (std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out, const Vtl::NumAlg::Lin::ublas::matrix< double > &in_System)
static void | EightPointsAlg (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const Vtl::NumAlg::Lin::ublas::matrix< double > &in_System)

Методы

void Basics3D::C_FundamentalMatrix::SevenPointsAlg | ( | std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> & | out,
 |  | const Vtl::NumAlg::Lin::ublas::matrix< double > & | in_System |
 | ) |  |  | [static, private]

void Basics3D::C_FundamentalMatrix::EightPointsAlg | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out,
 |  | const Vtl::NumAlg::Lin::ublas::matrix< double > & | in_System |
 | ) |  |  | [static, private]

int Basics3D::C_FundamentalMatrix::SampleSize ( ) [static]

double Basics3D::C_FundamentalMatrix::DistThresh ( double in_sigma ) [static]

void Basics3D::C_FundamentalMatrix::CreateSystem | ( | Vtl::NumAlg::Lin::ublas::matrix< double > & | out_M,
 |  | const T_Points2DSet< C_Point2D > & | in_Points |
 | ) |  |  | [static]

void Basics3D::C_FundamentalMatrix::CreateSystem | ( | Vtl::NumAlg::Lin::ublas::matrix< double > & | out_M,
 |  | const std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> & | in_Matrices |
 | ) |  |  | [static]

void Basics3D::C_FundamentalMatrix::Find | ( | std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> & | out,
 |  | const Vtl::NumAlg::Lin::ublas::matrix< double > & | in_System |
 | ) |  |  | [static]

double Basics3D::C_FundamentalMatrix::Dist | ( | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > & | in_p1,
 |  | const C_Point2D & | in_p2 |
 | ) |  |  | [static]

double Basics3D::C_FundamentalMatrix::MistFunc | ( | const Vtl::NumAlg::Lin::ublas::vector< double > & | in_matrix,
 |  | const C_Point2D & | in_p1,
 |  | const C_Point2D & | in_p2 |
 | ) |  |  | [static]

void Basics3D::C_FundamentalMatrix::DerivativeOfMistFunc | ( | Vtl::NumAlg::Lin::ublas::vector< double > & | out,
 |  | const Vtl::NumAlg::Lin::ublas::vector< double > & | in_matrix,
 |  | const C_Point2D & | in_p1,
 |  | const C_Point2D & | in_p2 |
 | ) |  |  | [static]

void Basics3D::C_FundamentalMatrix::NormMatrix | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_M,
 |  | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_M,
 |  | const double | in_err |
 | ) |  |  | [static]

void Basics3D::C_FundamentalMatrix::FromHomographies | ( | std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> & | out_FM,
 |  | const std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> & | in_H |
 | ) |  |  | [static]

void Basics3D::C_FundamentalMatrix::ApplyRansac | ( | std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> & | out_matrix,
 |  | std::vector< T_Points2DSet< C_Point2D >> & | out_inliers,
 |  | std::vector< T_Points2DSet< C_Point2D >> & | in_pointsSet,
 |  | const T_ImagesSet< AImageMem8 > & | in_img,
 |  | const int | in_i,
 |  | const double | in_sigma |
 | ) |  |  | [static]

void Basics3D::C_FundamentalMatrix::RecomputeWithAllPoints | ( | std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> & | out_matrix,
 |  | std::vector< T_Points2DSet< C_Point2D >> & | out_inliers,
 |  | std::vector< C_Points2DParamSet > & | in_pointsParamSet,
 |  | const T_ImagesSet< AImageMem8 > & | in_img,
 |  | const int | in_i,
 |  | const double | in_sigma,
 |  | const double | in_t |
 | ) |  |  | [static]

Объявления и описания членов классов находятся в файлах:
  • FundamentalMatrix.h
  • FundamentalMatrix.cpp


Pipe Line Filters: Класс Basics3D::C_HomographyMatrix

Basics3D::C_HomographyMatrix

Класс Basics3D::C_HomographyMatrix

#include <HomographyMatrix.h>

Полный список членов класса

Открытые статические члены

static int | SampleSize ()
static double | DistThresh (double in_sigma)
static void | CreateSystem (Vtl::NumAlg::Lin::ublas::matrix< double > &out_M, const T_Points2DSet< C_Point2D > &in_Points)
static void | Find (std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out, const Vtl::NumAlg::Lin::ublas::matrix< double > &in_System)
static double | Dist (const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > &in_p1, const C_Point2D &in_p2)
static double | MistFunc (const Vtl::NumAlg::Lin::ublas::vector< double > &in_matrix, const C_Point2D &in_p1, const C_Point2D &in_p2)
static void | DerivativeOfMistFunc (Vtl::NumAlg::Lin::ublas::vector< double > &out, const Vtl::NumAlg::Lin::ublas::vector< double > &in_matrix, const C_Point2D &in_p1, const C_Point2D &in_p2)
static void | NormMatrix (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_M, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_M, const double in_err)
static void | ApplyRansac (std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out_matrix, std::vector< T_Points2DSet< C_Point2D >> &out_inliers, std::vector< T_Points2DSet< C_Point2D >> &in_pointsSet, const T_ImagesSet< AImageMem8 > &in_img, const int in_i, const int in_j, const int in_size, const double in_sigma)
static void | RecomputeWithAllPoints (std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out_matrix, std::vector< T_Points2DSet< C_Point2D >> &out_inliers, std::vector< C_Points2DParamSet > &in_pointsParamSet, const T_ImagesSet< AImageMem8 > &in_img, const int in_i, const int in_j, const double in_sigma, const double in_t)

Методы

int Basics3D::C_HomographyMatrix::SampleSize ( ) [static]

double Basics3D::C_HomographyMatrix::DistThresh ( double in_sigma ) [static]

void Basics3D::C_HomographyMatrix::CreateSystem | ( | Vtl::NumAlg::Lin::ublas::matrix< double > & | out_M,
 |  | const T_Points2DSet< C_Point2D > & | in_Points |
 | ) |  |  | [static]

void Basics3D::C_HomographyMatrix::Find | ( | std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> & | out,
 |  | const Vtl::NumAlg::Lin::ublas::matrix< double > & | in_System |
 | ) |  |  | [static]

double Basics3D::C_HomographyMatrix::Dist | ( | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > & | in_p1,
 |  | const C_Point2D & | in_p2 |
 | ) |  |  | [static]

double Basics3D::C_HomographyMatrix::MistFunc | ( | const Vtl::NumAlg::Lin::ublas::vector< double > & | in_matrix,
 |  | const C_Point2D & | in_p1,
 |  | const C_Point2D & | in_p2 |
 | ) |  |  | [static]

void Basics3D::C_HomographyMatrix::DerivativeOfMistFunc | ( | Vtl::NumAlg::Lin::ublas::vector< double > & | out,
 |  | const Vtl::NumAlg::Lin::ublas::vector< double > & | in_matrix,
 |  | const C_Point2D & | in_p1,
 |  | const C_Point2D & | in_p2 |
 | ) |  |  | [static]

void Basics3D::C_HomographyMatrix::NormMatrix | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_M,
 |  | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_M,
 |  | const double | in_err |
 | ) |  |  | [static]

void Basics3D::C_HomographyMatrix::ApplyRansac | ( | std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> & | out_matrix,
 |  | std::vector< T_Points2DSet< C_Point2D >> & | out_inliers,
 |  | std::vector< T_Points2DSet< C_Point2D >> & | in_pointsSet,
 |  | const T_ImagesSet< AImageMem8 > & | in_img,
 |  | const int | in_i,
 |  | const int | in_j,
 |  | const int | in_size,
 |  | const double | in_sigma |
 | ) |  |  | [static]

void Basics3D::C_HomographyMatrix::RecomputeWithAllPoints | ( | std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> & | out_matrix,
 |  | std::vector< T_Points2DSet< C_Point2D >> & | out_inliers,
 |  | std::vector< C_Points2DParamSet > & | in_pointsParamSet,
 |  | const T_ImagesSet< AImageMem8 > & | in_img,
 |  | const int | in_i,
 |  | const int | in_j,
 |  | const double | in_sigma,
 |  | const double | in_t |
 | ) |  |  | [static]

Объявления и описания членов классов находятся в файлах:
  • HomographyMatrix.h
  • HomographyMatrix.cpp


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, m >

Vtl::ImAlg::WndFun::Impl::Gauss::c_mod

Шаблон структуры Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, m >

#include <windowing_fun.h>

Полный список членов класса

Открытые типы

enum { v = c_mod<n-1, n, v = c_mod<n-1 }

template<unsigned n, unsigned m>
struct Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, m >

Перечисления

template<unsigned n, unsigned m>
anonymous enum

Элементы перечислений:
v
n
v

Объявления и описания членов структуры находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, n >

Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, n >

Шаблон структуры Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, n >

#include <windowing_fun.h>

Полный список членов класса

Открытые типы

enum { v = 1 }

template<unsigned n>
struct Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, n >

Перечисления

template<unsigned n>
anonymous enum

Элементы перечислений:
v

Объявления и описания членов структуры находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n,-1 >

Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n,-1 >

Шаблон структуры Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n,-1 >

#include <windowing_fun.h>

Полный список членов класса

Открытые типы

enum { v = 0 }

template<unsigned n>
struct Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n,-1 >

Перечисления

template<unsigned n>
anonymous enum

Элементы перечислений:
v

Объявления и описания членов структуры находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Класс Basics3D::C_Point2D

Basics3D::C_Point2D

Класс Basics3D::C_Point2D

#include <Point2D.h>

Граф наследования:Basics3D::C_Point2D:

[см. легенду]
Полный список членов класса

Открытые члены

C_Point2D ()
C_Point2D (double in_x, double in_y, int in_numb)
C_Point2D (std::ifstream inFile)
double | X () const
double | Y () const
int | Numb () const
void | SetNumb (const int i)
void | Matrix (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > *out) const
C_Point2D | operator= (const C_Point2D in_point)
void | Shift (double in_MeanX, double in_MeanY)
void | Scale (double in_coef)
void | Print () const

Защищенные данные

double | m_x
double | m_y
int | m_numb

Конструктор(ы)

Basics3D::C_Point2D::C_Point2D ( )

Basics3D::C_Point2D::C_Point2D | ( | double | in_x,
 |  | double | in_y,
 |  | int | in_numb
 | ) |  |

Basics3D::C_Point2D::C_Point2D ( std::ifstream inFile )

Методы

double Basics3D::C_Point2D::X ( ) const

double Basics3D::C_Point2D::Y ( ) const

int Basics3D::C_Point2D::Numb ( ) const

void Basics3D::C_Point2D::SetNumb ( const int i )

void Basics3D::C_Point2D::Matrix ( Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > * out ) const

C_Point2D Basics3D::C_Point2D::operator= ( const C_Point2D in_point )

void Basics3D::C_Point2D::Shift | ( | double | in_MeanX,
 |  | double | in_MeanY
 | ) |  |

void Basics3D::C_Point2D::Scale ( double in_coef )

void Basics3D::C_Point2D::Print ( ) const

Данные класса

double Basics3D::C_Point2D::m_x [protected]

double Basics3D::C_Point2D::m_y [protected]

int Basics3D::C_Point2D::m_numb [protected]

Объявления и описания членов классов находятся в файлах:
  • Point2D.h
  • Point2D.cpp


Pipe Line Filters: Класс Basics3D::C_Point2DParam

Basics3D::C_Point2DParam

Класс Basics3D::C_Point2DParam

#include <Point2DParam.h>

Граф наследования:Basics3D::C_Point2DParam:

[см. легенду]
Граф связей класса Basics3D::C_Point2DParam:

[см. легенду]
Полный список членов класса

Открытые члены

C_Point2DParam (double in_x, double in_y, int in_numb, double in_sigma, double in_angle, const std::vector< float > &in_param)
float | Param (int i) const
double | Distance (const C_Point2DParam &in_point) const

Открытые статические члены

static int | ParamNumb ()

Закрытые данные

double | m_sigma
double | m_angle
std::vector< float > | m_param

Закрытые статические данные

static const int | m_paramNumb = 128

Конструктор(ы)

Basics3D::C_Point2DParam::C_Point2DParam | ( | double | in_x,
 |  | double | in_y,
 |  | int | in_numb,
 |  | double | in_sigma,
 |  | double | in_angle,
 |  | const std::vector< float > & | in_param
 | ) |  |

Методы

float Basics3D::C_Point2DParam::Param ( int i ) const

static int Basics3D::C_Point2DParam::ParamNumb ( ) [inline, static]

double Basics3D::C_Point2DParam::Distance ( const C_Point2DParam & in_point ) const

Данные класса

double Basics3D::C_Point2DParam::m_sigma [private]

double Basics3D::C_Point2DParam::m_angle [private]

std::vector<float> Basics3D::C_Point2DParam::m_param [private]

const int Basics3D::C_Point2DParam::m_paramNumb = 128 [static, private]

Объявления и описания членов классов находятся в файлах:
  • Point2DParam.h
  • Point2DParam.cpp


Pipe Line Filters: Класс Basics3D::C_Points2DParamSet

Basics3D::C_Points2DParamSet

Класс Basics3D::C_Points2DParamSet

#include <Points2DParamSet.h>

Полный список членов класса

Открытые члены

C_Points2DParamSet (int i=1)
int | Size () const
void | Disable (T_Points2DSet< C_Point2D > &in_Set, int j)
void | EnableAll ()
void | Load (const char *in_filename, const int in_imHeight)
const C_Point2DParam * | operator[] (int i) const
void | Normalize ()

Закрытые члены

double | MeanX (int i)
double | MeanY (int i)
double | MeanDev (int i)
void | ClearMeans ()

Закрытые данные

std::vector< C_Point2DParam > | m_Points
int | m_groupSize
std::vector< double > | m_MeanX
std::vector< double > | m_MeanY
std::vector< double > | m_MeanDev

Конструктор(ы)

Basics3D::C_Points2DParamSet::C_Points2DParamSet ( int i = 1 )

Методы

double Basics3D::C_Points2DParamSet::MeanX ( int i ) [private]

double Basics3D::C_Points2DParamSet::MeanY ( int i ) [private]

double Basics3D::C_Points2DParamSet::MeanDev ( int i ) [private]

void Basics3D::C_Points2DParamSet::ClearMeans ( ) [private]

int Basics3D::C_Points2DParamSet::Size ( ) const

void Basics3D::C_Points2DParamSet::Disable | ( | T_Points2DSet< C_Point2D > & | in_Set,
 |  | int | j
 | ) |  |

void Basics3D::C_Points2DParamSet::EnableAll ( )

void Basics3D::C_Points2DParamSet::Load | ( | const char * | in_filename,
 |  | const int | in_imHeight
 | ) |  |

const C_Point2DParam * Basics3D::C_Points2DParamSet::operator[] ( int i ) const

void Basics3D::C_Points2DParamSet::Normalize ( )

Данные класса

std::vector<C_Point2DParam> Basics3D::C_Points2DParamSet::m_Points [private]

int Basics3D::C_Points2DParamSet::m_groupSize [private]

std::vector<double> Basics3D::C_Points2DParamSet::m_MeanX [private]

std::vector<double> Basics3D::C_Points2DParamSet::m_MeanY [private]

std::vector<double> Basics3D::C_Points2DParamSet::m_MeanDev [private]

Объявления и описания членов классов находятся в файлах:
  • Points2DParamSet.h
  • Points2DParamSet.cpp


Pipe Line Filters: Класс Basics3D::C_ProjectiveMatrix

Basics3D::C_ProjectiveMatrix

Класс Basics3D::C_ProjectiveMatrix

#include <ProjectiveMatrix.h>

Полный список членов класса

Открытые статические члены

static void | Left (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &out)
static void | Right (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &out, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F)
static void | Right (std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 >> &out_P, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_E)

Закрытые статические члены

static void | GetW (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_W)
static void | SortColumns (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_M, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_M, const int k[3])
static void | SortSV (int k[3])
static void | GetP (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &out_P, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_UWV, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_U, const int in_k, const int in_sgn)

Методы

void Basics3D::C_ProjectiveMatrix::GetW ( Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & out_W ) [static, private]

static void Basics3D::C_ProjectiveMatrix::SortColumns | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_M,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_M,
 |  | const int | k[3] |
 | ) |  |  | [static, private]

static void Basics3D::C_ProjectiveMatrix::SortSV ( int k[3] ) [static, private]

void Basics3D::C_ProjectiveMatrix::GetP | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > & | out_P,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_UWV,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_U,
 |  | const int | in_k,
 |  | const int | in_sgn |
 | ) |  |  | [static, private]

void Basics3D::C_ProjectiveMatrix::Left ( Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > & out ) [static]

void Basics3D::C_ProjectiveMatrix::Right | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > & | out,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_F |
 | ) |  |  | [static]

void Basics3D::C_ProjectiveMatrix::Right | ( | std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 >> & | out_P,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_E |
 | ) |  |  | [static]

Объявления и описания членов классов находятся в файлах:
  • ProjectiveMatrix.h
  • ProjectiveMatrix.cpp


Pipe Line Filters: Класс Basics3D::C_StructureComputation

Basics3D::C_StructureComputation

Класс Basics3D::C_StructureComputation

#include <StructureComputation.h>

Полный список членов класса

Открытые члены

C_StructureComputation (const T_Points2DSet< C_Point2D > &in_points2D, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F, const int in_width, const int in_height, const double in_sigma)
void | Reconstruction (const double in_g)

Закрытые члены

void | OptimalSolution ()
double | CostFunction (const double a, const double b, const double c, const double d, const double f, const double f1, const double t)
double | AsimptValue (const double a, const double c, const double f, const double f1)
void | ClosestToOriginPoint (Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > out_p, const Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > in_line)
void | BuildModelPoints (const char *in_filename)
void | BuildModelFaces (const char *in_filename, const char *in_triang)
void | Correct (const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > in_P, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > in_P1, const Vtl::NumAlg::Lin::ublas::matrix< double > in_points, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 4 > &in_H)

Закрытые данные

Vtl::NumAlg::Lin::ublas::matrix<
double > 		m_points3D
T_Points2DSet< C_Point2D > m_normPoints2D
T_Points2DSet< C_Point2D > m_texCoord
Vtl::NumAlg::Lin::ublas::c_matrix<
double, 3, 3 > 		m_fundM
double | m_maxX
double | m_minX
double | m_maxY
double | m_minY
double | m_maxZ
double | m_minZ

Конструктор(ы)

Basics3D::C_StructureComputation::C_StructureComputation | ( | const T_Points2DSet< C_Point2D > & | in_points2D,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_F,
 |  | const int | in_width,
 |  | const int | in_height,
 |  | const double | in_sigma
 | ) |  |

Методы

void Basics3D::C_StructureComputation::OptimalSolution ( ) [private]

double Basics3D::C_StructureComputation::CostFunction | ( | const double | a,
 |  | const double | b,
 |  | const double | c,
 |  | const double | d,
 |  | const double | f,
 |  | const double | f1,
 |  | const double | t |
 | ) |  |  | [private]

double Basics3D::C_StructureComputation::AsimptValue | ( | const double | a,
 |  | const double | c,
 |  | const double | f,
 |  | const double | f1 |
 | ) |  |  | [private]

void Basics3D::C_StructureComputation::ClosestToOriginPoint | ( | Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > | out_p,
 |  | const Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > | in_line |
 | ) |  |  | [private]

void Basics3D::C_StructureComputation::BuildModelPoints ( const char * in_filename ) [private]

void Basics3D::C_StructureComputation::BuildModelFaces | ( | const char * | in_filename,
 |  | const char * | in_triang |
 | ) |  |  | [private]

void Basics3D::C_StructureComputation::Correct | ( | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > | in_P,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > | in_P1,
 |  | const Vtl::NumAlg::Lin::ublas::matrix< double > | in_points,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 4 > & | in_H |
 | ) |  |  | [private]

void Basics3D::C_StructureComputation::Reconstruction ( const double in_g )

Данные класса

Vtl::NumAlg::Lin::ublas::matrix<double> Basics3D::C_StructureComputation::m_points3D [private]

T_Points2DSet<C_Point2D> Basics3D::C_StructureComputation::m_normPoints2D [private]

T_Points2DSet<C_Point2D> Basics3D::C_StructureComputation::m_texCoord [private]

Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> Basics3D::C_StructureComputation::m_fundM [private]

double Basics3D::C_StructureComputation::m_maxX [private]

double Basics3D::C_StructureComputation::m_minX [private]

double Basics3D::C_StructureComputation::m_maxY [private]

double Basics3D::C_StructureComputation::m_minY [private]

double Basics3D::C_StructureComputation::m_maxZ [private]

double Basics3D::C_StructureComputation::m_minZ [private]

Объявления и описания членов классов находятся в файлах:
  • StructureComputation.h
  • StructureComputation.cpp


Pipe Line Filters: Класс Basics3D::C_Transform

Basics3D::C_Transform

Класс Basics3D::C_Transform

#include <Transform.h>

Граф связей класса Basics3D::C_Transform:

[см. легенду]
Полный список членов класса

Открытые члены

C_Transform (const AImageMem8 *in_src)
AImageMem8 * | Apply (const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_M)
void | Save (char *in_filename)

Закрытые данные

const AImageMem8 * | m_src
AImageMem8 * m_dst

Конструктор(ы)

Basics3D::C_Transform::C_Transform ( const AImageMem8 * in_src )

Методы

AImageMem8 * Basics3D::C_Transform::Apply ( const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & in_M )

void Basics3D::C_Transform::Save ( char * in_filename )

Данные класса

const AImageMem8* Basics3D::C_Transform::m_src [private]

AImageMem8* Basics3D::C_Transform::m_dst [private]

Объявления и описания членов классов находятся в файлах:
  • Transform.h
  • Transform.cpp


Pipe Line Filters: Класс Basics3D::C_TransformMatrices

Basics3D::C_TransformMatrices

Класс Basics3D::C_TransformMatrices

#include <TransformMatrices.h>

Полный список членов класса

Открытые статические члены

static double | Normalization (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_MeanX, const double in_MeanY, const double in_MeanDev, const double in_pointErr)
static double | NormalizationInverse (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_MeanX, const double in_MeanY, const double in_MeanDev, const double in_pointErr)
static void | Scaling (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_coef)
static void | Translational (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_X, const double in_Y)
static void | TranslationalInverse (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_X, const double in_Y)
static void | Rotation (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &in_e)
static void | RotationX (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_cos, const double in_sin)
static void | RotationY (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_cos, const double in_sin)
static void | RotationZ (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_cos, const double in_sin)
static void | SkewSymmetric (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &in_v)
template<class MatrixType>
static void | Identity (MatrixType &out)

Методы

double Basics3D::C_TransformMatrices::Normalization | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out,
 |  | const double | in_MeanX,
 |  | const double | in_MeanY,
 |  | const double | in_MeanDev,
 |  | const double | in_pointErr |
 | ) |  |  | [static]

double Basics3D::C_TransformMatrices::NormalizationInverse | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out,
 |  | const double | in_MeanX,
 |  | const double | in_MeanY,
 |  | const double | in_MeanDev,
 |  | const double | in_pointErr |
 | ) |  |  | [static]

static void Basics3D::C_TransformMatrices::Scaling | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out,
 |  | const double | in_coef |
 | ) |  |  | [static]

void Basics3D::C_TransformMatrices::Translational | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out,
 |  | const double | in_X,
 |  | const double | in_Y |
 | ) |  |  | [static]

void Basics3D::C_TransformMatrices::TranslationalInverse | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out,
 |  | const double | in_X,
 |  | const double | in_Y |
 | ) |  |  | [static]

void Basics3D::C_TransformMatrices::Rotation | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out,
 |  | Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > & | in_e |
 | ) |  |  | [static]

void Basics3D::C_TransformMatrices::RotationX | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out,
 |  | const double | in_cos,
 |  | const double | in_sin |
 | ) |  |  | [static]

void Basics3D::C_TransformMatrices::RotationY | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out,
 |  | const double | in_cos,
 |  | const double | in_sin |
 | ) |  |  | [static]

void Basics3D::C_TransformMatrices::RotationZ | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out,
 |  | const double | in_cos,
 |  | const double | in_sin |
 | ) |  |  | [static]

void Basics3D::C_TransformMatrices::SkewSymmetric | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out,
 |  | const Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > & | in_v |
 | ) |  |  | [static]

template<class MatrixType>
static void Basics3D::C_TransformMatrices::Identity ( MatrixType & out ) [inline, static]

Объявления и описания членов классов находятся в файлах:
  • TransformMatrices.h
  • TransformMatrices.cpp


Pipe Line Filters: Класс Basics3D::C_Triangulation

Basics3D::C_Triangulation

Класс Basics3D::C_Triangulation

#include <Triangulation.h>

Полный список членов класса

Открытые члены

C_Triangulation (const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P1)
void | Get3DPoint (Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &out, const C_Point2D &in_p1, const C_Point2D &in_p2)

Закрытые члены

void | CreateSystem (Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 4 > &out_System, const C_Point2D &in_p1, const C_Point2D &in_p2)

Закрытые данные

Vtl::NumAlg::Lin::ublas::c_vector<
double, 4 > 		m_p1
Vtl::NumAlg::Lin::ublas::c_vector<
double, 4 > 		m_p2
Vtl::NumAlg::Lin::ublas::c_vector<
double, 4 > 		m_p3
Vtl::NumAlg::Lin::ublas::c_vector<
double, 4 > 		m_p1_1
Vtl::NumAlg::Lin::ublas::c_vector<
double, 4 > 		m_p2_1
Vtl::NumAlg::Lin::ublas::c_vector<
double, 4 > 		m_p3_1

Конструктор(ы)

Basics3D::C_Triangulation::C_Triangulation | ( | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > & | in_P,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > & | in_P1
 | ) |  |

Методы

void Basics3D::C_Triangulation::CreateSystem | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 4 > & | out_System,
 |  | const C_Point2D & | in_p1,
 |  | const C_Point2D & | in_p2 |
 | ) |  |  | [private]

void Basics3D::C_Triangulation::Get3DPoint | ( | Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > & | out,
 |  | const C_Point2D & | in_p1,
 |  | const C_Point2D & | in_p2
 | ) |  |

Данные класса

Vtl::NumAlg::Lin::ublas::c_vector<double, 4> Basics3D::C_Triangulation::m_p1 [private]

Vtl::NumAlg::Lin::ublas::c_vector<double, 4> Basics3D::C_Triangulation::m_p2 [private]

Vtl::NumAlg::Lin::ublas::c_vector<double, 4> Basics3D::C_Triangulation::m_p3 [private]

Vtl::NumAlg::Lin::ublas::c_vector<double, 4> Basics3D::C_Triangulation::m_p1_1 [private]

Vtl::NumAlg::Lin::ublas::c_vector<double, 4> Basics3D::C_Triangulation::m_p2_1 [private]

Vtl::NumAlg::Lin::ublas::c_vector<double, 4> Basics3D::C_Triangulation::m_p3_1 [private]

Объявления и описания членов классов находятся в файлах:
  • Triangulation.h
  • Triangulation.cpp


Pipe Line Filters: Шаблон структуры Basics3D::Structure::CameraPos< T >

Basics3D::Structure::CameraPos

Шаблон структуры Basics3D::Structure::CameraPos< T >

#include <sfm_reconsruction.h>

Полный список членов класса

Открытые атрибуты

Types< T >::Vector_3 | t
Types< T >::Matrix_3x3 | R
Types< T >::value_type | focus
int | id

template<typename T>
struct Basics3D::Structure::CameraPos< T >

Данные класса

template<typename T>
Types<T>::Vector_3 Basics3D::Structure::CameraPos< T >::t

template<typename T>
Types<T>::Matrix_3x3 Basics3D::Structure::CameraPos< T >::R

template<typename T>
Types<T>::value_type Basics3D::Structure::CameraPos< T >::focus

template<typename T>
int Basics3D::Structure::CameraPos< T >::id

Объявления и описания членов структуры находятся в файле:
  • sfm_reconsruction.h


Pipe Line Filters: Шаблон класса Basics3D::Fm2Essential::CameraPoseFromEssential< T >

Basics3D::Fm2Essential::CameraPoseFromEssential

Шаблон класса Basics3D::Fm2Essential::CameraPoseFromEssential< T >

#include <sfm_calibration.h>

Полный список членов класса

Открытые члены

CameraPoseFromEssential (const Matrix_3x3 E_)

Открытые атрибуты

Matrix_3x3 R0
Vector_3 t0
Matrix_3x3 R
Vector_3 t

Закрытые типы

enum | { N3 = 3 }
enum | { N4 = 4 }
typedef T | value_type
typedef Vtl::NumAlg::Lin::ublas::c_matrix<
value_type, N3, N3 > 		Matrix_3x3
typedef Vtl::NumAlg::Lin::ublas::c_vector<
value_type, N3 > 		Vector_3
typedef Vtl::NumAlg::Lin::ublas::c_matrix<
value_type, N3, N4 > 		Matrix_4x3
typedef Vtl::NumAlg::Lin::ublas::c_vector<
value_type, N4 > 		Vector_4

Закрытые статические члены

static Matrix_3x3 | mult (const Matrix_3x3 &a, const Matrix_3x3 &b, const Matrix_3x3 &c)
static Matrix_3x3 | build_W ()
static void | build_W (Matrix_3x3 &w)

Закрытые данные

const Matrix_3x3 & | E
const Matrix_3x3 | W
const Matrix_3x3 | WT

Подробное описание

template<typename T>
class Basics3D::Fm2Essential::CameraPoseFromEssential< T >

Извлечение матриц камер и вектора смещения из существенной матрицы. [Hartley, Zisserman 2004], Result 9.19 page 259.

Определения типов

template<typename T>
typedef T Basics3D::Fm2Essential::CameraPoseFromEssential< T >::value_type [private]

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_matrix<value_type, N3, N3> Basics3D::Fm2Essential::CameraPoseFromEssential< T >::Matrix_3x3 [private]

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_vector<value_type, N3> Basics3D::Fm2Essential::CameraPoseFromEssential< T >::Vector_3 [private]

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_matrix<value_type, N3, N4> Basics3D::Fm2Essential::CameraPoseFromEssential< T >::Matrix_4x3 [private]

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_vector<value_type, N4> Basics3D::Fm2Essential::CameraPoseFromEssential< T >::Vector_4 [private]

Перечисления

template<typename T>
anonymous enum [private]

Элементы перечислений:
N3

template<typename T>
anonymous enum [private]

Элементы перечислений:
N4

Конструктор(ы)

template<typename T>
Basics3D::Fm2Essential::CameraPoseFromEssential< T >::CameraPoseFromEssential ( const Matrix_3x3 E_ ) [inline]

Методы

template<typename T>
static Matrix_3x3 Basics3D::Fm2Essential::CameraPoseFromEssential< T >::mult | ( | const Matrix_3x3 & | a,
 |  | const Matrix_3x3 & | b,
 |  | const Matrix_3x3 & | c |
 | ) |  |  | [inline, static, private]

template<typename T>
static Matrix_3x3 Basics3D::Fm2Essential::CameraPoseFromEssential< T >::build_W ( ) [inline, static, private]

template<typename T>
static void Basics3D::Fm2Essential::CameraPoseFromEssential< T >::build_W ( Matrix_3x3 & w ) [inline, static, private]

Данные класса

template<typename T>
const Matrix_3x3& Basics3D::Fm2Essential::CameraPoseFromEssential< T >::E [private]

template<typename T>
const Matrix_3x3 Basics3D::Fm2Essential::CameraPoseFromEssential< T >::W [private]

template<typename T>
const Matrix_3x3 Basics3D::Fm2Essential::CameraPoseFromEssential< T >::WT [private]

template<typename T>
Matrix_3x3 Basics3D::Fm2Essential::CameraPoseFromEssential< T >::R0

template<typename T>
Vector_3 Basics3D::Fm2Essential::CameraPoseFromEssential< T >::t0

template<typename T>
Matrix_3x3 Basics3D::Fm2Essential::CameraPoseFromEssential< T >::R

template<typename T>
Vector_3 Basics3D::Fm2Essential::CameraPoseFromEssential< T >::t

Объявления и описания членов класса находятся в файле:
  • sfm_calibration.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Canny< T, P >

Vtl::Plf::Canny

Шаблон класса Vtl::Plf::Canny< T, P >
[Complex filters]

Детектор краев Канни. Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::Canny< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::Canny< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

InPortComb< T > & | in ()
OutPort< T, P > & | out ()
Canny ()
Canny (std::string name, T threshold, T output_maxval, float sigma=1.0f, float env_sigmas=2.5f, float gamma_correction=2.2f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
output_maxval==float((1<<bits)-1)
void | Init (std::string name, T threshold, T output_maxval, float sigma=1.0f, float env_sigmas=2.5f, float gamma_correction=2.2f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
output_maxval==float((1<<bits)-1)
virtual | ~Canny ()

Закрытые типы

typedef Vtl::Plf::F11::Comb<
T, Vtl::Plf::F11::GammaCorMult<
T >, P > 		PostProc

Закрытые члены

Canny (const Canny &)
Canny & | operator= (const Canny &)

Закрытые данные

float | sigma
Vtl::Plf::GradientModul< T > | mgrad
Vtl::Plf::EnvProc3to1< T,
Fpie::CannyNMS< T >, P > 		nms

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::Canny< T, P >

Детектор краев Канни.

Структура фильтра Canny - детектор границ (краев)

Результат воздействия на изображение

этим фильтром
Примеры:

test_color_registration.cpp и test_plf_filters.cpp.

Определения типов

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
typedef Vtl::Plf::F11::Comb<T,Vtl::Plf::F11::GammaCorMult<T>,P> Vtl::Plf::Canny< T, P >::PostProc [private]

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Canny< T, P >::Canny ( const Canny< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Canny< T, P >::Canny ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Canny< T, P >::Canny | ( | std::string | name,
 |  | T | threshold,
 |  | T | output_maxval,
 |  | float | sigma = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | float | gamma_correction = 2.2f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

output_maxval==float((1<<bits)-1)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::Canny< T, P >::~Canny ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Canny& Vtl::Plf::Canny< T, P >::operator= ( const Canny< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPortComb<T>& Vtl::Plf::Canny< T, P >::in ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::Canny< T, P >::out ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::Canny< T, P >::Init | ( | std::string | name,
 |  | T | threshold,
 |  | T | output_maxval,
 |  | float | sigma = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | float | gamma_correction = 2.2f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

output_maxval==float((1<<bits)-1)

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
float Vtl::Plf::Canny< T, P >::sigma [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::GradientModul<T> Vtl::Plf::Canny< T, P >::mgrad [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::EnvProc3to1<T,Fpie::CannyNMS<T>,P> Vtl::Plf::Canny< T, P >::nms [private]

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Fpie::CannyNMS< T >

Vtl::Plf::Fpie::CannyNMS

Шаблон класса Vtl::Plf::Fpie::CannyNMS< T >

Функтор для EnvProc3to1, выполняет процедуру подавления немаксимальных точек в стиле Канни (Non Maximum Suppression). Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

void | set_IterNextLineShift (int modul_nls)
Extent | ext () const
CannyNMS ()
CannyNMS (T threshold)
T | operator() (const T *modul, T gx, T gy)

Закрытые данные

T | thr
int | nls

Подробное описание

template<typename T>
class Vtl::Plf::Fpie::CannyNMS< T >

Функтор для EnvProc3to1, выполняет процедуру подавления немаксимальных точек в стиле Канни (Non Maximum Suppression).

Рассматривает окрестность 3х3. В направлении, задаваемом вектором (gx,gy) выбирает две точки (v2- в направлении вектора и v1- в направлении обратном направлению вектора) из 8 соседей. Такая точка обычно лежит между какими-то точками из этих 8 соседей соседей. Яркость ее расчитывается линейной интерполяцией между двумя точками. Получились яркости в двух точках v1 и v2. Если яркость центральной точки v>v1 && v>v2 - то эта точка границы, и функтор возвращает ее яркость, иначе - возвращается 0 - точка не лежит на границе.
threshold - порог, точки, яркость которых modul[0]<threshold считаются НЕ являющимися граничными. threshold не должен быть равен 0, иначе произойдет деление на 0.

Конструктор(ы)

template<typename T>
Vtl::Plf::Fpie::CannyNMS< T >::CannyNMS ( ) [inline]

template<typename T>
Vtl::Plf::Fpie::CannyNMS< T >::CannyNMS ( T threshold ) [inline]

Методы

template<typename T>
void Vtl::Plf::Fpie::CannyNMS< T >::set_IterNextLineShift ( int modul_nls ) [inline]

!!! MUST be called by filter BEFORE using 'operator()', by default next line shist parameter set to value which probably most quick lead a 'Invalid memory access' error (for bug search convenience).

template<typename T>
Extent Vtl::Plf::Fpie::CannyNMS< T >::ext ( ) const [inline]

template<typename T>
T Vtl::Plf::Fpie::CannyNMS< T >::operator() | ( | const T * | modul,
 |  | T | gx,
 |  | T | gy |
 | ) |  |  | [inline]

Данные класса

template<typename T>
T Vtl::Plf::Fpie::CannyNMS< T >::thr [private]

template<typename T>
int Vtl::Plf::Fpie::CannyNMS< T >::nls [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Fpie::CannyNMS_2< T >

Vtl::Plf::Fpie::CannyNMS_2

Шаблон класса Vtl::Plf::Fpie::CannyNMS_2< T >

Функтор для EnvProc3to1, выполняет процедуру подавления немаксимальных точек в стиле Канни (Non Maximum Suppression). Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

void | set_IterNextLineShift (int modul_nls)
Extent | ext () const
CannyNMS_2 ()
CannyNMS_2 (T threshold, T epsilon=0.1f)
T | operator() (const T *modul, T gx, T gy)

Закрытые данные

T | thr
T | eps
int | nls

Подробное описание

template<typename T>
class Vtl::Plf::Fpie::CannyNMS_2< T >

Функтор для EnvProc3to1, выполняет процедуру подавления немаксимальных точек в стиле Канни (Non Maximum Suppression).

Рассматривает окрестность 5х5. Сначала рассматривается окрестность 3х3. В направлении, задаваемом вектором (gx,gy) выбирает две точки (v2- в направлении вектора и v1- в направлении обратном направлению вектора) из 8 соседей. Такая точка обычно лежит между какими-то точками из этих 8 соседей соседей. Яркость ее расчитывается линейной интерполяцией между двумя точками. Получились яркости в двух точках v1 и v2. Если яркость центральной точки v>v1 && v>v2 - то эта точка границы, и функтор возвращает ее яркость, иначе - возвращается 0 - точка не лежит на границе. Если же какая нибудь из точек v1 или v2 по яркости равна v, то то же условие проверяется для более удаленной точки (в пределах окрестности 5х5) в тех же направлениях.
threshold - порог, точки, яркость которых modul[0]<threshold считаются НЕ являющимися граничными. threshold не должен быть равен 0, иначе произойдет деление на 0.
epsilon -порог (точность), по которому определяется равны яркости или нет.

Имеет ли достоинства по сравнению с CannyNMS не понятно, требуеются исследования. Недостаток - значительно медленнее и не вполне валидные результаты в рамке вокруг изображения шириной 2 пикселя в отличие от CannyNMS, для которого 1 пиксель.

Конструктор(ы)

template<typename T>
Vtl::Plf::Fpie::CannyNMS_2< T >::CannyNMS_2 ( ) [inline]

template<typename T>
Vtl::Plf::Fpie::CannyNMS_2< T >::CannyNMS_2 | ( | T | threshold,
 |  | T | epsilon = 0.1f |
 | ) |  |  | [inline]

Методы

template<typename T>
void Vtl::Plf::Fpie::CannyNMS_2< T >::set_IterNextLineShift ( int modul_nls ) [inline]

!!! MUST be called by filter BEFORE using 'operator()', by default next line shist parameter set to value which probably most quick lead a 'Invalid memory access' error (for bug search convenience).

template<typename T>
Extent Vtl::Plf::Fpie::CannyNMS_2< T >::ext ( ) const [inline]

template<typename T>
T Vtl::Plf::Fpie::CannyNMS_2< T >::operator() | ( | const T * | modul,
 |  | T | gx,
 |  | T | gy |
 | ) |  |  | [inline]

Данные класса

template<typename T>
T Vtl::Plf::Fpie::CannyNMS_2< T >::thr [private]

template<typename T>
T Vtl::Plf::Fpie::CannyNMS_2< T >::eps [private]

template<typename T>
int Vtl::Plf::Fpie::CannyNMS_2< T >::nls [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Hanina::Check_4_grad_sign_change< T >

Hanina::Check_4_grad_sign_change

Шаблон класса Hanina::Check_4_grad_sign_change< T >

#include <ss_ridge_functors.h>

Полный список членов класса

Открытые члены

Check_4_grad_sign_change (int next_line_shift)
T | operator() (T image, T hx, T hy, const T *grad_x, const T *grad_y)

Закрытые члены

T | sprod (int ofs, T hx, T hy, const T *grad_x, const T *grad_y)

Закрытые данные

const int | nls

template<typename T>
class Hanina::Check_4_grad_sign_change< T >

Конструктор(ы)

template<typename T>
Hanina::Check_4_grad_sign_change< T >::Check_4_grad_sign_change ( int next_line_shift ) [inline]

Методы

template<typename T>
T Hanina::Check_4_grad_sign_change< T >::sprod | ( | int | ofs,
 |  | T | hx,
 |  | T | hy,
 |  | const T * | grad_x,
 |  | const T * | grad_y |
 | ) |  |  | [inline, private]

template<typename T>
T Hanina::Check_4_grad_sign_change< T >::operator() | ( | T | image,
 |  | T | hx,
 |  | T | hy,
 |  | const T * | grad_x,
 |  | const T * | grad_y |
 | ) |  |  | [inline]

Данные класса

template<typename T>
const int Hanina::Check_4_grad_sign_change< T >::nls [private]

Объявления и описания членов класса находятся в файле:
  • ss_ridge_functors.h


Pipe Line Filters: Класс childPipe

Класс childPipe

#include <apipe.h>

Граф связей класса childPipe:

[см. легенду]
Полный список членов класса

Открытые типы

enum Flags {
F_StdIn = 0x0001, F_StdOut = 0x0002, F_StdErr = 0x0004, F_Split = 0x0008,
F_StdInOut = F_StdIn|F_StdOut, F_StdInErr = F_StdIn|F_StdErr, F_StdOutErr = F_StdOut|F_StdErr, F_StdOutErrSplit = F_StdOutErr|F_Split,
F_StdInOutErr = F_StdIn|F_StdOut|F_StdErr, F_StdInOutErrSplit = F_StdInOutErr|F_Split
}
typedef std::map< std::string,
std::string > 		Env

Открытые члены

childPipe ()
childPipe (std::string command, const Env *env=0, Flags flags=F_StdInOutErr)
~childPipe ()
void | Init (std::string command, const Env *env=0, Flags flags=F_StdInOutErr)
void | Close ()
DWORD | ExitStatus ()
bool | isRunning ()
void | terminate ()
void | wait ()
WritePipe & Stdin ()
ReadPipe & Stdout ()
ReadPipe & Stderr ()

Открытые статические члены

static size_t | envCalcBinBlockSize (const childPipe::Env &env)
static void * | BuildEnvBlock (std::vector< char > &e, const childPipe::Env *env)
static void | envBuildBinBlock (const childPipe::Env &env, char *e, char delim=0, char delim_line=0)
static void | envBuildFromBinBlock (childPipe::Env &env, const char *e)
static char * | envMakeBinBlock (childPipe::Env *env)
static void | envFreeBinBlock (char *env_blk)

Закрытые члены

void | nullify ()

Закрытые статические члены

static bool | Is (Flags flags_to_check, Flags flags)

Закрытые данные

PROCESS_INFORMATION | pi
DWORD | exitStatus
WritePipe stdin_
ReadPipe stdout_
ReadPipe stderr_
bool | the_same_stderr_stdout

Определения типов

typedef std::map<std::string,std::string> childPipe::Env

Перечисления

enum childPipe::Flags

Элементы перечислений:
F_StdIn
F_StdOut
F_StdErr
F_Split
F_StdInOut
F_StdInErr
F_StdOutErr
F_StdOutErrSplit
F_StdInOutErr
F_StdInOutErrSplit

Конструктор(ы)

childPipe::childPipe ( ) [inline]

childPipe::childPipe | ( | std::string | command,
 |  | const Env * | env = 0,
 |  | Flags | flags = F_StdInOutErr |
 | ) |  |  | [inline]

childPipe::~childPipe ( ) [inline]

Методы

size_t childPipe::envCalcBinBlockSize ( const childPipe::Env & env ) [static]

void * childPipe::BuildEnvBlock | ( | std::vector< char > & | e,
 |  | const childPipe::Env * | env |
 | ) |  |  | [static]

void childPipe::envBuildBinBlock | ( | const childPipe::Env & | env,
 |  | char * | e,
 |  | char | delim = 0,
 |  | char | delim_line = 0 |
 | ) |  |  | [static]

void childPipe::envBuildFromBinBlock | ( | childPipe::Env & | env,
 |  | const char * | e |
 | ) |  |  | [static]

char * childPipe::envMakeBinBlock ( childPipe::Env * env ) [static]

void childPipe::envFreeBinBlock ( char * env_blk ) [static]

void childPipe::nullify ( ) [private]

static bool childPipe::Is | ( | Flags | flags_to_check,
 |  | Flags | flags |
 | ) |  |  | [inline, static, private]

void childPipe::Init | ( | std::string | command,
 |  | const Env * | env = 0,
 |  | Flags | flags = F_StdInOutErr
 | ) |  |

void childPipe::Close ( )

DWORD childPipe::ExitStatus ( ) [inline]

bool childPipe::isRunning ( )

void childPipe::terminate ( )

void childPipe::wait ( )

WritePipe& childPipe::Stdin ( ) [inline]

ReadPipe& childPipe::Stdout ( ) [inline]

ReadPipe& childPipe::Stderr ( ) [inline]

Данные класса

PROCESS_INFORMATION childPipe::pi [private]

DWORD childPipe::exitStatus [mutable, private]

WritePipe childPipe::stdin_ [private]

ReadPipe childPipe::stdout_ [private]

ReadPipe childPipe::stderr_ [private]

bool childPipe::the_same_stderr_stdout [private]

Объявления и описания членов классов находятся в файлах:
  • apipe.h
  • apipe.cpp


Pipe Line Filters: Класс Vtl::NumAlg::Lin::cholesky

Vtl::NumAlg::Lin::cholesky

Класс Vtl::NumAlg::Lin::cholesky

#include <_num_cholesky.h>

Полный список членов класса

Открытые статические члены

template<class Matrix>
static bool | decomp (const Matrix &A, Matrix &L_)
template<class Matrix, class Vector>
static void | solve (Matrix &L, const Vector &x)
template<class Matrix, class Matrix2>
static void | solve (const Matrix &L, const Matrix2 &X)

Подробное описание

For a symmetric, positive definite matrix A, this function computes the Cholesky factorization, i.e. it computes a lower triangular matrix L such that A = L*L'. If the matrix is not symmetric or positive definite, the function computes only a partial decomposition. This can be tested with the is_spd() flag.

Typical usage looks like:

        ublas::c_matrix<float,3,3> A;
        ublas::c_matrix<float,3,3> L;
     ...
        bool isOk = cholesky::decomp(A,L);
        if(!isOk )
            throw  "factorization was not complete.";

(Adapted from JAMA, a Java Matrix Library, developed by jointly by the Mathworks and NIST; see http://math.nist.gov/javanumerics/jama).

Методы

template<class Matrix>
static bool Vtl::NumAlg::Lin::cholesky::decomp | ( | const Matrix & | A,
 |  | Matrix & | L_ |
 | ) |  |  | [inline, static]

Constructs a lower triangular matrix L, such that L*L'= A. If A is not symmetric positive-definite (SPD), only a partial factorization is performed. If is_spd() evalutate true (1) then the factorizaiton was successful.

template<class Matrix, class Vector>
static void Vtl::NumAlg::Lin::cholesky::solve | ( | Matrix & | L,
 |  | const Vector & | x |
 | ) |  |  | [inline, static]

Solve a linear system A*x = b, using the previously computed cholesky factorization of A: L*L'.

Аргументы:
L | A Matrix with as many rows as A and any number of columns.
x | x so that L*L'*x = b. If b is nonconformat, or if A was not symmetric posidtive definite, a null (0x0) array is returned.
As a X argument first right side transfered. It will be replaced by result.

template<class Matrix, class Matrix2>
static void Vtl::NumAlg::Lin::cholesky::solve | ( | const Matrix & | L,
 |  | const Matrix2 & | X |
 | ) |  |  | [inline, static]

Solve a linear system A*X = B, using the previously computed cholesky factorization of A: L*L'.

Аргументы:
L | A Matrix with as many rows as A and any number of columns.
X | so that L*L'*X = B. If B is nonconformat, or if A was not symmetric posidtive definite, a null (0x0) array is returned.

Объявления и описания членов класса находятся в файле:
  • _num_cholesky.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Bres::Circle< T >

Vtl::ImAlg::Bres::Circle

Шаблон класса Vtl::ImAlg::Bres::Circle< T >

Алгоритм 'рисования' окружности. Подробнее...

#include <alg_bresenham.h>

Полный список членов класса

Открытые члены

Circle (int xc, int yc, int a0)
void | Draw ()
void | Set4Pixels (int x, int y, int xc, int yc)

Закрытые данные

long | Asquared
long | TwoAsquared
long | Bsquared
long | TwoBsquared
long | d
long | dx
long | dy

Подробное описание

template<class T>
class Vtl::ImAlg::Bres::Circle< T >

Алгоритм 'рисования' окружности.

Конструктор(ы)

template<class T>
Vtl::ImAlg::Bres::Circle< T >::Circle | ( | int | xc,
 |  | int | yc,
 |  | int | a0 |
 | ) |  |  | [inline]

xc,yc - center of ellipse a0,b0 - semiaxes

Методы

template<class T>
void Vtl::ImAlg::Bres::Circle< T >::Draw ( ) [inline]

template<class T>
void Vtl::ImAlg::Bres::Circle< T >::Set4Pixels | ( | int | x,
 |  | int | y,
 |  | int | xc,
 |  | int | yc |
 | ) |  |  | [inline]

Данные класса

template<class T>
long Vtl::ImAlg::Bres::Circle< T >::Asquared [private]

template<class T>
long Vtl::ImAlg::Bres::Circle< T >::TwoAsquared [private]

template<class T>
long Vtl::ImAlg::Bres::Circle< T >::Bsquared [private]

template<class T>
long Vtl::ImAlg::Bres::Circle< T >::TwoBsquared [private]

template<class T>
long Vtl::ImAlg::Bres::Circle< T >::d [private]

template<class T>
long Vtl::ImAlg::Bres::Circle< T >::dx [private]

template<class T>
long Vtl::ImAlg::Bres::Circle< T >::dy [private]

Объявления и описания членов класса находятся в файле:
  • alg_bresenham.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T >

Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T >

Шаблон класса Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Если для преобразования Фурье в качестве вещественной части было предъявлени изображение I1, а в качестве мнимой - I2 и было выполнено ПФ, то вызов proc_pos_neg_freq() с этим функтором приводит к вычислению inplace выражения F1.F2* . Подробнее...

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

ClalcF1F2conj (T data[])
template<bool upper_half, typename I>
void | operator() (I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf)
template<bool upper_half, typename I>
void | operator() (I k, Loki::Int2Type< upper_half >)

Закрытые данные

T * | data_

Подробное описание

template<typename T>
class Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Если для преобразования Фурье в качестве вещественной части было предъявлени изображение I1, а в качестве мнимой - I2 и было выполнено ПФ, то вызов proc_pos_neg_freq() с этим функтором приводит к вычислению inplace выражения F1.F2* .

Функтор применим для любой размерности пространства, в т.ч. ndim>2.

Конструктор(ы)

template<typename T>
Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T >::ClalcF1F2conj ( T data[] ) [inline]

Методы

template<typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T >::operator() | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > | up_hlf |
 | ) |  |  | [inline]

template<typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T >::operator() | ( | I | k,
 |  | Loki::Int2Type< upper_half > |  |
 | ) |  |  | [inline]

Данные класса

template<typename T>
T* Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T >::data_ [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >

Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >

Шаблон класса Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

ClalcF1F2conj (T re[], T im[])
template<bool upper_half, typename I>
void | operator() (I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf)
template<bool upper_half, typename I>
void | operator() (I k, Loki::Int2Type< upper_half >)

Закрытые данные

T * | re_
T * | im_

template<typename T>
class Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >

Конструктор(ы)

template<typename T>
Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >::ClalcF1F2conj | ( | T | re[],
 |  | T | im[] |
 | ) |  |  | [inline]

Методы

template<typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >::operator() | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > | up_hlf |
 | ) |  |  | [inline]

template<typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >::operator() | ( | I | k,
 |  | Loki::Int2Type< upper_half > |  |
 | ) |  |  | [inline]

Данные класса

template<typename T>
T* Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >::re_ [private]

template<typename T>
T* Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >::im_ [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон класса Cluster1D< T, DatumType >

Шаблон класса Cluster1D< T, DatumType >

#include <KMeans.h>

Полный список членов класса

Открытые члены

Cluster1D ()
Cluster1D (const DatumType &d)
Cluster1D & | operator+ (const DatumType &d)
void | Divide ()
template<typename ItemType>
T | Dist (const ItemType &d)
void | Print ()

Открытые атрибуты

T | val
std::vector< const DatumType * > | data

template<typename T, typename DatumType>
class Cluster1D< T, DatumType >

Конструктор(ы)

template<typename T, typename DatumType>
Cluster1D< T, DatumType >::Cluster1D ( ) [inline]

template<typename T, typename DatumType>
Cluster1D< T, DatumType >::Cluster1D ( const DatumType & d ) [inline]

Методы

template<typename T, typename DatumType>
Cluster1D& Cluster1D< T, DatumType >::operator+ ( const DatumType & d ) [inline]

template<typename T, typename DatumType>
void Cluster1D< T, DatumType >::Divide ( ) [inline]

template<typename T, typename DatumType>
template<typename ItemType>
T Cluster1D< T, DatumType >::Dist ( const ItemType & d ) [inline]

template<typename T, typename DatumType>
void Cluster1D< T, DatumType >::Print ( ) [inline]

Данные класса

template<typename T, typename DatumType>
T Cluster1D< T, DatumType >::val

template<typename T, typename DatumType>
std::vector<const DatumType *> Cluster1D< T, DatumType >::data

Объявления и описания членов класса находятся в файле:
  • KMeans.h


Pipe Line Filters: Шаблон класса Cluster2D< T, DatumType >

Шаблон класса Cluster2D< T, DatumType >

#include <KMeans.h>

Полный список членов класса

Открытые члены

Cluster2D ()
Cluster2D (const DatumType &d)
Cluster2D & | operator+ (const DatumType &d)
void | Divide ()
template<typename ItemType>
T | Dist (const ItemType &d)
void | Print ()

Открытые атрибуты

T | x
T | y
std::vector< const DatumType * > | data

template<typename T, typename DatumType>
class Cluster2D< T, DatumType >

Конструктор(ы)

template<typename T, typename DatumType>
Cluster2D< T, DatumType >::Cluster2D ( ) [inline]

template<typename T, typename DatumType>
Cluster2D< T, DatumType >::Cluster2D ( const DatumType & d ) [inline]

Методы

template<typename T, typename DatumType>
Cluster2D& Cluster2D< T, DatumType >::operator+ ( const DatumType & d ) [inline]

template<typename T, typename DatumType>
void Cluster2D< T, DatumType >::Divide ( ) [inline]

template<typename T, typename DatumType>
template<typename ItemType>
T Cluster2D< T, DatumType >::Dist ( const ItemType & d ) [inline]

template<typename T, typename DatumType>
void Cluster2D< T, DatumType >::Print ( ) [inline]

Данные класса

template<typename T, typename DatumType>
T Cluster2D< T, DatumType >::x

template<typename T, typename DatumType>
T Cluster2D< T, DatumType >::y

template<typename T, typename DatumType>
std::vector<const DatumType *> Cluster2D< T, DatumType >::data

Объявления и описания членов класса находятся в файле:
  • KMeans.h


Pipe Line Filters: Шаблон класса Vtl::Plf::ColumnIteratorFast< T >

Vtl::Plf::ColumnIteratorFast

Шаблон класса Vtl::Plf::ColumnIteratorFast< T >
[Iterators and Utilities for Elementary Filters]

Итератор для получения информации из ImageRef. Подробнее...

#include <plf_iterators.h>

Полный список членов класса

Открытые члены

ColumnIteratorFast (const T *pointer, int step)
ColumnIteratorFast (const ColumnIteratorFast &it)
const T & | operator * ()
ColumnIteratorFast & operator++ ()
ColumnIteratorFast & operator-- ()

Закрытые члены

ColumnIteratorFast ()

Закрытые данные

const T * | ptr
int | stride

Подробное описание

template<typename T>
class Vtl::Plf::ColumnIteratorFast< T >

Итератор для получения информации из ImageRef.

class ColumnIteratorFast

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

Конструктор(ы)

template<typename T>
Vtl::Plf::ColumnIteratorFast< T >::ColumnIteratorFast ( ) [inline, private]

template<typename T>
Vtl::Plf::ColumnIteratorFast< T >::ColumnIteratorFast | ( | const T * | pointer,
 |  | int | step |
 | ) |  |  | [inline]

template<typename T>
Vtl::Plf::ColumnIteratorFast< T >::ColumnIteratorFast ( const ColumnIteratorFast< T > & it ) [inline]

Методы

template<typename T>
const T& Vtl::Plf::ColumnIteratorFast< T >::operator * ( ) [inline]

template<typename T>
ColumnIteratorFast& Vtl::Plf::ColumnIteratorFast< T >::operator++ ( ) [inline]

template<typename T>
ColumnIteratorFast& Vtl::Plf::ColumnIteratorFast< T >::operator-- ( ) [inline]

Данные класса

template<typename T>
const T* Vtl::Plf::ColumnIteratorFast< T >::ptr [private]

template<typename T>
int Vtl::Plf::ColumnIteratorFast< T >::stride [private]

Объявления и описания членов класса находятся в файле:
  • plf_iterators.h


Pipe Line Filters: Шаблон структуры Vtl::Plf::F11::Comb< T, F1, F2 >

Vtl::Plf::F11::Comb

Шаблон структуры Vtl::Plf::F11::Comb< T, F1, F2 >

functor Comb - предназначен для комбинирования нескольких функторов в один. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

Comb ()
Comb (F1 first, F2 second)
template<typename T1>
T | operator() (T1 val)

Открытые атрибуты

F1 | first_
F2 | second_

Подробное описание

template<typename T, class F1, class F2>
struct Vtl::Plf::F11::Comb< T, F1, F2 >

functor Comb - предназначен для комбинирования нескольких функторов в один.

Функтор для FilterLevels и постобработок во всех вильтрах. Каждый выход любого фильтра должен представляться, классом OutPort, его второй шаблонный параметр - функтор, который задает обработку пиксель в пиксель, которая будет проведена после того, как фильтр отработал и записал строку, но до того как будет проведены отражения буфера отнгосительно краев и данные станут доступны следующему фильтру. По возможности следует избегать использовать класс FilterLevels и по возможности пользоваться постобработками из за соображений эффективности. do nothing

Примеры:

test_fast_gauss.cpp.

Конструктор(ы)

template<typename T, class F1, class F2>
Vtl::Plf::F11::Comb< T, F1, F2 >::Comb ( ) [inline]

template<typename T, class F1, class F2>
Vtl::Plf::F11::Comb< T, F1, F2 >::Comb | ( | F1 | first,
 |  | F2 | second |
 | ) |  |  | [inline]

Методы

template<typename T, class F1, class F2>
template<typename T1>
T Vtl::Plf::F11::Comb< T, F1, F2 >::operator() ( T1 val ) [inline]

Данные класса

template<typename T, class F1, class F2>
F1 Vtl::Plf::F11::Comb< T, F1, F2 >::first_

template<typename T, class F1, class F2>
F2 Vtl::Plf::F11::Comb< T, F1, F2 >::second_

Объявления и описания членов структуры находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Hanina::Comb_ridge< T1, T2 >

Hanina::Comb_ridge

Шаблон класса Hanina::Comb_ridge< T1, T2 >

#include <ss_ridge_functors.h>

Полный список членов класса

Открытые члены

Comb_ridge (T2 value)
T2 | operator() (T1 v1, T2 v2)

Закрытые данные

T2 | val

template<typename T1, typename T2>
class Hanina::Comb_ridge< T1, T2 >

Конструктор(ы)

template<typename T1, typename T2>
Hanina::Comb_ridge< T1, T2 >::Comb_ridge ( T2 value ) [inline]

Методы

template<typename T1, typename T2>
T2 Hanina::Comb_ridge< T1, T2 >::operator() | ( | T1 | v1,
 |  | T2 | v2 |
 | ) |  |  | [inline]

Данные класса

template<typename T1, typename T2>
T2 Hanina::Comb_ridge< T1, T2 >::val [private]

Объявления и описания членов класса находятся в файле:
  • ss_ridge_functors.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::common_Trig< T, D, K >

Vtl::ImAlg::WndFun::common_Trig

Шаблон класса Vtl::ImAlg::WndFun::common_Trig< T, D, K >

База для тригонометрических окон. Подробнее...

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::common_Trig< T, D, K >:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::common_Trig< T, D, K >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef T | arg_type

Открытые члены

template<typename TT, typename TTT>
common_Trig (TT size_, TTT *a)
template<typename TT>
T | operator() (TT x) const
arg_type | size () const
arg_type | center () const
arg_type | left () const
arg_type | right () const

Закрытые члены

T | result (T x, Loki::Int2Type< true >) const
T | result (T x, Loki::Int2Type< false >) const

Закрытые данные

const T | c
const T | a0
const Impl::common_Trig::cos_Member<
T, D, K, 1 > 		cm
const arg_type | _size_

Подробное описание

template<typename T, unsigned D, unsigned K>
class Vtl::ImAlg::WndFun::common_Trig< T, D, K >

База для тригонометрических окон.

            template<typename T,unsigned D,unsigned K>  class common_Trig;
T - тип данных (value_type)
D - производная, 0 -окно, 1 - превая производная, 2 - вторая и т.д.
K - количество тригонометрических слагаемых (см. ниже), т.е. функтор будет зависеть от K+1 численных коэффициентов, задающих конкретную форму окна.

Ряд оконных функций выражается формулами, отличающимися только коэффициентами. Эта формула имеет вид:

Вводя обозначение

эту формулу можно переписать в более простом виде:

Оконные функции и соответствующие коэффициенты таковы:

Окно | a0 | a1 | a2 | a3 | a4 | B | dB
Hamming | 0.53836 | -0.46164 | - | - | - | 1.37 | 43
Hann | 0.5 | -0.5 | - | - | - | 1.50 | 33
Blackman | 0.42 | -0.5 | 0.08 | - | - | 1.73 | 60
Blackman–Nuttall | 0.3635819 | -0.4891775 | 0.1365995 | -0.0106411 | - | 1.98 | 98
Blackman–Harris | 0.35875 | -0.48829 | 0.14128 | -0.01168 | - | 2.01 | 94
Nuttall, continuous first derivative | 0.355768 | -0.487396 | 0.144232 | -0.012604 | - | 2.02 | 95
Flat top window | 1.0 | -1.93 | 1.29 | -0.388 | 0.032 | 3.77 | 70

Все функции шляпкообразные, кроме последней – положительные и монотонно убывающие от центра к краям, в максимуме (в центре окна) достигают значения 1 (кроме последней, которая в максимуме равна 4.64). Ниже приводятся нормированные коэффициенты так, чтобы в центре значение функции было 1.

Flat top window 0.215517 -0.415948 0.278017 -0.278017 0.006897 3.77 70

Полагая переменную x – непрерывной вещественной вычислим производные. Обозначим

и введем функции:

, функцию

где $ { [ ... ] } $ обозначает округление до ближайшего целого не превышающего значение аргумента, и функцию

Соответствующие функции реализованы в библиотеке в пространстве имен Vtl::Alg,

См. также:
Vtl::Alg::sincos

Vtl::Alg::minus_if_odd - является аналогом sisign, эквивалент устанавливается как sisign(k,x)=minus_if_odd<(k+1)/2>(x);

Vtl::Alg::dsin

Тогда с учетом введенных обозначений можно окончательно записать:

где [image] -символ Кроннекера. С использованием С++ функций последнее выражение приобретает вид:

В этой формуле первое слагаемое - символ Кроннекера реализован непосредственно в классе common_Trig за счет перегрузки функций result() по второму аргументу, что происходит на этапе компиляции. Вычисление суммы (аргумента функции времени компиляции minus_if_odd) выполняется в классе Vtl::Plf::Kernel::F::Impl::cos_Member, точнее вычисление одного члена суммы происходит в классе Vtl::Plf::Kernel::F::Impl::cos_Member_base, а суммирование должного количества слагаемых - в классе Vtl::Plf::Kernel::F::Impl::cos_Member, который обеспечивает явную подстановку формулы из заданного третьим шаблонным параметром количества слагаемых, никаких циклов и рекурсий во время работы программы не выполняется, все происходит на этапе компиляции.

К сожалению нельзя гарантировать вычисление величины a_j * x_to_N<D>::value(cj) в момент компиляции, так как в отличие от целочисленных величин, не существует типа данных с плавающей точкой аналогичного enum, который в момент компиляции ОБЯЗАН БЫТЬ ИЗВЕСТЕН, в противном случае программа не может быть скомпилирована. Для данных с плавающей точкой такого механизма принуждения компилятора нет.

Определения типов

template<typename T, unsigned D, unsigned K>
typedef T Vtl::ImAlg::WndFun::common_Trig< T, D, K >::arg_type

Конструктор(ы)

template<typename T, unsigned D, unsigned K>
template<typename TT, typename TTT>
Vtl::ImAlg::WndFun::common_Trig< T, D, K >::common_Trig | ( | TT | size_,
 |  | TTT * | a |
 | ) |  |  | [inline]

Методы

template<typename T, unsigned D, unsigned K>
template<typename TT>
T Vtl::ImAlg::WndFun::common_Trig< T, D, K >::operator() ( TT x ) const [inline]

template<typename T, unsigned D, unsigned K>
arg_type Vtl::ImAlg::WndFun::common_Trig< T, D, K >::size ( ) const [inline]

template<typename T, unsigned D, unsigned K>
arg_type Vtl::ImAlg::WndFun::common_Trig< T, D, K >::center ( ) const [inline]

template<typename T, unsigned D, unsigned K>
arg_type Vtl::ImAlg::WndFun::common_Trig< T, D, K >::left ( ) const [inline]

template<typename T, unsigned D, unsigned K>
arg_type Vtl::ImAlg::WndFun::common_Trig< T, D, K >::right ( ) const [inline]

template<typename T, unsigned D, unsigned K>
T Vtl::ImAlg::WndFun::common_Trig< T, D, K >::result | ( | T | x,
 |  | Loki::Int2Type< true > |  |
 | ) |  |  | const [inline, private]

template<typename T, unsigned D, unsigned K>
T Vtl::ImAlg::WndFun::common_Trig< T, D, K >::result | ( | T | x,
 |  | Loki::Int2Type< false > |  |
 | ) |  |  | const [inline, private]

Данные класса

template<typename T, unsigned D, unsigned K>
const T Vtl::ImAlg::WndFun::common_Trig< T, D, K >::c [private]

template<typename T, unsigned D, unsigned K>
const T Vtl::ImAlg::WndFun::common_Trig< T, D, K >::a0 [private]

template<typename T, unsigned D, unsigned K>
const Impl::common_Trig::cos_Member<T,D,K,1> Vtl::ImAlg::WndFun::common_Trig< T, D, K >::cm [private]

template<typename T, unsigned D, unsigned K>
const arg_type Vtl::ImAlg::WndFun::common_Trig< T, D, K >::_size_ [private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Basics3D::Structure::Comp3D< T >

Basics3D::Structure::Comp3D

Шаблон класса Basics3D::Structure::Comp3D< T >

#include <sfm_reconsruction.h>

Полный список членов класса

Открытые типы

typedef Types< T >::value_type | value_type
typedef Types< T >::Vector_2 | Vector_2
typedef Types< T >::Vector_3 | Vector_3
typedef Types< T >::Vector_4 | Vector_4

Открытые члены

Comp3D (const T_Points2DSet< C_Point2D > &in_points2D, Structure::Dlt< value_type > &dlt_)
void | operator() ()
void | homogeneous2euclidean (const Vector_4 &v, Vector_3 &result)
void | euclidean2homogeneous (const Vector_3 &v, Vector_4 &result)

Открытые атрибуты

std::vector< Pt< value_type > > | points

Закрытые данные

const T_Points2DSet< C_Point2D > & | points2D
Structure::Dlt< value_type > & dlt

template<typename T>
class Basics3D::Structure::Comp3D< T >

Определения типов

template<typename T>
typedef Types<T>::value_type Basics3D::Structure::Comp3D< T >::value_type

template<typename T>
typedef Types<T>::Vector_2 Basics3D::Structure::Comp3D< T >::Vector_2

template<typename T>
typedef Types<T>::Vector_3 Basics3D::Structure::Comp3D< T >::Vector_3

template<typename T>
typedef Types<T>::Vector_4 Basics3D::Structure::Comp3D< T >::Vector_4

Конструктор(ы)

template<typename T>
Basics3D::Structure::Comp3D< T >::Comp3D | ( | const T_Points2DSet< C_Point2D > & | in_points2D,
 |  | Structure::Dlt< value_type > & | dlt_ |
 | ) |  |  | [inline]

Методы

template<typename T>
void Basics3D::Structure::Comp3D< T >::operator() ( ) [inline]

template<typename T>
void Basics3D::Structure::Comp3D< T >::homogeneous2euclidean | ( | const Vector_4 & | v,
 |  | Vector_3 & | result |
 | ) |  |  | [inline]

template<typename T>
void Basics3D::Structure::Comp3D< T >::euclidean2homogeneous | ( | const Vector_3 & | v,
 |  | Vector_4 & | result |
 | ) |  |  | [inline]

Данные класса

template<typename T>
const T_Points2DSet<C_Point2D>& Basics3D::Structure::Comp3D< T >::points2D [private]

template<typename T>
Structure::Dlt<value_type>& Basics3D::Structure::Comp3D< T >::dlt [private]

template<typename T>
std::vector<Pt<value_type> > Basics3D::Structure::Comp3D< T >::points

Объявления и описания членов класса находятся в файле:
  • sfm_reconsruction.h


Pipe Line Filters: Шаблон структуры Vtl::Img::complex_type< double >

Vtl::Img::complex_type< double >

Шаблон структуры Vtl::Img::complex_type< double >

#include <vtl_image_types.h>

Полный список членов класса

Открытые атрибуты

double | real
double | imag

template<>
struct Vtl::Img::complex_type< double >

Данные класса

double Vtl::Img::complex_type< double >::real

double Vtl::Img::complex_type< double >::imag

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::complex_type< float >

Vtl::Img::complex_type< float >

Шаблон структуры Vtl::Img::complex_type< float >

#include <vtl_image_types.h>

Полный список членов класса

Открытые атрибуты

float | real
float | imag

template<>
struct Vtl::Img::complex_type< float >

Данные класса

float Vtl::Img::complex_type< float >::real

float Vtl::Img::complex_type< float >::imag

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::ConCat< Head, IndexList< i, Tail > >

Vtl::Meta::IL::ConCat< Head, IndexList< i, Tail > >

Шаблон структуры Vtl::Meta::IL::ConCat< Head, IndexList< i, Tail > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

typedef ConCat< typename PushBack<
i, Head >::Result, Tail
>::Result 		Result

template<class Head, int i, class Tail>
struct Vtl::Meta::IL::ConCat< Head, IndexList< i, Tail > >

Определения типов

template<class Head, int i, class Tail>
typedef ConCat<typename PushBack<i,Head>::Result,Tail>::Result Vtl::Meta::IL::ConCat< Head, IndexList< i, Tail > >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::ConCat< Head, Loki::NullType >

Vtl::Meta::IL::ConCat< Head, Loki::NullType >

Шаблон структуры Vtl::Meta::IL::ConCat< Head, Loki::NullType >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

typedef Head Result

template<class Head>
struct Vtl::Meta::IL::ConCat< Head, Loki::NullType >

Определения типов

template<class Head>
typedef Head Vtl::Meta::IL::ConCat< Head, Loki::NullType >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Registration::Container< Real_t >

Vtl::ImAlg::Registration::Container

Шаблон класса Vtl::ImAlg::Registration::Container< Real_t >

Контейнер для работы с системой Vtl::Plf. После обнаружения характеристических точек не рисует их на изображение, а помещает их координаты и значение в список. Сохраняет только max_size_ точек, для которых отклик фильтра был максимален. Число max_size_ не должно быть слишком большим, иначе работает не эффективно, типично max_size_ ~ 8. Подробнее...

#include <img_registration.h>

Полный список членов класса

Открытые типы

typedef std::list< Point > | List
typedef List::const_iterator | const_Iter

Открытые члены

Container (size_t img_size[], size_t max_size_=8)
const_Iter begin ()
const_Iter end ()
void | Add (int x, int y, Real_t value)
void | print ()
void | printRatio ()

Закрытые данные

List lst
size_t | max_size
size_t | half_width
size_t | half_height

Классы

struct | Point

Подробное описание

template<typename Real_t>
class Vtl::ImAlg::Registration::Container< Real_t >

Контейнер для работы с системой Vtl::Plf. После обнаружения характеристических точек не рисует их на изображение, а помещает их координаты и значение в список. Сохраняет только max_size_ точек, для которых отклик фильтра был максимален. Число max_size_ не должно быть слишком большим, иначе работает не эффективно, типично max_size_ ~ 8.

Определения типов

template<typename Real_t>
typedef std::list<Point> Vtl::ImAlg::Registration::Container< Real_t >::List

template<typename Real_t>
typedef List::const_iterator Vtl::ImAlg::Registration::Container< Real_t >::const_Iter

Конструктор(ы)

template<typename Real_t>
Vtl::ImAlg::Registration::Container< Real_t >::Container | ( | size_t | img_size[],
 |  | size_t | max_size_ = 8 |
 | ) |  |  | [inline]

Методы

template<typename Real_t>
const_Iter Vtl::ImAlg::Registration::Container< Real_t >::begin ( ) [inline]

template<typename Real_t>
const_Iter Vtl::ImAlg::Registration::Container< Real_t >::end ( ) [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Container< Real_t >::Add | ( | int | x,
 |  | int | y,
 |  | Real_t | value |
 | ) |  |  | [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Container< Real_t >::print ( ) [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Container< Real_t >::printRatio ( ) [inline]

Данные класса

template<typename Real_t>
List Vtl::ImAlg::Registration::Container< Real_t >::lst [private]

template<typename Real_t>
size_t Vtl::ImAlg::Registration::Container< Real_t >::max_size [private]

template<typename Real_t>
size_t Vtl::ImAlg::Registration::Container< Real_t >::half_width [private]

template<typename Real_t>
size_t Vtl::ImAlg::Registration::Container< Real_t >::half_height [private]

Объявления и описания членов класса находятся в файле:
  • img_registration.h


Pipe Line Filters: Структура Vtl::ImAlg::Registration::Container< Real_t >::Point

Vtl::ImAlg::Registration::Container::Point

Структура Vtl::ImAlg::Registration::Container< Real_t >::Point

#include <img_registration.h>

Полный список членов класса

Открытые члены

Point (int x_, int y_, Real_t value_)
bool | operator< (const Point &p)

Открытые атрибуты

int | x
int | y
Real_t | value

template<typename Real_t>
struct Vtl::ImAlg::Registration::Container< Real_t >::Point

Конструктор(ы)

template<typename Real_t>
Vtl::ImAlg::Registration::Container< Real_t >::Point::Point | ( | int | x_,
 |  | int | y_,
 |  | Real_t | value_ |
 | ) |  |  | [inline]

Методы

template<typename Real_t>
bool Vtl::ImAlg::Registration::Container< Real_t >::Point::operator< ( const Point & p ) [inline]

Данные класса

template<typename Real_t>
int Vtl::ImAlg::Registration::Container< Real_t >::Point::x

template<typename Real_t>
int Vtl::ImAlg::Registration::Container< Real_t >::Point::y

template<typename Real_t>
Real_t Vtl::ImAlg::Registration::Container< Real_t >::Point::value

Объявления и описания членов структуры находятся в файле:
  • img_registration.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::Conv< T, K >

Vtl::ImAlg::Conv::Conv

Шаблон класса Vtl::ImAlg::Conv::Conv< T, K >

Вычисление свертки, края массива дополняются отражением. Подробнее...

#include <convolve.h>

Граф наследования:Vtl::ImAlg::Conv::Conv< T, K >:

[см. легенду]
Полный список членов класса

Открытые члены

Conv (const K &kernel)
template<typename IterIn, typename IterOut>
void | operator() (IterIn begin, IterIn end, IterOut out)
Итераторы IterIn должны быть типа random_access_iterator, желательно константными , имеющими operator++(), operator--(), operator+(int step),при разименовании должны возвращать типа T или ссылку (константную) на него. Начало (длиной kernel.left()) и конец (длиной kernel.right()) входной последовательности читаются дважды. Выходная последовательность задается итератором IterOut, которому достаточно быть forward_iterator, имеющими operator++() и при разименовании давать длоступ до данных типа T. Запись происходит строго последовательно от начала к концу последовательности. Это надо иметь ввиду, если итераторы выполняют какие либо побочные, необычные для итераторов STL действия. В нормальном случае могут обрабатываться данные любого STL контейнера.

Защищенные члены

template<typename IterIn>
IterIn | _left (IterIn begin, IterIn end)
template<typename IterIn, typename IterOut>
IterOut | _central (IterIn begin, IterIn end, IterOut out)
template<typename IterIn, typename IterOut>
void | _right (IterIn end, IterOut out)

Защищенные данные

Impl::Buffer< T, K > | buf

Подробное описание

template<typename T, class K>
class Vtl::ImAlg::Conv::Conv< T, K >

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

Параметры шаблона:
T - тип данных, которые подвергаются свертке T - тип данных, которые подвергаются свертке
K - тип ядра свертки(кросскорреляции) Ядро должно быть класса Kernel::Base или производным от него, созданным с параметрами kernel_type_=KT_Conv или KT_Corr (в зввисимости от того требуется вычислить свертку или кросскорреляцию) , параметр шаблона Base double_kernel_ ДОЛЖЕН БЫТЬ true.

Длина выходной последовательности равна длине входной последовательности и не должна быть меньше размера ядра,т.е. в функции Run() должно выполняться end-begin >= kernel.size() . Это не проверяется, так как предоставленные пользователем итераторы могут не знать размер задаваемого контейнера и оператор разности итераторов может быть не определен, поэтому проверка оставлена на пользователя.

Примеры:

test_fast_gauss.cpp.

Конструктор(ы)

template<typename T, class K>
Vtl::ImAlg::Conv::Conv< T, K >::Conv ( const K & kernel ) [inline]

Методы

template<typename T, class K>
template<typename IterIn, typename IterOut>
void Vtl::ImAlg::Conv::Conv< T, K >::operator() | ( | IterIn | begin,
 |  | IterIn | end,
 |  | IterOut | out |
 | ) |  |  | [inline]

Итераторы IterIn должны быть типа random_access_iterator, желательно константными , имеющими operator++(), operator--(), operator+(int step),при разименовании должны возвращать типа T или ссылку (константную) на него. Начало (длиной kernel.left()) и конец (длиной kernel.right()) входной последовательности читаются дважды. Выходная последовательность задается итератором IterOut, которому достаточно быть forward_iterator, имеющими operator++() и при разименовании давать длоступ до данных типа T. Запись происходит строго последовательно от начала к концу последовательности. Это надо иметь ввиду, если итераторы выполняют какие либо побочные, необычные для итераторов STL действия. В нормальном случае могут обрабатываться данные любого STL контейнера.

Переопределяется в Vtl::ImAlg::Conv::ConvInplace< T, K > и Vtl::ImAlg::Conv::Vtl::ImAlg::Conv::ConvInplace< T, Vtl::Plf::Kernel::FKernKT_Conv, true > >.

template<typename T, class K>
template<typename IterIn>
IterIn Vtl::ImAlg::Conv::Conv< T, K >::_left | ( | IterIn | begin,
 |  | IterIn | end |
 | ) |  |  | [inline, protected]

template<typename T, class K>
template<typename IterIn, typename IterOut>
IterOut Vtl::ImAlg::Conv::Conv< T, K >::_central | ( | IterIn | begin,
 |  | IterIn | end,
 |  | IterOut | out |
 | ) |  |  | [inline, protected]

template<typename T, class K>
template<typename IterIn, typename IterOut>
void Vtl::ImAlg::Conv::Conv< T, K >::_right | ( | IterIn | end,
 |  | IterOut | out |
 | ) |  |  | [inline, protected]

Данные класса

template<typename T, class K>
Impl::Buffer<T,K> Vtl::ImAlg::Conv::Conv< T, K >::buf [protected]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Класс Vtl::ImAlg::Conv::Conv2D

Vtl::ImAlg::Conv::Conv2D

Класс Vtl::ImAlg::Conv::Conv2D

Выполняет свертку/кросскорреляцию циклическую или с дополнением за края методом отражения двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data,width,height, nls (Next line shift, величина, которую надо прибавить к указателю, чтобы он указывал на пиксель следующей строки строго под текущим) с двумерным сепарабельным ядром, заданным ОДНОМЕРНЫМ ядром/ядрами. K, K1, K2 - тип ядра свертки(кросскорреляции) Ядро должно быть класса Kernel::Base или производным от него, созданным с параметрами kernel_type_=KT_Conv или KT_Corr (в зввисимости от того требуется вычислить свертку или кросскорреляцию) , параметр шаблона Base double_kernel_ ДОЛЖЕН БЫТЬ true. Подробнее...

#include <convolve.h>

Полный список членов класса

Открытые статические члены

template<typename T, class С1, class С2>
static void | conv2D (const T *data_in, int width, int height, int nls_in, T *data_out, int nls_out, С1 &cx, С2 &cy)
template<typename T, class С1, class С2>
static void | conv2DInplace (T *data, int width, int height, int nls, С1 &cx, С2 &cy)
template<typename T, class K1, class K2>
static void | Cyclic (const T *data_in, int width, int height, int nls_in, T *data_out, int nls_out, const K1 &ker_x, const K2 &ker_y)
Выполняет циклическую свертку/кросскорреляцию двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data_in,width,height, nls_in . Результат помещается в изображение заданное параметрами data_out,width,height, nls_out.
template<typename T, class K>
static void | Cyclic (const T *data_in, int width, int height, int nls_in, T *data_out, int nls_out, const K &ker)
Выполняет циклическую свертку/кросскорреляцию двумерных данных (изображения), размещенных в одномерном массиве и заданных параметрами data_in,width,height, nls_in с двумерным сепарабельным ядром, заданным ОДНОМЕРНЫМ ядром ker. Результат помещается в изображение заданное параметрами data_out,width,height, nls_out.
template<typename T, class K1, class K2>
static void | CyclicInplace (T *data, int width, int height, int nls, const K1 &ker_x, const K2 &ker_y)
Выполняет циклическую свертку/кросскорреляцию двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data,width,height, nls с двумерным сепарабельным ядром, заданным одномерными ядрами ker_x,ker_y . Результат помещается вместо исходного изображения.
template<typename T, class K>
static void | CyclicInplace (T *data, int width, int height, int nls, const K &ker)
Выполняет циклическую свертку/кросскорреляцию двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data,width,height, nls с двумерным сепарабельным ядром, заданным ОДНОМЕРНЫМ ядром ker. Результат помещается вместо исходного изображения.
template<typename T, class K1, class K2>
static void | Reflect (const T *data_in, int width, int height, int nls_in, T *data_out, int nls_out, const K1 &ker_x, const K2 &ker_y)
Выполняет свертку/кросскорреляцию двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data_in,width,height, nls_in с двумерным сепарабельным ядром, заданным ядрами ker_x,ker_y. Результат помещается в изображение заданное параметрами data_out,width,height, nls_out. Чтобы вычислить значения на краях последовательностей (изображения), данные дополняются отражением относительно крайнего левого (правого, верхнего, нижнего) пикселя.
template<typename T, class K>
static void | Reflect (const T *data_in, int width, int height, int nls_in, T *data_out, int nls_out, const K &ker)
Выполняет свертку/кросскорреляцию двумерных данных (изображения), размещенных в одномерном массиве и заданных параметрами data_in,width,height, nls_in с двумерным сепарабельным ядром, заданным ОДНОМЕРНЫМ ядром ker. Результат помещается в изображение заданное параметрами data_out,width,height, nls_out. Чтобы вычислить значения на краях последовательностей (изображения), данные дополняются отражением относительно крайнего левого (правого, верхнего, нижнего) пикселя.
template<typename T, class K1, class K2>
static void | ReflectInplace (T *data, int width, int height, int nls, const K1 &ker_x, const K2 &ker_y)
Выполняет свертку/кросскорреляцию двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data,width,height, nls с двумерным сепарабельным ядром, заданным ядрами ker_x,ker_y . Результат помещается вместо исходного изображения. Чтобы вычислить значения на краях последовательностей (изображения), данные дополняются отражением относительно крайнего левого (правого, верхнего, нижнего) пикселя.
template<typename T, class K>
static void | ReflectInplace (T *data, int width, int height, int nls, const K &ker)
Выполняет свертку/кросскорреляцию двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data,width,height, nls с двумерным сепарабельным ядром, заданным ОДНОМЕРНЫМ ядром ker. Результат помещается вместо исходного изображения. Чтобы вычислить значения на краях последовательностей (изображения), данные дополняются отражением относительно крайнего левого (правого, верхнего, нижнего) пикселя.

Подробное описание

Выполняет свертку/кросскорреляцию циклическую или с дополнением за края методом отражения двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data,width,height, nls (Next line shift, величина, которую надо прибавить к указателю, чтобы он указывал на пиксель следующей строки строго под текущим) с двумерным сепарабельным ядром, заданным ОДНОМЕРНЫМ ядром/ядрами. K, K1, K2 - тип ядра свертки(кросскорреляции) Ядро должно быть класса Kernel::Base или производным от него, созданным с параметрами kernel_type_=KT_Conv или KT_Corr (в зввисимости от того требуется вычислить свертку или кросскорреляцию) , параметр шаблона Base double_kernel_ ДОЛЖЕН БЫТЬ true.

Методы

template<typename T, class С1, class С2>
static void Vtl::ImAlg::Conv::Conv2D::conv2D | ( | const T * | data_in,
 |  | int | width,
 |  | int | height,
 |  | int | nls_in,
 |  | T * | data_out,
 |  | int | nls_out,
 |  | С1 & | cx,
 |  | С2 & | cy |
 | ) |  |  | [inline, static]

template<typename T, class С1, class С2>
static void Vtl::ImAlg::Conv::Conv2D::conv2DInplace | ( | T * | data,
 |  | int | width,
 |  | int | height,
 |  | int | nls,
 |  | С1 & | cx,
 |  | С2 & | cy |
 | ) |  |  | [inline, static]

Примеры:
test_fast_gauss.cpp.

template<typename T, class K1, class K2>
static void Vtl::ImAlg::Conv::Conv2D::Cyclic | ( | const T * | data_in,
 |  | int | width,
 |  | int | height,
 |  | int | nls_in,
 |  | T * | data_out,
 |  | int | nls_out,
 |  | const K1 & | ker_x,
 |  | const K2 & | ker_y |
 | ) |  |  | [inline, static]

Выполняет циклическую свертку/кросскорреляцию двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data_in,width,height, nls_in . Результат помещается в изображение заданное параметрами data_out,width,height, nls_out.

template<typename T, class K>
static void Vtl::ImAlg::Conv::Conv2D::Cyclic | ( | const T * | data_in,
 |  | int | width,
 |  | int | height,
 |  | int | nls_in,
 |  | T * | data_out,
 |  | int | nls_out,
 |  | const K & | ker |
 | ) |  |  | [inline, static]

Выполняет циклическую свертку/кросскорреляцию двумерных данных (изображения), размещенных в одномерном массиве и заданных параметрами data_in,width,height, nls_in с двумерным сепарабельным ядром, заданным ОДНОМЕРНЫМ ядром ker. Результат помещается в изображение заданное параметрами data_out,width,height, nls_out.

template<typename T, class K1, class K2>
static void Vtl::ImAlg::Conv::Conv2D::CyclicInplace | ( | T * | data,
 |  | int | width,
 |  | int | height,
 |  | int | nls,
 |  | const K1 & | ker_x,
 |  | const K2 & | ker_y |
 | ) |  |  | [inline, static]

Выполняет циклическую свертку/кросскорреляцию двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data,width,height, nls с двумерным сепарабельным ядром, заданным одномерными ядрами ker_x,ker_y . Результат помещается вместо исходного изображения.

template<typename T, class K>
static void Vtl::ImAlg::Conv::Conv2D::CyclicInplace | ( | T * | data,
 |  | int | width,
 |  | int | height,
 |  | int | nls,
 |  | const K & | ker |
 | ) |  |  | [inline, static]

Выполняет циклическую свертку/кросскорреляцию двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data,width,height, nls с двумерным сепарабельным ядром, заданным ОДНОМЕРНЫМ ядром ker. Результат помещается вместо исходного изображения.

template<typename T, class K1, class K2>
static void Vtl::ImAlg::Conv::Conv2D::Reflect | ( | const T * | data_in,
 |  | int | width,
 |  | int | height,
 |  | int | nls_in,
 |  | T * | data_out,
 |  | int | nls_out,
 |  | const K1 & | ker_x,
 |  | const K2 & | ker_y |
 | ) |  |  | [inline, static]

Выполняет свертку/кросскорреляцию двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data_in,width,height, nls_in с двумерным сепарабельным ядром, заданным ядрами ker_x,ker_y. Результат помещается в изображение заданное параметрами data_out,width,height, nls_out. Чтобы вычислить значения на краях последовательностей (изображения), данные дополняются отражением относительно крайнего левого (правого, верхнего, нижнего) пикселя.

template<typename T, class K>
static void Vtl::ImAlg::Conv::Conv2D::Reflect | ( | const T * | data_in,
 |  | int | width,
 |  | int | height,
 |  | int | nls_in,
 |  | T * | data_out,
 |  | int | nls_out,
 |  | const K & | ker |
 | ) |  |  | [inline, static]

Выполняет свертку/кросскорреляцию двумерных данных (изображения), размещенных в одномерном массиве и заданных параметрами data_in,width,height, nls_in с двумерным сепарабельным ядром, заданным ОДНОМЕРНЫМ ядром ker. Результат помещается в изображение заданное параметрами data_out,width,height, nls_out. Чтобы вычислить значения на краях последовательностей (изображения), данные дополняются отражением относительно крайнего левого (правого, верхнего, нижнего) пикселя.

template<typename T, class K1, class K2>
static void Vtl::ImAlg::Conv::Conv2D::ReflectInplace | ( | T * | data,
 |  | int | width,
 |  | int | height,
 |  | int | nls,
 |  | const K1 & | ker_x,
 |  | const K2 & | ker_y |
 | ) |  |  | [inline, static]

Выполняет свертку/кросскорреляцию двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data,width,height, nls с двумерным сепарабельным ядром, заданным ядрами ker_x,ker_y . Результат помещается вместо исходного изображения. Чтобы вычислить значения на краях последовательностей (изображения), данные дополняются отражением относительно крайнего левого (правого, верхнего, нижнего) пикселя.

template<typename T, class K>
static void Vtl::ImAlg::Conv::Conv2D::ReflectInplace | ( | T * | data,
 |  | int | width,
 |  | int | height,
 |  | int | nls,
 |  | const K & | ker |
 | ) |  |  | [inline, static]

Выполняет свертку/кросскорреляцию двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data,width,height, nls с двумерным сепарабельным ядром, заданным ОДНОМЕРНЫМ ядром ker. Результат помещается вместо исходного изображения. Чтобы вычислить значения на краях последовательностей (изображения), данные дополняются отражением относительно крайнего левого (правого, верхнего, нижнего) пикселя.

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::Types::Conversion< T, U >

Vtl::Types::Conversion

Шаблон класса Vtl::Types::Conversion< T, U >

Проверка, существует ли преобразование по умолчанию (cast) из типа T в тип U. Подробнее...

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum | { exists = sizeof(Test(MakeT()))==sizeof(Small) }
enum | { sameType = false }

Подробное описание

template<class T, class U>
class Vtl::Types::Conversion< T, U >

Проверка, существует ли преобразование по умолчанию (cast) из типа T в тип U.

Перечисления

template<class T, class U>
anonymous enum

Элементы перечислений:
exists

template<class T, class U>
anonymous enum

Элементы перечислений:
sameType

Объявления и описания членов класса находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Plf::F11::Convert< T >

Vtl::Plf::F11::Convert

Шаблон структуры Vtl::Plf::F11::Convert< T >

functor Sqrt - Преобразует тип аргумента к типу T. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

template<typename T1>
T operator() (T1 val)

Подробное описание

template<typename T>
struct Vtl::Plf::F11::Convert< T >

functor Sqrt - Преобразует тип аргумента к типу T.
Примеры:

test_fast_gauss.cpp.

Методы

template<typename T>
template<typename T1>
T Vtl::Plf::F11::Convert< T >::operator() ( T1 val ) [inline]

Объявления и описания членов структуры находятся в файле:
  • plf_functors.h


Pipe Line Filters: Структура Vtl::Plf::F11::Convert2ByteBounded

Vtl::Plf::F11::Convert2ByteBounded

Структура Vtl::Plf::F11::Convert2ByteBounded

functor Sqrt - Преобразует тип аргумента к типу T. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

template<typename T1>
uint8_t operator() (T1 val)

Подробное описание

functor Sqrt - Преобразует тип аргумента к типу T.

Методы

template<typename T1>
uint8_t Vtl::Plf::F11::Convert2ByteBounded::operator() ( T1 val ) [inline]

Объявления и описания членов структуры находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон структуры Vtl::Plf::F11::ConvertMult< T >

Vtl::Plf::F11::ConvertMult

Шаблон структуры Vtl::Plf::F11::ConvertMult< T >

functor Mult - умножавет значение каждого пикселя на константу и преобразует к типу T. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

ConvertMult (T mult_)
template<typename T1>
T | operator() (T1 val)

Закрытые данные

T | mult

Подробное описание

template<typename T>
struct Vtl::Plf::F11::ConvertMult< T >

functor Mult - умножавет значение каждого пикселя на константу и преобразует к типу T.

Конструктор(ы)

template<typename T>
Vtl::Plf::F11::ConvertMult< T >::ConvertMult ( T mult_ ) [inline]

Методы

template<typename T>
template<typename T1>
T Vtl::Plf::F11::ConvertMult< T >::operator() ( T1 val ) [inline]

Данные класса

template<typename T>
T Vtl::Plf::F11::ConvertMult< T >::mult [private]

Объявления и описания членов структуры находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::ConvInplace< T, K >

Vtl::ImAlg::Conv::ConvInplace

Шаблон класса Vtl::ImAlg::Conv::ConvInplace< T, K >

Вычисление свертки, края массива дополняются отражением. Подробнее...

#include <convolve.h>

Граф наследования:Vtl::ImAlg::Conv::ConvInplace< T, K >:

[см. легенду]
Граф связей класса Vtl::ImAlg::Conv::ConvInplace< T, K >:

[см. легенду]
Полный список членов класса

Открытые члены

ConvInplace (const K &kernel)
template<typename Iter>
void | operator() (Iter begin, Iter end)
Итераторы Iter должны быть типа random_access_iterator, имеющими operator++(), operator--(), operator+(int step), operator-(int step), при разименовании должны возвращать тип T или ссылку (константную) на него. Начало (длиной kernel.left()) входной последовательности читается дважды. Выходная последовательность пишется строго последовательно от начала к концу последовательности. Это надо иметь ввиду, если итераторы выполняют какие либо побочные, необычные для итераторов STL действия. В нормальном случае могут обрабатываться данные любого STL контейнера.
template<typename IterIn, typename IterOut>
void | operator() (IterIn begin, IterIn end, IterOut out)

Закрытые члены

template<typename Iter>
Iter | _left_2 (Iter begin, Iter end, Iter &out)
template<typename Iter>
Iter | _central_2 (Iter begin, Iter end, Iter out)
template<typename Iter>
void | _right_2 (Iter out)

Закрытые данные

std::vector< T > | save

Подробное описание

template<typename T, class K>
class Vtl::ImAlg::Conv::ConvInplace< T, K >

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

Параметры шаблона:
T - тип данных, которые подвергаются свертке T - тип данных, которые подвергаются свертке
K - тип ядра свертки(кросскорреляции) Ядро должно быть класса Kernel::Base или производным от него, созданным с параметрами kernel_type_=KT_Conv или KT_Corr (в зввисимости от того требуется вычислить свертку или кросскорреляцию) , параметр шаблона Base double_kernel_ ДОЛЖЕН БЫТЬ true.

Длина выходной последовательности равна длине входной последовательности и не должна быть меньше размера ядра,т.е. в функции Run() должно выполняться end-begin >= kernel.size() . Это не проверяется, так как предоставленные пользователем итераторы могут не знать размер задаваемого контейнера и оператор разности итераторов может быть не определен, поэтому проверка оставлена на пользователя.

Примеры:

test_fast_gauss.cpp.

Конструктор(ы)

template<typename T, class K>
Vtl::ImAlg::Conv::ConvInplace< T, K >::ConvInplace ( const K & kernel ) [inline]

Методы

template<typename T, class K>
template<typename Iter>
void Vtl::ImAlg::Conv::ConvInplace< T, K >::operator() | ( | Iter | begin,
 |  | Iter | end |
 | ) |  |  | [inline]

Итераторы Iter должны быть типа random_access_iterator, имеющими operator++(), operator--(), operator+(int step), operator-(int step), при разименовании должны возвращать тип T или ссылку (константную) на него. Начало (длиной kernel.left()) входной последовательности читается дважды. Выходная последовательность пишется строго последовательно от начала к концу последовательности. Это надо иметь ввиду, если итераторы выполняют какие либо побочные, необычные для итераторов STL действия. В нормальном случае могут обрабатываться данные любого STL контейнера.

template<typename T, class K>
template<typename IterIn, typename IterOut>
void Vtl::ImAlg::Conv::ConvInplace< T, K >::operator() | ( | IterIn | begin,
 |  | IterIn | end,
 |  | IterOut | out |
 | ) |  |  | [inline]

No inplace version. In 2D, 3D, etc. sometimes it is required no inplace (with copy) operation to process first dimension simultaneously moving data from source to target. Then, second, etc. dimensions should be processed inplaced, because data is already trasferred fro source to target and now processing performed at the target container only.

Identical to Conv::operator()(IterIn begin,IterIn end,IterOut out)

Переопределяет метод предка Vtl::ImAlg::Conv::Conv< T, K >.

template<typename T, class K>
template<typename Iter>
Iter Vtl::ImAlg::Conv::ConvInplace< T, K >::_left_2 | ( | Iter | begin,
 |  | Iter | end,
 |  | Iter & | out |
 | ) |  |  | [inline, private]

template<typename T, class K>
template<typename Iter>
Iter Vtl::ImAlg::Conv::ConvInplace< T, K >::_central_2 | ( | Iter | begin,
 |  | Iter | end,
 |  | Iter | out |
 | ) |  |  | [inline, private]

template<typename T, class K>
template<typename Iter>
void Vtl::ImAlg::Conv::ConvInplace< T, K >::_right_2 ( Iter out ) [inline, private]

Данные класса

template<typename T, class K>
std::vector<T> Vtl::ImAlg::Conv::ConvInplace< T, K >::save [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::Plf::ConvolveHorz< T, P >

Vtl::Plf::ConvolveHorz

Шаблон класса Vtl::Plf::ConvolveHorz< T, P >
[Elementary filters]

Класс реализует для каждой строки изображения свертку с указанным ядром. Подробнее...

#include <plf_filters.h>

Граф наследования:Vtl::Plf::ConvolveHorz< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::ConvolveHorz< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

ConvolveHorz ()
ConvolveHorz (std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel, P post_proc=Vtl::Plf::F11::DoNothing< T >())
~ConvolveHorz ()
void | Init (std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in
OutPort< T, P > | out
const Kernel::Base< T, Kernel::KT_Conv > * | ker
int | tmp

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::ConvolveHorz< T, P >

Класс реализует для каждой строки изображения свертку с указанным ядром.
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::ConvolveHorz< T, P >::ConvolveHorz ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::ConvolveHorz< T, P >::ConvolveHorz | ( | std::string | name,
 |  | const Kernel::Base< T, Kernel::KT_Conv > * | kernel,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::ConvolveHorz< T, P >::~ConvolveHorz ( ) [inline]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::ConvolveHorz< T, P >::Init | ( | std::string | name,
 |  | const Kernel::Base< T, Kernel::KT_Conv > * | kernel,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::ConvolveHorz< T, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::ConvolveHorz< T, P >::in

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::ConvolveHorz< T, P >::out

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
const Kernel::Base<T,Kernel::KT_Conv>* Vtl::Plf::ConvolveHorz< T, P >::ker

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::ConvolveHorz< T, P >::tmp

Объявления и описания членов класса находятся в файле:
  • plf_filters.h


Pipe Line Filters: Шаблон класса Vtl::Plf::ConvolveVert< T, P >

Vtl::Plf::ConvolveVert

Шаблон класса Vtl::Plf::ConvolveVert< T, P >
[Elementary filters]

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

#include <plf_filters.h>

Граф наследования:Vtl::Plf::ConvolveVert< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::ConvolveVert< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

ConvolveVert ()
ConvolveVert (std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel, P post_proc=Vtl::Plf::F11::DoNothing< T >())
~ConvolveVert ()
void | Init (std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in
OutPort< T, P > | out
const Kernel::Base< T, Kernel::KT_Conv > * | ker
int | tmp

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::ConvolveVert< T, P >

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

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::ConvolveVert< T, P >::ConvolveVert ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::ConvolveVert< T, P >::ConvolveVert | ( | std::string | name,
 |  | const Kernel::Base< T, Kernel::KT_Conv > * | kernel,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::ConvolveVert< T, P >::~ConvolveVert ( ) [inline]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::ConvolveVert< T, P >::Init | ( | std::string | name,
 |  | const Kernel::Base< T, Kernel::KT_Conv > * | kernel,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::ConvolveVert< T, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::ConvolveVert< T, P >::in

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::ConvolveVert< T, P >::out

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
const Kernel::Base<T,Kernel::KT_Conv>* Vtl::Plf::ConvolveVert< T, P >::ker

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::ConvolveVert< T, P >::tmp

Объявления и описания членов класса находятся в файле:
  • plf_filters.h


Pipe Line Filters: Класс CoordArray2D

Класс CoordArray2D

#include <imtransf.h>

Полный список членов класса

Открытые члены

CoordArray2D (int width=0, int height=0)
void | clear ()
void | setSize (int width, int height)
int | width () const
int | height () const
const YPoint< double > & | at (int x, int y) const
const YPoint< double > * | begin () const
const YPoint< double > * | end () const
YPoint< double > * | begin ()
YPoint< double > * | end ()

Закрытые данные

std::vector< YPoint< double > > | p_
int | w_
int | h_

Конструктор(ы)

CoordArray2D::CoordArray2D | ( | int | width = 0,
 |  | int | height = 0 |
 | ) |  |  | [inline]

Методы

void CoordArray2D::clear ( ) [inline]

void CoordArray2D::setSize | ( | int | width,
 |  | int | height |
 | ) |  |  | [inline]

int CoordArray2D::width ( ) const [inline]

int CoordArray2D::height ( ) const [inline]

const YPoint<double>& CoordArray2D::at | ( | int | x,
 |  | int | y |
 | ) |  |  | const [inline]

const YPoint<double>* CoordArray2D::begin ( ) const [inline]

const YPoint<double>* CoordArray2D::end ( ) const [inline]

YPoint<double>* CoordArray2D::begin ( ) [inline]

YPoint<double>* CoordArray2D::end ( ) [inline]

Данные класса

std::vector<YPoint<double> > CoordArray2D::p_ [private]

int CoordArray2D::w_ [private]

int CoordArray2D::h_ [private]

Объявления и описания членов класса находятся в файле:
  • imtransf.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F23::CorrMatrix< T, Iter >

Vtl::Plf::F23::CorrMatrix

Шаблон класса Vtl::Plf::F23::CorrMatrix< T, Iter >

Функтор CorrMatrix для PixByPix2to3. Из двух величин [image] e [image] вычисляет 3 новых по формулам:
. Подробнее...

#include <plf_functors.h>

Граф наследования:Vtl::Plf::F23::CorrMatrix< T, Iter >:

[см. легенду]
Полный список членов класса

Открытые члены

CorrMatrix ()
void operator() (T v1, T v2, Iter o11, Iter o12, Iter o22) const

Подробное описание

template<typename T, typename Iter = T&>
class Vtl::Plf::F23::CorrMatrix< T, Iter >

Функтор CorrMatrix для PixByPix2to3. Из двух величин [image] e [image] вычисляет 3 новых по формулам:
.

  • т.е. компоненты корреляционной матрицы
    , которая симметричная и положительно определенная.
    Чтобы эта матрица стала собственно корреляционной, остается еще выполнить усреднение компонент в каком либо смысле, например по локальной окрестности
    См. также:
    class Average.

Конструктор(ы)

template<typename T, typename Iter = T&>
Vtl::Plf::F23::CorrMatrix< T, Iter >::CorrMatrix ( ) [inline]

Методы

template<typename T, typename Iter = T&>
void Vtl::Plf::F23::CorrMatrix< T, Iter >::operator() | ( | T | v1,
 |  | T | v2,
 |  | Iter | o11,
 |  | Iter | o12,
 |  | Iter | o22 |
 | ) |  |  | const [inline]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F23::CorrMatrixAdd< T, Iter >

Vtl::Plf::F23::CorrMatrixAdd

Шаблон класса Vtl::Plf::F23::CorrMatrixAdd< T, Iter >

#include <plf_functors.h>

Полный список членов класса

Открытые члены

CorrMatrixAdd ()
void operator() (T v1, T v2, Iter o11, Iter o12, Iter o22) const

template<typename T, typename Iter = T&>
class Vtl::Plf::F23::CorrMatrixAdd< T, Iter >

Конструктор(ы)

template<typename T, typename Iter = T&>
Vtl::Plf::F23::CorrMatrixAdd< T, Iter >::CorrMatrixAdd ( ) [inline]

Методы

template<typename T, typename Iter = T&>
void Vtl::Plf::F23::CorrMatrixAdd< T, Iter >::operator() | ( | T | v1,
 |  | T | v2,
 |  | Iter | o11,
 |  | Iter | o12,
 |  | Iter | o22 |
 | ) |  |  | const [inline]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I >

Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member

Шаблон класса Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I >

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I >:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I >:

[см. легенду]
Полный список членов класса

Открытые члены

template<typename TTT>
cos_Member (T c, TTT *a)
T | operator() (T ckx, T cx) const

Закрытые данные

cos_Member< T, D, K, I+1 > | cm

Подробное описание

template<typename T, unsigned D, unsigned K, unsigned I>
class Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I >

Примеры:

test_plf_kernels.cpp.

Конструктор(ы)

template<typename T, unsigned D, unsigned K, unsigned I>
template<typename TTT>
Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I >::cos_Member | ( | T | c,
 |  | TTT * | a |
 | ) |  |  | [inline]

Методы

template<typename T, unsigned D, unsigned K, unsigned I>
T Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I >::operator() | ( | T | ckx,
 |  | T | cx |
 | ) |  |  | const [inline]

Данные класса

template<typename T, unsigned D, unsigned K, unsigned I>
cos_Member<T,D,K,I+1> Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I >::cm [private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K >

Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K >

Шаблон класса Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K >

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K >:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K >:

[см. легенду]
Полный список членов класса

Открытые члены

template<typename TTT>
cos_Member (T c, TTT *a)
T operator() (T ckx, T cx) const

template<typename T, unsigned D, unsigned K>
class Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K >

Конструктор(ы)

template<typename T, unsigned D, unsigned K>
template<typename TTT>
Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K >::cos_Member | ( | T | c,
 |  | TTT * | a |
 | ) |  |  | [inline]

Методы

template<typename T, unsigned D, unsigned K>
T Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K >::operator() | ( | T | ckx,
 |  | T | cx |
 | ) |  |  | const [inline]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I >

Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base

Шаблон класса Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I >

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I >:

[см. легенду]
Полный список членов класса

Открытые члены

template<typename TTT>
cos_Member_base (T c, TTT *a)
T | operator() (T ckx) const

Закрытые данные

const T | b

template<typename T, unsigned D, unsigned K, unsigned I>
class Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I >

Конструктор(ы)

template<typename T, unsigned D, unsigned K, unsigned I>
template<typename TTT>
Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I >::cos_Member_base | ( | T | c,
 |  | TTT * | a |
 | ) |  |  | [inline]

Методы

template<typename T, unsigned D, unsigned K, unsigned I>
T Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I >::operator() ( T ckx ) const [inline]

Данные класса

template<typename T, unsigned D, unsigned K, unsigned I>
const T Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I >::b [private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Count< v, IndexList< i, Tail > >

Vtl::Meta::IL::Count< v, IndexList< i, Tail > >

Шаблон структуры Vtl::Meta::IL::Count< v, IndexList< i, Tail > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum { value = ((i==v)?1:0)+Count<v, value = ((i==v)?1:0)+Count<v }

template<int v, int i, class Tail>
struct Vtl::Meta::IL::Count< v, IndexList< i, Tail > >

Перечисления

template<int v, int i, class Tail>
anonymous enum

Элементы перечислений:
value
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Count< v, Loki::NullType >

Vtl::Meta::IL::Count< v, Loki::NullType >

Шаблон структуры Vtl::Meta::IL::Count< v, Loki::NullType >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum { value = 0 }

template<int v>
struct Vtl::Meta::IL::Count< v, Loki::NullType >

Перечисления

template<int v>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Класс CoverageMatrix

Класс CoverageMatrix

#include <_imtransf.h>

Полный список членов класса

Открытые члены

CoverageMatrix (int width=0, int height=0)
void | clear ()
void | setSize (int width, int height)
void | set (const YPoint< int > &cell, const YPoint< int > &value, double zoomValue)
void | set (const YRect< int > &area, const YPoint< int > &value, double zoomValue)
void | set (const YPoint< double > *cell, const YRect< int > &area, const YPoint< int > &value, double zoomValue)
const YPoint< int > & | get (const YPoint< int > &cell) const
double | getZoom (const YPoint< int > &cell) const
bool | empty (const YPoint< int > &cell) const

Закрытые данные

std::vector< YPoint< int > > | matrix_
std::vector< double > | zoomMatrix_
int | w_
int | h_

Конструктор(ы)

CoverageMatrix::CoverageMatrix | ( | int | width = 0,
 |  | int | height = 0 |
 | ) |  |  | [inline]

Методы

void CoverageMatrix::clear ( ) [inline]

void CoverageMatrix::setSize | ( | int | width,
 |  | int | height |
 | ) |  |  | [inline]

void CoverageMatrix::set | ( | const YPoint< int > & | cell,
 |  | const YPoint< int > & | value,
 |  | double | zoomValue |
 | ) |  |  | [inline]

void CoverageMatrix::set | ( | const YRect< int > & | area,
 |  | const YPoint< int > & | value,
 |  | double | zoomValue |
 | ) |  |  | [inline]

void CoverageMatrix::set | ( | const YPoint< double > * | cell,
 |  | const YRect< int > & | area,
 |  | const YPoint< int > & | value,
 |  | double | zoomValue
 | ) |  |

const YPoint<int>& CoverageMatrix::get ( const YPoint< int > & cell ) const [inline]

double CoverageMatrix::getZoom ( const YPoint< int > & cell ) const [inline]

bool CoverageMatrix::empty ( const YPoint< int > & cell ) const [inline]

Данные класса

std::vector<YPoint<int> > CoverageMatrix::matrix_ [private]

std::vector<double> CoverageMatrix::zoomMatrix_ [private]

int CoverageMatrix::w_ [private]

int CoverageMatrix::h_ [private]

Объявления и описания членов классов находятся в файлах:
  • _imtransf.h
  • imtransf.cpp


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::CyclicConv< T, K >

Vtl::ImAlg::Conv::CyclicConv

Шаблон класса Vtl::ImAlg::Conv::CyclicConv< T, K >

Вычисление циклической свертки. Подробнее...

#include <convolve.h>

Полный список членов класса

Открытые члены

CyclicConv (const K &kernel)
template<typename IterIn, typename IterOut>
void | operator() (IterIn begin, IterIn end, IterOut out)
Итераторы IterIn и IterOut должны быть типа forward_iterator, имеющими operator++(), при разименовании должны возвращать (IterIn) / давать длоступ (IterOut) до данных типа T. Начало входной последовательности длиной kernrl.left()+kernel.right()==kernle.size()-1 читается дважды, в начале работы и в конце, таким образом начальное значение IterIn сохраняется во временной переменной. Выходная последовательность записывается сначала конец последовательности, а затем первые kernrl.left() элементов. Это надо иметь ввиду, если итераторы выполняют какие либо побочные, необычные для итераторов STL действия. В нормальном случае могут обрабатываться данные любого STL контейнера. IterIn может быть константным и это целесообразно и желательно.

Закрытые члены

template<typename IterIn>
IterIn | _start (IterIn begin)
template<typename IterIn, typename IterOut>
IterOut | _central (IterIn begin, IterIn end, IterOut out)
template<typename IterIn, typename IterOut>
void | _right_end_left (IterIn begin, IterOut out, IterOut out0)

Закрытые данные

Impl::Buffer< T, K > | buf

Подробное описание

template<typename T, class K>
class Vtl::ImAlg::Conv::CyclicConv< T, K >

Вычисление циклической свертки.

Параметры шаблона:
T - тип данных, которые подвергаются свертке
K - тип ядра свертки(кросскорреляции) Ядро должно быть класса Kernel::Base или производным от него, созданным с параметрами kernel_type_=KT_Conv или KT_Corr (в зввисимости от того требуется вычислить свертку или кросскорреляцию) , параметр шаблона Base double_kernel_ ДОЛЖЕН БЫТЬ true.

Длина выходной последовательности равна длине входной последовательности и не должна быть меньше размера ядра,т.е. в функции Run() должно выполняться end-begin >= kernel.size() . Это не проверяется, так как предоставленные пользователем итераторы могут не знать размер задаваемого контейнера и оператор разности итераторов может быть не определен, поэтому проверка оставлена на пользователя.

Примеры:

test_fast_gauss.cpp.

Конструктор(ы)

template<typename T, class K>
Vtl::ImAlg::Conv::CyclicConv< T, K >::CyclicConv ( const K & kernel ) [inline]

Методы

template<typename T, class K>
template<typename IterIn, typename IterOut>
void Vtl::ImAlg::Conv::CyclicConv< T, K >::operator() | ( | IterIn | begin,
 |  | IterIn | end,
 |  | IterOut | out |
 | ) |  |  | [inline]

Итераторы IterIn и IterOut должны быть типа forward_iterator, имеющими operator++(), при разименовании должны возвращать (IterIn) / давать длоступ (IterOut) до данных типа T. Начало входной последовательности длиной kernrl.left()+kernel.right()==kernle.size()-1 читается дважды, в начале работы и в конце, таким образом начальное значение IterIn сохраняется во временной переменной. Выходная последовательность записывается сначала конец последовательности, а затем первые kernrl.left() элементов. Это надо иметь ввиду, если итераторы выполняют какие либо побочные, необычные для итераторов STL действия. В нормальном случае могут обрабатываться данные любого STL контейнера. IterIn может быть константным и это целесообразно и желательно.

template<typename T, class K>
template<typename IterIn>
IterIn Vtl::ImAlg::Conv::CyclicConv< T, K >::_start ( IterIn begin ) [inline, private]

template<typename T, class K>
template<typename IterIn, typename IterOut>
IterOut Vtl::ImAlg::Conv::CyclicConv< T, K >::_central | ( | IterIn | begin,
 |  | IterIn | end,
 |  | IterOut | out |
 | ) |  |  | [inline, private]

template<typename T, class K>
template<typename IterIn, typename IterOut>
void Vtl::ImAlg::Conv::CyclicConv< T, K >::_right_end_left | ( | IterIn | begin,
 |  | IterOut | out,
 |  | IterOut | out0 |
 | ) |  |  | [inline, private]

Данные класса

template<typename T, class K>
Impl::Buffer<T,K> Vtl::ImAlg::Conv::CyclicConv< T, K >::buf [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::CyclicConvInplace< T, K >

Vtl::ImAlg::Conv::CyclicConvInplace

Шаблон класса Vtl::ImAlg::Conv::CyclicConvInplace< T, K >

Вычисление циклической свертки inplace. Подробнее...

#include <convolve.h>

Полный список членов класса

Открытые члены

CyclicConvInplace (const K &kernel)
template<typename Iter>
void | operator() (Iter begin, Iter end)
Итераторы IterIn должны быть типа forward_iterator, имеющими operator++(), при разименовании должны давать длоступ до данных типа T. Последовательность читается однократно и последовательно, элемент за элементом. Запись происходит сначала в конец последовательности, а затем первые kernrl.right() элементов, необходисая часть данных из начала первоначальной последовательности длиной kernel.size()-1 на первом этапе сохраняется во внутреннем буфере. Это надо иметь ввиду, если итераторы выполняют какие либо побочные, необычные для итераторов STL действия. В нормальном случае могут обрабатываться данные любого STL контейнера.

Закрытые члены

template<typename Iter>
Iter | _left (Iter begin, Iter end)
template<typename Iter>
Iter | _central (Iter begin, Iter end, Iter out)
template<typename Iter>
void | _right (Iter begin, Iter end, Iter out)

Закрытые данные

Impl::Buffer< T, K > | buf
std::vector< T > | save

Подробное описание

template<typename T, class K>
class Vtl::ImAlg::Conv::CyclicConvInplace< T, K >

Вычисление циклической свертки inplace.

Параметры шаблона:
T - тип данных, которые подвергаются свертке T - тип данных, которые подвергаются свертке
K - тип ядра свертки(кросскорреляции) Ядро должно быть класса Kernel::Base или производным от него, созданным с параметрами kernel_type_=KT_Conv или KT_Corr (в зввисимости от того требуется вычислить свертку или кросскорреляцию) , параметр шаблона Base double_kernel_ ДОЛЖЕН БЫТЬ true.

Длина выходной последовательности равна длине входной последовательности и не должна быть меньше размера ядра,т.е. в функции Run() должно выполняться end-begin >= kernel.size() . Это не проверяется, так как предоставленные пользователем итераторы могут не знать размер задаваемого контейнера и оператор разности итераторов может быть не определен, поэтому проверка оставлена на пользователя.

Примеры:

test_fast_gauss.cpp.

Конструктор(ы)

template<typename T, class K>
Vtl::ImAlg::Conv::CyclicConvInplace< T, K >::CyclicConvInplace ( const K & kernel ) [inline]

Методы

template<typename T, class K>
template<typename Iter>
void Vtl::ImAlg::Conv::CyclicConvInplace< T, K >::operator() | ( | Iter | begin,
 |  | Iter | end |
 | ) |  |  | [inline]

Итераторы IterIn должны быть типа forward_iterator, имеющими operator++(), при разименовании должны давать длоступ до данных типа T. Последовательность читается однократно и последовательно, элемент за элементом. Запись происходит сначала в конец последовательности, а затем первые kernrl.right() элементов, необходисая часть данных из начала первоначальной последовательности длиной kernel.size()-1 на первом этапе сохраняется во внутреннем буфере. Это надо иметь ввиду, если итераторы выполняют какие либо побочные, необычные для итераторов STL действия. В нормальном случае могут обрабатываться данные любого STL контейнера.

template<typename T, class K>
template<typename Iter>
Iter Vtl::ImAlg::Conv::CyclicConvInplace< T, K >::_left | ( | Iter | begin,
 |  | Iter | end |
 | ) |  |  | [inline, private]

template<typename T, class K>
template<typename Iter>
Iter Vtl::ImAlg::Conv::CyclicConvInplace< T, K >::_central | ( | Iter | begin,
 |  | Iter | end,
 |  | Iter | out |
 | ) |  |  | [inline, private]

template<typename T, class K>
template<typename Iter>
void Vtl::ImAlg::Conv::CyclicConvInplace< T, K >::_right | ( | Iter | begin,
 |  | Iter | end,
 |  | Iter | out |
 | ) |  |  | [inline, private]

Данные класса

template<typename T, class K>
Impl::Buffer<T,K> Vtl::ImAlg::Conv::CyclicConvInplace< T, K >::buf [private]

template<typename T, class K>
std::vector<T> Vtl::ImAlg::Conv::CyclicConvInplace< T, K >::save [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Класс DataString

Класс DataString
[Преобразование строк в данные и наоборот.]

#include <datastring.h>

Полный список членов класса

Открытые члены

DataString ()
DataString (const char *val)
DataString (const std::string val)
DataString (int val)
DataString & | operator= (int val)
operator int () const
DataString (unsigned val)
DataString & | operator= (unsigned val)
operator unsigned () const
DataString (float val)
DataString & | operator= (float val)
operator float () const
DataString (double val)
DataString & | operator= (double val)
operator double () const
DataString (YDataTime val)
DataString & | operator= (YDataTime val)
operator YDataTime () const
DataString (YDataTimeZone val)
DataString & | operator= (YDataTimeZone val)
operator YDataTimeZone () const
void | setDataTime_Precision (int digits)

Закрытые члены

template<typename T>
DataString & | Set (T val)
DataString & | Set (double val)
template<typename T>
T | Get () const

Закрытые статические члены

static std::string | TimeToString (YDataTime val, YTimeInterval zone, int sec_digits=3)
static void | StringToTime (std::string str, YDataTime &val, YTimeInterval &zone)

Закрытые данные

int | sec_digits

Подробное описание

Так как классы STL не предназначены для наследования и часто передаются по значению, то для избежания проблем, связанных с отсечением, класс DataString не должен иметь членов-данных, виртуальных функций и деструктора. Его размер в точности должен быть равен размеру объекта класса std::string. Добавление к стандартному набору методов класса std::string преобразований типа и присваиваний полностью отвечает этим требованиям.
Примеры:

test__datastring.cpp, test_yxml_ini.cpp и test_yxml_learn.cpp.

Конструктор(ы)

DataString::DataString ( ) [inline]

DataString::DataString ( const char * val ) [inline]

DataString::DataString ( const std::string val ) [inline]

DataString::DataString ( int val ) [inline]

DataString::DataString ( unsigned val ) [inline]

DataString::DataString ( float val ) [inline]

DataString::DataString ( double val ) [inline]

DataString::DataString ( YDataTime val ) [inline]

DataString::DataString ( YDataTimeZone val ) [inline]

Методы

template<typename T>
DataString& DataString::Set ( T val ) [inline, private]

DataString& DataString::Set ( double val ) [inline, private]

template<typename T>
T DataString::Get ( ) const [inline, private]

International standard ISO/IEC 14882, first edition 1998-09-01, Programming Languages - C++ P.255. 14.5.5.1 Function template overloading. "The signature of a function template consists of its function signature, its return type and its template parameter list. The names of template parameters are significant only for establishing the relationship between the template parameters and the rest of the signature. [Note: two distinct function templates may have identical functions return types and function parameter lists, even if overload resolution alone cannot distinguish them.

template<class T> void f(); template<int I> void f(); //OK: overloads the first template //distinguishable with an explicit template argument list --end note]"

std::string DataString::TimeToString | ( | YDataTime | val,
 |  | YTimeInterval | zone,
 |  | int | sec_digits = 3 |
 | ) |  |  | [static, private]

void DataString::StringToTime | ( | std::string | str,
 |  | YDataTime & | val,
 |  | YTimeInterval & | zone |
 | ) |  |  | [static, private]

DataString& DataString::operator= ( int val ) [inline]

DataString::operator int ( ) const [inline]

DataString& DataString::operator= ( unsigned val ) [inline]

DataString::operator unsigned ( ) const [inline]

DataString& DataString::operator= ( float val ) [inline]

DataString::operator float ( ) const [inline]

DataString& DataString::operator= ( double val ) [inline]

DataString::operator double ( ) const [inline]

DataString& DataString::operator= ( YDataTime val ) [inline]

DataString::operator YDataTime ( ) const [inline]

DataString& DataString::operator= ( YDataTimeZone val ) [inline]

DataString::operator YDataTimeZone ( ) const [inline]

void DataString::setDataTime_Precision ( int digits ) [inline]

Примеры:
test_yxml_learn.cpp.

Данные класса

int DataString::sec_digits [private]

Объявления и описания членов классов находятся в файлах:
  • datastring.h
  • datastring.cpp


Pipe Line Filters: Шаблон структуры Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >

Vtl::Img::Impl::DataType

Шаблон структуры Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { type_id = data_type }
enum | { sample_size = sizeof(P) }
enum | { is_signed = _signed }
enum | { is_float = _float }
enum | { is_struct = _struct }
typedef P | sample_type

template<class P, SampleType data_type, bool _signed, bool _float, bool _struct>
struct Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >

Определения типов

template<class P, SampleType data_type, bool _signed, bool _float, bool _struct>
typedef P Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >::sample_type

Перечисления

template<class P, SampleType data_type, bool _signed, bool _float, bool _struct>
anonymous enum

Элементы перечислений:
type_id

template<class P, SampleType data_type, bool _signed, bool _float, bool _struct>
anonymous enum

Элементы перечислений:
sample_size

template<class P, SampleType data_type, bool _signed, bool _float, bool _struct>
anonymous enum

Элементы перечислений:
is_signed

template<class P, SampleType data_type, bool _signed, bool _float, bool _struct>
anonymous enum

Элементы перечислений:
is_float

template<class P, SampleType data_type, bool _signed, bool _float, bool _struct>
anonymous enum

Элементы перечислений:
is_struct

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataType< ST_c32f >

Vtl::Img::DataType< ST_c32f >

Шаблон структуры Vtl::Img::DataType< ST_c32f >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::DataType< ST_c32f >:

[см. легенду]
Граф связей класса Vtl::Img::DataType< ST_c32f >:

[см. легенду]

template<>
struct Vtl::Img::DataType< ST_c32f >

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataType< ST_c64f >

Vtl::Img::DataType< ST_c64f >

Шаблон структуры Vtl::Img::DataType< ST_c64f >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::DataType< ST_c64f >:

[см. легенду]
Граф связей класса Vtl::Img::DataType< ST_c64f >:

[см. легенду]

template<>
struct Vtl::Img::DataType< ST_c64f >

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataType< ST_f32 >

Vtl::Img::DataType< ST_f32 >

Шаблон структуры Vtl::Img::DataType< ST_f32 >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::DataType< ST_f32 >:

[см. легенду]
Граф связей класса Vtl::Img::DataType< ST_f32 >:

[см. легенду]

template<>
struct Vtl::Img::DataType< ST_f32 >

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataType< ST_f64 >

Vtl::Img::DataType< ST_f64 >

Шаблон структуры Vtl::Img::DataType< ST_f64 >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::DataType< ST_f64 >:

[см. легенду]
Граф связей класса Vtl::Img::DataType< ST_f64 >:

[см. легенду]

template<>
struct Vtl::Img::DataType< ST_f64 >

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataType< ST_s16 >

Vtl::Img::DataType< ST_s16 >

Шаблон структуры Vtl::Img::DataType< ST_s16 >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::DataType< ST_s16 >:

[см. легенду]
Граф связей класса Vtl::Img::DataType< ST_s16 >:

[см. легенду]

template<>
struct Vtl::Img::DataType< ST_s16 >

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataType< ST_s32 >

Vtl::Img::DataType< ST_s32 >

Шаблон структуры Vtl::Img::DataType< ST_s32 >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::DataType< ST_s32 >:

[см. легенду]
Граф связей класса Vtl::Img::DataType< ST_s32 >:

[см. легенду]

template<>
struct Vtl::Img::DataType< ST_s32 >

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataType< ST_s64 >

Vtl::Img::DataType< ST_s64 >

Шаблон структуры Vtl::Img::DataType< ST_s64 >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::DataType< ST_s64 >:

[см. легенду]
Граф связей класса Vtl::Img::DataType< ST_s64 >:

[см. легенду]

template<>
struct Vtl::Img::DataType< ST_s64 >

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataType< ST_s8 >

Vtl::Img::DataType< ST_s8 >

Шаблон структуры Vtl::Img::DataType< ST_s8 >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::DataType< ST_s8 >:

[см. легенду]
Граф связей класса Vtl::Img::DataType< ST_s8 >:

[см. легенду]

template<>
struct Vtl::Img::DataType< ST_s8 >

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataType< ST_u16 >

Vtl::Img::DataType< ST_u16 >

Шаблон структуры Vtl::Img::DataType< ST_u16 >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::DataType< ST_u16 >:

[см. легенду]
Граф связей класса Vtl::Img::DataType< ST_u16 >:

[см. легенду]

template<>
struct Vtl::Img::DataType< ST_u16 >

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataType< ST_u32 >

Vtl::Img::DataType< ST_u32 >

Шаблон структуры Vtl::Img::DataType< ST_u32 >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::DataType< ST_u32 >:

[см. легенду]
Граф связей класса Vtl::Img::DataType< ST_u32 >:

[см. легенду]

template<>
struct Vtl::Img::DataType< ST_u32 >

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataType< ST_u64 >

Vtl::Img::DataType< ST_u64 >

Шаблон структуры Vtl::Img::DataType< ST_u64 >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::DataType< ST_u64 >:

[см. легенду]
Граф связей класса Vtl::Img::DataType< ST_u64 >:

[см. легенду]

template<>
struct Vtl::Img::DataType< ST_u64 >

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataType< ST_u8 >

Vtl::Img::DataType< ST_u8 >

Шаблон структуры Vtl::Img::DataType< ST_u8 >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::DataType< ST_u8 >:

[см. легенду]
Граф связей класса Vtl::Img::DataType< ST_u8 >:

[см. легенду]

template<>
struct Vtl::Img::DataType< ST_u8 >

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataTypeId< T >

Vtl::Img::DataTypeId

Шаблон структуры Vtl::Img::DataTypeId< T >

По типу данных найти идентификатор данных (see SampleType) . Подробнее...

#include <vtl_image_types.h>

Полный список членов класса

Открытые типы

enum | { value = typ::type_id }

Закрытые типы

typedef Vtl::Types::TL::FindIf<
Vtl::Img::EnviSample_DataTypesList,
T, Comp >::Result 		xx_lst
typedef Vtl::Types::TL::TypeAt<
xx_lst, 0 >::Result 		typ

Классы

struct | Comp

Подробное описание

template<typename T>
struct Vtl::Img::DataTypeId< T >

По типу данных найти идентификатор данных (see SampleType) .

Определения типов

template<typename T>
typedef Vtl::Types::TL::FindIf<Vtl::Img::EnviSample_DataTypesList,T,Comp>::Result Vtl::Img::DataTypeId< T >::xx_lst [private]

template<typename T>
typedef Vtl::Types::TL::TypeAt<xx_lst,0>::Result Vtl::Img::DataTypeId< T >::typ [private]

Перечисления

template<typename T>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataTypeId< T >::Comp< T1, T2 >

Vtl::Img::DataTypeId::Comp

Шаблон структуры Vtl::Img::DataTypeId< T >::Comp< T1, T2 >

Полный список членов класса

Открытые типы

enum { value = Vtl::Types::isSameType<typename T1::sample_type, value = Vtl::Types::isSameType<typename T1::sample_type }

template<typename T>
template<class T1, class T2>
struct Vtl::Img::DataTypeId< T >::Comp< T1, T2 >

Перечисления

template<typename T>
template<class T1, class T2>
anonymous enum

Элементы перечислений:
value
value

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataTypeList2TypeList< T >

Vtl::Img::DataTypeList2TypeList

Шаблон структуры Vtl::Img::DataTypeList2TypeList< T >

#include <vtl_image_types.h>

Полный список членов класса

Открытые типы

typedef T Result

template<class T>
struct Vtl::Img::DataTypeList2TypeList< T >

Определения типов

template<class T>
typedef T Vtl::Img::DataTypeList2TypeList< T >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон структуры Vtl::Img::DataTypeList2TypeList< Types::Typelist< T1, T2 > >

Vtl::Img::DataTypeList2TypeList< Types::Typelist< T1, T2 > >

Шаблон структуры Vtl::Img::DataTypeList2TypeList< Types::Typelist< T1, T2 > >

#include <vtl_image_types.h>

Полный список членов класса

Открытые типы

typedef Types::Typelist< typename
T1::sample_type, typename
DataTypeList2TypeList< T2
>::Result > 		Result

template<class T1, class T2>
struct Vtl::Img::DataTypeList2TypeList< Types::Typelist< T1, T2 > >

Определения типов

template<class T1, class T2>
typedef Types::Typelist<typename T1::sample_type,typename DataTypeList2TypeList<T2>::Result > Vtl::Img::DataTypeList2TypeList< Types::Typelist< T1, T2 > >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон класса DatumR< T >

Шаблон класса DatumR< T >

#include <KMeans.h>

Полный список членов класса

Открытые члены

DatumR (int in_x, int in_y, T in_v)
DatumR ()
DatumR< T > & | operator= (const DatumR< T > &d)

Открытые атрибуты

int | x
int | y
int | sgn
T | val

template<typename T>
class DatumR< T >

Конструктор(ы)

template<typename T>
DatumR< T >::DatumR | ( | int | in_x,
 |  | int | in_y,
 |  | T | in_v |
 | ) |  |  | [inline]

template<typename T>
DatumR< T >::DatumR ( ) [inline]

Методы

template<typename T>
DatumR<T>& DatumR< T >::operator= ( const DatumR< T > & d ) [inline]

Данные класса

template<typename T>
int DatumR< T >::x

template<typename T>
int DatumR< T >::y

template<typename T>
int DatumR< T >::sgn

template<typename T>
T DatumR< T >::val

Объявления и описания членов класса находятся в файле:
  • KMeans.h


Pipe Line Filters: Шаблон класса DatumXY< T >

Шаблон класса DatumXY< T >

#include <KMeans.h>

Полный список членов класса

Открытые члены

DatumXY (T in_x, T in_y, const DatumR< T > *in_point)

Открытые атрибуты

T | x
T | y
const DatumR< T > * | p

template<typename T>
class DatumXY< T >

Конструктор(ы)

template<typename T>
DatumXY< T >::DatumXY | ( | T | in_x,
 |  | T | in_y,
 |  | const DatumR< T > * | in_point |
 | ) |  |  | [inline]

Данные класса

template<typename T>
T DatumXY< T >::x

template<typename T>
T DatumXY< T >::y

template<typename T>
const DatumR<T>* DatumXY< T >::p

Объявления и описания членов класса находятся в файле:
  • KMeans.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Debug< IndexList< i, Loki::NullType > >

Vtl::Meta::IL::Debug< IndexList< i, Loki::NullType > >

Шаблон структуры Vtl::Meta::IL::Debug< IndexList< i, Loki::NullType > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые статические члены

static void print (std::ostream &os)

template<int i>
struct Vtl::Meta::IL::Debug< IndexList< i, Loki::NullType > >

Методы

template<int i>
static void Vtl::Meta::IL::Debug< IndexList< i, Loki::NullType > >::print ( std::ostream & os ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Debug< IndexList< i, Tail > >

Vtl::Meta::IL::Debug< IndexList< i, Tail > >

Шаблон структуры Vtl::Meta::IL::Debug< IndexList< i, Tail > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые статические члены

static void print (std::ostream &os)

template<int i, class Tail>
struct Vtl::Meta::IL::Debug< IndexList< i, Tail > >

Методы

template<int i, class Tail>
static void Vtl::Meta::IL::Debug< IndexList< i, Tail > >::print ( std::ostream & os ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Debug< Loki::NullType >

Vtl::Meta::IL::Debug< Loki::NullType >

Шаблон структуры Vtl::Meta::IL::Debug< Loki::NullType >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые статические члены

static void print (std::ostream &os)

template<>
struct Vtl::Meta::IL::Debug< Loki::NullType >

Методы

static void Vtl::Meta::IL::Debug< Loki::NullType >::print ( std::ostream & os ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Класс DebugBase

Класс DebugBase
[Работа с файлами.]

#include <yfile.h>

Граф наследования:DebugBase:

[см. легенду]
Полный список членов класса

Открытые члены

DebugBase ()
virtual | ~DebugBase ()
virtual void | Close ()=0
virtual int | printf (const char *format,...) const =0

Подробное описание

class DebugBase Интерфейс для отладки. Deprecated. В последующих версиях будет введен аналог через потоки.

Конструктор(ы)

DebugBase::DebugBase ( ) [inline]

virtual DebugBase::~DebugBase ( ) [inline, virtual]

Методы

virtual void DebugBase::Close ( ) [pure virtual]

Замещается в DebugToFile.

virtual int DebugBase::printf | ( | const char * | format,
 |  |  | ... |
 | ) |  |  | const [pure virtual]

Замещается в DebugToFile.

Объявления и описания членов класса находятся в файле:
  • yfile.h


Pipe Line Filters: Класс DebugToFile

Класс DebugToFile
[Работа с файлами.]

#include <yfile.h>

Граф наследования:DebugToFile:

[см. легенду]
Граф связей класса DebugToFile:

[см. легенду]
Полный список членов класса

Открытые члены

DebugToFile ()
virtual | ~DebugToFile ()
std::string | DebugFileName () const
void | Init (const char *fname)
virtual void | Close ()
virtual int | printf (const char *format,...) const

Закрытые данные

std::string | debug_fname
void * | fp_debug

Подробное описание

class DebugToFile Реализация интерфейс для отладки с записью в файл. Deprecated. В последующих версиях будет введен аналог через потоки.

Конструктор(ы)

DebugToFile::DebugToFile ( )

virtual DebugToFile::~DebugToFile ( ) [virtual]

Методы

std::string DebugToFile::DebugFileName ( ) const [inline]

void DebugToFile::Init ( const char * fname )

virtual void DebugToFile::Close ( ) [virtual]

Замещает DebugBase.

virtual int DebugToFile::printf | ( | const char * | format,
 |  |  | ... |
 | ) |  |  | const [virtual]

Замещает DebugBase.

Данные класса

std::string DebugToFile::debug_fname [private]

void* DebugToFile::fp_debug [private]

Объявления и описания членов класса находятся в файле:
  • yfile.h


Pipe Line Filters: Класс Vtl::Plf::Impl::DelayAdjuster

Vtl::Plf::Impl::DelayAdjuster

Класс Vtl::Plf::Impl::DelayAdjuster

#include <plf_sys.h>

Полный список членов класса

Открытые члены

DelayAdjuster (std::vector< Node > &graph_, const std::vector< Edge > &edges_)
void | Run ()

Открытые атрибуты

std::vector< int > | d
std::vector< int > | b

Закрытые члены

int | w (int id_fil, int id_port)

Закрытые данные

std::vector< Node > & | graph
const std::vector< Edge > & | edges

Конструктор(ы)

Vtl::Plf::Impl::DelayAdjuster::DelayAdjuster | ( | std::vector< Node > & | graph_,
 |  | const std::vector< Edge > & | edges_ |
 | ) |  |  | [inline]

На входе - граф, который предполагается уже топологически отсортированным.

Методы

void Vtl::Plf::Impl::DelayAdjuster::Run ( ) [inline]

int Vtl::Plf::Impl::DelayAdjuster::w | ( | int | id_fil,
 |  | int | id_port |
 | ) |  |  | [inline, private]

Данные класса

std::vector<Node>& Vtl::Plf::Impl::DelayAdjuster::graph [private]

const std::vector<Edge>& Vtl::Plf::Impl::DelayAdjuster::edges [private]

std::vector<int> Vtl::Plf::Impl::DelayAdjuster::d

std::vector<int> Vtl::Plf::Impl::DelayAdjuster::b

Объявления и описания членов класса находятся в файле:
  • plf_sys.h


Pipe Line Filters: Шаблон класса Vtl::Plf::DeNoise< T, P >

Vtl::Plf::DeNoise

Шаблон класса Vtl::Plf::DeNoise< T, P >
[Complex filters]

Выполняет подавление импульсного шума. Среднее и дисперсия вычисляются с помощью свертки с Гауссом. Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::DeNoise< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::DeNoise< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

OutPort< T, P > & | out ()
DeNoise ()
DeNoise (std::string name, T output_maxval, float sigma=5.0f, float env_sigmas=2.0f, float in_k_sigmas=2.0f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
output_maxval==float((1<<bits)-1)
void | Init (std::string name, T output_maxval, float sigma=5.0f, float env_sigmas=2.0f, float in_k_sigmas=2.0f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
output_maxval==float((1<<bits)-1)
virtual | ~DeNoise ()

Открытые атрибуты

InPortComb< T > | in

Закрытые члены

DeNoise (const DeNoise &)
DeNoise & | operator= (const DeNoise &)

Закрытые данные

Vtl::Plf::MeanAndDisp< T > | mean_and_disp
PixByPix3to1< T, Vtl::Plf::F31::DeNoise<
T >, P > 		denoise

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::DeNoise< T, P >

Выполняет подавление импульсного шума. Среднее и дисперсия вычисляются с помощью свертки с Гауссом.

См. также:
MeanAndDisp.

Структура фильтра DeNoise - подавления импульсного шума

Результат воздействия на изображение

этим фильтром
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::DeNoise< T, P >::DeNoise ( const DeNoise< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::DeNoise< T, P >::DeNoise ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::DeNoise< T, P >::DeNoise | ( | std::string | name,
 |  | T | output_maxval,
 |  | float | sigma = 5.0f,
 |  | float | env_sigmas = 2.0f,
 |  | float | in_k_sigmas = 2.0f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

output_maxval==float((1<<bits)-1)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::DeNoise< T, P >::~DeNoise ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
DeNoise& Vtl::Plf::DeNoise< T, P >::operator= ( const DeNoise< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::DeNoise< T, P >::out ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::DeNoise< T, P >::Init | ( | std::string | name,
 |  | T | output_maxval,
 |  | float | sigma = 5.0f,
 |  | float | env_sigmas = 2.0f,
 |  | float | in_k_sigmas = 2.0f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

output_maxval==float((1<<bits)-1)

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::MeanAndDisp<T> Vtl::Plf::DeNoise< T, P >::mean_and_disp [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
PixByPix3to1<T,Vtl::Plf::F31::DeNoise<T>,P > Vtl::Plf::DeNoise< T, P >::denoise [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPortComb<T> Vtl::Plf::DeNoise< T, P >::in

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F31::DeNoise< T >

Vtl::Plf::F31::DeNoise

Шаблон класса Vtl::Plf::F31::DeNoise< T >

Функтор DeNoise для PixByPix3to1. Из трех величин [image] представляющих собой яркость в точке, среднюю яркость и корень из дисперсии, вычисленные по окрестности точки вычисляет величину:
. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

DeNoise (float in_k_sigmas=2.0f)
T | operator() (T f, T f_mean, T f_sigma) const

Закрытые данные

float | k

Подробное описание

template<typename T>
class Vtl::Plf::F31::DeNoise< T >

Функтор DeNoise для PixByPix3to1. Из трех величин [image] представляющих собой яркость в точке, среднюю яркость и корень из дисперсии, вычисленные по окрестности точки вычисляет величину:
.

Конструктор(ы)

template<typename T>
Vtl::Plf::F31::DeNoise< T >::DeNoise ( float in_k_sigmas = 2.0f ) [inline]

Методы

template<typename T>
T Vtl::Plf::F31::DeNoise< T >::operator() | ( | T | f,
 |  | T | f_mean,
 |  | T | f_sigma |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
float Vtl::Plf::F31::DeNoise< T >::k [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Meta::det< Matrix >

Vtl::Meta::det

Шаблон класса Vtl::Meta::det< Matrix >

#include <vtl_meta_permutations.h>

Полный список членов класса

Открытые члены

det (const Matrix &mat)
template<int isOdd, class IList>
void | f ()

Открытые атрибуты

value_type result

Закрытые типы

typedef Matrix::value_type | value_type

Закрытые члены

template<class Il, int i>
value_type a ()
template<class Il, int i>
value_type | mul (Loki::Int2Type< i >)
template<class Il, int i>
value_type | mul (Loki::Int2Type< 0 >)

Закрытые данные

const Matrix & | A

Подробное описание

template<class Matrix>
class Vtl::Meta::det< Matrix >

Функтор для ForEachPermutation .Вычисляет детерминант матрицы, известного на момент компиляции размера. В момент компиляции путем разложения детерминанта в виде суммы поизведений элементов по все перестановкам строится (рекурсивно) явная формула. В RUNTIME по этой формуле вычисляется собственно детерминант, т.е. выполняются операции типа считывание числа из i,j -го элемента матрицы, причем здесь i,j КОНСТАНТЫ (например 3,1 , 0,2 и т.д.) и умножение и сложение этих чисел.
В частности, например для матрицы 2х2, лежащей в одномерном массиве строка за строкой, вызов этого шаблона сгенерирует код вид
 result=a[0]*a[3]-a[1]*a[2];
И никаких циклов и поиска элементов матрицы в памяти!
На счет погрешности вычислений надо иметь ввиду, что вычисление детерминанта матрицы NxN по формуле требует N! сложений/вычитаний и если произведения соответствующих элементов сущетсвенно различаются по порядку или набоброт близки, но с разным знаком, то будет сказываться погрешность округления. Каких либо мер по регуляризации не предпринимается - просто вычисление по формуле. См. также функцию determinant .

Определения типов

template<class Matrix>
typedef Matrix::value_type Vtl::Meta::det< Matrix >::value_type [private]

Конструктор(ы)

template<class Matrix>
Vtl::Meta::det< Matrix >::det ( const Matrix & mat ) [inline]

Методы

template<class Matrix>
template<class Il, int i>
value_type Vtl::Meta::det< Matrix >::a ( ) [inline, private]

template<class Matrix>
template<class Il, int i>
value_type Vtl::Meta::det< Matrix >::mul ( Loki::Int2Type< i > ) [inline, private]

template<class Matrix>
template<class Il, int i>
value_type Vtl::Meta::det< Matrix >::mul ( Loki::Int2Type< 0 > ) [inline, private]

template<class Matrix>
template<int isOdd, class IList>
void Vtl::Meta::det< Matrix >::f ( ) [inline]

Данные класса

template<class Matrix>
const Matrix& Vtl::Meta::det< Matrix >::A [private]

template<class Matrix>
value_type Vtl::Meta::det< Matrix >::result

Объявления и описания членов класса находятся в файле:
  • vtl_meta_permutations.h


Pipe Line Filters: Шаблон класса Vtl::Meta::det_poly_coef< Matrix, N >

Vtl::Meta::det_poly_coef

Шаблон класса Vtl::Meta::det_poly_coef< Matrix, N >

#include <vtl_meta_permutations.h>

Полный список членов класса

Открытые члены

det_poly_coef (const Matrix &A_, const Matrix &B_)
template<int isOdd, class IList>
void | f ()

Открытые атрибуты

T | coef [N+1]
Если матрица размера NхN, то полином N-степени имеет N+1 коэффициентов.

Закрытые типы

enum | { mask = (1<<N)-1 }
typedef Matrix::value_type | T

Закрытые члены

template<class Il, int i>
T | ab (Loki::Int2Type< 0 >)
template<class Il, int i>
T | ab (Loki::Int2Type< 1 >)
template<class Il, int i, int is_b>
T ab ()
template<class Il, int i, int m>
T | mul (Loki::Int2Type< i >)
template<class Il, int i, int m>
T | mul (Loki::Int2Type< 0 >)
template<int m, int isOdd, class IList>
void | one_comp ()
template<int m, int isOdd, class IList>
void | comp (Loki::Int2Type< 1 >)
template<int m, int isOdd, class IList>
void | comp (Loki::Int2Type< 0 >)

Закрытые данные

const Matrix & | A
const Matrix & | B

Подробное описание

template<class Matrix, int N>
class Vtl::Meta::det_poly_coef< Matrix, N >

Даны две матрицы A и B размера NxN. Этот функтор для Meta::ForEachPermutation вычисляет коэффициента полиномы det(Ax+B), где x - одномерная переменная. Результаты оказываются в массиве coef[N+1]. А именно:
det(Ax+B) = coef[0] + coef[1] x + coef[2] x^2 + coef[3] x^3 + ... + coef[N] x^N

Определения типов

template<class Matrix, int N>
typedef Matrix::value_type Vtl::Meta::det_poly_coef< Matrix, N >::T [private]

Перечисления

template<class Matrix, int N>
anonymous enum [private]

Элементы перечислений:
mask

Конструктор(ы)

template<class Matrix, int N>
Vtl::Meta::det_poly_coef< Matrix, N >::det_poly_coef | ( | const Matrix & | A_,
 |  | const Matrix & | B_ |
 | ) |  |  | [inline]

Методы

template<class Matrix, int N>
template<class Il, int i>
T Vtl::Meta::det_poly_coef< Matrix, N >::ab ( Loki::Int2Type< 0 > ) [inline, private]

template<class Matrix, int N>
template<class Il, int i>
T Vtl::Meta::det_poly_coef< Matrix, N >::ab ( Loki::Int2Type< 1 > ) [inline, private]

template<class Matrix, int N>
template<class Il, int i, int is_b>
T Vtl::Meta::det_poly_coef< Matrix, N >::ab ( ) [inline, private]

template<class Matrix, int N>
template<class Il, int i, int m>
T Vtl::Meta::det_poly_coef< Matrix, N >::mul ( Loki::Int2Type< i > ) [inline, private]

template<class Matrix, int N>
template<class Il, int i, int m>
T Vtl::Meta::det_poly_coef< Matrix, N >::mul ( Loki::Int2Type< 0 > ) [inline, private]

template<class Matrix, int N>
template<int m, int isOdd, class IList>
void Vtl::Meta::det_poly_coef< Matrix, N >::one_comp ( ) [inline, private]

template<class Matrix, int N>
template<int m, int isOdd, class IList>
void Vtl::Meta::det_poly_coef< Matrix, N >::comp ( Loki::Int2Type< 1 > ) [inline, private]

template<class Matrix, int N>
template<int m, int isOdd, class IList>
void Vtl::Meta::det_poly_coef< Matrix, N >::comp ( Loki::Int2Type< 0 > ) [inline, private]

template<class Matrix, int N>
template<int isOdd, class IList>
void Vtl::Meta::det_poly_coef< Matrix, N >::f ( ) [inline]

Данные класса

template<class Matrix, int N>
const Matrix& Vtl::Meta::det_poly_coef< Matrix, N >::A [private]

template<class Matrix, int N>
const Matrix& Vtl::Meta::det_poly_coef< Matrix, N >::B [private]

template<class Matrix, int N>
T Vtl::Meta::det_poly_coef< Matrix, N >::coef[N+1]

Если матрица размера NхN, то полином N-степени имеет N+1 коэффициентов.

Объявления и описания членов класса находятся в файле:
  • vtl_meta_permutations.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Detect< T, Func, P >

Vtl::Plf::Detect

Шаблон класса Vtl::Plf::Detect< T, Func, P >
[Complex filters]

Обнаруживает уголки, линии и т.п. в зависимости от второго шаблонного аргумента в качестве которого могут использоваться:. Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::Detect< T, Func, P >:

[см. легенду]
Граф связей класса Vtl::Plf::Detect< T, Func, P >:

[см. легенду]
Полный список членов класса

Открытые члены

InPortComb< T > & | in ()
OutPort< T, P > & | out ()
Detect ()
Detect (std::string name, float sigma_=1.0f, float env_sigmas=2.5f, Func functor=Vtl::Plf::F31::Harris< T >(), P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (std::string name, float sigma=1.0f, float env_sigmas=2.5f, Func functor=Vtl::Plf::F31::Harris< T >(), P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~Detect ()

Закрытые типы

typedef Vtl::ImAlg::WndFun::Gauss<
T, 0 > 		G0

Закрытые члены

Detect (const Detect &)
Detect & | operator= (const Detect &)

Закрытые данные

Vtl::Plf::GradientCorr< T,
F23::CorrMatrix< T, T & > > 		corr
Vtl::Plf::Average< T > | avg_xx
Vtl::Plf::Average< T > | avg_xy
Vtl::Plf::Average< T > | avg_yy
Vtl::Plf::Kernel::FKern< T > | gauss
Vtl::Plf::PixByPix3to1< T,
Func, P > 		det

Подробное описание

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::Detect< T, Func, P >

Обнаруживает уголки, линии и т.п. в зависимости от второго шаблонного аргумента в качестве которого могут использоваться:.

  • class Vtl::Plf::F::Harris - обнаруживает уголки (двумерные особенности).
  • class Vtl::Plf::F::MaxEigenVal -обнаруживает линии (DiZenzo).
  • class Vtl::Plf::F::MinEigenVal - обнаруживает уголки (двумерные особенности, Канаде-Лукас).
  • class Vtl::Plf::F::DiffEigenVal -обнаруживает линии (DiZenzo) исключая двумерные особенности (уголки ). и т.п.
HarrisNMS(0.04).dot

Структура фильтра Detect - детектор особенностей

Результат воздействия на изображение

Детекторы двумерных особенностей (corners, blobs):
Этим фильтром с функтором Vtl::Plf::F::Harris при k=0.0
Этим фильтром с функтором Vtl::Plf::F::Harris при k=0.04
Этим фильтром с функтором Vtl::Plf::F::MinEigenVal
Детекторы одномерных особенностей (edges detectors):
Этим фильтром с функтором Vtl::Plf::F::MaxEigenVal
Этим фильтром с функтором Vtl::Plf::Vtl::Plf::F::DiffEigenVal
Этим фильтром с функтором Vtl::Plf::Vtl::Plf::F::Trace
Примеры:

test_plf_filters.cpp.

Определения типов

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
typedef Vtl::ImAlg::WndFun::Gauss<T,0> Vtl::Plf::Detect< T, Func, P >::G0 [private]

Конструктор(ы)

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Detect< T, Func, P >::Detect ( const Detect< T, Func, P > & ) [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Detect< T, Func, P >::Detect ( ) [inline]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Detect< T, Func, P >::Detect | ( | std::string | name,
 |  | float | sigma_ = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | Func | functor = Vtl::Plf::F31::Harris<T>(),
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::Detect< T, Func, P >::~Detect ( ) [inline, virtual]

Методы

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Detect& Vtl::Plf::Detect< T, Func, P >::operator= ( const Detect< T, Func, P > & ) [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPortComb<T>& Vtl::Plf::Detect< T, Func, P >::in ( ) [inline]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::Detect< T, Func, P >::out ( ) [inline]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::Detect< T, Func, P >::Init | ( | std::string | name,
 |  | float | sigma = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | Func | functor = Vtl::Plf::F31::Harris<T>(),
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

Данные класса

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::GradientCorr<T,F23::CorrMatrix<T,T&> > Vtl::Plf::Detect< T, Func, P >::corr [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Average<T> Vtl::Plf::Detect< T, Func, P >::avg_xx [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Average<T> Vtl::Plf::Detect< T, Func, P >::avg_xy [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Average<T> Vtl::Plf::Detect< T, Func, P >::avg_yy [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Kernel::FKern<T> Vtl::Plf::Detect< T, Func, P >::gauss [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix3to1<T,Func,P > Vtl::Plf::Detect< T, Func, P >::det [private]

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::Impl::determinant< N, Il1, Il2, j >

Vtl::Meta::Impl::determinant

Шаблон структуры Vtl::Meta::Impl::determinant< N, Il1, Il2, j >

#include <vtl_meta_permutations.h>

Полный список членов класса

Открытые типы

typedef IL::EraseAt< 0, Il1
>::Result 		IndexInCol
typedef IL::EraseAt< j, Il2
>::Result 		IndexInRow

Открытые статические члены

template<class Matrix>
static Matrix::value_type inRow (const Matrix &mat)

template<int N, class Il1, class Il2, int j>
struct Vtl::Meta::Impl::determinant< N, Il1, Il2, j >

Определения типов

template<int N, class Il1, class Il2, int j>
typedef IL::EraseAt<0,Il1>::Result Vtl::Meta::Impl::determinant< N, Il1, Il2, j >::IndexInCol

template<int N, class Il1, class Il2, int j>
typedef IL::EraseAt<j,Il2>::Result Vtl::Meta::Impl::determinant< N, Il1, Il2, j >::IndexInRow

Методы

template<int N, class Il1, class Il2, int j>
template<class Matrix>
static Matrix::value_type Vtl::Meta::Impl::determinant< N, Il1, Il2, j >::inRow ( const Matrix & mat ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_permutations.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::Impl::determinant< 1, Il1, Il2, 0 >

Vtl::Meta::Impl::determinant< 1, Il1, Il2, 0 >

Шаблон структуры Vtl::Meta::Impl::determinant< 1, Il1, Il2, 0 >

#include <vtl_meta_permutations.h>

Полный список членов класса

Открытые статические члены

template<class Matrix>
static Matrix::value_type inRow (const Matrix &mat)

template<class Il1, class Il2>
struct Vtl::Meta::Impl::determinant< 1, Il1, Il2, 0 >

Методы

template<class Il1, class Il2>
template<class Matrix>
static Matrix::value_type Vtl::Meta::Impl::determinant< 1, Il1, Il2, 0 >::inRow ( const Matrix & mat ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_permutations.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::Impl::determinant< N, Il1, Il2, N >

Vtl::Meta::Impl::determinant< N, Il1, Il2, N >

Шаблон структуры Vtl::Meta::Impl::determinant< N, Il1, Il2, N >

#include <vtl_meta_permutations.h>

Полный список членов класса

Открытые статические члены

template<class Matrix>
static Matrix::value_type inRow (const Matrix &mat)

template<int N, class Il1, class Il2>
struct Vtl::Meta::Impl::determinant< N, Il1, Il2, N >

Методы

template<int N, class Il1, class Il2>
template<class Matrix>
static Matrix::value_type Vtl::Meta::Impl::determinant< N, Il1, Il2, N >::inRow ( const Matrix & mat ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_permutations.h


Pipe Line Filters: Шаблон структуры Vtl::Plf::F21::Dif< T >

Vtl::Plf::F21::Dif

Шаблон структуры Vtl::Plf::F21::Dif< T >

#include <plf_functors.h>

Полный список членов класса

Открытые члены

template<typename T1>
T operator() (T1 val1, T1 val2)

template<typename T>
struct Vtl::Plf::F21::Dif< T >

Методы

template<typename T>
template<typename T1>
T Vtl::Plf::F21::Dif< T >::operator() | ( | T1 | val1,
 |  | T1 | val2 |
 | ) |  |  | [inline]

Объявления и описания членов структуры находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F31::DiffEigenVal< T >

Vtl::Plf::F31::DiffEigenVal

Шаблон класса Vtl::Plf::F31::DiffEigenVal< T >

Функтор DiffEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет разность собственных значений (детектор краев исключая двумерные особенности(уголки)): ,
где [image] , т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $ , и [image] , [image]. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

DiffEigenVal (T sigma=1.0f)
T | operator() (T v11, T v12, T v22) const

Закрытые данные

T | mult

Подробное описание

template<typename T>
class Vtl::Plf::F31::DiffEigenVal< T >

Функтор DiffEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет разность собственных значений (детектор краев исключая двумерные особенности(уголки)): ,
где [image] , т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $ , и [image] , [image].
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T>
Vtl::Plf::F31::DiffEigenVal< T >::DiffEigenVal ( T sigma = 1.0f ) [inline]

Методы

template<typename T>
T Vtl::Plf::F31::DiffEigenVal< T >::operator() | ( | T | v11,
 |  | T | v12,
 |  | T | v22 |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
T Vtl::Plf::F31::DiffEigenVal< T >::mult [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >

Vtl::ImAlg::WndFun::Direct

Шаблон класса Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >

Функтор - таблица непосредственно заданных значений. Подробнее...

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >:

[см. легенду]
Полный список членов класса

Открытые члены

Direct (int size_, int center_, const TT *values)
template<class TT>
T | operator() (TT x) const

Открытые статические члены

static const char * | Name ()

Закрытые данные

std::vector< TT > | vals

Подробное описание

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
class Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >

Функтор - таблица непосредственно заданных значений.
Примеры:

test_plf_kernels.cpp.

Конструктор(ы)

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >::Direct | ( | int | size_,
 |  | int | center_,
 |  | const TT * | values |
 | ) |  |  | [inline]

Методы

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
static const char* Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >::Name ( ) [inline, static]

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
template<class TT>
T Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >::operator() ( TT x ) const [inline]

Данные класса

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
std::vector<TT> Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >::vals [private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >

Vtl::ImAlg::WndFun::Direct_Ref

Шаблон класса Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >

Функтор - таблица непосредственно заданных значений. Значения не копируются и указатель на них должен оставаться валидным в течении всего времени жизни функтора! Целесообразно использовать в том случае, когда массив значений задается строкой констант, в противном случае следует использовать class Directю. Подробнее...

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef int | arg_type

Открытые члены

Direct_Ref (int size_, int center_, const TT *values)
template<class TT>
T | operator() (TT x) const
arg_type | size () const
arg_type | center () const
arg_type | left () const
arg_type | right () const

Открытые статические члены

static const char * | Name ()

Закрытые данные

const arg_type | _size_
const TT * | vals

Подробное описание

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
class Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >

Функтор - таблица непосредственно заданных значений. Значения не копируются и указатель на них должен оставаться валидным в течении всего времени жизни функтора! Целесообразно использовать в том случае, когда массив значений задается строкой констант, в противном случае следует использовать class Directю.
Примеры:

test_plf_kernels.cpp.

Определения типов

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
typedef int Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >::arg_type

Конструктор(ы)

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >::Direct_Ref | ( | int | size_,
 |  | int | center_,
 |  | const TT * | values |
 | ) |  |  | [inline]

Методы

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
static const char* Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >::Name ( ) [inline, static]

Переопределяется в Vtl::ImAlg::WndFun::Laws5< T >::L5, Vtl::ImAlg::WndFun::Laws5< T >::E5, Vtl::ImAlg::WndFun::Laws5< T >::S5 и Vtl::ImAlg::WndFun::Laws5< T >::R5.

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
template<class TT>
T Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >::operator() ( TT x ) const [inline]

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
arg_type Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >::size ( ) const [inline]

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
arg_type Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >::center ( ) const [inline]

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
arg_type Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >::left ( ) const [inline]

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
arg_type Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >::right ( ) const [inline]

Данные класса

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
const arg_type Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >::_size_ [private]

template<typename T, typename TT, unsigned D = 0, unsigned NAC = 0>
const TT* Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >::vals [private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон структуры Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >

Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >

Шаблон структуры Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >

#include <sfm_calibration.h>

Полный список членов класса

Открытые типы

enum | { n = N }
typedef Vtl::NumAlg::Lin::ublas::c_matrix<
T, N, N > 		Matrix
typedef Vtl::NumAlg::Lin::ublas::c_vector<
T, N > 		Vector
typedef Matrix::value_type | value_type
typedef Matrix::size_type | size_type

Открытые члены

DirectMinimization (const Matrix &Fm)
void | operator() ()

Открытые атрибуты

const Matrix | F
Input fundamental matrix.
Matrix E
Output essential matrix.
Matrix K1
Output calibration matrix K.
Matrix K2
Output calibration matrix K'.

Закрытые члены

value_type optimal_search ()
value_type full_search ()
value_type | full_search_subproc (value_type f_min, value_type f_max, value_type f_step, value_type &eps)
value_type | build_E (value_type focus)
value_type find_sing_value_dev (Matrix &E)
Портит входную существенную матрицу.

template<typename T, int N>
struct Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >

Определения типов

template<typename T, int N>
typedef Vtl::NumAlg::Lin::ublas::c_matrix<T, N, N> Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Matrix

template<typename T, int N>
typedef Vtl::NumAlg::Lin::ublas::c_vector<T, N> Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Vector

template<typename T, int N>
typedef Matrix::value_type Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::value_type

template<typename T, int N>
typedef Matrix::size_type Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::size_type

Перечисления

template<typename T, int N>
anonymous enum

Элементы перечислений:
n

Конструктор(ы)

template<typename T, int N>
Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::DirectMinimization ( const Matrix & Fm ) [inline]

Методы

template<typename T, int N>
void Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::operator() ( ) [inline]

template<typename T, int N>
value_type Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::optimal_search ( ) [inline, private]

template<typename T, int N>
value_type Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::full_search ( ) [inline, private]

template<typename T, int N>
value_type Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::full_search_subproc | ( | value_type | f_min,
 |  | value_type | f_max,
 |  | value_type | f_step,
 |  | value_type & | eps |
 | ) |  |  | [inline, private]

template<typename T, int N>
value_type Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::build_E ( value_type focus ) [inline, private]

template<typename T, int N>
value_type Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::find_sing_value_dev ( Matrix & E ) [inline, private]

Портит входную существенную матрицу.

Данные класса

template<typename T, int N>
const Matrix Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::F

Input fundamental matrix.

template<typename T, int N>
Matrix Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::E

Output essential matrix.

template<typename T, int N>
Matrix Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::K1

Output calibration matrix K.

template<typename T, int N>
Matrix Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::K2

Output calibration matrix K'.

Объявления и описания членов структуры находятся в файле:
  • sfm_calibration.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F21::Disp< T >

Vtl::Plf::F21::Disp

Шаблон класса Vtl::Plf::F21::Disp< T >

Функтор sqrtOfSumSqr для фильтра PixByPix2to1. Из двух серых изображений - среднего и среднего от квадрата яркости вычисляет одно по формуле [image] , т.е. служит для вычисления величины [image]. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

Disp ()
T operator() (T mean, T sqr_mean) const

Подробное описание

template<typename T>
class Vtl::Plf::F21::Disp< T >

Функтор sqrtOfSumSqr для фильтра PixByPix2to1. Из двух серых изображений - среднего и среднего от квадрата яркости вычисляет одно по формуле [image] , т.е. служит для вычисления величины [image].

Конструктор(ы)

template<typename T>
Vtl::Plf::F21::Disp< T >::Disp ( ) [inline]

Методы

template<typename T>
T Vtl::Plf::F21::Disp< T >::operator() | ( | T | mean,
 |  | T | sqr_mean |
 | ) |  |  | const [inline]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Класс DistributionMatrix

Класс DistributionMatrix

#include <_imtransf.h>

Граф связей класса DistributionMatrix:

[см. легенду]
Полный список членов класса

Открытые члены

DistributionMatrix (int width=0, int height=0, size_t capacity=0)
void | clear ()
void | setSize (int width, int height, size_t capacity)
void | add (const YPoint< int > &cell, const YPoint< int > &p)
std::vector< const DMatrixElem * > | collectRaduis (const YPoint< int > &prp, int r, int *pn=0) const
bool | empty (const YPoint< int > &p) const

Закрытые члены

DMatrixElem ** | at (const YPoint< int > &p)
DMatrixElem *const * | at (const YPoint< int > &p) const
void | collectCell (std::vector< const DMatrixElem * > &elems, const DMatrixElem *elem) const

Закрытые данные

std::vector< DMatrixElem * > | matrix_
YSmallAllocLtd allocator_
int | w_
int | h_

Конструктор(ы)

DistributionMatrix::DistributionMatrix | ( | int | width = 0,
 |  | int | height = 0,
 |  | size_t | capacity = 0 |
 | ) |  |  | [inline]

Методы

void DistributionMatrix::clear ( ) [inline]

void DistributionMatrix::setSize | ( | int | width,
 |  | int | height,
 |  | size_t | capacity |
 | ) |  |  | [inline]

void DistributionMatrix::add | ( | const YPoint< int > & | cell,
 |  | const YPoint< int > & | p |
 | ) |  |  | [inline]

std::vector< const DMatrixElem * > DistributionMatrix::collectRaduis | ( | const YPoint< int > & | prp,
 |  | int | r,
 |  | int * | pn = 0 |
 | ) |  |  | const

bool DistributionMatrix::empty ( const YPoint< int > & p ) const [inline]

DMatrixElem** DistributionMatrix::at ( const YPoint< int > & p ) [inline, private]

DMatrixElem* const* DistributionMatrix::at ( const YPoint< int > & p ) const [inline, private]

void DistributionMatrix::collectCell | ( | std::vector< const DMatrixElem * > & | elems,
 |  | const DMatrixElem * | elem |
 | ) |  |  | const [inline, private]

Данные класса

std::vector<DMatrixElem*> DistributionMatrix::matrix_ [private]

YSmallAllocLtd DistributionMatrix::allocator_ [private]

int DistributionMatrix::w_ [private]

int DistributionMatrix::h_ [private]

Объявления и описания членов классов находятся в файлах:
  • _imtransf.h
  • imtransf.cpp


Pipe Line Filters: Шаблон класса Vtl::Plf::DiZenzo< T, P >

Vtl::Plf::DiZenzo

Шаблон класса Vtl::Plf::DiZenzo< T, P >
[Complex filters]

Детектор краев DiZenzo. Аналог детектора Канни, но работает с цветными изображениями, находит и те края, которые исчезают при преобразовании изображения в градации серого. [DiZenzo86]. Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::DiZenzo< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::DiZenzo< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

OutPort< T > & | out ()
Должен быть подключен! Модуль градиента.
DiZenzo ()
DiZenzo (std::string name, T output_maxval, T threshold=20, float sigma_=1.0f, float env_sigmas=2.5f, float gamma_correction=2.2f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (std::string name, T output_maxval, float threshold=20, float sigma_=1.0f, float env_sigmas=2.5f, float gamma_correction=2.2f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~DiZenzo ()

Открытые атрибуты

InPortComb< T > | in_1
InPortComb< T > | in_2
InPortComb< T > | in_3

Закрытые типы

typedef Vtl::ImAlg::WndFun::Gauss<
T, 0 > 		G0
typedef Vtl::ImAlg::WndFun::Gauss<
T, 1 > 		G1

Закрытые члены

DiZenzo (const DiZenzo &)
DiZenzo & | operator= (const DiZenzo &)

Закрытые данные

float | sigma
Vtl::Plf::Kernel::FKern< T > | gauss
Vtl::Plf::Kernel::FKern< T > | gauss_deriv
Vtl::Plf::SeparableConv2D< T > | gx_1
Vtl::Plf::SeparableConv2D< T > | gy_1
Vtl::Plf::SeparableConv2D< T > | gx_2
Vtl::Plf::SeparableConv2D< T > | gy_2
Vtl::Plf::SeparableConv2D< T > | gx_3
Vtl::Plf::SeparableConv2D< T > | gy_3
Vtl::Plf::PixByPix2to3< T,
Vtl::Plf::F23::CorrMatrix<
T, T & > > 		mat_1
Vtl::Plf::PixByPix2to3< T,
Vtl::Plf::F23::CorrMatrix<
T, T & > > 		mat_2
Vtl::Plf::PixByPix2to3< T,
Vtl::Plf::F23::CorrMatrix<
T, T & > > 		mat_3
Vtl::Plf::PixByPix3to1< T,
Vtl::Plf::F31::Sum3< T > > 		sum_1
Vtl::Plf::PixByPix3to1< T,
Vtl::Plf::F31::Sum3< T > > 		sum_2
Vtl::Plf::PixByPix3to1< T,
Vtl::Plf::F31::Sum3< T > > 		sum_3
PixByPix3to3< T, Vtl::Plf::F33::DiZenzo<
T >,Vtl::Plf::F11::GammaCorMult<
T > > 		color_modul_eigvec
Vtl::Plf::EnvProc3to1< T,
Fpie::CannyNMS< T >, P > 		nms

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::DiZenzo< T, P >

Детектор краев DiZenzo. Аналог детектора Канни, но работает с цветными изображениями, находит и те края, которые исчезают при преобразовании изображения в градации серого. [DiZenzo86].

Структура фильтра DiZenzo - детектор границ (краев) на цветном изображении

Результат воздействия на изображение

этим фильтром
Примеры:

test_color_registration.cpp и test_plf_filters_rgb.cpp.

Определения типов

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
typedef Vtl::ImAlg::WndFun::Gauss<T,0> Vtl::Plf::DiZenzo< T, P >::G0 [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
typedef Vtl::ImAlg::WndFun::Gauss<T,1> Vtl::Plf::DiZenzo< T, P >::G1 [private]

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::DiZenzo< T, P >::DiZenzo ( const DiZenzo< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::DiZenzo< T, P >::DiZenzo ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::DiZenzo< T, P >::DiZenzo | ( | std::string | name,
 |  | T | output_maxval,
 |  | T | threshold = 20,
 |  | float | sigma_ = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | float | gamma_correction = 2.2f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::DiZenzo< T, P >::~DiZenzo ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
DiZenzo& Vtl::Plf::DiZenzo< T, P >::operator= ( const DiZenzo< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T >& Vtl::Plf::DiZenzo< T, P >::out ( ) [inline]

Должен быть подключен! Модуль градиента.

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::DiZenzo< T, P >::Init | ( | std::string | name,
 |  | T | output_maxval,
 |  | float | threshold = 20,
 |  | float | sigma_ = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | float | gamma_correction = 2.2f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
float Vtl::Plf::DiZenzo< T, P >::sigma [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Kernel::FKern<T> Vtl::Plf::DiZenzo< T, P >::gauss [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Kernel::FKern<T> Vtl::Plf::DiZenzo< T, P >::gauss_deriv [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SeparableConv2D<T> Vtl::Plf::DiZenzo< T, P >::gx_1 [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SeparableConv2D<T> Vtl::Plf::DiZenzo< T, P >::gy_1 [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SeparableConv2D<T> Vtl::Plf::DiZenzo< T, P >::gx_2 [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SeparableConv2D<T> Vtl::Plf::DiZenzo< T, P >::gy_2 [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SeparableConv2D<T> Vtl::Plf::DiZenzo< T, P >::gx_3 [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SeparableConv2D<T> Vtl::Plf::DiZenzo< T, P >::gy_3 [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix2to3<T,Vtl::Plf::F23::CorrMatrix<T,T&> > Vtl::Plf::DiZenzo< T, P >::mat_1 [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix2to3<T,Vtl::Plf::F23::CorrMatrix<T,T&> > Vtl::Plf::DiZenzo< T, P >::mat_2 [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix2to3<T,Vtl::Plf::F23::CorrMatrix<T,T&> > Vtl::Plf::DiZenzo< T, P >::mat_3 [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix3to1<T,Vtl::Plf::F31::Sum3<T> > Vtl::Plf::DiZenzo< T, P >::sum_1 [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix3to1<T,Vtl::Plf::F31::Sum3<T> > Vtl::Plf::DiZenzo< T, P >::sum_2 [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix3to1<T,Vtl::Plf::F31::Sum3<T> > Vtl::Plf::DiZenzo< T, P >::sum_3 [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
PixByPix3to3<T, Vtl::Plf::F33::DiZenzo<T> ,Vtl::Plf::F11::GammaCorMult<T> > Vtl::Plf::DiZenzo< T, P >::color_modul_eigvec [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::EnvProc3to1<T,Fpie::CannyNMS<T>,P> Vtl::Plf::DiZenzo< T, P >::nms [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPortComb<T> Vtl::Plf::DiZenzo< T, P >::in_1

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPortComb<T> Vtl::Plf::DiZenzo< T, P >::in_2

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPortComb<T> Vtl::Plf::DiZenzo< T, P >::in_3

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F33::DiZenzo< T, Iter >

Vtl::Plf::F33::DiZenzo

Шаблон класса Vtl::Plf::F33::DiZenzo< T, Iter >

Функтор DiZenzo для PixByPix3to3. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет наибольшее собственное значение (детектор краев) и соответствующий собственный вектор (направлен по нормали к краю). По первому выходу выдает с.з, а по 2 и 3 - x и y компоненты нормированного с.в. соответственно. Подробнее...

#include <plf_functors.h>

Граф наследования:Vtl::Plf::F33::DiZenzo< T, Iter >:

[см. легенду]
Полный список членов класса

Открытые члены

DiZenzo ()
void operator() (T v11, T v12, T v22, Iter lamda_1, Iter eigv_x, Iter eigv_y) const

Подробное описание

template<typename T, typename Iter = T&>
class Vtl::Plf::F33::DiZenzo< T, Iter >

Функтор DiZenzo для PixByPix3to3. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет наибольшее собственное значение (детектор краев) и соответствующий собственный вектор (направлен по нормали к краю). По первому выходу выдает с.з, а по 2 и 3 - x и y компоненты нормированного с.в. соответственно.

Конструктор(ы)

template<typename T, typename Iter = T&>
Vtl::Plf::F33::DiZenzo< T, Iter >::DiZenzo ( ) [inline]

Методы

template<typename T, typename Iter = T&>
void Vtl::Plf::F33::DiZenzo< T, Iter >::operator() | ( | T | v11,
 |  | T | v12,
 |  | T | v22,
 |  | Iter | lamda_1,
 |  | Iter | eigv_x,
 |  | Iter | eigv_y |
 | ) |  |  | const [inline]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Класс DllModule

Класс DllModule

#include <ywin.h>

Полный список членов класса

Открытые члены

DllModule ()
virtual | ~DllModule ()
bool | IsOk () const
bool | LoadLibrary (const char *dll_full_name)
bool | LoadLibrary (const char *dll_name, const char *dll_path)
void | FreeLibrary ()
FARPROC | GetProcAddress (const char *fun_name) const

Закрытые данные

HINSTANCE | dll

Конструктор(ы)

DllModule::DllModule ( ) [inline]

virtual DllModule::~DllModule ( ) [inline, virtual]

Методы

bool DllModule::IsOk ( ) const [inline]

bool DllModule::LoadLibrary ( const char * dll_full_name )

bool DllModule::LoadLibrary | ( | const char * | dll_name,
 |  | const char * | dll_path
 | ) |  |

void DllModule::FreeLibrary ( )

FARPROC DllModule::GetProcAddress ( const char * fun_name ) const

Данные класса

HINSTANCE DllModule::dll [private]

Объявления и описания членов классов находятся в файлах:
  • ywin.h
  • ywin.cpp


Pipe Line Filters: Шаблон структуры Basics3D::Structure::Dlt< T >

Basics3D::Structure::Dlt

Шаблон структуры Basics3D::Structure::Dlt< T >

#include <sfm_reconsruction_dlt.h>

Граф наследования:Basics3D::Structure::Dlt< T >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef T | value_type
typedef boost::numeric::ublas::c_matrix<
value_type, 3, 4 > 		MatrixP
typedef boost::numeric::ublas::c_vector<
value_type, 4 > 		Vector4
typedef boost::numeric::ublas::c_vector<
value_type, 3 > 		Vector3
typedef boost::numeric::ublas::c_vector<
value_type, 2 > 		Vector2

Открытые члены

Dlt (const MatrixP &P1_, const MatrixP &P2_)
void | operator() (const Vector2 &p1, const Vector2 &p2, Vector4 &X)
value_type | reProjectionStdDev (const Vector2 &p1, const Vector2 &p2, const Vector4 &X) const

Закрытые типы

enum | { M = 4 }
enum | { N = 4 }
typedef boost::numeric::ublas::c_matrix<
T, M, N > 		MatrixA

Закрытые члены

void | build_A (value_type x1, value_type y1, value_type x2, value_type y2)

Закрытые статические члены

static Vector2 | toEuclidean (const Vector3 &pt)
static value_type | distEuclidean (const Vector2 &pt1, const Vector2 &pt2)

Закрытые данные

const MatrixP & | P1
const MatrixP & | P2
const Vector4 | p1_1
const Vector4 | p1_2
const Vector4 | p1_3
const Vector4 | p2_1
const Vector4 | p2_2
const Vector4 | p2_3
MatrixA A

template<typename T>
struct Basics3D::Structure::Dlt< T >

Определения типов

template<typename T>
typedef T Basics3D::Structure::Dlt< T >::value_type

template<typename T>
typedef boost::numeric::ublas::c_matrix<value_type,3,4> Basics3D::Structure::Dlt< T >::MatrixP

template<typename T>
typedef boost::numeric::ublas::c_vector<value_type,4> Basics3D::Structure::Dlt< T >::Vector4

template<typename T>
typedef boost::numeric::ublas::c_vector<value_type,3> Basics3D::Structure::Dlt< T >::Vector3

template<typename T>
typedef boost::numeric::ublas::c_vector<value_type,2> Basics3D::Structure::Dlt< T >::Vector2

template<typename T>
typedef boost::numeric::ublas::c_matrix<T,M,N> Basics3D::Structure::Dlt< T >::MatrixA [private]

Перечисления

template<typename T>
anonymous enum [private]

Элементы перечислений:
M

template<typename T>
anonymous enum [private]

Элементы перечислений:
N

Конструктор(ы)

template<typename T>
Basics3D::Structure::Dlt< T >::Dlt | ( | const MatrixP & | P1_,
 |  | const MatrixP & | P2_ |
 | ) |  |  | [inline]

Методы

template<typename T>
void Basics3D::Structure::Dlt< T >::operator() | ( | const Vector2 & | p1,
 |  | const Vector2 & | p2,
 |  | Vector4 & | X |
 | ) |  |  | [inline]

template<typename T>
value_type Basics3D::Structure::Dlt< T >::reProjectionStdDev | ( | const Vector2 & | p1,
 |  | const Vector2 & | p2,
 |  | const Vector4 & | X |
 | ) |  |  | const [inline]

template<typename T>
static Vector2 Basics3D::Structure::Dlt< T >::toEuclidean ( const Vector3 & pt ) [inline, static, private]

template<typename T>
static value_type Basics3D::Structure::Dlt< T >::distEuclidean | ( | const Vector2 & | pt1,
 |  | const Vector2 & | pt2 |
 | ) |  |  | [inline, static, private]

template<typename T>
void Basics3D::Structure::Dlt< T >::build_A | ( | value_type | x1,
 |  | value_type | y1,
 |  | value_type | x2,
 |  | value_type | y2 |
 | ) |  |  | [inline, private]

Данные класса

template<typename T>
const MatrixP& Basics3D::Structure::Dlt< T >::P1 [private]

template<typename T>
const MatrixP& Basics3D::Structure::Dlt< T >::P2 [private]

template<typename T>
const Vector4 Basics3D::Structure::Dlt< T >::p1_1 [private]

template<typename T>
const Vector4 Basics3D::Structure::Dlt< T >::p1_2 [private]

template<typename T>
const Vector4 Basics3D::Structure::Dlt< T >::p1_3 [private]

template<typename T>
const Vector4 Basics3D::Structure::Dlt< T >::p2_1 [private]

template<typename T>
const Vector4 Basics3D::Structure::Dlt< T >::p2_2 [private]

template<typename T>
const Vector4 Basics3D::Structure::Dlt< T >::p2_3 [private]

template<typename T>
MatrixA Basics3D::Structure::Dlt< T >::A [private]

Объявления и описания членов структуры находятся в файле:
  • sfm_reconsruction_dlt.h


Pipe Line Filters: Структура DMatrixElem

Структура DMatrixElem

#include <_imtransf.h>

Граф связей класса DMatrixElem:

[см. легенду]
Полный список членов класса

Открытые атрибуты

DMatrixElem * next
YPoint< int > p

Данные класса

DMatrixElem* DMatrixElem::next

YPoint<int> DMatrixElem::p

Объявления и описания членов структуры находятся в файле:
  • _imtransf.h


Pipe Line Filters: Класс YXML::DNode

YXML::DNode

Класс YXML::DNode
[Работа с XML и INI файлами и структурами данных, Работа с XML и INI файлами и структурами данных]

#include <xml_interface.h>

Полный список членов класса

Открытые типы

enum Type {
ELEMENT = YXML_DRV_NODETYPE_ELEMENT, ATTRIBUTE = YXML_DRV_NODETYPE_ATTRIBUTE, TEXT = YXML_DRV_NODETYPE_TEXT, COMMENT = YXML_DRV_NODETYPE_COMMENT,
UNSUPPORTED = YXML_DRV_NODETYPE_UNSUPPORTED
}

Открытые члены

DNode (YXML_DRV_NodeHandle h)
DNode (const DNode &n)
DNode & | operator= (const DNode &n)
~DNode ()
YXML_DRV_NodeHandle | _GetYXML_NodeHandle () const
Type | getType () const
Возвращает тип ноды.
std::string | getName () const
Возвращает имя ноды, имеет смысл только для типа ELEMENT.
bool | IsNode () const
Аналог проверки указателя на NULL.
DNode | AppendChild (Type type, const DataString data)
DNode | InsertAfter (Type type, const DataString data)
DNode | InsertBefore (Type type, const DataString data)
void | Delete ()
void | setValue (const DataString data)
Work only at TEXT and COMMENT nodes.
DataString | getValue () const
Work only at TEXT and COMMENT nodes.
DNode | Parent () const
DNode | FirstChild () const
DNode | LastChild () const
DNode | Next () const
DNode | Prev () const
DNode | FirstChild (std::string name) const
DNode | Next (std::string name) const
DNode | LastChild (std::string name) const
DNode | Prev (std::string name) const
template<typename T>
DNode | FirstChild (std::string name, std::string attr, const T &attr_val) const
template<typename T>
DNode | Next (std::string name, std::string attr, const T &attr_val) const
template<typename T>
DNode | LastChild (std::string name, std::string attr, const T &attr_val) const
template<typename T>
DNode | Prev (std::string name, std::string attr, const T &attr_val) const
DNode | GetNode (const std::string node_name)
Возвращает ноду с заданным именем, если их несколько, то первую, если ее нет, то она будет создана.
void | SetValue (const DataString data)
Смысл операции зависит от типа ноды, если ELEMENT - то вкладывает текстовую ноду с указанным содержимым, если TEXT или COMMENT - заменяет текстовое содержание на указанное.
DataString | GetValue () const
void | SetAttr (const std::string attr_name, const DataString attr_value)
смысл операции идентичен для XML и INI
DataString | GetAttr (const std::string attr_name) const
смысл операции идентичен для XML и INI
DNode | operator() (const std::string node_name)
AttrRef | operator[] (const std::string &attr)
возвращает временный объект, нужный только для преобразования к DataString или записи в него из DataString
const AttrRef | operator[] (const std::string &attr) const
DNode & | operator= (const DataString data)
operator DataString () const
DNode | FirstChild (const Is &cond) const
DNode | Next (const Is &cond) const
DNode | LastChild (const Is &cond) const
DNode | Prev (const Is &cond) const

Закрытые данные

YXML_DRV_NodeHandle node

Друзья

std::ostream & | operator<< (std::ostream &s, DNode &in)

Классы

class | AttrRef
class | Is
class | IsAND
class | IsCond
class | IsOR

Подробное описание

Основной класс по работе с древовидной структурой документа. Класс документа возвращает корневую ноду, далее следует работать только с нодами.
Примеры:

test_yxml_ini.cpp, test_yxml_learn.cpp и test_yxml_xml.cpp.

Перечисления

enum YXML::DNode::Type

Элементы перечислений:
ELEMENT
ATTRIBUTE
TEXT
COMMENT
UNSUPPORTED

Конструктор(ы)

YXML::DNode::DNode ( YXML_DRV_NodeHandle h ) [inline, explicit]

YXML::DNode::DNode ( const DNode & n ) [inline]

YXML::DNode::~DNode ( ) [inline]

Методы

DNode& YXML::DNode::operator= ( const DNode & n ) [inline]

YXML_DRV_NodeHandle YXML::DNode::_GetYXML_NodeHandle ( ) const [inline]

Документация по друзьям класса и функциям, отноносящимся к классу

std::ostream& operator<< | ( | std::ostream & | s,
 |  | DNode & | in |
 | ) |  |  | [friend]

Данные класса

YXML_DRV_NodeHandle YXML::DNode::node [private]

Объявления и описания членов классов находятся в файлах:
  • xml_interface.h
  • xml_interface.cpp


Pipe Line Filters: Класс YXML::DNode::AttrRef

YXML::DNode::AttrRef

Класс YXML::DNode::AttrRef
[Работа с XML и INI файлами и структурами данных]

#include <xml_interface.h>

Граф связей класса YXML::DNode::AttrRef:

[см. легенду]
Полный список членов класса

Открытые члены

operator DataString () const
void | operator= (const DataString &s)

Закрытые члены

AttrRef ()
AttrRef (const AttrRef &)
AttrRef | operator= (const AttrRef &)
AttrRef (const DNode &node, const std::string &attr)

Закрытые данные

DNode n
std::string | attrib

Друзья

class | DNode
std::ostream & | operator<< (std::ostream &s, DNode::AttrRef &ir)

Конструктор(ы)

YXML::DNode::AttrRef::AttrRef ( ) [private]

YXML::DNode::AttrRef::AttrRef ( const AttrRef & ) [private]

YXML::DNode::AttrRef::AttrRef | ( | const DNode & | node,
 |  | const std::string & | attr |
 | ) |  |  | [inline, private]

Методы

AttrRef YXML::DNode::AttrRef::operator= ( const AttrRef & ) [private]

YXML::DNode::AttrRef::operator DataString ( ) const [inline]

void YXML::DNode::AttrRef::operator= ( const DataString & s ) [inline]

Документация по друзьям класса и функциям, отноносящимся к классу

friend class DNode [friend]

std::ostream& operator<< | ( | std::ostream & | s,
 |  | DNode::AttrRef & | ir |
 | ) |  |  | [friend]

Данные класса

DNode YXML::DNode::AttrRef::n [private]

std::string YXML::DNode::AttrRef::attrib [private]

Объявления и описания членов класса находятся в файле:
  • xml_interface.h


Pipe Line Filters: Класс YXML::DNode::Is

YXML::DNode::Is

Класс YXML::DNode::Is

#include <xml_interface.h>

Граф наследования:YXML::DNode::Is:

[см. легенду]
Полный список членов класса

Открытые члены

virtual | ~Is ()
virtual bool | operator() (const DNode n) const =0
virtual Is * | clone () const=0
IsOR | operator|| (const Is &rhs) const
IsAND | operator && (const Is &rhs) const

Подробное описание

Базовый класс для создания функторов, определяющихъ условия поиска ноды по дереву. Все такие функторы ДОЛЖНЫ быть наследованы от этого класса, который совместно с классами
См. также:
DNode::IsCond,DNode::IsOR,DNode::IsAND обеспечивает возможность построения логических выражений. Для ряда наиболее типичных случаев поиска нод по логическому условию на имя и значения аттрибутов есть готовые классы

IsElem,IsName,IsNameEq,IsAttr,IsAttrIn

Конструктор(ы)

virtual YXML::DNode::Is::~Is ( ) [inline, virtual]

Методы

virtual bool YXML::DNode::Is::operator() ( const DNode n ) const [pure virtual]

Замещается в YXML::DNode::IsCond, YXML::DNode::IsOR, YXML::DNode::IsAND, YXML::IsElem, YXML::IsName< Cmp >, YXML::IsAttr< T, Cmp > и YXML::IsAttrIn< T >.

virtual Is* YXML::DNode::Is::clone ( ) const [pure virtual]

Замещается в YXML::DNode::IsCond, YXML::DNode::IsOR, YXML::DNode::IsAND, YXML::IsElem, YXML::IsName< Cmp >, YXML::IsAttr< T, Cmp > и YXML::IsAttrIn< T >.

Объявления и описания членов класса находятся в файле:
  • xml_interface.h


Pipe Line Filters: Класс YXML::DNode::IsAND

YXML::DNode::IsAND

Класс YXML::DNode::IsAND
[Работа с XML и INI файлами и структурами данных, Работа с XML и INI файлами и структурами данных]

#include <xml_interface.h>

Граф наследования:YXML::DNode::IsAND:

[см. легенду]
Граф связей класса YXML::DNode::IsAND:

[см. легенду]
Полный список членов класса

Открытые члены

IsAND (Is *lhs, Is *rhs)
IsAND (const IsAND &obj)
virtual | ~IsAND ()
IsAND & | operator= (const IsAND &obj)
virtual bool | operator() (const DNode n) const
virtual Is * | clone () const

Закрытые члены

void | clear ()

Закрытые данные

Is * l
Is * r

Подробное описание

Закрытый класс, используется DNode::Is для реализации логических операций при работе с функторами условий на ноду.
См. также:
FirstChild(const Is& cond) const

Next(const Is& cond) const

Условия поиска
См. также:
DNode::IsCond,IsElem,IsName,IsNameEq,IsAttr,IsAttrIn,DNode::IsOR,DNode::IsAND

Конструктор(ы)

YXML::DNode::IsAND::IsAND | ( | Is * | lhs,
 |  | Is * | rhs |
 | ) |  |  | [inline]

YXML::DNode::IsAND::IsAND ( const IsAND & obj ) [inline]

virtual YXML::DNode::IsAND::~IsAND ( ) [inline, virtual]

Методы

void YXML::DNode::IsAND::clear ( ) [inline, private]

IsAND& YXML::DNode::IsAND::operator= ( const IsAND & obj ) [inline]

virtual bool YXML::DNode::IsAND::operator() ( const DNode n ) const [inline, virtual]

Замещает YXML::DNode::Is.

virtual Is* YXML::DNode::IsAND::clone ( ) const [inline, virtual]

Замещает YXML::DNode::Is.

Данные класса

Is* YXML::DNode::IsAND::l [private]

Is* YXML::DNode::IsAND::r [private]

Объявления и описания членов класса находятся в файле:
  • xml_interface.h


Pipe Line Filters: Класс YXML::DNode::IsCond

YXML::DNode::IsCond

Класс YXML::DNode::IsCond

#include <xml_interface.h>

Граф наследования:YXML::DNode::IsCond:

[см. легенду]
Граф связей класса YXML::DNode::IsCond:

[см. легенду]
Полный список членов класса

Открытые члены

IsCond ()
IsCond (const Is &is)
virtual | ~IsCond ()
IsCond & | operator= (const IsCond &is)
virtual bool | operator() (const DNode n) const
virtual Is * | clone () const

Закрытые члены

void | clear ()

Закрытые данные

Is * cond

Подробное описание

Примеры:

test_yxml_ini.cpp и test_yxml_learn.cpp.

Конструктор(ы)

YXML::DNode::IsCond::IsCond ( ) [inline]

YXML::DNode::IsCond::IsCond ( const Is & is ) [inline]

virtual YXML::DNode::IsCond::~IsCond ( ) [inline, virtual]

Методы

void YXML::DNode::IsCond::clear ( ) [inline, private]

IsCond& YXML::DNode::IsCond::operator= ( const IsCond & is ) [inline]

virtual bool YXML::DNode::IsCond::operator() ( const DNode n ) const [inline, virtual]

Замещает YXML::DNode::Is.

virtual Is* YXML::DNode::IsCond::clone ( ) const [inline, virtual]

Замещает YXML::DNode::Is.

Данные класса

Is* YXML::DNode::IsCond::cond [private]

Объявления и описания членов класса находятся в файле:
  • xml_interface.h


Pipe Line Filters: Класс YXML::DNode::IsOR

YXML::DNode::IsOR

Класс YXML::DNode::IsOR
[Работа с XML и INI файлами и структурами данных, Работа с XML и INI файлами и структурами данных]

#include <xml_interface.h>

Граф наследования:YXML::DNode::IsOR:

[см. легенду]
Граф связей класса YXML::DNode::IsOR:

[см. легенду]
Полный список членов класса

Открытые члены

IsOR (Is *lhs, Is *rhs)
IsOR (const IsOR &obj)
virtual | ~IsOR ()
IsOR & | operator= (const IsOR &obj)
virtual bool | operator() (const DNode n) const
virtual Is * | clone () const

Закрытые члены

void | clear ()

Закрытые данные

Is * l
Is * r

Подробное описание

Закрытый класс, используется DNode::Is для реализации логических операций при работе с функторами условий на ноду.
См. также:
FirstChild(const Is& cond) const

Next(const Is& cond) const

Условия поиска
См. также:
DNode::IsCond,IsElem,IsName,IsNameEq,IsAttr,IsAttrIn,DNode::IsOR,DNode::IsAND

Конструктор(ы)

YXML::DNode::IsOR::IsOR | ( | Is * | lhs,
 |  | Is * | rhs |
 | ) |  |  | [inline]

YXML::DNode::IsOR::IsOR ( const IsOR & obj ) [inline]

virtual YXML::DNode::IsOR::~IsOR ( ) [inline, virtual]

Методы

void YXML::DNode::IsOR::clear ( ) [inline, private]

IsOR& YXML::DNode::IsOR::operator= ( const IsOR & obj ) [inline]

virtual bool YXML::DNode::IsOR::operator() ( const DNode n ) const [inline, virtual]

Замещает YXML::DNode::Is.

virtual Is* YXML::DNode::IsOR::clone ( ) const [inline, virtual]

Замещает YXML::DNode::Is.

Данные класса

Is* YXML::DNode::IsOR::l [private]

Is* YXML::DNode::IsOR::r [private]

Объявления и описания членов класса находятся в файле:
  • xml_interface.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::DoG< T, D >

Vtl::ImAlg::WndFun::DoG

Шаблон класса Vtl::ImAlg::WndFun::DoG< T, D >

Окно в виде разности Гауссианов (обрезанных). Определяется формулой [image] . Подробнее...

#include <windowing_fun.h>

Полный список членов класса

Открытые типы

typedef T | arg_type

Открытые члены

template<typename T1, typename T2, typename T3>
DoG (T1 sigma_small, T2 sigma_large, T3 N_sigmas_large)
template<class TT>
T | operator() (TT x) const
arg_type | size () const
arg_type | center () const
arg_type | left () const
arg_type | right () const

Открытые статические члены

static const char * | Name ()

Закрытые члены

T | result (T x, Loki::Int2Type< 0 >) const

Закрытые данные

double | large2small
const T | sigma
const T | half_width

Подробное описание

template<typename T, unsigned D>
class Vtl::ImAlg::WndFun::DoG< T, D >

Окно в виде разности Гауссианов (обрезанных). Определяется формулой [image] .

Производные не определены, так как DoG обычно используется непосредственно. Задается 3 параметрами:

Аргументы:
sigma_small | - сигма гауссиана, который с минусом. ( [image]).
sigma_large | - сигма гауссиана, который с плюсом ( [image]).
N_sigmas_large | - количество сигм в окне (далее урезается до нуля.
Таким образом, полная длина носителя функции size=2*sigma_large*N_sigmas_large+1 , а используемое понятие полуширины окна в настоящей библиотеке и вводимое как size=half_wnd_size+1+half_wnd_size равно half_wnd_size=sigma_large*N_sigmas_large.

Определения типов

template<typename T, unsigned D>
typedef T Vtl::ImAlg::WndFun::DoG< T, D >::arg_type

Конструктор(ы)

template<typename T, unsigned D>
template<typename T1, typename T2, typename T3>
Vtl::ImAlg::WndFun::DoG< T, D >::DoG | ( | T1 | sigma_small,
 |  | T2 | sigma_large,
 |  | T3 | N_sigmas_large |
 | ) |  |  | [inline]

Методы

template<typename T, unsigned D>
static const char* Vtl::ImAlg::WndFun::DoG< T, D >::Name ( ) [inline, static]

template<typename T, unsigned D>
template<class TT>
T Vtl::ImAlg::WndFun::DoG< T, D >::operator() ( TT x ) const [inline]

template<typename T, unsigned D>
arg_type Vtl::ImAlg::WndFun::DoG< T, D >::size ( ) const [inline]

template<typename T, unsigned D>
arg_type Vtl::ImAlg::WndFun::DoG< T, D >::center ( ) const [inline]

template<typename T, unsigned D>
arg_type Vtl::ImAlg::WndFun::DoG< T, D >::left ( ) const [inline]

template<typename T, unsigned D>
arg_type Vtl::ImAlg::WndFun::DoG< T, D >::right ( ) const [inline]

template<typename T, unsigned D>
T Vtl::ImAlg::WndFun::DoG< T, D >::result | ( | T | x,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | const [inline, private]

Данные класса

template<typename T, unsigned D>
double Vtl::ImAlg::WndFun::DoG< T, D >::large2small [private]

template<typename T, unsigned D>
const T Vtl::ImAlg::WndFun::DoG< T, D >::sigma [private]

template<typename T, unsigned D>
const T Vtl::ImAlg::WndFun::DoG< T, D >::half_width [private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон структуры Vtl::Plf::F11::DoNothing< T >

Vtl::Plf::F11::DoNothing

Шаблон структуры Vtl::Plf::F11::DoNothing< T >

functor DoNothing - заглушка Подробнее...

#include <plf_functors.h>

Граф наследования:Vtl::Plf::F11::DoNothing< T >:

[см. легенду]
Полный список членов класса

Открытые члены

T operator() (T val)

Подробное описание

template<typename T>
struct Vtl::Plf::F11::DoNothing< T >

functor DoNothing - заглушка

Функтор для FilterLevels и постобработок во всех вильтрах. Каждый выход любого фильтра должен представляться, классом OutPort, его второй шаблонный параметр - функтор, который задает обработку пиксель в пиксель, которая будет проведена после того, как фильтр отработал и записал строку, но до того как будет проведены отражения буфера отнгосительно краев и данные станут доступны следующему фильтру. По возможности следует избегать использовать класс FilterLevels и по возможности пользоваться постобработками из за соображений эффективности. do nothing

Примеры:

test_color_registration.cpp и test_plf_filters.cpp.

Методы

template<typename T>
T Vtl::Plf::F11::DoNothing< T >::operator() ( T val ) [inline]

Объявления и описания членов структуры находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Bres::Draw< Pixel >

Vtl::ImAlg::Bres::Draw

Шаблон класса Vtl::ImAlg::Bres::Draw< Pixel >

#include <alg_bresenham.h>

Полный список членов класса

Открытые члены

Draw (Pixel color)
void | operator() (Pixel *ptr)

Закрытые данные

const Pixel | _color

Подробное описание

template<typename Pixel>
class Vtl::ImAlg::Bres::Draw< Pixel >

Примеры:

test_alg_bresenham.cpp.

Конструктор(ы)

template<typename Pixel>
Vtl::ImAlg::Bres::Draw< Pixel >::Draw ( Pixel color ) [inline]

Методы

template<typename Pixel>
void Vtl::ImAlg::Bres::Draw< Pixel >::operator() ( Pixel * ptr ) [inline]

Данные класса

template<typename Pixel>
const Pixel Vtl::ImAlg::Bres::Draw< Pixel >::_color [private]

Объявления и описания членов класса находятся в файле:
  • alg_bresenham.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Bres::DrawDotted< Pixel >

Vtl::ImAlg::Bres::DrawDotted

Шаблон класса Vtl::ImAlg::Bres::DrawDotted< Pixel >

#include <alg_bresenham.h>

Полный список членов класса

Открытые члены

DrawDotted (Pixel color1, Pixel color2=0, unsigned mask=0xFFFF0000)
void | operator() (Pixel *ptr)

Закрытые данные

uint32_t _mask
const Pixel | _color1
const Pixel | _color2

Подробное описание

template<typename Pixel>
class Vtl::ImAlg::Bres::DrawDotted< Pixel >

Примеры:

test_alg_bresenham.cpp.

Конструктор(ы)

template<typename Pixel>
Vtl::ImAlg::Bres::DrawDotted< Pixel >::DrawDotted | ( | Pixel | color1,
 |  | Pixel | color2 = 0,
 |  | unsigned | mask = 0xFFFF0000 |
 | ) |  |  | [inline]

Методы

template<typename Pixel>
void Vtl::ImAlg::Bres::DrawDotted< Pixel >::operator() ( Pixel * ptr ) [inline]

Данные класса

template<typename Pixel>
uint32_t Vtl::ImAlg::Bres::DrawDotted< Pixel >::_mask [private]

template<typename Pixel>
const Pixel Vtl::ImAlg::Bres::DrawDotted< Pixel >::_color1 [private]

template<typename Pixel>
const Pixel Vtl::ImAlg::Bres::DrawDotted< Pixel >::_color2 [private]

Объявления и описания членов класса находятся в файле:
  • alg_bresenham.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Bres::DrawGradient< Pixel >

Vtl::ImAlg::Bres::DrawGradient

Шаблон класса Vtl::ImAlg::Bres::DrawGradient< Pixel >

#include <alg_bresenham.h>

Полный список членов класса

Открытые члены

DrawGradient (Pixel color1, Pixel color2=0, int step)
void | operator() (Pixel *ptr)

Закрытые данные

const Pixel | _color1
const Pixel | _color2
const int | _step
int | pos

template<typename Pixel>
class Vtl::ImAlg::Bres::DrawGradient< Pixel >

Конструктор(ы)

template<typename Pixel>
Vtl::ImAlg::Bres::DrawGradient< Pixel >::DrawGradient | ( | Pixel | color1,
 |  | Pixel | color2 = 0,
 |  | int | step |
 | ) |  |  | [inline]

Методы

template<typename Pixel>
void Vtl::ImAlg::Bres::DrawGradient< Pixel >::operator() ( Pixel * ptr ) [inline]

Данные класса

template<typename Pixel>
const Pixel Vtl::ImAlg::Bres::DrawGradient< Pixel >::_color1 [private]

template<typename Pixel>
const Pixel Vtl::ImAlg::Bres::DrawGradient< Pixel >::_color2 [private]

template<typename Pixel>
const int Vtl::ImAlg::Bres::DrawGradient< Pixel >::_step [private]

template<typename Pixel>
int Vtl::ImAlg::Bres::DrawGradient< Pixel >::pos [private]

Объявления и описания членов класса находятся в файле:
  • alg_bresenham.h


Pipe Line Filters: Шаблон класса Vtl::Plf::DstAImage< T, I >

Vtl::Plf::DstAImage

Шаблон класса Vtl::Plf::DstAImage< T, I >
[Source and target filters]

Фильтр - приемник серого изображения. Допустимые типы изображения - серые изображения, определенные в aimage.h а именно: AImageMem8, AImageMem16, AImageMemFloat. Подробнее...

#include <plf_io_filter.h>

Граф наследования:Vtl::Plf::DstAImage< T, I >:

[см. легенду]
Граф связей класса Vtl::Plf::DstAImage< T, I >:

[см. легенду]
Полный список членов класса

Открытые члены

DstAImage (std::string name)
virtual | ~DstAImage ()
void | setDstImage (I *ptr)

Подробное описание

template<typename T, class I>
class Vtl::Plf::DstAImage< T, I >

Фильтр - приемник серого изображения. Допустимые типы изображения - серые изображения, определенные в aimage.h а именно: AImageMem8, AImageMem16, AImageMemFloat.
Примеры:

test_plf_filters.cpp и test_plf_filters_rgb.cpp.

Конструктор(ы)

template<typename T, class I>
Vtl::Plf::DstAImage< T, I >::DstAImage ( std::string name ) [inline]

template<typename T, class I>
virtual Vtl::Plf::DstAImage< T, I >::~DstAImage ( ) [inline, virtual]

Методы

template<typename T, class I>
void Vtl::Plf::DstAImage< T, I >::setDstImage ( I * ptr ) [inline]

Объявления и описания членов класса находятся в файле:
  • plf_io_filter.h


Pipe Line Filters: Шаблон класса Vtl::Plf::DstArray< T, Pixel >

Vtl::Plf::DstArray

Шаблон класса Vtl::Plf::DstArray< T, Pixel >
[Source and target filters]

Фильтр - приемник серого изображения. Изображение представляется как одномерный массив в котором пиксели лежат слева направо, срока за строкой. Подробнее...

#include <plf_io_filter.h>

Граф наследования:Vtl::Plf::DstArray< T, Pixel >:

[см. легенду]
Граф связей класса Vtl::Plf::DstArray< T, Pixel >:

[см. легенду]
Полный список членов класса

Открытые члены

DstArray (std::string name)
virtual | ~DstArray ()
void | setDstImage (Pixel *ptr, int width, int height, int next_line_shift)
void | Restart ()
virtual void | set_OutPortsImagesSizeAndInPortsExtents ()
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in

Закрытые данные

Pixel * | img
int | y
int | w
int | h
int | nls

Подробное описание

template<typename T, class Pixel>
class Vtl::Plf::DstArray< T, Pixel >

Фильтр - приемник серого изображения. Изображение представляется как одномерный массив в котором пиксели лежат слева направо, срока за строкой.

Конструктор(ы)

template<typename T, class Pixel>
Vtl::Plf::DstArray< T, Pixel >::DstArray ( std::string name ) [inline]

template<typename T, class Pixel>
virtual Vtl::Plf::DstArray< T, Pixel >::~DstArray ( ) [inline, virtual]

Методы

template<typename T, class Pixel>
void Vtl::Plf::DstArray< T, Pixel >::setDstImage | ( | Pixel * | ptr,
 |  | int | width,
 |  | int | height,
 |  | int | next_line_shift |
 | ) |  |  | [inline]

template<typename T, class Pixel>
void Vtl::Plf::DstArray< T, Pixel >::Restart ( ) [inline]

template<typename T, class Pixel>
virtual void Vtl::Plf::DstArray< T, Pixel >::set_OutPortsImagesSizeAndInPortsExtents ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::FilterElementary.

template<typename T, class Pixel>
virtual void Vtl::Plf::DstArray< T, Pixel >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class Pixel>
InPort<T> Vtl::Plf::DstArray< T, Pixel >::in

template<typename T, class Pixel>
Pixel* Vtl::Plf::DstArray< T, Pixel >::img [private]

template<typename T, class Pixel>
int Vtl::Plf::DstArray< T, Pixel >::y [private]

template<typename T, class Pixel>
int Vtl::Plf::DstArray< T, Pixel >::w [private]

template<typename T, class Pixel>
int Vtl::Plf::DstArray< T, Pixel >::h [private]

template<typename T, class Pixel>
int Vtl::Plf::DstArray< T, Pixel >::nls [private]

Объявления и описания членов класса находятся в файле:
  • plf_io_filter.h


Pipe Line Filters: Шаблон класса Vtl::Plf::DstContainer< T, C, P >

Vtl::Plf::DstContainer

Шаблон класса Vtl::Plf::DstContainer< T, C, P >
[Source and target filters]

Фильтр - приемник серого изображения. Помещает в контейнер только отдельные точки, в которых значение изображения больше threshold. Контейнер сам может решать что с таким точками делать - сохранять все или только нгекоторые. Типичное применение - например детектор Харриса. Подробнее...

#include <plf_io_filter.h>

Граф наследования:Vtl::Plf::DstContainer< T, C, P >:

[см. легенду]
Граф связей класса Vtl::Plf::DstContainer< T, C, P >:

[см. легенду]
Полный список членов класса

Открытые члены

DstContainer (std::string name, C &container_, T threshold=T(0))
virtual | ~DstContainer ()
void | setDstImage (Vtl::Plf::ImgSize is)
void | Restart ()
virtual void | set_OutPortsImagesSizeAndInPortsExtents ()
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in

Закрытые данные

int | y
int | w
int | h
int | tmp
C & | container
T | thresh

Подробное описание

template<typename T, class C, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::DstContainer< T, C, P >

Фильтр - приемник серого изображения. Помещает в контейнер только отдельные точки, в которых значение изображения больше threshold. Контейнер сам может решать что с таким точками делать - сохранять все или только нгекоторые. Типичное применение - например детектор Харриса.

Конструктор(ы)

template<typename T, class C, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::DstContainer< T, C, P >::DstContainer | ( | std::string | name,
 |  | C & | container_,
 |  | T | threshold = T(0) |
 | ) |  |  | [inline]

template<typename T, class C, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::DstContainer< T, C, P >::~DstContainer ( ) [inline, virtual]

Методы

template<typename T, class C, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::DstContainer< T, C, P >::setDstImage ( Vtl::Plf::ImgSize is ) [inline]

template<typename T, class C, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::DstContainer< T, C, P >::Restart ( ) [inline]

template<typename T, class C, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::DstContainer< T, C, P >::set_OutPortsImagesSizeAndInPortsExtents ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::FilterElementary.

template<typename T, class C, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::DstContainer< T, C, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class C, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::DstContainer< T, C, P >::in

template<typename T, class C, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::DstContainer< T, C, P >::y [private]

template<typename T, class C, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::DstContainer< T, C, P >::w [private]

template<typename T, class C, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::DstContainer< T, C, P >::h [private]

template<typename T, class C, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::DstContainer< T, C, P >::tmp [private]

template<typename T, class C, class P = Vtl::Plf::F11::DoNothing<T>>
C& Vtl::Plf::DstContainer< T, C, P >::container [private]

template<typename T, class C, class P = Vtl::Plf::F11::DoNothing<T>>
T Vtl::Plf::DstContainer< T, C, P >::thresh [private]

Объявления и описания членов класса находятся в файле:
  • plf_io_filter.h


Pipe Line Filters: Структура Vtl::Plf::Impl::Edge

Vtl::Plf::Impl::Edge

Структура Vtl::Plf::Impl::Edge

Ребро графа, используется в представлении списка смежных вершин в классе Node. Содержит идентификаторы выходного порта и фильтра от которого передается изображение (id_outp, id_of) и идентификаторы входного порта и фильтра к которому передается изображение (id_inp, id_if). Подробнее...

#include <plf_sys.h>

Полный список членов класса

Открытые атрибуты

int | id_of
идентификатор фильтра, который подает данные через порт id_outp, связаны (id_of,id_outp)
int | id_outp
с какого выходного порта подает данные
int | id_if
идентификатор фильтра, на вход которого подает данные этот фильтр, связаны (id,id_inp)
int | id_inp
на какой входной порт подает данные
int | id_edge
идентификатор (номер в массиве 'edges' этого ребра

Подробное описание

Ребро графа, используется в представлении списка смежных вершин в классе Node. Содержит идентификаторы выходного порта и фильтра от которого передается изображение (id_outp, id_of) и идентификаторы входного порта и фильтра к которому передается изображение (id_inp, id_if).

Данные класса

int Vtl::Plf::Impl::Edge::id_of

идентификатор фильтра, который подает данные через порт id_outp, связаны (id_of,id_outp)

int Vtl::Plf::Impl::Edge::id_outp

с какого выходного порта подает данные

int Vtl::Plf::Impl::Edge::id_if

идентификатор фильтра, на вход которого подает данные этот фильтр, связаны (id,id_inp)

int Vtl::Plf::Impl::Edge::id_inp

на какой входной порт подает данные

int Vtl::Plf::Impl::Edge::id_edge

идентификатор (номер в массиве 'edges' этого ребра

Объявления и описания членов структуры находятся в файле:
  • plf_sys.h


Pipe Line Filters: Шаблон класса Students::Curve::EdgeDetect< T >

Students::Curve::EdgeDetect

Шаблон класса Students::Curve::EdgeDetect< T >

#include <edge_det.h>

Граф связей класса Students::Curve::EdgeDetect< T >:

[см. легенду]
Полный список членов класса

Открытые члены

EdgeDetect (float sigma_, float n_sigmas_in_eviron_=4.0f)
void | Canny (int w, int h, int nls, T *edge, T *gx, T *gy, T *fri)
void | DiZenzo (int w, int h, int nls, T *edge, T *gx, T *gy, T *fri, T *tmp, T *tmp2)

Закрытые типы

typedef Vtl::ImAlg::WndFun::Gauss<
T, 0, true > 		FF0
typedef Vtl::Plf::Kernel::FKern<
T, Vtl::Plf::Kernel::KT_Conv,
true > 		K0
typedef Vtl::ImAlg::WndFun::Gauss<
T, 1, true > 		FF1
typedef Vtl::Plf::Kernel::FKern<
T, Vtl::Plf::Kernel::KT_Conv,
true > 		K1

Закрытые данные

const float | sigma
const float | n_sigmas_in_eviron
FF0 f0
K0 ker0
Vtl::ImAlg::Conv::ConvInplace<
T, K0 > 		g0
FF1 f1
K1 ker1
Vtl::ImAlg::Conv::ConvInplace<
T, K1 > 		g1

template<typename T>
class Students::Curve::EdgeDetect< T >

Определения типов

template<typename T>
typedef Vtl::ImAlg::WndFun::Gauss<T,0, true> Students::Curve::EdgeDetect< T >::FF0 [private]

template<typename T>
typedef Vtl::Plf::Kernel::FKern<T,Vtl::Plf::Kernel::KT_Conv,true> Students::Curve::EdgeDetect< T >::K0 [private]

template<typename T>
typedef Vtl::ImAlg::WndFun::Gauss<T,1,true> Students::Curve::EdgeDetect< T >::FF1 [private]

template<typename T>
typedef Vtl::Plf::Kernel::FKern<T,Vtl::Plf::Kernel::KT_Conv,true> Students::Curve::EdgeDetect< T >::K1 [private]

Конструктор(ы)

template<typename T>
Students::Curve::EdgeDetect< T >::EdgeDetect | ( | float | sigma_,
 |  | float | n_sigmas_in_eviron_ = 4.0f |
 | ) |  |  | [inline]

Методы

template<typename T>
void Students::Curve::EdgeDetect< T >::Canny | ( | int | w,
 |  | int | h,
 |  | int | nls,
 |  | T * | edge,
 |  | T * | gx,
 |  | T * | gy,
 |  | T * | fri |
 | ) |  |  | [inline]

template<typename T>
void Students::Curve::EdgeDetect< T >::DiZenzo | ( | int | w,
 |  | int | h,
 |  | int | nls,
 |  | T * | edge,
 |  | T * | gx,
 |  | T * | gy,
 |  | T * | fri,
 |  | T * | tmp,
 |  | T * | tmp2 |
 | ) |  |  | [inline]

Данные класса

template<typename T>
const float Students::Curve::EdgeDetect< T >::sigma [private]

template<typename T>
const float Students::Curve::EdgeDetect< T >::n_sigmas_in_eviron [private]

template<typename T>
FF0 Students::Curve::EdgeDetect< T >::f0 [private]

template<typename T>
K0 Students::Curve::EdgeDetect< T >::ker0 [private]

template<typename T>
Vtl::ImAlg::Conv::ConvInplace<T,K0> Students::Curve::EdgeDetect< T >::g0 [private]

template<typename T>
FF1 Students::Curve::EdgeDetect< T >::f1 [private]

template<typename T>
K1 Students::Curve::EdgeDetect< T >::ker1 [private]

template<typename T>
Vtl::ImAlg::Conv::ConvInplace<T,K1> Students::Curve::EdgeDetect< T >::g1 [private]

Объявления и описания членов класса находятся в файле:
  • edge_det.h


Pipe Line Filters: Класс Vtl::ImAlg::Edt::EdtEdgeCoord

Vtl::ImAlg::Edt::EdtEdgeCoord

Класс Vtl::ImAlg::Edt::EdtEdgeCoord

#include <EdtEdgeCoord.h>

Полный список членов класса

Открытые статические члены

template<typename T1, typename T2, class Functor>
static void | edt (T1 *src, int w, int h, int nls_s, T2 *res, int *edgeX, int *edgeY, int nls_d, Functor isEdgeFunc)

Закрытые статические члены

template<typename T2>
static void | edt1D (T2 *dist, int *edgeXrow, int *edgeYrow, int N, T2 MaxValue)

Методы

template<typename T1, typename T2, class Functor>
static void Vtl::ImAlg::Edt::EdtEdgeCoord::edt | ( | T1 * | src,
 |  | int | w,
 |  | int | h,
 |  | int | nls_s,
 |  | T2 * | res,
 |  | int * | edgeX,
 |  | int * | edgeY,
 |  | int | nls_d,
 |  | Functor | isEdgeFunc |
 | ) |  |  | [inline, static]

template<typename T2>
static void Vtl::ImAlg::Edt::EdtEdgeCoord::edt1D | ( | T2 * | dist,
 |  | int * | edgeXrow,
 |  | int * | edgeYrow,
 |  | int | N,
 |  | T2 | MaxValue |
 | ) |  |  | [inline, static, private]

Объявления и описания членов класса находятся в файле:
  • EdtEdgeCoord.h


Pipe Line Filters: Структура Vtl::ImAlg::C::EElEll

Vtl::ImAlg::C::EElEll

Структура Vtl::ImAlg::C::EElEll

Цветовое пространство, введенное в работе [Geusebroek 2001 Color Invariance] . Обладает свойствами инвариантности к теням, бликам и.т.д (shading, highlighting). Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

enum | { n_components = 3 }
enum | { is_metric = 1 }
enum | { is_system = sys_chrom }

Открытые статические члены

template<int n>
static const char * | sample_name ()
static std::string | name ()
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 0 >)
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 1 >)
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 2 >)
template<typename T>
static T | rgb (T e, T el, T ell, Loki::Int2Type< 0 >)
template<typename T>
static T | rgb (T e, T el, T ell, Loki::Int2Type< 1 >)
template<typename T>
static T | rgb (T e, T el, T ell, Loki::Int2Type< 2 >)
template<int n, typename T>
static T | sample (T r, T g, T b)
template<int n, typename T>
static T | rgb (T e, T el, T ell)
template<int n, typename T>
static T | sample_min (T MaxColor)
template<int n, typename T>
static T | sample_max (T MaxColor)
template<int n, typename T>
static T | sample_maxabs (T MaxColor)
template<typename T>
static T | sample_max_saturation (T MaxColor)
specific for cromatic-like color systems, =sqrt(c1^2+c2^2)
template<int n>
static bool | is_sample_sign_alternating ()
template<int n>
static bool | is_sample_cyclic_var ()
template<typename T>
static T | E_f (T r, T g, T b)
template<typename T>
static T | El_f (T r, T g, T b)
template<typename T>
static T | Ell_f (T r, T g, T b)
template<typename T>
static T | R_f (T e, T el, T ell)
template<typename T>
static T | G_f (T e, T el, T ell)
template<typename T>
static T | B_f (T e, T el, T ell)
template<typename T>
static T | El_f_toPositive (T el, unsigned bits=8)
template<typename T>
static T | Ell_f_toPositive (T ell, unsigned bits=8)

Классы

struct | B
Функтор EElEll -> B для PixByPix3to1. Подробнее...
struct | E
Функтор EElEll: RGB -> E для PixByPix3to1. Подробнее...
struct | El
Функтор EElEll: RGB -> E_lambda для PixByPix3to1. Подробнее...
struct | Ell
Функтор EElEll: RGB -> E_lambda_lambda для PixByPix3to1. Подробнее...
class | fromRGB
Функтор для PixByPix3to3. Подробнее...
class | fromRGB_positive
Функтор для PixByPix3to3. Подробнее...
struct | G
Функтор EElEll -> G для PixByPix3to1. Подробнее...
struct | R
Функтор EElEll -> R для PixByPix3to1. Подробнее...
class | toRGB
Функтор для PixByPix3to3. Подробнее...

Подробное описание

Цветовое пространство, введенное в работе [Geusebroek 2001 Color Invariance] . Обладает свойствами инвариантности к теням, бликам и.т.д (shading, highlighting).

     E                   | 0.06 0.63 0.27 | |R|
     E_lambda         =  | 0.3 0.04 -0.35 |*|G|
     E_lambda_lambda     | 0.34 -0.6 0.17 | |B|

     |R|   |1.1844   1.5685   1.3482  | |E               |
     |G| = |0.99088  0.47562 -0.59453 |*|E_lambda        |
     |B|   |1.1284  -1.4583   1.0876  | |E_lambda_lambda |

Перечисления

anonymous enum

Элементы перечислений:
n_components

anonymous enum

Элементы перечислений:
is_metric

anonymous enum

Элементы перечислений:
is_system

Методы

template<int n>
static const char* Vtl::ImAlg::C::EElEll::sample_name ( ) [inline, static]

static std::string Vtl::ImAlg::C::EElEll::name ( ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 2 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::rgb | ( | T | e,
 |  | T | el,
 |  | T | ell,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::rgb | ( | T | e,
 |  | T | el,
 |  | T | ell,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::rgb | ( | T | e,
 |  | T | el,
 |  | T | ell,
 |  | Loki::Int2Type< 2 > |  |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::EElEll::sample | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::EElEll::rgb | ( | T | e,
 |  | T | el,
 |  | T | ell |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::EElEll::sample_min ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::EElEll::sample_max ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::EElEll::sample_maxabs ( T MaxColor ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::sample_max_saturation ( T MaxColor ) [inline, static]

specific for cromatic-like color systems, =sqrt(c1^2+c2^2)

template<int n>
static bool Vtl::ImAlg::C::EElEll::is_sample_sign_alternating ( ) [inline, static]

template<int n>
static bool Vtl::ImAlg::C::EElEll::is_sample_cyclic_var ( ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::E_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::El_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::Ell_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::R_f | ( | T | e,
 |  | T | el,
 |  | T | ell |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::G_f | ( | T | e,
 |  | T | el,
 |  | T | ell |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::B_f | ( | T | e,
 |  | T | el,
 |  | T | ell |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::El_f_toPositive | ( | T | el,
 |  | unsigned | bits = 8 |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::EElEll::Ell_f_toPositive | ( | T | ell,
 |  | unsigned | bits = 8 |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::EElEll::B< T >

Vtl::ImAlg::C::EElEll::B

Шаблон структуры Vtl::ImAlg::C::EElEll::B< T >

Функтор EElEll -> B для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef EElEll | ColorSystem

Открытые члены

T | operator() (T e, T el, T ell) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::EElEll::B< T >

Функтор EElEll -> B для PixByPix3to1.

Определения типов

template<typename T>
typedef EElEll Vtl::ImAlg::C::EElEll::B< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::EElEll::B< T >::operator() | ( | T | e,
 |  | T | el,
 |  | T | ell |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::EElEll::E< T >

Vtl::ImAlg::C::EElEll::E

Шаблон структуры Vtl::ImAlg::C::EElEll::E< T >

Функтор EElEll: RGB -> E для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef EElEll | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::EElEll::E< T >

Функтор EElEll: RGB -> E для PixByPix3to1.

Определения типов

template<typename T>
typedef EElEll Vtl::ImAlg::C::EElEll::E< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::EElEll::E< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::EElEll::El< T >

Vtl::ImAlg::C::EElEll::El

Шаблон структуры Vtl::ImAlg::C::EElEll::El< T >

Функтор EElEll: RGB -> E_lambda для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef EElEll | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::EElEll::El< T >

Функтор EElEll: RGB -> E_lambda для PixByPix3to1.

Определения типов

template<typename T>
typedef EElEll Vtl::ImAlg::C::EElEll::El< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::EElEll::El< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::EElEll::Ell< T >

Vtl::ImAlg::C::EElEll::Ell

Шаблон структуры Vtl::ImAlg::C::EElEll::Ell< T >

Функтор EElEll: RGB -> E_lambda_lambda для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef EElEll | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::EElEll::Ell< T >

Функтор EElEll: RGB -> E_lambda_lambda для PixByPix3to1.

Определения типов

template<typename T>
typedef EElEll Vtl::ImAlg::C::EElEll::Ell< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::EElEll::Ell< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >

Vtl::ImAlg::C::EElEll::fromRGB

Шаблон класса Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef EElEll | ColorSystem

Открытые члены

fromRGB (NormType normalizer=Normalizer< T, EElEll, nDefault >(255, 0, 128))
void | operator() (T r, T g, T b, Iter e, Iter el, Iter ell) const

Открытые атрибуты

NormType | norm

Подробное описание

template<typename T, class NormType = Normalizer<T,EElEll,nDefault>, typename Iter = T&>
class Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3.

Определения типов

template<typename T, class NormType = Normalizer<T,EElEll,nDefault>, typename Iter = T&>
typedef EElEll Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,EElEll,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >::fromRGB ( NormType normalizer = Normalizer<T,EElEll,nDefault>(255,0,128) ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,EElEll,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Iter | e,
 |  | Iter | el,
 |  | Iter | ell |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,EElEll,nDefault>, typename Iter = T&>
NormType Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >::norm

Объявления и описания членов класса находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter >

Vtl::ImAlg::C::EElEll::fromRGB_positive

Шаблон класса Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef EElEll | ColorSystem

Открытые члены

fromRGB_positive ()
void | operator() (T r, T g, T b, Iter e, Iter el, Iter ell) const

Подробное описание

template<unsigned bits, typename T, typename Iter = T&>
class Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter >

Функтор для PixByPix3to3.

Определения типов

template<unsigned bits, typename T, typename Iter = T&>
typedef EElEll Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter >::ColorSystem

Конструктор(ы)

template<unsigned bits, typename T, typename Iter = T&>
Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter >::fromRGB_positive ( ) [inline]

Методы

template<unsigned bits, typename T, typename Iter = T&>
void Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Iter | e,
 |  | Iter | el,
 |  | Iter | ell |
 | ) |  |  | const [inline]

Объявления и описания членов класса находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::EElEll::G< T >

Vtl::ImAlg::C::EElEll::G

Шаблон структуры Vtl::ImAlg::C::EElEll::G< T >

Функтор EElEll -> G для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef EElEll | ColorSystem

Открытые члены

T | operator() (T e, T el, T ell) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::EElEll::G< T >

Функтор EElEll -> G для PixByPix3to1.

Определения типов

template<typename T>
typedef EElEll Vtl::ImAlg::C::EElEll::G< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::EElEll::G< T >::operator() | ( | T | e,
 |  | T | el,
 |  | T | ell |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::EElEll::R< T >

Vtl::ImAlg::C::EElEll::R

Шаблон структуры Vtl::ImAlg::C::EElEll::R< T >

Функтор EElEll -> R для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef EElEll | ColorSystem

Открытые члены

T | operator() (T e, T el, T ell) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::EElEll::R< T >

Функтор EElEll -> R для PixByPix3to1.

Определения типов

template<typename T>
typedef EElEll Vtl::ImAlg::C::EElEll::R< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::EElEll::R< T >::operator() | ( | T | e,
 |  | T | el,
 |  | T | ell |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >

Vtl::ImAlg::C::EElEll::toRGB

Шаблон класса Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef EElEll | ColorSystem

Открытые члены

toRGB (NormType normalizer=Normalizer< T, EElEll, nDefault >(255, 0, 128))
void | operator() (T e, T el, T ell, Iter r, Iter g, Iter b) const

Открытые атрибуты

NormType | norm

Подробное описание

template<typename T, class NormType = Normalizer<T,EElEll,nDefault>, typename Iter = T&>
class Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3.

Определения типов

template<typename T, class NormType = Normalizer<T,EElEll,nDefault>, typename Iter = T&>
typedef EElEll Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,EElEll,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >::toRGB ( NormType normalizer = Normalizer<T,EElEll,nDefault>(255,0,128) ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,EElEll,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >::operator() | ( | T | e,
 |  | T | el,
 |  | T | ell,
 |  | Iter | r,
 |  | Iter | g,
 |  | Iter | b |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,EElEll,nDefault>, typename Iter = T&>
NormType Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >::norm

Объявления и описания членов класса находятся в файле:
  • color_spaces.h


Pipe Line Filters: Класс Vtl::NumAlg::Lin::eigen

Vtl::NumAlg::Lin::eigen

Класс Vtl::NumAlg::Lin::eigen

#include <_num_eigen.h>

Полный список членов класса

Открытые члены

template<class MatrixType>
bool | isSymmetric (const MatrixType &A)

Открытые статические члены

template<class MatrixType, class VectorType>
static void | decomp (MatrixType &V, VectorType &eig, VectorType &work)
template<class MatrixType, class VectorType>
static void | decomp (MatrixType &V, VectorType &eig_real, VectorType &eig_imag, MatrixType &H, VectorType &work)
template<class MatrixType, class VectorType>
static void | inverse (MatrixType &Ainv, MatrixType &V, VectorType &lambda, double relerr)

Закрытые статические члены

template<class Vec, class Mat>
static void | tred2 (int n, Vec &d, Vec &e, Mat &V)
template<class Vec, class Mat>
static void | tql2 (int n, Vec &d, Vec &e, Mat &V)
template<class Vec, class Mat>
static void | orthes (int n, Vec &d, Vec &e, Mat &V, Mat &H, Vec &ort)
template<class Real>
static void | cdiv (Real xr, Real xi, Real yr, Real yi, Real &cdivr, Real &cdivi)
template<class Vec, class Mat>
static void | hqr2 (int n_this, Vec &d, Vec &e, Mat &V, Mat &H)

Методы

template<class Vec, class Mat>
static void Vtl::NumAlg::Lin::eigen::tred2 | ( | int | n,
 |  | Vec & | d,
 |  | Vec & | e,
 |  | Mat & | V |
 | ) |  |  | [inline, static, private]

Symmetric Householder reduction to tridiagonal form.

This is derived from the Algol procedures tred2 by Bowdler, Martin, Reinsch, and Wilkinson, Handbook for Auto. Comp., Vol.ii-Linear Algebra, and the corresponding Fortran subroutine in EISPACK.

template<class Vec, class Mat>
static void Vtl::NumAlg::Lin::eigen::tql2 | ( | int | n,
 |  | Vec & | d,
 |  | Vec & | e,
 |  | Mat & | V |
 | ) |  |  | [inline, static, private]

Symmetric tridiagonal QL algorithm.

This is derived from the Algol procedures tql2, by Bowdler, Martin, Reinsch, and Wilkinson, Handbook for Auto. Comp., Vol.ii-Linear Algebra, and the corresponding Fortran subroutine in EISPACK.

template<class Vec, class Mat>
static void Vtl::NumAlg::Lin::eigen::orthes | ( | int | n,
 |  | Vec & | d,
 |  | Vec & | e,
 |  | Mat & | V,
 |  | Mat & | H,
 |  | Vec & | ort |
 | ) |  |  | [inline, static, private]

template<class Real>
static void Vtl::NumAlg::Lin::eigen::cdiv | ( | Real | xr,
 |  | Real | xi,
 |  | Real | yr,
 |  | Real | yi,
 |  | Real & | cdivr,
 |  | Real & | cdivi |
 | ) |  |  | [inline, static, private]

template<class Vec, class Mat>
static void Vtl::NumAlg::Lin::eigen::hqr2 | ( | int | n_this,
 |  | Vec & | d,
 |  | Vec & | e,
 |  | Mat & | V,
 |  | Mat & | H |
 | ) |  |  | [inline, static, private]

template<class MatrixType>
bool Vtl::NumAlg::Lin::eigen::isSymmetric ( const MatrixType & A ) [inline]

template<class MatrixType, class VectorType>
static void Vtl::NumAlg::Lin::eigen::decomp | ( | MatrixType & | V,
 |  | VectorType & | eig,
 |  | VectorType & | work |
 | ) |  |  | [inline, static]

СИММЕТРИЧНАЯ проблема собственных значений.

Row and column dimension must be equal (square matrix).

Arrays for storage of eigenvalues:
eig - is real part
work - workspace

template<class MatrixType, class VectorType>
static void Vtl::NumAlg::Lin::eigen::decomp | ( | MatrixType & | V,
 |  | VectorType & | eig_real,
 |  | VectorType & | eig_imag,
 |  | MatrixType & | H,
 |  | VectorType & | work |
 | ) |  |  | [inline, static]

НЕСИММЕТРИЧНАЯ проблема собственных значений.

Row and column dimension must be equal (square matrix).

Arrays for storage of eigenvalues:

d - is real part
e - is img part

V is matrix for storage of eigenvectors

H is matrix for internal storage of nonsymmetric Hessenberg form.

ort Working storage for nonsymmetric algorithm.

template<class MatrixType, class VectorType>
static void Vtl::NumAlg::Lin::eigen::inverse | ( | MatrixType & | Ainv,
 |  | MatrixType & | V,
 |  | VectorType & | lambda,
 |  | double | relerr |
 | ) |  |  | [inline, static]

Объявления и описания членов класса находятся в файле:
  • _num_eigen.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Elem< 0, IndexList< j, T > >

Vtl::Meta::IL::Elem< 0, IndexList< j, T > >

Шаблон структуры Vtl::Meta::IL::Elem< 0, IndexList< j, T > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum { value = j }

template<int j, class T>
struct Vtl::Meta::IL::Elem< 0, IndexList< j, T > >

Перечисления

template<int j, class T>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Elem< i, IndexList< j, T > >

Vtl::Meta::IL::Elem< i, IndexList< j, T > >

Шаблон структуры Vtl::Meta::IL::Elem< i, IndexList< j, T > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum { value = Elem<i-1, value = Elem<i-1 }

template<int i, int j, class T>
struct Vtl::Meta::IL::Elem< i, IndexList< j, T > >

Перечисления

template<int i, int j, class T>
anonymous enum

Элементы перечислений:
value
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Elem< i, Loki::NullType >

Vtl::Meta::IL::Elem< i, Loki::NullType >

Шаблон структуры Vtl::Meta::IL::Elem< i, Loki::NullType >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum { value = ERROR__Index_out_of_IndexList_range<i>::index }

template<int i>
struct Vtl::Meta::IL::Elem< i, Loki::NullType >

Перечисления

template<int i>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Bres::Ellipse< T >

Vtl::ImAlg::Bres::Ellipse

Шаблон класса Vtl::ImAlg::Bres::Ellipse< T >

Алгоритм 'рисования' эллипса с произвольно ориентированной большой осью. Подробнее...

#include <alg_bresenham.h>

Подробное описание

template<class T>
class Vtl::ImAlg::Bres::Ellipse< T >

Алгоритм 'рисования' эллипса с произвольно ориентированной большой осью.

Объявления и описания членов класса находятся в файле:
  • alg_bresenham.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Bres::EllipseH< F >

Vtl::ImAlg::Bres::EllipseH

Шаблон класса Vtl::ImAlg::Bres::EllipseH< F >

Алгоритм 'рисования' эллипса с полуосями в горизонтальном и вертикальном направлении. // Listing 7-2. Подробнее...

#include <alg_bresenham.h>

Полный список членов класса

Открытые члены

EllipseH (int xc, int yc, int a0, int b0)
void | Draw ()
void | Set4Pixels (int x, int y, int xc, int yc)

Закрытые данные

long | Asquared
long | TwoAsquared
long | Bsquared
long | TwoBsquared
long | d
long | dx
long | dy

Подробное описание

template<class F>
class Vtl::ImAlg::Bres::EllipseH< F >

Алгоритм 'рисования' эллипса с полуосями в горизонтальном и вертикальном направлении. // Listing 7-2.

Конструктор(ы)

template<class F>
Vtl::ImAlg::Bres::EllipseH< F >::EllipseH | ( | int | xc,
 |  | int | yc,
 |  | int | a0,
 |  | int | b0 |
 | ) |  |  | [inline]

xc,yc - center of ellipse a0,b0 - semiaxes

Методы

template<class F>
void Vtl::ImAlg::Bres::EllipseH< F >::Draw ( ) [inline]

template<class F>
void Vtl::ImAlg::Bres::EllipseH< F >::Set4Pixels | ( | int | x,
 |  | int | y,
 |  | int | xc,
 |  | int | yc |
 | ) |  |  | [inline]

Данные класса

template<class F>
long Vtl::ImAlg::Bres::EllipseH< F >::Asquared [private]

template<class F>
long Vtl::ImAlg::Bres::EllipseH< F >::TwoAsquared [private]

template<class F>
long Vtl::ImAlg::Bres::EllipseH< F >::Bsquared [private]

template<class F>
long Vtl::ImAlg::Bres::EllipseH< F >::TwoBsquared [private]

template<class F>
long Vtl::ImAlg::Bres::EllipseH< F >::d [private]

template<class F>
long Vtl::ImAlg::Bres::EllipseH< F >::dx [private]

template<class F>
long Vtl::ImAlg::Bres::EllipseH< F >::dy [private]

Объявления и описания членов класса находятся в файле:
  • alg_bresenham.h


Pipe Line Filters: Структура Vtl::Types::EmptyType

Vtl::Types::EmptyType

Структура Vtl::Types::EmptyType

#include <alexandresku.h>

Подробное описание

Тип, можно использовать как базовый, для передачи значений EmptyType и в шаблонах в качестве типа заданного по умолчанию (не важно какой).

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Класс Vtl::Meta::EnumTraits

Vtl::Meta::EnumTraits

Класс Vtl::Meta::EnumTraits

Свойства типв enum {} : знаковый или беззнаковый, максимальнрое хранимое значени, минимальное хранимое значение. Подробнее...

#include <vtl_meta_tools.h>

Полный список членов класса

Открытые типы

enum | { max = MaxEnum<>::value }
enum | { isSigned = IsEnum::Signed }
enum | { min = isSigned? (((max<<1)|1)^max) : 0 }
enum | { bits = Bits<>::value }

Классы

struct | Bits
struct | Bits< 0 >
struct | IsEnum
struct | MaxEnum< false, i >
struct | MaxEnum< true, i >

Подробное описание

Свойства типв enum {} : знаковый или беззнаковый, максимальнрое хранимое значени, минимальное хранимое значение.

Перечисления

anonymous enum

Элементы перечислений:
max

anonymous enum

Элементы перечислений:
isSigned

anonymous enum

Элементы перечислений:
min

anonymous enum

Элементы перечислений:
bits

Объявления и описания членов класса находятся в файле:
  • vtl_meta_tools.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::EnumTraits::Bits< mask >

Vtl::Meta::EnumTraits::Bits

Шаблон структуры Vtl::Meta::EnumTraits::Bits< mask >

Полный список членов класса

Открытые типы

enum { value = 1+Bits<(mask<<1)>::value }

template<unsigned mask = 1>
struct Vtl::Meta::EnumTraits::Bits< mask >

Перечисления

template<unsigned mask = 1>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_tools.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::EnumTraits::Bits< 0 >

Vtl::Meta::EnumTraits::Bits< 0 >

Шаблон структуры Vtl::Meta::EnumTraits::Bits< 0 >

Полный список членов класса

Открытые типы

enum { value = 0 }

template<>
struct Vtl::Meta::EnumTraits::Bits< 0 >

Перечисления

anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_tools.h


Pipe Line Filters: Структура Vtl::Meta::EnumTraits::IsEnum

Vtl::Meta::EnumTraits::IsEnum

Структура Vtl::Meta::EnumTraits::IsEnum

Полный список членов класса

Открытые типы

enum | { a = -1 }
enum | { b = 0 }
enum | { Signed = (a<b)? 1:0 }

Перечисления

anonymous enum

Элементы перечислений:
a

anonymous enum

Элементы перечислений:
b

anonymous enum

Элементы перечислений:
Signed

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_tools.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::EnumTraits::MaxEnum< false, i >

Vtl::Meta::EnumTraits::MaxEnum< false, i >

Шаблон структуры Vtl::Meta::EnumTraits::MaxEnum< false, i >

Полный список членов класса

Открытые типы

enum { value = i }

template<unsigned i>
struct Vtl::Meta::EnumTraits::MaxEnum< false, i >

Перечисления

template<unsigned i>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_tools.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::EnumTraits::MaxEnum< true, i >

Vtl::Meta::EnumTraits::MaxEnum< true, i >

Шаблон структуры Vtl::Meta::EnumTraits::MaxEnum< true, i >

Полный список членов класса

Открытые типы

enum | { value = MaxEnum<(next>cur), value = MaxEnum<(next>cur) }

Закрытые типы

enum | { cur = i }
enum | { next = ((cur<<1)|cur) }

template<unsigned i>
struct Vtl::Meta::EnumTraits::MaxEnum< true, i >

Перечисления

template<unsigned i>
anonymous enum [private]

Элементы перечислений:
cur

template<unsigned i>
anonymous enum [private]

Элементы перечислений:
next

template<unsigned i>
anonymous enum

Элементы перечислений:
value
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_tools.h


Pipe Line Filters: Шаблон класса Vtl::Plf::EnvProc1to1< T, Func, P >

Vtl::Plf::EnvProc1to1

Шаблон класса Vtl::Plf::EnvProc1to1< T, Func, P >
[Elementary filters]

Имеет 1 вход и 1 выход. Пиксель в координатах (x,y) на выходном изображении принимает значение, которое вычисляется по окрестности на входном изображении. Способ обработки задается функтором - вторым шаблонным параметром. Типичное применение - выполнение процедуры
  • "Non Maximum Supression" в детекторах уголков (Vtl::Plf::F::Harris, Vtl::Plf::F::MinEigenVal)
  • построение контурного препарата H-image и проч. несепарабельные и сложные обработки. Функтор должен соответствовать шаблону:.
Подробнее...

#include <plf_filters.h>

Граф наследования:Vtl::Plf::EnvProc1to1< T, Func, P >:

[см. легенду]
Граф связей класса Vtl::Plf::EnvProc1to1< T, Func, P >:

[см. легенду]
Полный список членов класса

Открытые члены

EnvProc1to1 ()
EnvProc1to1 (std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~EnvProc1to1 ()
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in
OutPort< T, P > | out

Закрытые данные

Func | func

Подробное описание

template<typename T, class Func = F::HarrisNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::EnvProc1to1< T, Func, P >

Имеет 1 вход и 1 выход. Пиксель в координатах (x,y) на выходном изображении принимает значение, которое вычисляется по окрестности на входном изображении. Способ обработки задается функтором - вторым шаблонным параметром. Типичное применение - выполнение процедуры
  • "Non Maximum Supression" в детекторах уголков (Vtl::Plf::F::Harris, Vtl::Plf::F::MinEigenVal)
  • построение контурного препарата H-image и проч. несепарабельные и сложные обработки. Функтор должен соответствовать шаблону:.

 template<typename T,...>
 class MyFunctor
 {
    int nls;
    // другие локальные переменные
 public:
    void set_IterNextLineShift(int value_nls) { nls=value_nls;}
    Extent ext() const {return Extent(/*Указать р-р требуемой окрестности */); }
    MyFunctor() {nls=0x5FFFFFFF;}
    MyFunctor(/*параметры, если требуется*/) {nls=0x5FFFFFFF;/*остальные действия по инициализации функтора*/}
    T operator()(const T* input)
    {
        return ...;
    }
 };
Типовое использование для детектора уголков Харриса, Канаде-Лукаса :
     #define HARRIS
     //#define KANADE_LUKAS
    const int bits=8;
        // на изображении могут присутствовать яркости от 0 до maxPixelVal
    const float maxPixelVal=float((1<<bits)-1);
    float sigma=1.5f;
    float env_size_in_sigmas=2.5f;
    float gamma=2.2f;
    Vtl::Plf::F::GammaCor<float> gam_cor(maxPixelVal,gamma);
    #if defined(HARRIS)
        Vtl::Plf::F::Harris<float> func(sigma,k);
        Vtl::Plf::Detect<float,Vtl::Plf::F::Harris<float>,Vtl::Plf::F::GammaCor<float> > det("Harris",sigma,env_size_in_sigmas,func,gam_cor);
        #elif defined(KANADE_LUKAS)
            Vtl::Plf::F::MinEigenVal<float> func(sigma);
            Vtl::Plf::Detect<float,Vtl::Plf::F::MinEigenVal<float>,Vtl::Plf::F::GammaCor<float> > det(out_name,sigma,env_size_in_sigmas,func,gam_cor);
        #elif defined(...)
           ...
        #edif
    Vtl::Plf::F::HarrisNMS<float> harris_nms;
    Vtl::Plf::EnvProc1to1<float,Vtl::Plf::F::HarrisNMS<float> > loc_max("loc_max",harris_nms);
     ...
     ...
     src.out.ConnectTo(&det.in());
     det.out().ConnectTo(&loc_max.in);
     loc_max.out.ConnectTo(&dst.in);
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class Func = F::HarrisNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::EnvProc1to1< T, Func, P >::EnvProc1to1 ( ) [inline]

template<typename T, class Func = F::HarrisNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::EnvProc1to1< T, Func, P >::EnvProc1to1 | ( | std::string | name,
 |  | Func | functor,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = F::HarrisNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::EnvProc1to1< T, Func, P >::~EnvProc1to1 ( ) [inline, virtual]

Методы

template<typename T, class Func = F::HarrisNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::EnvProc1to1< T, Func, P >::Init | ( | std::string | name,
 |  | Func | functor,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = F::HarrisNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::EnvProc1to1< T, Func, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class Func = F::HarrisNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Func Vtl::Plf::EnvProc1to1< T, Func, P >::func [private]

template<typename T, class Func = F::HarrisNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::EnvProc1to1< T, Func, P >::in

template<typename T, class Func = F::HarrisNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::EnvProc1to1< T, Func, P >::out

Объявления и описания членов класса находятся в файле:
  • plf_filters.h


Pipe Line Filters: Шаблон класса Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >

Vtl::Plf::EnvProc1to2

Шаблон класса Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
[Elementary filters]

Имеет 1 вход и 2 выходa. Типовой примекр применения - анализ окрестности точки и выдача двумерного вектора, например какого-то аналога градиента, например H-image [HImg2003],. Подробнее...

#include <plf_filters.h>

Граф наследования:Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >:

[см. легенду]
Граф связей класса Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >:

[см. легенду]
Полный список членов класса

Открытые члены

EnvProc1to2 ()
EnvProc1to2 (std::string name, Func functor, P1 post_proc_x=Vtl::Plf::F11::DoNothing< T >(), P2 post_proc_y=Vtl::Plf::F11::DoNothing< T >())
void | Init (std::string name, Func functor=Fpie::Himg2< T >(), P1 post_proc_x=Vtl::Plf::F11::DoNothing< T >(), P2 post_proc_y=Vtl::Plf::F11::DoNothing< T >())
virtual | ~EnvProc1to2 ()
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in
OutPort< T, P1 > | out_x
OutPort< T, P2 > | out_y

Закрытые данные

Func | func

Подробное описание

template<typename T, class Func = F::Himg2<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >

Имеет 1 вход и 2 выходa. Типовой примекр применения - анализ окрестности точки и выдача двумерного вектора, например какого-то аналога градиента, например H-image [HImg2003],.

См. также:
Vtl::Plf::F:Himg2 .
НЕ ТО ОПИСАНИЕ, НАДО ИЗМЕНИТЬ Пиксель в координатах (x,y) на выходном изображении принимает значение, которое вычисляется по окрестности на входном изображении. Способ обработки задается функтором - вторым шаблонным параметром. Типичное применение - выполнение процедуры
  • "Non Maximum Supression" в детекторах уголков (Vtl::Plf::F::Harris, Vtl::Plf::F::MinEigenVal)
  • построение контурного препарата H-image и проч. несепарабельные и сложные обработки. Функтор должен соответствовать шаблону:
     template<typename T,...>
 class MyFunctor
 {
    int nls;
    // другие локальные переменные
 public:
    void set_IterNextLineShift(int value_nls) { nls=value_nls;}
    Extent ext() const {return Extent(/*Указать р-р требуемой окрестности */); }
    MyFunctor() {nls=0x5FFFFFFF;}
    MyFunctor(/*параметры, если требуется*/) {nls=0x5FFFFFFF;/*остальные действия по инициализации функтора*/}
    T operator()(const T* input)
    {
        return ...;
    }
 };
    Типовое использование для детектора уголков Харриса, Канаде-Лукаса :
         #define HARRIS
     //#define KANADE_LUKAS
    const int bits=8;
        // на изображении могут присутствовать яркости от 0 до maxPixelVal
    const float maxPixelVal=float((1<<bits)-1);
    float sigma=1.5f;
    float env_size_in_sigmas=2.5f;
    float gamma=2.2f;
    Vtl::Plf::F::GammaCor<float> gam_cor(maxPixelVal,gamma);
    #if defined(HARRIS)
        Vtl::Plf::F::Harris<float> func(sigma,k);
        Vtl::Plf::Detect<float,Vtl::Plf::F::Harris<float>,Vtl::Plf::F::GammaCor<float> > det("Harris",sigma,env_size_in_sigmas,func,gam_cor);
        #elif defined(KANADE_LUKAS)
            Vtl::Plf::F::MinEigenVal<float> func(sigma);
            Vtl::Plf::Detect<float,Vtl::Plf::F::MinEigenVal<float>,Vtl::Plf::F::GammaCor<float> > det(out_name,sigma,env_size_in_sigmas,func,gam_cor);
        #elif defined(...)
           ...
        #edif
    Vtl::Plf::F::HarrisNMS<float> harris_nms;
    Vtl::Plf::EnvProc1to1<float,Vtl::Plf::F::HarrisNMS<float> > loc_max("loc_max",harris_nms);
     ...
     ...
     src.out.ConnectTo(&det.in());
     det.out().ConnectTo(&loc_max.in);
     loc_max.out.ConnectTo(&dst.in);

Конструктор(ы)

template<typename T, class Func = F::Himg2<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >::EnvProc1to2 ( ) [inline]

template<typename T, class Func = F::Himg2<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >::EnvProc1to2 | ( | std::string | name,
 |  | Func | functor,
 |  | P1 | post_proc_x = Vtl::Plf::F11::DoNothing<T>(),
 |  | P2 | post_proc_y = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = F::Himg2<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >::~EnvProc1to2 ( ) [inline, virtual]

Методы

template<typename T, class Func = F::Himg2<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >::Init | ( | std::string | name,
 |  | Func | functor = Fpie::Himg2<T>(),
 |  | P1 | post_proc_x = Vtl::Plf::F11::DoNothing<T>(),
 |  | P2 | post_proc_y = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = F::Himg2<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class Func = F::Himg2<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>>
Func Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >::func [private]

template<typename T, class Func = F::Himg2<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >::in

template<typename T, class Func = F::Himg2<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P1> Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >::out_x

template<typename T, class Func = F::Himg2<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P2> Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >::out_y

Объявления и описания членов класса находятся в файле:
  • plf_filters.h


Pipe Line Filters: Шаблон класса Vtl::Plf::EnvProc3to1< T, Func, P >

Vtl::Plf::EnvProc3to1

Шаблон класса Vtl::Plf::EnvProc3to1< T, Func, P >
[Elementary filters]

Имеет 3 входа и 1 выход. Пиксель в координатах (x,y) на выходном изображении принимает значение, которое вычисляется по окрестности точки (x,y) на входном изображении in_val с учетом значений в точке (x,y) на изображениях in_gx,in_gy. Способ обработки задается функтором - вторым шаблонным параметром. Типичное применение - выполнение процедуры "Non Maximum Supression" в детекторах линий (Vtl::Plf::Canny). Функтор должен соответствовать шаблону:. Подробнее...

#include <plf_filters.h>

Граф наследования:Vtl::Plf::EnvProc3to1< T, Func, P >:

[см. легенду]
Граф связей класса Vtl::Plf::EnvProc3to1< T, Func, P >:

[см. легенду]
Полный список членов класса

Открытые члены

EnvProc3to1 ()
EnvProc3to1 (std::string name, Func functor=Fpie::CannyNMS< T >(), P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (std::string name, Func functor=Fpie::CannyNMS< T >(), P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~EnvProc3to1 ()
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in_val
InPort< T > | in_gx
InPort< T > | in_gy
OutPort< T, P > | out

Закрытые данные

Func | func

Подробное описание

template<typename T, class Func = Fpie::CannyNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::EnvProc3to1< T, Func, P >

Имеет 3 входа и 1 выход. Пиксель в координатах (x,y) на выходном изображении принимает значение, которое вычисляется по окрестности точки (x,y) на входном изображении in_val с учетом значений в точке (x,y) на изображениях in_gx,in_gy. Способ обработки задается функтором - вторым шаблонным параметром. Типичное применение - выполнение процедуры "Non Maximum Supression" в детекторах линий (Vtl::Plf::Canny). Функтор должен соответствовать шаблону:.

 template<typename T,...>
 class MyFunctor
 {
    int nls;
    // другие локальные переменные
 public:
    void set_IterNextLineShift(int value_nls) { nls=value_nls;}
    Extent ext() const {return Extent(/*Указать р-р требуемой окрестности */); }
    MyFunctor() {nls=0x5FFFFFFF;}
    MyFunctor(/*параметры, если требуется*/) {nls=0x5FFFFFFF;/*остальные действия по инициализации функтора*/}
    T operator()(const T* modul,T gx,T gy)
    {
        return ...;
    }
 };
Типовое использование для процедуры NonMaximumSupression в стиле Канни (функторы CannyNMS, CannyNMS_2). Обычно предполагается, что gx,gy - компоненты вектора направлений (напр. градиента), а modul - модуль градиента (яркость контурного препарата). Таким образом можно выполнить анизотропную обработку по окрестности, выделенное направление задается gx,gy.
В качетве пример использования см. код фильтра Vtl::Plf::Canny.

Конструктор(ы)

template<typename T, class Func = Fpie::CannyNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::EnvProc3to1< T, Func, P >::EnvProc3to1 ( ) [inline]

template<typename T, class Func = Fpie::CannyNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::EnvProc3to1< T, Func, P >::EnvProc3to1 | ( | std::string | name,
 |  | Func | functor = Fpie::CannyNMS<T>(),
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = Fpie::CannyNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::EnvProc3to1< T, Func, P >::~EnvProc3to1 ( ) [inline, virtual]

Методы

template<typename T, class Func = Fpie::CannyNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::EnvProc3to1< T, Func, P >::Init | ( | std::string | name,
 |  | Func | functor = Fpie::CannyNMS<T>(),
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = Fpie::CannyNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::EnvProc3to1< T, Func, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class Func = Fpie::CannyNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Func Vtl::Plf::EnvProc3to1< T, Func, P >::func [private]

template<typename T, class Func = Fpie::CannyNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::EnvProc3to1< T, Func, P >::in_val

template<typename T, class Func = Fpie::CannyNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::EnvProc3to1< T, Func, P >::in_gx

template<typename T, class Func = Fpie::CannyNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::EnvProc3to1< T, Func, P >::in_gy

template<typename T, class Func = Fpie::CannyNMS<T>, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::EnvProc3to1< T, Func, P >::out

Объявления и описания членов класса находятся в файле:
  • plf_filters.h


Pipe Line Filters: Шаблон структуры Vtl::Types::TL::EQ< s1, s2 >

Vtl::Types::TL::EQ

Шаблон структуры Vtl::Types::TL::EQ< s1, s2 >

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum { value = (s1==s2) }

template<size_t s1, size_t s2>
struct Vtl::Types::TL::EQ< s1, s2 >

Перечисления

template<size_t s1, size_t s2>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Класс Basics3D::Eq4Degree

Basics3D::Eq4Degree

Класс Basics3D::Eq4Degree

#include <Func.h>

Граф наследования:Basics3D::Eq4Degree:

[см. легенду]
Граф связей класса Basics3D::Eq4Degree:

[см. легенду]
Полный список членов класса

Открытые члены

Eq4Degree (const double in_a, const double in_b, const double in_c, const double in_d, const double in_e, const int in_n)
int | N () const
double | Func (const double in_t) const
double | Deriv (const double in_t) const

Закрытые данные

const double | m_a
const double | m_b
const double | m_c
const double | m_d
const double | m_e
const int | m_n

Конструктор(ы)

Basics3D::Eq4Degree::Eq4Degree | ( | const double | in_a,
 |  | const double | in_b,
 |  | const double | in_c,
 |  | const double | in_d,
 |  | const double | in_e,
 |  | const int | in_n
 | ) |  |

Методы

int Basics3D::Eq4Degree::N ( ) const

double Basics3D::Eq4Degree::Func ( const double in_t ) const [virtual]

Замещает Basics3D::IFunc.

double Basics3D::Eq4Degree::Deriv ( const double in_t ) const [virtual]

Замещает Basics3D::IFuncWithDer.

Данные класса

const double Basics3D::Eq4Degree::m_a [private]

const double Basics3D::Eq4Degree::m_b [private]

const double Basics3D::Eq4Degree::m_c [private]

const double Basics3D::Eq4Degree::m_d [private]

const double Basics3D::Eq4Degree::m_e [private]

const int Basics3D::Eq4Degree::m_n [private]

Объявления и описания членов классов находятся в файлах:
  • Func.h
  • Func.cpp


Pipe Line Filters: Класс Vtl::Types::TL::Erase

Vtl::Types::TL::Erase

Класс Vtl::Types::TL::Erase

Удаление элемента из списка типов. Подробнее...

#include <alexandresku.h>

Подробное описание

Удаление элемента из списка типов.

Шаблона имеет два параметра.

    Vtl::Types::TL::Erase<class TList,typename T>
Например:

Объявления и описания членов класса находятся в файле:

  • alexandresku.h

 Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008
Author: Dmitry V. Yurin
  [image]
 http://imaging.cs.msu.su/index.html


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Erase< i, IndexList< i, T > >

Vtl::Meta::IL::Erase< i, IndexList< i, T > >

Шаблон структуры Vtl::Meta::IL::Erase< i, IndexList< i, T > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

typedef T Result

template<int i, class T>
struct Vtl::Meta::IL::Erase< i, IndexList< i, T > >

Определения типов

template<int i, class T>
typedef T Vtl::Meta::IL::Erase< i, IndexList< i, T > >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Erase< i, IndexList< j, T > >

Vtl::Meta::IL::Erase< i, IndexList< j, T > >

Шаблон структуры Vtl::Meta::IL::Erase< i, IndexList< j, T > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

typedef IndexList< j, typename
Erase< i, T >::Result > 		Result

template<int i, int j, class T>
struct Vtl::Meta::IL::Erase< i, IndexList< j, T > >

Определения типов

template<int i, int j, class T>
typedef IndexList<j,typename Erase<i,T>::Result> Vtl::Meta::IL::Erase< i, IndexList< j, T > >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Erase< i, Loki::NullType >

Vtl::Meta::IL::Erase< i, Loki::NullType >

Шаблон структуры Vtl::Meta::IL::Erase< i, Loki::NullType >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum | { value = ERROR__Index_out_of_IndexList_range<i>::index }
typedef Loki::NullType | Result

template<int i>
struct Vtl::Meta::IL::Erase< i, Loki::NullType >

Определения типов

template<int i>
typedef Loki::NullType Vtl::Meta::IL::Erase< i, Loki::NullType >::Result

Перечисления

template<int i>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Класс Vtl::Types::TL::EraseAll

Vtl::Types::TL::EraseAll

Класс Vtl::Types::TL::EraseAll

Удаление всех вхождений элемента из списка типов. Подробнее...

#include <alexandresku.h>

Подробное описание

Удаление всех вхождений элемента из списка типов.

Шаблона имеет два параметра.

    Vtl::Types::TL::EraseAll<class TList,typename T>
Например:

Объявления и описания членов класса находятся в файле:

  • alexandresku.h

 Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008
Author: Dmitry V. Yurin
  [image]
 http://imaging.cs.msu.su/index.html


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::EraseAt< 0, IndexList< j, T > >

Vtl::Meta::IL::EraseAt< 0, IndexList< j, T > >

Шаблон структуры Vtl::Meta::IL::EraseAt< 0, IndexList< j, T > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

typedef T Result

template<int j, class T>
struct Vtl::Meta::IL::EraseAt< 0, IndexList< j, T > >

Определения типов

template<int j, class T>
typedef T Vtl::Meta::IL::EraseAt< 0, IndexList< j, T > >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::EraseAt< i, IndexList< j, T > >

Vtl::Meta::IL::EraseAt< i, IndexList< j, T > >

Шаблон структуры Vtl::Meta::IL::EraseAt< i, IndexList< j, T > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

typedef IndexList< j, typename
EraseAt< i-1, T >::Result > 		Result

template<int i, int j, class T>
struct Vtl::Meta::IL::EraseAt< i, IndexList< j, T > >

Определения типов

template<int i, int j, class T>
typedef IndexList<j,typename EraseAt<i-1,T>::Result> Vtl::Meta::IL::EraseAt< i, IndexList< j, T > >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::EraseAt< i, Loki::NullType >

Vtl::Meta::IL::EraseAt< i, Loki::NullType >

Шаблон структуры Vtl::Meta::IL::EraseAt< i, Loki::NullType >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum | { value = ERROR__Index_out_of_IndexList_range<i>::index }
typedef Loki::NullType | Result

template<int i>
struct Vtl::Meta::IL::EraseAt< i, Loki::NullType >

Определения типов

template<int i>
typedef Loki::NullType Vtl::Meta::IL::EraseAt< i, Loki::NullType >::Result

Перечисления

template<int i>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::ERROR__Index_out_of_IndexList_range< j >

Vtl::Meta::IL::ERROR__Index_out_of_IndexList_range

Шаблон структуры Vtl::Meta::IL::ERROR__Index_out_of_IndexList_range< j >

Used for error reporting (invalid index in IndexList) during compile. Подробнее...

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

typedef int index

Подробное описание

template<int j>
struct Vtl::Meta::IL::ERROR__Index_out_of_IndexList_range< j >

Used for error reporting (invalid index in IndexList) during compile.

Определения типов

template<int j>
typedef int Vtl::Meta::IL::ERROR__Index_out_of_IndexList_range< j >::index

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Класс ErrorStatusBase

Класс ErrorStatusBase

#include <progrcnt.h>

Граф наследования:ErrorStatusBase:

[см. легенду]
Граф связей класса ErrorStatusBase:

[см. легенду]
Полный список членов класса

Открытые члены

ErrorStatusBase (const char *fname, int nline, const char *_cls_this, const char *_cls, bool del_msg)
virtual | ~ErrorStatusBase ()
virtual const char * | ClassName () const
virtual const char * | DerivedClassName () const
virtual const char * | File () const
virtual int | Line () const
virtual const char * | Msg () const

Защищенные данные

bool | msg_need_delete
char * | msg

Закрытые данные

const char * | file
int | line
const char * | cls_this
const char * | cls

Конструктор(ы)

ErrorStatusBase::ErrorStatusBase | ( | const char * | fname,
 |  | int | nline,
 |  | const char * | _cls_this,
 |  | const char * | _cls,
 |  | bool | del_msg
 | ) |  |

ErrorStatusBase::~ErrorStatusBase ( ) [virtual]

Методы

virtual const char* ErrorStatusBase::ClassName ( ) const [inline, virtual]

Замещает AErrorStatusBase.

virtual const char* ErrorStatusBase::DerivedClassName ( ) const [inline, virtual]

Замещает AErrorStatusBase.

virtual const char* ErrorStatusBase::File ( ) const [inline, virtual]

Замещает AErrorStatusBase.

virtual int ErrorStatusBase::Line ( ) const [inline, virtual]

Замещает AErrorStatusBase.

const char * ErrorStatusBase::Msg ( ) const [virtual]

Замещает AErrorStatusBase.

Данные класса

const char* ErrorStatusBase::file [private]

int ErrorStatusBase::line [private]

const char* ErrorStatusBase::cls_this [private]

const char* ErrorStatusBase::cls [private]

bool ErrorStatusBase::msg_need_delete [protected]

char* ErrorStatusBase::msg [protected]

Объявления и описания членов классов находятся в файлах:
  • progrcnt.h
  • image_io.cpp


Pipe Line Filters: Структура Vtl::Plf::Extent

Vtl::Plf::Extent

Структура Vtl::Plf::Extent
[Ports and buffers]

Служит для хранения информации о размере дополнения изображения за края (путем зеркального отражения). Подробнее...

#include <plf_strip_buffer_support.h>

Полный список членов класса

Открытые члены

Extent (int _left, int _right, int _before, int _forward)
Extent (int radius=0)
Все 4 компоненты left,right,before,forward будут инициализованы значением radius.
Extent & | max (const Extent &e)
void | checkCompatible (const ImgSize &is) const

Открытые атрибуты

int | left
int | right
int | before
int | forward

Закрытые статические члены

static void | check (int ex_param, int im_param, const char *ex_name, const char *im_name)

Подробное описание

Служит для хранения информации о размере дополнения изображения за края (путем зеркального отражения).

struct Extent

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

Примеры:

test_plf_io_ports.cpp и test_plf_strip_buffer.cpp.

Конструктор(ы)

Vtl::Plf::Extent::Extent | ( | int | _left,
 |  | int | _right,
 |  | int | _before,
 |  | int | _forward |
 | ) |  |  | [inline]

_left - на сколько элементов данных должна быть реальная строка изображения быть дополнена влево;
_right - на сколько элементов данных должна быть реальная строка изображения быть дополнена вправо;
_before - сколько строк кроме текущей надо знать из уже подававшихся ранее;
_forward - сколько строк изображения надо знать вперед по отношению к текущей;

Vtl::Plf::Extent::Extent ( int radius = 0 ) [inline, explicit]

Все 4 компоненты left,right,before,forward будут инициализованы значением radius.

Методы

Extent& Vtl::Plf::Extent::max ( const Extent & e ) [inline]

void Vtl::Plf::Extent::checkCompatible ( const ImgSize & is ) const [inline]

static void Vtl::Plf::Extent::check | ( | int | ex_param,
 |  | int | im_param,
 |  | const char * | ex_name,
 |  | const char * | im_name |
 | ) |  |  | [inline, static, private]

Данные класса

int Vtl::Plf::Extent::left

int Vtl::Plf::Extent::right

int Vtl::Plf::Extent::before

int Vtl::Plf::Extent::forward

Объявления и описания членов структуры находятся в файле:
  • plf_strip_buffer_support.h


Pipe Line Filters: Структура Dbg::Format::F

Dbg::Format::F

Структура Dbg::Format::F

#include <sfm_dbg.h>

Полный список членов класса

Открытые члены

F (int width, int prec, bool sign)
void | eachtime (std::ostream &os)

Открытые атрибуты

const int | width_
const int | prec_
const bool | sign_

Конструктор(ы)

Dbg::Format::F::F | ( | int | width,
 |  | int | prec,
 |  | bool | sign |
 | ) |  |  | [inline]

Методы

void Dbg::Format::F::eachtime ( std::ostream & os ) [inline]

Данные класса

const int Dbg::Format::F::width_

const int Dbg::Format::F::prec_

const bool Dbg::Format::F::sign_

Объявления и описания членов структуры находятся в файле:
  • sfm_dbg.h


Pipe Line Filters: Шаблон структуры Vtl::Alg::Factorial< N >

Vtl::Alg::Factorial

Шаблон структуры Vtl::Alg::Factorial< N >

Вычисляет факториал во время компиляции. Подробнее...

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum { value = N*Factorial<N-1>::value }

Подробное описание

template<unsigned N>
struct Vtl::Alg::Factorial< N >

Вычисляет факториал во время компиляции.

Шаблона имеет два параметра.

    int n=Vtl::Alg::Factorial<12>::value;
    std::cout << "12!="<< n << std::endl;
Например:
    template<unsigned N> class X
    {
        //class realization
    public:
        //class realization
        unsigned v() const {return N;}
    };
    //class using:
    X<Vtl::Alg::Factorial<5>::value> x; //класс инстанцирован значением N=5!=120.
   int result=x.v(); //теперь result равен 120.

Внимание! В качестве параметра шаблона не следует задавать слишком большие числа, такие, что их факториал не поместиться в тип unsigned (enum).

Примеры:

test_alexandresku.cpp.

Перечисления

template<unsigned N>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Alg::Factorial< 0 >

Vtl::Alg::Factorial< 0 >

Шаблон структуры Vtl::Alg::Factorial< 0 >

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum { value = 1 }

template<>
struct Vtl::Alg::Factorial< 0 >

Перечисления

anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::FastGaussConvolve< T, D >

Vtl::ImAlg::Conv::FastGaussConvolve

Шаблон класса Vtl::ImAlg::Conv::FastGaussConvolve< T, D >

Быстрая рекурсивная реализация свертки с гауссом и его первыми 3 производными. По статье [Young_Vliet_1995]. Подробнее...

#include <convolve.h>

Полный список членов класса

Открытые типы

enum | { Deriv = D }

Открытые члены

FastGaussConvolve ()
template<typename TT>
FastGaussConvolve (TT sigma)
template<typename TT>
void | Init (TT sigma)
template<typename IterIn, typename IterOut>
void | operator() (IterIn begin, IterIn end, IterOut out)
НЕДОДЕЛАНО - НЕВЕРНО - ВЕРЕН СЛЕДУЮЩИЙ ОПЕРАТОР ДЛЯ inplace.
template<typename Iter>
void | operator() (Iter begin, Iter end)
ОПЕРАТОР ДЛЯ inplace - OK!

Открытые статические члены

template<typename TT>
static T | Mult (TT sigma)

Закрытые статические члены

static void | check ()

Закрытые данные

T | a1
T | a2
T | a3
T | B

Подробное описание

template<typename T, unsigned D>
class Vtl::ImAlg::Conv::FastGaussConvolve< T, D >

Быстрая рекурсивная реализация свертки с гауссом и его первыми 3 производными. По статье [Young_Vliet_1995].

Основные формулы:

fr(w,n) = a1 * w[n-1] + a2 * w[n-2] + a3 * w[n-3)
rr(out,n) = a1 * out[n+1] + a2 * out[n+2] + a3 * out[n+3)

forward iteration:
w[n] = fh(in,n) + fr(w,n)
reverse iteration:
out[n] = rh(w,n) + rr(out,n)

где для разных производных изменяются:
Gauss:
fh(in,n)= B*in[n]
rh(w,n) = B*w[n]
Gauss 1-st derivative:
fh(in,n)= B/2 * ( in[n+1] - in[n-1] )
rh(w,n) = B*w[n]
Gauss 2-st derivative:
fh(in,n)= B * ( in[n] - in[n-1] )
rh(w,n) = B * ( w[n+1] - w[n] )
Gauss 3-st derivative:
fh(in,n)= B * ( in[n+1] - 2*in[n] + in[n-1] )
rh(w,n) = B/2 * ( w[n+1] - w[n-1] )

Здесь:
a1=b1/b0 a2=b2/b0 a3=b3/b0

b0 = 1.57825 + 2.44413*q + 1.4281*q^2 + 0.422205*q^3
b1 = 2.44413*q + 2.85619*q^2 + 1.26661*q^3
b2 = -1.4281*q^2 + 1.26661*q^3
b3 = 0.422205*q^3

B = 1-(b1+b2+b3)/b0;

q = 0.98711*sigma - 0.96330 if sigma >= 2.5
q = 3.97156 - 4.14554*sqrt(1-0.26891*sigma) if 0.5 <= sigma <= 2.5

Примеры:

test_fast_gauss.cpp.

Перечисления

template<typename T, unsigned D>
anonymous enum

Элементы перечислений:
Deriv

Конструктор(ы)

template<typename T, unsigned D>
Vtl::ImAlg::Conv::FastGaussConvolve< T, D >::FastGaussConvolve ( ) [inline]

template<typename T, unsigned D>
template<typename TT>
Vtl::ImAlg::Conv::FastGaussConvolve< T, D >::FastGaussConvolve ( TT sigma ) [inline]

Методы

template<typename T, unsigned D>
static void Vtl::ImAlg::Conv::FastGaussConvolve< T, D >::check ( ) [inline, static, private]

template<typename T, unsigned D>
template<typename TT>
static T Vtl::ImAlg::Conv::FastGaussConvolve< T, D >::Mult ( TT sigma ) [inline, static]

template<typename T, unsigned D>
template<typename TT>
void Vtl::ImAlg::Conv::FastGaussConvolve< T, D >::Init ( TT sigma ) [inline]

template<typename T, unsigned D>
template<typename IterIn, typename IterOut>
void Vtl::ImAlg::Conv::FastGaussConvolve< T, D >::operator() | ( | IterIn | begin,
 |  | IterIn | end,
 |  | IterOut | out |
 | ) |  |  | [inline]

НЕДОДЕЛАНО - НЕВЕРНО - ВЕРЕН СЛЕДУЮЩИЙ ОПЕРАТОР ДЛЯ inplace.

template<typename T, unsigned D>
template<typename Iter>
void Vtl::ImAlg::Conv::FastGaussConvolve< T, D >::operator() | ( | Iter | begin,
 |  | Iter | end |
 | ) |  |  | [inline]

ОПЕРАТОР ДЛЯ inplace - OK!

Данные класса

template<typename T, unsigned D>
T Vtl::ImAlg::Conv::FastGaussConvolve< T, D >::a1 [private]

template<typename T, unsigned D>
T Vtl::ImAlg::Conv::FastGaussConvolve< T, D >::a2 [private]

template<typename T, unsigned D>
T Vtl::ImAlg::Conv::FastGaussConvolve< T, D >::a3 [private]

template<typename T, unsigned D>
T Vtl::ImAlg::Conv::FastGaussConvolve< T, D >::B [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Класс FFT_2D

Класс FFT_2D

#include <fourier.h>

Полный список членов класса

Открытые статические члены

static void | FFT (AImageMemFloat *Re, AImageMemFloat *Im, bool reverse)
static AImageMemFloat * | Image2Float (AImage *img, bool make2power=true)
static void | Float2Image (AImageMemFloat *fi, AImageMem8 *img, bool logarithimic=true, bool autoscale=true, float A=1, float B=0)
static void | ReIm2AmpPhase (AImageMemFloat *ReAmp, AImageMemFloat *ImPhase)
static void | AmpPhase2ReIm (AImageMemFloat *ReAmp, AImageMemFloat *ImPhase)
static void | TransposeQuarters (AImageMemFloat *img)
static void | CalcSize (AImage *img, int *Fourier_width, int *Fourier_height)
static void | GetLeftTopPosAtFFT (AImage *img, int *Fourier_left, int *Fourier_top)
static int | Transform2Power (int size)
static bool | ChekImages (AImage *ReAmp, AImage *ImPhase, bool chekpower)

Закрытые статические члены

static void | fourn (float *Redata, float *Imdata, int nn[], bool reverse)

Методы

void FFT_2D::FFT | ( | AImageMemFloat * | Re,
 |  | AImageMemFloat * | Im,
 |  | bool | reverse |
 | ) |  |  | [static]

AImageMemFloat * FFT_2D::Image2Float | ( | AImage * | img,
 |  | bool | make2power = true |
 | ) |  |  | [static]

void FFT_2D::Float2Image | ( | AImageMemFloat * | fi,
 |  | AImageMem8 * | img,
 |  | bool | logarithimic = true,
 |  | bool | autoscale = true,
 |  | float | A = 1,
 |  | float | B = 0 |
 | ) |  |  | [static]

void FFT_2D::ReIm2AmpPhase | ( | AImageMemFloat * | ReAmp,
 |  | AImageMemFloat * | ImPhase |
 | ) |  |  | [static]

void FFT_2D::AmpPhase2ReIm | ( | AImageMemFloat * | ReAmp,
 |  | AImageMemFloat * | ImPhase |
 | ) |  |  | [static]

void FFT_2D::TransposeQuarters ( AImageMemFloat * img ) [static]

void FFT_2D::CalcSize | ( | AImage * | img,
 |  | int * | Fourier_width,
 |  | int * | Fourier_height |
 | ) |  |  | [static]

void FFT_2D::GetLeftTopPosAtFFT | ( | AImage * | img,
 |  | int * | Fourier_left,
 |  | int * | Fourier_top |
 | ) |  |  | [static]

int FFT_2D::Transform2Power ( int size ) [static]

bool FFT_2D::ChekImages | ( | AImage * | ReAmp,
 |  | AImage * | ImPhase,
 |  | bool | chekpower |
 | ) |  |  | [static]

void FFT_2D::fourn | ( | float * | Redata,
 |  | float * | Imdata,
 |  | int | nn[],
 |  | bool | reverse |
 | ) |  |  | [static, private]

Объявления и описания членов классов находятся в файлах:
  • fourier.h
  • fourier.cpp


Pipe Line Filters: Шаблон класса Vtl::Plf::Fifo< T >

Vtl::Plf::Fifo

Шаблон класса Vtl::Plf::Fifo< T >
[Ports and buffers]

Реализует очередь. Подробнее...

#include <plf_strip_buffer_support.h>

Полный список членов класса

Открытые члены

Fifo ()
~Fifo ()
bool | empty () const
void | put (T x)
T | get ()

Закрытые данные

std::list< T > | lst

Подробное описание

template<class T>
class Vtl::Plf::Fifo< T >

Реализует очередь.

class Fifo

Конструктор(ы)

template<class T>
Vtl::Plf::Fifo< T >::Fifo ( ) [inline]

template<class T>
Vtl::Plf::Fifo< T >::~Fifo ( ) [inline]

Методы

template<class T>
bool Vtl::Plf::Fifo< T >::empty ( ) const [inline]

template<class T>
void Vtl::Plf::Fifo< T >::put ( T x ) [inline]

template<class T>
T Vtl::Plf::Fifo< T >::get ( ) [inline]

Данные класса

template<class T>
std::list<T> Vtl::Plf::Fifo< T >::lst [private]

Объявления и описания членов класса находятся в файле:
  • plf_strip_buffer_support.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Bres::Fill< T >

Vtl::ImAlg::Bres::Fill

Шаблон класса Vtl::ImAlg::Bres::Fill< T >

Алгоритм заполнения области. Подробнее...

#include <alg_bresenham.h>

Подробное описание

template<class T>
class Vtl::ImAlg::Bres::Fill< T >

Алгоритм заполнения области.

Объявления и описания членов класса находятся в файле:
  • alg_bresenham.h


Pipe Line Filters: Класс Hanina::FillingHessianMatrix3x3

Hanina::FillingHessianMatrix3x3

Класс Hanina::FillingHessianMatrix3x3

#include <ss_ridge_functors.h>

Полный список членов класса

Открытые члены

FillingHessianMatrix3x3 (float sigma)
template<typename T1>
void | operator() (T1 Ixx, T1 Iyy, T1 Ixy, T1 Ixxx, T1 Iyyy, T1 Ixyy, T1 Iyxx, T1 Ixxxx, T1 Iyyyy, T1 Ixxyy, T1 &max_eig, T1 &vx1, T1 &vy1, T1 &vt1, T1 &vx2, T1 &vy2, T1 &vt2)

Открытые атрибуты

Vtl::NumAlg::Lin::ublas::c_matrix<
float, 3, 3 > 		m33
Vtl::NumAlg::Lin::ublas::c_matrix<
float, 3, 3 > 		t33
Vtl::NumAlg::Lin::ublas::c_matrix<
float, 3, 3 > 		tmp33
Vtl::NumAlg::Lin::ublas::c_vector<
float, 3 > 		work
Vtl::NumAlg::Lin::ublas::c_vector<
float, 3 > 		eigen

Закрытые члены

template<typename T1>
void | eigen_val_vec_3D (T1 &max_eig, T1 &vx1, T1 &vy1, T1 &vt1, T1 &vx2, T1 &vy2, T1 &vt2)
template<typename T1>
void | eigen_val_vec_2D_proj_3D (T1 &max_eig, T1 &vx1, T1 &vy1, T1 &vt1, T1 &vx2, T1 &vy2, T1 &vt2)
template<typename T1>
void | calc_2D_eigmax (T1 Ixx, T1 Ixy, T1 Iyy, T1 &maxeig, T1 &vx, T1 &vy)
template<typename T1>
void | build_3D_hess (T1 Ixx, T1 Iyy, T1 Ixy, T1 Ixxx, T1 Iyyy, T1 Ixyy, T1 Iyxx, T1 Ixxxx, T1 Iyyyy, T1 Ixxyy)
template<typename T1>
void | build_3D_hess_projection (T1 &vx, T1 &vy)

Закрытые данные

float | mult

Конструктор(ы)

Hanina::FillingHessianMatrix3x3::FillingHessianMatrix3x3 ( float sigma ) [inline]

Методы

template<typename T1>
void Hanina::FillingHessianMatrix3x3::operator() | ( | T1 | Ixx,
 |  | T1 | Iyy,
 |  | T1 | Ixy,
 |  | T1 | Ixxx,
 |  | T1 | Iyyy,
 |  | T1 | Ixyy,
 |  | T1 | Iyxx,
 |  | T1 | Ixxxx,
 |  | T1 | Iyyyy,
 |  | T1 | Ixxyy,
 |  | T1 & | max_eig,
 |  | T1 & | vx1,
 |  | T1 & | vy1,
 |  | T1 & | vt1,
 |  | T1 & | vx2,
 |  | T1 & | vy2,
 |  | T1 & | vt2 |
 | ) |  |  | [inline]

template<typename T1>
void Hanina::FillingHessianMatrix3x3::eigen_val_vec_3D | ( | T1 & | max_eig,
 |  | T1 & | vx1,
 |  | T1 & | vy1,
 |  | T1 & | vt1,
 |  | T1 & | vx2,
 |  | T1 & | vy2,
 |  | T1 & | vt2 |
 | ) |  |  | [inline, private]

template<typename T1>
void Hanina::FillingHessianMatrix3x3::eigen_val_vec_2D_proj_3D | ( | T1 & | max_eig,
 |  | T1 & | vx1,
 |  | T1 & | vy1,
 |  | T1 & | vt1,
 |  | T1 & | vx2,
 |  | T1 & | vy2,
 |  | T1 & | vt2 |
 | ) |  |  | [inline, private]

template<typename T1>
void Hanina::FillingHessianMatrix3x3::calc_2D_eigmax | ( | T1 | Ixx,
 |  | T1 | Ixy,
 |  | T1 | Iyy,
 |  | T1 & | maxeig,
 |  | T1 & | vx,
 |  | T1 & | vy |
 | ) |  |  | [inline, private]

template<typename T1>
void Hanina::FillingHessianMatrix3x3::build_3D_hess | ( | T1 | Ixx,
 |  | T1 | Iyy,
 |  | T1 | Ixy,
 |  | T1 | Ixxx,
 |  | T1 | Iyyy,
 |  | T1 | Ixyy,
 |  | T1 | Iyxx,
 |  | T1 | Ixxxx,
 |  | T1 | Iyyyy,
 |  | T1 | Ixxyy |
 | ) |  |  | [inline, private]

template<typename T1>
void Hanina::FillingHessianMatrix3x3::build_3D_hess_projection | ( | T1 & | vx,
 |  | T1 & | vy |
 | ) |  |  | [inline, private]

Данные класса

float Hanina::FillingHessianMatrix3x3::mult [private]

Vtl::NumAlg::Lin::ublas::c_matrix<float,3,3> Hanina::FillingHessianMatrix3x3::m33

Vtl::NumAlg::Lin::ublas::c_matrix<float,3,3> Hanina::FillingHessianMatrix3x3::t33

Vtl::NumAlg::Lin::ublas::c_matrix<float,3,3> Hanina::FillingHessianMatrix3x3::tmp33

Vtl::NumAlg::Lin::ublas::c_vector<float,3> Hanina::FillingHessianMatrix3x3::work

Vtl::NumAlg::Lin::ublas::c_vector<float,3> Hanina::FillingHessianMatrix3x3::eigen

Объявления и описания членов класса находятся в файле:
  • ss_ridge_functors.h


Pipe Line Filters: Класс Vtl::Plf::FilterBase

Vtl::Plf::FilterBase

Класс Vtl::Plf::FilterBase
[Pipe Line Filters.]

Базовый класс. Подробнее...

#include <plf_filter_elem.h>

Граф наследования:Vtl::Plf::FilterBase:

[см. легенду]
Полный список членов класса

Открытые члены

virtual | ~FilterBase ()
void | setName (std::string name)
virtual std::string | Name () const
virtual int | NumInputs () const
virtual int | NumOutputs () const
virtual InPortBase * | getInPort (int i) const
virtual OutPortBase * | getOutPort (int i) const
virtual bool | isComplex () const=0
virtual void | AddPort (InPortBase &port, int i)
virtual void | AddPort (OutPortBase &port, int i)

Защищенные члены

FilterBase (int num_in_ports, int num_out_ports)
>forbidden
FilterBase (std::string name, int num_in_ports, int num_out_ports)

Закрытые члены

FilterBase & | operator= (const FilterBase &)
FilterBase (const FilterBase &)
>forbidden

Закрытые данные

std::string | _name
const int | num_inp
const int | num_out
std::vector< InPortBase * > | in_ports
std::vector< OutPortBase * > | out_ports

Подробное описание

Базовый класс.

class FilterBase

Конструктор(ы)

Vtl::Plf::FilterBase::FilterBase ( const FilterBase & ) [private]

>forbidden

Vtl::Plf::FilterBase::FilterBase | ( | int | num_in_ports,
 |  | int | num_out_ports |
 | ) |  |  | [inline, protected]

>forbidden

Vtl::Plf::FilterBase::FilterBase | ( | std::string | name,
 |  | int | num_in_ports,
 |  | int | num_out_ports |
 | ) |  |  | [inline, protected]

virtual Vtl::Plf::FilterBase::~FilterBase ( ) [inline, virtual]

Методы

FilterBase& Vtl::Plf::FilterBase::operator= ( const FilterBase & ) [private]

void Vtl::Plf::FilterBase::setName ( std::string name ) [inline]

virtual std::string Vtl::Plf::FilterBase::Name ( ) const [inline, virtual]

virtual int Vtl::Plf::FilterBase::NumInputs ( ) const [inline, virtual]

virtual int Vtl::Plf::FilterBase::NumOutputs ( ) const [inline, virtual]

virtual InPortBase* Vtl::Plf::FilterBase::getInPort ( int i ) const [inline, virtual]

virtual OutPortBase* Vtl::Plf::FilterBase::getOutPort ( int i ) const [inline, virtual]

virtual bool Vtl::Plf::FilterBase::isComplex ( ) const [pure virtual]

Замещается в Vtl::Plf::FilterComplex и Vtl::Plf::FilterElementary.

virtual void Vtl::Plf::FilterBase::AddPort | ( | InPortBase & | port,
 |  | int | i |
 | ) |  |  | [inline, virtual]

virtual void Vtl::Plf::FilterBase::AddPort | ( | OutPortBase & | port,
 |  | int | i |
 | ) |  |  | [inline, virtual]

Переопределяется в Vtl::Plf::FilterElementary.

Данные класса

std::string Vtl::Plf::FilterBase::_name [private]

const int Vtl::Plf::FilterBase::num_inp [private]

const int Vtl::Plf::FilterBase::num_out [private]

std::vector<InPortBase*> Vtl::Plf::FilterBase::in_ports [private]

std::vector<OutPortBase*> Vtl::Plf::FilterBase::out_ports [private]

Объявления и описания членов класса находятся в файле:
  • plf_filter_elem.h


Pipe Line Filters: Класс Vtl::Plf::FilterComplex

Vtl::Plf::FilterComplex

Класс Vtl::Plf::FilterComplex
[Pipe Line Filters.]

Базовый класс для написания сложных (составных) фильтров, представляющих собой комбинацию элементарных и/или составных фильтров. Элементарные фильтры должны наследоваться из class FilterElementary. Подробнее...

#include <plf_filter_elem.h>

Граф наследования:Vtl::Plf::FilterComplex:

[см. легенду]
Граф связей класса Vtl::Plf::FilterComplex:

[см. легенду]
Полный список членов класса

Открытые члены

virtual | ~FilterComplex ()
virtual bool | isComplex () const

Защищенные члены

FilterComplex (int num_in_ports, int num_out_ports)
>forbidden
FilterComplex (std::string name, int num_in_ports, int num_out_ports)

Закрытые члены

FilterComplex & | operator= (const FilterComplex &)
FilterComplex (const FilterComplex &)
>forbidden

Подробное описание

Базовый класс для написания сложных (составных) фильтров, представляющих собой комбинацию элементарных и/или составных фильтров. Элементарные фильтры должны наследоваться из class FilterElementary.

class FilterComplex

Представляет собой просто конгтейнер, где хранятся элементарные фильтры, увязанные между собой. Неподключенные входы и выходы показываются наружу и являются входами и выходами составного фильтра. Функциональности собственно фильтра не имеет. Система фильтрации как бы вытаскивает из него элементарные фильтры и использует их. Назначение класса - просто упростить написание приложений, не повторять часто используемые комбинации в коде, а использовать готовую сборку из элементарных фильтров.
Рекомендация: Любую обработку оформлять в виде такого фильтра, так, чтобы Функционирующая система выглядела как набор фильтров источников подсоединенных к такому фильтру, а его выходы подсоединены к фильтрам приемникам. Это позволит достигнуть гибкости использования различных источников и приемников данных: файлы, память, фрагмент изображения, другие контейнеры типа файла отраженного на память и изображения в контейнере C#.

Конструктор(ы)

Vtl::Plf::FilterComplex::FilterComplex ( const FilterComplex & ) [private]

>forbidden

Vtl::Plf::FilterComplex::FilterComplex | ( | int | num_in_ports,
 |  | int | num_out_ports |
 | ) |  |  | [inline, protected]

>forbidden

Vtl::Plf::FilterComplex::FilterComplex | ( | std::string | name,
 |  | int | num_in_ports,
 |  | int | num_out_ports |
 | ) |  |  | [inline, protected]

virtual Vtl::Plf::FilterComplex::~FilterComplex ( ) [inline, virtual]

Методы

FilterComplex& Vtl::Plf::FilterComplex::operator= ( const FilterComplex & ) [private]

virtual bool Vtl::Plf::FilterComplex::isComplex ( ) const [inline, virtual]

Замещает Vtl::Plf::FilterBase.

Объявления и описания членов класса находятся в файле:
  • plf_filter_elem.h


Pipe Line Filters: Класс Vtl::Plf::FilterElementary

Vtl::Plf::FilterElementary

Класс Vtl::Plf::FilterElementary
[Pipe Line Filters.]

Базовый класс для написания всех элементарных фильтров. Подробнее...

#include <plf_filter_elem.h>

Граф наследования:Vtl::Plf::FilterElementary:

[см. легенду]
Граф связей класса Vtl::Plf::FilterElementary:

[см. легенду]
Полный список членов класса

Открытые члены

virtual | ~FilterElementary ()
virtual bool | isComplex () const
virtual void | AddPort (InPortBase &port, int i, Extent ext)
virtual void | AddPort (OutPortBase &port, int i)
virtual void | processLine ()=0
virtual bool | isFinished () const
virtual void | set_OutPortsImagesSizeAndInPortsExtents ()
void | init_OutPortsExtents ()
virtual void | set_total_delay ()
void | init_buffers ()
void | put_in_queue (Fifo< int > &Q)
virtual void | TryPutInQueue (Fifo< int > &Q)
int | Y_pos () const
void | do_1_step ()
void | Finish ()

Открытые атрибуты

int | id

Защищенные члены

FilterElementary (int num_in_ports, int num_out_ports)
>forbidden
FilterElementary (std::string name, int num_in_ports, int num_out_ports)

Закрытые члены

FilterElementary & | operator= (const FilterElementary &)
FilterElementary (const FilterElementary &)
>forbidden

Закрытые данные

bool | in_queue
bool | finished
int | h_max
int | y_pos

Подробное описание

Базовый класс для написания всех элементарных фильтров.

class FilterElementary

Примеры:

test_plf_filters.cpp.

Конструктор(ы)

Vtl::Plf::FilterElementary::FilterElementary ( const FilterElementary & ) [private]

>forbidden

Vtl::Plf::FilterElementary::FilterElementary | ( | int | num_in_ports,
 |  | int | num_out_ports |
 | ) |  |  | [inline, protected]

>forbidden

Vtl::Plf::FilterElementary::FilterElementary | ( | std::string | name,
 |  | int | num_in_ports,
 |  | int | num_out_ports |
 | ) |  |  | [inline, protected]

virtual Vtl::Plf::FilterElementary::~FilterElementary ( ) [inline, virtual]

Методы

FilterElementary& Vtl::Plf::FilterElementary::operator= ( const FilterElementary & ) [private]

virtual bool Vtl::Plf::FilterElementary::isComplex ( ) const [inline, virtual]

Замещает Vtl::Plf::FilterBase.

virtual void Vtl::Plf::FilterElementary::AddPort | ( | InPortBase & | port,
 |  | int | i,
 |  | Extent | ext |
 | ) |  |  | [inline, virtual]

virtual void Vtl::Plf::FilterElementary::AddPort | ( | OutPortBase & | port,
 |  | int | i |
 | ) |  |  | [inline, virtual]

Переопределяет метод предка Vtl::Plf::FilterBase.

virtual void Vtl::Plf::FilterElementary::processLine ( ) [pure virtual]

Замещается в Vtl::Plf::Levels< T, P >, Vtl::Plf::PixByPix2to1< T, F, P >, Vtl::Plf::PixByPix3to1< T, Func, P >, Vtl::Plf::PixByPix4to1< T, Func, P >, Vtl::Plf::PixByPix5to1< T, Func, P >, Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >, Vtl::Plf::PixByPix2to3< T, P >, Vtl::Plf::EnvProc1to1< T, Func, P >, Vtl::Plf::EnvProc3to1< T, Func, P >, Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >, Vtl::Plf::ConvolveHorz< T, P >, Vtl::Plf::ConvolveVert< T, P >, Vtl::Plf::FilterResampleHorz< T, P >, Vtl::Plf::FilterResampleVert< T, P >, Vtl::Plf::SrcArray< T, I, P >, Vtl::Plf::SrcAImageRgb< T, I, P >, Vtl::Plf::DstArray< T, Pixel >, Vtl::Plf::DstContainer< T, C, P >, Vtl::Plf::medianFilter< T, P >, Vtl::Plf::medianFilter2< T, P >, Vtl::Plf::Levels< T, Vtl::Plf::F11::Sqr< T > >, Vtl::Plf::Vtl::Plf::PixByPix2to1< T, Vtl::Plf::F21::SqrtOfSumSqr< T >, Vtl::Plf::F11::CombGammaCorMult< T >, P > >, Vtl::Plf::PixByPix2to1< T, Vtl::Plf::F21::SqrtOfSumSqr< T >, PostProc >, Vtl::Plf::PixByPix2to1< T, Vtl::Plf::F21::SqrtOfSumSqr< T > >, Vtl::Plf::PixByPix2to1< T, Vtl::Plf::F21::Disp< T > >, Vtl::Plf::PixByPix2to1< T, Vtl::Plf::F21::Sharpen< T >, P >, Vtl::Plf::PixByPix3to1< T, Vtl::Plf::F31::Sum3< T > >, Vtl::Plf::PixByPix3to1< T, Vtl::Plf::F31::DeNoise< T >, P >, Vtl::Plf::PixByPix3to1< T, Vtl::Plf::F31::StatDiff< T >, P >, Vtl::Plf::PixByPix3to3< T, Vtl::Plf::F33::DiZenzo< T >, Vtl::Plf::F11::GammaCorMult< T > >, Vtl::Plf::PixByPix2to3< T, Vtl::Plf::F23::CorrMatrix< T, T & > >, Vtl::Plf::EnvProc1to1< T, Vtl::Plf::Fpie::BiLateralSmooth< T >, P >, Vtl::Plf::EnvProc1to1< T, Vtl::Plf::Fpie::Himg< T >, P >, Vtl::Plf::EnvProc3to1< T, Vtl::Plf::Fpie::CannyNMS< T >, P >, Vtl::Plf::EnvProc1to2< T, Vtl::Plf::Fpie::Himg2< T > >, Vtl::Plf::ConvolveHorz< T >, Vtl::Plf::ConvolveVert< T, Vtl::Plf::F11::DoNothing< T > >, Vtl::Plf::FilterResampleHorz< float, P >, Vtl::Plf::FilterResampleVert< float >, Vtl::Plf::SrcArray< T, I::Pixel, P > и Vtl::Plf::DstArray< T, I::Pixel >.

virtual bool Vtl::Plf::FilterElementary::isFinished ( ) const [inline, virtual]

virtual void Vtl::Plf::FilterElementary::set_OutPortsImagesSizeAndInPortsExtents ( ) [inline, virtual]

Переопределяется в Vtl::Plf::PixByPix3to1< T, Func, P >, Vtl::Plf::PixByPix4to1< T, Func, P >, Vtl::Plf::PixByPix5to1< T, Func, P >, Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >, Vtl::Plf::PixByPix2to3< T, P >, Vtl::Plf::FilterResampleHorz< T, P >, Vtl::Plf::FilterResampleVert< T, P >, Vtl::Plf::SrcArray< T, I, P >, Vtl::Plf::SrcAImageRgb< T, I, P >, Vtl::Plf::DstArray< T, Pixel >, Vtl::Plf::DstContainer< T, C, P >, Vtl::Plf::medianFilter< T, P >, Vtl::Plf::medianFilter2< T, P >, Vtl::Plf::PixByPix3to1< T, Vtl::Plf::F31::Sum3< T > >, Vtl::Plf::PixByPix3to1< T, Vtl::Plf::F31::DeNoise< T >, P >, Vtl::Plf::PixByPix3to1< T, Vtl::Plf::F31::StatDiff< T >, P >, Vtl::Plf::PixByPix3to3< T, Vtl::Plf::F33::DiZenzo< T >, Vtl::Plf::F11::GammaCorMult< T > >, Vtl::Plf::PixByPix2to3< T, Vtl::Plf::F23::CorrMatrix< T, T & > >, Vtl::Plf::FilterResampleHorz< float, P >, Vtl::Plf::FilterResampleVert< float >, Vtl::Plf::SrcArray< T, I::Pixel, P > и Vtl::Plf::DstArray< T, I::Pixel >.

void Vtl::Plf::FilterElementary::init_OutPortsExtents ( ) [inline]

virtual void Vtl::Plf::FilterElementary::set_total_delay ( ) [inline, virtual]

void Vtl::Plf::FilterElementary::init_buffers ( ) [inline]

void Vtl::Plf::FilterElementary::put_in_queue ( Fifo< int > & Q ) [inline]

virtual void Vtl::Plf::FilterElementary::TryPutInQueue ( Fifo< int > & Q ) [inline, virtual]

int Vtl::Plf::FilterElementary::Y_pos ( ) const [inline]

Возвращает внутренний счетчик положения. Вычисляется как величина увеличивающаяся на 1 при каждом вызове processLine() начиная от 0 до максимальной высоты изображения по всем выходным портам. Можно использовать в случае равных размеров выходных изображений (или одного изображения) в качестве номера текущей строки в прикладных фильтрах. В том случае, если размеры по разным выходным портам различны - в прикладном фильтре следует завести переменные (счетчики) текущей строки по каждому порту и строить работу так, чтобы выполнялось: y_tmp_in =[y_gen/(Hmax-1)*(InP.height-1)];
y_tmp_in <= InP.y_cur <= y_tmp_in +1 .
если размеры изображений участвующих в обработке различаются и строго y_tmp_in == InP.y_cur , если размеры всех изображений равны.
а по каждому входу если пишется, то строка с номером
y_tmp_out=[y_gen/(Hmax-1)*(OutP.height-1)];
y_tmp_out <= OutP.y_wait <= y_tmp_out+1 .
если размеры изображений участвующих в обработке различаются и строго y_tmp_out == OutP.y_wait , если размеры всех изображений равны.
где y_tmp_in - текущая строка по входному порту, а y_tmp_out - по выходному порту. Т.е.всегда находимся в состоянии обработки определенного процента изображения. По окончании работы функции обязятельно следует сообщить тем InP, каким следует, какую строку они должны дать в следующем входе в эту функцию. Если запрос не удовлетворяет приведенным условиям - exception.

void Vtl::Plf::FilterElementary::do_1_step ( ) [inline]

void Vtl::Plf::FilterElementary::Finish ( ) [inline]

Данные класса

bool Vtl::Plf::FilterElementary::in_queue [private]

bool Vtl::Plf::FilterElementary::finished [private]

int Vtl::Plf::FilterElementary::h_max [private]

int Vtl::Plf::FilterElementary::y_pos [private]

int Vtl::Plf::FilterElementary::id

Объявления и описания членов класса находятся в файле:
  • plf_filter_elem.h


Pipe Line Filters: Шаблон класса Vtl::Plf::FilterResampleHorz< T, P >

Vtl::Plf::FilterResampleHorz

Шаблон класса Vtl::Plf::FilterResampleHorz< T, P >
[Elementary filters]

Класс реализует ресамплинг (растяжение/сжатие) каждой строки изображения. Подробнее...

#include <plf_filters.h>

Граф наследования:Vtl::Plf::FilterResampleHorz< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::FilterResampleHorz< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

FilterResampleHorz ()
FilterResampleHorz (std::string name, int new_width, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~FilterResampleHorz ()
void | Init (std::string name, int new_width, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual void | set_OutPortsImagesSizeAndInPortsExtents ()
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in
OutPort< T, P > | out
int | w_new
int | w_old
int | tmp

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::FilterResampleHorz< T, P >

Класс реализует ресамплинг (растяжение/сжатие) каждой строки изображения.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::FilterResampleHorz< T, P >::FilterResampleHorz ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::FilterResampleHorz< T, P >::FilterResampleHorz | ( | std::string | name,
 |  | int | new_width,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::FilterResampleHorz< T, P >::~FilterResampleHorz ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::FilterResampleHorz< T, P >::Init | ( | std::string | name,
 |  | int | new_width,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::FilterResampleHorz< T, P >::set_OutPortsImagesSizeAndInPortsExtents ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::FilterElementary.

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::FilterResampleHorz< T, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::FilterResampleHorz< T, P >::in

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::FilterResampleHorz< T, P >::out

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::FilterResampleHorz< T, P >::w_new

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::FilterResampleHorz< T, P >::w_old

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::FilterResampleHorz< T, P >::tmp

Объявления и описания членов класса находятся в файле:
  • plf_filters.h


Pipe Line Filters: Шаблон класса Vtl::Plf::FilterResampleVert< T, P >

Vtl::Plf::FilterResampleVert

Шаблон класса Vtl::Plf::FilterResampleVert< T, P >
[Elementary filters]

Класс реализует ресамплинг (растяжение/сжатие) каждого столбца изображения. Подробнее...

#include <plf_filters.h>

Граф наследования:Vtl::Plf::FilterResampleVert< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::FilterResampleVert< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

FilterResampleVert ()
FilterResampleVert (std::string name, int new_height, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~FilterResampleVert ()
void | Init (std::string name, int new_height, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual void | set_OutPortsImagesSizeAndInPortsExtents ()
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in
OutPort< T, P > | out
int | h_new
int | h_old
double | cof
int | y

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::FilterResampleVert< T, P >

Класс реализует ресамплинг (растяжение/сжатие) каждого столбца изображения.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::FilterResampleVert< T, P >::FilterResampleVert ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::FilterResampleVert< T, P >::FilterResampleVert | ( | std::string | name,
 |  | int | new_height,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::FilterResampleVert< T, P >::~FilterResampleVert ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::FilterResampleVert< T, P >::Init | ( | std::string | name,
 |  | int | new_height,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::FilterResampleVert< T, P >::set_OutPortsImagesSizeAndInPortsExtents ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::FilterElementary.

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::FilterResampleVert< T, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::FilterResampleVert< T, P >::in

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::FilterResampleVert< T, P >::out

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::FilterResampleVert< T, P >::h_new

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::FilterResampleVert< T, P >::h_old

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
double Vtl::Plf::FilterResampleVert< T, P >::cof

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::FilterResampleVert< T, P >::y

Объявления и описания членов класса находятся в файле:
  • plf_filters.h


Pipe Line Filters: Класс Vtl::Plf::FiltersSystem

Vtl::Plf::FiltersSystem

Класс Vtl::Plf::FiltersSystem
[Pipe Line Filters.]

"Главный класс", обеспечивает функционирование системы потоковой фильтрации Подробнее...

#include <plf_sys.h>

Полный список членов класса

Открытые члены

virtual | ~FiltersSystem ()
FiltersSystem (const char *dot_file_name=0)
FiltersSystem (std::string dot_file_name)
void | set_DotFName (std::string dot_file_name)
void | set_DotFName (const char *dot_file_name=0)
std::string | get_DotFName ()
template<typename IterSrc>
void | Assign (IterSrc src_begin, IterSrc src_end, FilterElementary *dst)
template<typename IterDst>
void | Assign (FilterElementary *src, IterDst dst_begin, IterDst dst_end)
void | Assign (FilterElementary *src, FilterElementary *dst)
template<typename IterSrc, typename IterDst>
void | Assign (IterSrc src_begin, IterSrc src_end, IterDst dst_begin, IterDst dst_end)
void | show_lists ()
void | Run (ProgressCounter *indicator=0, const char *name="")
void | SaveGraphAsDot (const char *fname) const
void | SaveGraphAsDot (std::string fname) const
void | SaveGraphAsDot (std::ostream &os) const
template<class E>
void | _SaveGraphAsDot (std::string fname, E &efunc) const
template<class E>
void | _SaveGraphAsDot (std::ostream &os, E &efunc) const

Закрытые члены

template<typename IterSrc>
void | _fillVec (std::vector< std::pair< FilterElementary *, bool > > &vec, IterSrc begin, IterSrc end)
template<typename IterSrc>
void | _fillVec (std::vector< std::pair< FilterElementary *, bool > > &vec, IterSrc *begin, IterSrc *end)
void | printList (std::string name, const std::vector< int > &lst) const
void | findSourcesTargetsAndJunctions ()
void | propagateImageSize ()
void | init_buffersExtents ()
void | InitStripBuffers ()

Закрытые данные

std::vector< Impl::Node > | graph
std::vector< Impl::Edge > | edges
std::vector< int > | sources
std::vector< int > | multi_inputs
std::vector< int > | multi_connected_to
std::vector< int > | targets
std::string | fname_dot

Классы

class | EdgeLabel_DelayB
struct | EdgeLabel_Unknown

Подробное описание

"Главный класс", обеспечивает функционирование системы потоковой фильтрации
Примеры:

test_plf_filters.cpp и test_plf_filters_rgb.cpp.

Конструктор(ы)

virtual Vtl::Plf::FiltersSystem::~FiltersSystem ( ) [inline, virtual]

Vtl::Plf::FiltersSystem::FiltersSystem ( const char * dot_file_name = 0 ) [inline]

Vtl::Plf::FiltersSystem::FiltersSystem ( std::string dot_file_name ) [inline]

Методы

template<typename IterSrc>
void Vtl::Plf::FiltersSystem::_fillVec | ( | std::vector< std::pair< FilterElementary *, bool > > & | vec,
 |  | IterSrc | begin,
 |  | IterSrc | end |
 | ) |  |  | [inline, private]

template<typename IterSrc>
void Vtl::Plf::FiltersSystem::_fillVec | ( | std::vector< std::pair< FilterElementary *, bool > > & | vec,
 |  | IterSrc * | begin,
 |  | IterSrc * | end |
 | ) |  |  | [inline, private]

void Vtl::Plf::FiltersSystem::set_DotFName ( std::string dot_file_name ) [inline]

void Vtl::Plf::FiltersSystem::set_DotFName ( const char * dot_file_name = 0 ) [inline]

std::string Vtl::Plf::FiltersSystem::get_DotFName ( ) [inline]

template<typename IterSrc>
void Vtl::Plf::FiltersSystem::Assign | ( | IterSrc | src_begin,
 |  | IterSrc | src_end,
 |  | FilterElementary * | dst |
 | ) |  |  | [inline]

Примеры:
test_plf_filters.cpp.

template<typename IterDst>
void Vtl::Plf::FiltersSystem::Assign | ( | FilterElementary * | src,
 |  | IterDst | dst_begin,
 |  | IterDst | dst_end |
 | ) |  |  | [inline]

void Vtl::Plf::FiltersSystem::Assign | ( | FilterElementary * | src,
 |  | FilterElementary * | dst |
 | ) |  |  | [inline]

template<typename IterSrc, typename IterDst>
void Vtl::Plf::FiltersSystem::Assign | ( | IterSrc | src_begin,
 |  | IterSrc | src_end,
 |  | IterDst | dst_begin,
 |  | IterDst | dst_end |
 | ) |  |  | [inline]

void Vtl::Plf::FiltersSystem::show_lists ( ) [inline]

void Vtl::Plf::FiltersSystem::Run | ( | ProgressCounter * | indicator = 0,
 |  | const char * | name = "" |
 | ) |  |  | [inline]

Примеры:
test_plf_filters.cpp.

void Vtl::Plf::FiltersSystem::SaveGraphAsDot ( const char * fname ) const [inline]

void Vtl::Plf::FiltersSystem::SaveGraphAsDot ( std::string fname ) const [inline]

void Vtl::Plf::FiltersSystem::SaveGraphAsDot ( std::ostream & os ) const [inline]

template<class E>
void Vtl::Plf::FiltersSystem::_SaveGraphAsDot | ( | std::string | fname,
 |  | E & | efunc |
 | ) |  |  | const [inline]

template<class E>
void Vtl::Plf::FiltersSystem::_SaveGraphAsDot | ( | std::ostream & | os,
 |  | E & | efunc |
 | ) |  |  | const [inline]

void Vtl::Plf::FiltersSystem::printList | ( | std::string | name,
 |  | const std::vector< int > & | lst |
 | ) |  |  | const [inline, private]

void Vtl::Plf::FiltersSystem::findSourcesTargetsAndJunctions ( ) [inline, private]

void Vtl::Plf::FiltersSystem::propagateImageSize ( ) [inline, private]

void Vtl::Plf::FiltersSystem::init_buffersExtents ( ) [inline, private]

void Vtl::Plf::FiltersSystem::InitStripBuffers ( ) [inline, private]

Данные класса

std::vector<Impl::Node> Vtl::Plf::FiltersSystem::graph [private]

std::vector<Impl::Edge> Vtl::Plf::FiltersSystem::edges [private]

std::vector<int> Vtl::Plf::FiltersSystem::sources [private]

std::vector<int> Vtl::Plf::FiltersSystem::multi_inputs [private]

std::vector<int> Vtl::Plf::FiltersSystem::multi_connected_to [private]

std::vector<int> Vtl::Plf::FiltersSystem::targets [private]

std::string Vtl::Plf::FiltersSystem::fname_dot [private]

Объявления и описания членов класса находятся в файле:
  • plf_sys.h


Pipe Line Filters: Класс Vtl::Plf::FiltersSystem::EdgeLabel_DelayB

Vtl::Plf::FiltersSystem::EdgeLabel_DelayB

Класс Vtl::Plf::FiltersSystem::EdgeLabel_DelayB

#include <plf_sys.h>

Полный список членов класса

Открытые члены

EdgeLabel_DelayB (const std::vector< int > &b_)
std::string | operator() (const Impl::Edge &e)

Закрытые данные

const std::vector< int > & | b

Конструктор(ы)

Vtl::Plf::FiltersSystem::EdgeLabel_DelayB::EdgeLabel_DelayB ( const std::vector< int > & b_ ) [inline]

Методы

std::string Vtl::Plf::FiltersSystem::EdgeLabel_DelayB::operator() ( const Impl::Edge & e ) [inline]

Данные класса

const std::vector<int>& Vtl::Plf::FiltersSystem::EdgeLabel_DelayB::b [private]

Объявления и описания членов класса находятся в файле:
  • plf_sys.h


Pipe Line Filters: Структура Vtl::Plf::FiltersSystem::EdgeLabel_Unknown

Vtl::Plf::FiltersSystem::EdgeLabel_Unknown

Структура Vtl::Plf::FiltersSystem::EdgeLabel_Unknown

#include <plf_sys.h>

Полный список членов класса

Открытые члены

EdgeLabel_Unknown ()
std::string operator() (const Impl::Edge &e)

Конструктор(ы)

Vtl::Plf::FiltersSystem::EdgeLabel_Unknown::EdgeLabel_Unknown ( ) [inline]

Методы

std::string Vtl::Plf::FiltersSystem::EdgeLabel_Unknown::operator() ( const Impl::Edge & e ) [inline]

Объявления и описания членов структуры находятся в файле:
  • plf_sys.h


Pipe Line Filters: Класс Vtl::Types::TL::FindIf

Vtl::Types::TL::FindIf

Класс Vtl::Types::TL::FindIf

По списку типов составляет новый список типов таких, что проверка типа по условию Comparator выполняется. Подробнее...

#include <alexandresku.h>

Подробное описание

По списку типов составляет новый список типов таких, что проверка типа по условию Comparator выполняется.

Шаблона имеет 3 параметра.

    Vtl::Types::TL::FindIf<<class TList, class T,template <class,class> Comparator >
Тип компаратора должен быть определен как шаблон от двух параметров-типов и иметь поле value как перечисление, например:
   template<class T1,class T2> struct Comp2
   {
        enum { value=sizeof(typename T1::sample_type)==sizeof(T2)?1:0};
   };
Использование например:
    typedef TYPELIST_4(char,short,unsigned short,int) MyTypesList;
    typedef Vtl::Types::TL::FindIf<MyTypesList,short,Comp2>::Result my_typelist;
    std::cout << Vtl::Types::TL::Print<my_typelist>::str()<< std::endl;

Объявления и описания членов класса находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >

Vtl::Plf::Kernel::FKern

Шаблон класса Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >

class FKern, реализует ядра сверток для любых функторов из Vtl::Plf::Kern::F, (см. там описание требуемого устройства функтора). Подробнее...

#include <plf_kernels_1d.h>

Граф наследования:Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >:

[см. легенду]
Граф связей класса Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >:

[см. легенду]
Полный список членов класса

Открытые члены

FKern ()
template<class FF>
FKern (FF functor)
template<class FF>
FKern (FF functor, size_t wnd_size, T center_pos=T(-1), T fill_by=T(0))
virtual | ~FKern ()
template<class FF>
void | Init (FF functor)
Используется только для ядер свертки и кросскорреляции, иначе генерирует ошибку времени компиляции.
template<class FF>
void | Init (FF functor, size_t wnd_size, T center_pos, T fill_by=T(0))
Используется только для ядер ограничения окном, иначе генерирует ошибку времени компиляции.

Закрытые члены

template<class FF>
void | _Init_conv (FF functor)
template<class FF>
void | _Init_win (FF functor, size_t wnd_size, T center_pos, T fill_by)
template<class FF>
void | build (FF func, typename FF::arg_type ofs)
Строит ядро (массив чисел) по заданному функтору. НЕ НОРМИРУЕТ! См. функцию template<unsigned N> void normalize(). Носитель ядра задается в функции void _Init(int left,int right).
template<class FF>
void | build (FF func, typename FF::arg_type ofs, Loki::Int2Type< KT_Conv >)
template<class FF>
void | build (FF func, typename FF::arg_type ofs, Loki::Int2Type< KT_Corr >)
template<class FF>
void | build (FF func, typename FF::arg_type ofs, Loki::Int2Type< KT_Win >)

Подробное описание

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
class Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >

class FKern, реализует ядра сверток для любых функторов из Vtl::Plf::Kern::F, (см. там описание требуемого устройства функтора).

Все параметры ядра задаются через функтор, соответственно типу функтора, указанному в базовам классе Vtl::Plf::Kernel::F::Traits, Vtl::Plf::Kernel::F::Traits_common, инициализация данного класса идет по соответствующей ветви, ветвь выбирается на этапе компиляции.

Для ядер кросскорреляции и свертки нормировка выполняется указанным алгоритмом, в настоящий момент реализованы алгоритмы нормировки для оконной функции так, чтобы интеграл от нее был равен единице и алгоритмы для производных от оконной функции, подробнее см. ниже. Ядро для ограничения окном (windowing) или аподизации (appodization) не нормируется, полагая, что оконная функция (функтор) уже нормирована правильно, обычно в центре окна равна 1.

Вычисляет свертку с функцией Гаусса

Вычисляет свертку с функцией Гаусса

x изменяется в переделах [-wnd_half_size,+ wnd_half_size] c шагом 1.

Нормировочная константа вычисляется по формуле:

Вычисляет свертку с функцией Гаусса

Рассмотрим вычисление свертки с некоторой функцией [image] , которая в свою очередь является производной другой функции [image] .

(1)

Как определять в этом случае нормировочную константу [image] ? Если в качестве функции [image] выбрана четная функция, например функция гаусса, то обычный подход вычисления константы из условия

(2)

неприемлем, так как интеграл от нечетной функции равен нулю. С чем связана проблема нормировки таких функций? Часто рассматривают свертки с симметричными функциями, определенными на бесконечной оси, например функцией Гаусса

(3)

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

,

(4)

в общем случае -

(5)

не велика. Однако, при такой аппроксимации нормировка вида (2), оказывается слегка нарушенной, что часто неприемлемо, так как приводит изменению важных интегральных характеристик сигнала после свертки с такой функцией, таких как среднее значение (в случае обработки изображений –средней яркости). Поэтому нормировочную константу [image] в таких случаях никогда не вычисляют по формуле для идеального распределения на бесконечной оси, как в (3), а вычисляют для реально используемого распределения (функции) как

(6)

Или, переходя к дискретным величинам:

(7)

В тех случаях, когда требуется выполнить свертку с функцией, представляющей собой производную от некоторой функции типа плотности вероятности, весовой или оконной функции, для которой нормировка типа (6),(7) имеет смысл (интеграл от функции не нулевой), разумно действовать следующим образом. Найдем константу [image] так, чтобы аппроксимация [image] вида (5) исходной функции [image] удовлетворяла условиям нормировки (6),(7) , тогда выполняя следующее рассуждение получаем:

(6)

Вычисляет свертку с функцией Гаусса

Рассмотрим вычисление свертки с некоторой функцией [image] , которая в свою очередь является производной другой функции [image] .

(1)

Как определять в этом случае нормировочную константу [image] ? Если в качестве функции [image] выбрана четная функция, например функция гаусса, то обычный подход вычисления константы из условия

(2)

неприемлем, так как интеграл от нечетной функции равен нулю. С чем связана проблема нормировки таких функций? Часто рассматривают свертки с симметричными функциями, определенными на бесконечной оси, например функцией Гаусса

(3)

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

,

(4)

а в общем случае произвольной функции [image] -

(5)

не велика. Однако, при такой аппроксимации нормировка вида (2), оказывается слегка нарушенной, что часто неприемлемо, так как приводит изменению важных интегральных характеристик сигнала после свертки с такой функцией, таких как среднее значение (в случае обработки изображений –средней яркости). Поэтому нормировочную константу [image] в таких случаях никогда не вычисляют по формуле для идеального распределения на бесконечной оси, как в (3), а вычисляют для реально используемого распределения (функции) как

(6)

Или, переходя к дискретным величинам:

(7)

В тех случаях, когда требуется выполнить свертку с функцией, представляющей собой производную от некоторой функции типа плотности вероятности, весовой или оконной функции, для которой нормировка типа (6),(7) имеет смысл (интеграл от функции не нулевой), разумно действовать следующим образом. Найдем константу [image] так, чтобы аппроксимация [image] вида (5) исходной функции [image] удовлетворяла условиям нормировки (6),(7) , тогда выполняя следующее рассуждение получаем:

(8)

Рассмотрим:

при условии

получаем соотношение:

Обозначая

получаем рекурентное соотношение:

но ранее было получено

поэтому

Итого

Окончательно:

(9)

(10)

Тогда

(11)

То есть константа с может быть вычислена если известны только значения n-ой производной функции.

Отметим, что альтернативные подходы не верны. Можно было бы с помощью формул (6),(7) вычислить нормировочную константу, но аналитическое вычисление не всегда возможно, численный расчет потребует задать формулу вычисления не только n-оц производной функции, но и самой функции, что усложняет программу и повышает вероятность ошибки программирования. Кроме того, вычисленные значения производной имеют погрешности, обусловленные:

ü - конечной точностью машинных вычислений;

ü - дискретной аппроксимацией непрерывной функции.

Действительно, например функция Гаусса на окне размером в 5 отсчетов сигнала (или 5 пикселей), используется довольно часто. Она представляется всего 5 числами, что явно не адекватно отражает ее форму и аналитическое выражение нормирующей константы через функцию ошибок (erf) выглядит по крайней мере надуманным.

Примеры:

test_fast_gauss.cpp, test_plf_filters.cpp и test_plf_kernels.cpp.

Конструктор(ы)

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >::FKern ( ) [inline]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
template<class FF>
Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >::FKern ( FF functor ) [inline]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
template<class FF>
Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >::FKern | ( | FF | functor,
 |  | size_t | wnd_size,
 |  | T | center_pos = T(-1),
 |  | T | fill_by = T(0) |
 | ) |  |  | [inline]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
virtual Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >::~FKern ( ) [inline, virtual]

Методы

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
template<class FF>
void Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >::Init ( FF functor ) [inline]

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

Аргументы:
functor - функтор ядра свертки.кросскорреляции, примеры и к написанию своих функторов see Vtl::Plf::Kernel::FF

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
template<class FF>
void Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >::Init | ( | FF | functor,
 |  | size_t | wnd_size,
 |  | T | center_pos,
 |  | T | fill_by = T(0) |
 | ) |  |  | [inline]

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

Аргументы:
functor | - функтор окна, примеры и требования к написанию своих функторов see Vtl::ImAlg::WndFun
wnd_size | - ширина окна
center_pos | - где в этом окне 0..wnd_size-1 должен быть центр (например максимум гаусса).
fill_by | - если функтор с ограниченным носителем, то при центре установленном не в (wnd_size-1)/2.0 на более длинное плечо данных относительно центра оконной функции не хватает, ее надо чем-то дополнить - значение задается этим параметром.

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
template<class FF>
void Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >::_Init_conv ( FF functor ) [inline, private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
template<class FF>
void Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >::_Init_win | ( | FF | functor,
 |  | size_t | wnd_size,
 |  | T | center_pos,
 |  | T | fill_by |
 | ) |  |  | [inline, private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
template<class FF>
void Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >::build | ( | FF | func,
 |  | typename FF::arg_type | ofs |
 | ) |  |  | [inline, private]

Строит ядро (массив чисел) по заданному функтору. НЕ НОРМИРУЕТ! См. функцию template<unsigned N> void normalize(). Носитель ядра задается в функции void _Init(int left,int right).

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
template<class FF>
void Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >::build | ( | FF | func,
 |  | typename FF::arg_type | ofs,
 |  | Loki::Int2Type< KT_Conv > |  |
 | ) |  |  | [inline, private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
template<class FF>
void Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >::build | ( | FF | func,
 |  | typename FF::arg_type | ofs,
 |  | Loki::Int2Type< KT_Corr > |  |
 | ) |  |  | [inline, private]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
template<class FF>
void Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >::build | ( | FF | func,
 |  | typename FF::arg_type | ofs,
 |  | Loki::Int2Type< KT_Win > |  |
 | ) |  |  | [inline, private]

Объявления и описания членов класса находятся в файле:
  • plf_kernels_1d.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::FlatTop< T, D >

Vtl::ImAlg::WndFun::FlatTop

Шаблон класса Vtl::ImAlg::WndFun::FlatTop< T, D >

Окно Плоская-вершина (FlatTop), нормированное. Подробнее...

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::FlatTop< T, D >:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::FlatTop< T, D >:

[см. легенду]
Полный список членов класса

Открытые члены

template<typename TT>
FlatTop (TT size_)

Открытые статические члены

static const char * | Name ()

Закрытые статические члены

static double * | cof ()

Подробное описание

template<typename T, unsigned D>
class Vtl::ImAlg::WndFun::FlatTop< T, D >

Окно Плоская-вершина (FlatTop), нормированное.

См. также:
common_Trig

Конструктор(ы)

template<typename T, unsigned D>
template<typename TT>
Vtl::ImAlg::WndFun::FlatTop< T, D >::FlatTop ( TT size_ ) [inline]

Методы

template<typename T, unsigned D>
static const char* Vtl::ImAlg::WndFun::FlatTop< T, D >::Name ( ) [inline, static]

template<typename T, unsigned D>
static double* Vtl::ImAlg::WndFun::FlatTop< T, D >::cof ( ) [inline, static, private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Класс IFF::FloatImageFile

IFF::FloatImageFile

Класс IFF::FloatImageFile

#include <ifloat.h>

Граф наследования:IFF::FloatImageFile:

[см. легенду]
Граф связей класса IFF::FloatImageFile:

[см. легенду]
Полный список членов класса

Открытые члены

void | writeHeader ()
void | readHeader ()
FloatImageFile ()
virtual | ~FloatImageFile ()
void | open (const char *szFileName, OpenMode access, int Width=0, int Heigth=0)
void | close ()
void | read (int x, int y, FloatWord *line, int len)
void | write (int x, int y, const FloatWord *line, int len)
int | Width () const
int | Height () const

Закрытые данные

Header head

Классы

struct | Header

Конструктор(ы)

FloatImageFile::FloatImageFile ( )

FloatImageFile::~FloatImageFile ( ) [virtual]

Методы

void FloatImageFile::writeHeader ( )

void FloatImageFile::readHeader ( )

void FloatImageFile::open | ( | const char * | szFileName,
 |  | OpenMode | access,
 |  | int | Width = 0,
 |  | int | Heigth = 0
 | ) |  |

void FloatImageFile::close ( )

void FloatImageFile::read | ( | int | x,
 |  | int | y,
 |  | FloatWord * | line,
 |  | int | len
 | ) |  |

void FloatImageFile::write | ( | int | x,
 |  | int | y,
 |  | const FloatWord * | line,
 |  | int | len
 | ) |  |

int IFF::FloatImageFile::Width ( ) const [inline]

int IFF::FloatImageFile::Height ( ) const [inline]

Данные класса

Header IFF::FloatImageFile::head [private]

Объявления и описания членов классов находятся в файлах:
  • ifloat.h
  • ifloat.cpp


Pipe Line Filters: Структура IFF::FloatImageFile::Header

IFF::FloatImageFile::Header

Структура IFF::FloatImageFile::Header

#include <ifloat.h>

Полный список членов класса

Открытые атрибуты

Byte | id [16]
uint32_t hdrsize
uint32_t width
uint32_t height
uint32_t | reserved [12]

Данные класса

Byte IFF::FloatImageFile::Header::id[16]

uint32_t IFF::FloatImageFile::Header::hdrsize

uint32_t IFF::FloatImageFile::Header::width

uint32_t IFF::FloatImageFile::Header::height

uint32_t IFF::FloatImageFile::Header::reserved[12]

Объявления и описания членов структуры находятся в файле:
  • ifloat.h


Pipe Line Filters: Шаблон структуры Dbg::Fmt< T, format_type >

Dbg::Fmt

Шаблон структуры Dbg::Fmt< T, format_type >

#include <sfm_dbg.h>

Полный список членов класса

Открытые члены

Fmt (const T &v)
std::ostream & | write (std::ostream &os)

Открытые атрибуты

const T & | value

template<typename T, int format_type = 0>
struct Dbg::Fmt< T, format_type >

Конструктор(ы)

template<typename T, int format_type = 0>
Dbg::Fmt< T, format_type >::Fmt ( const T & v ) [inline, explicit]

Методы

template<typename T, int format_type = 0>
std::ostream& Dbg::Fmt< T, format_type >::write ( std::ostream & os ) [inline]

Данные класса

template<typename T, int format_type = 0>
const T& Dbg::Fmt< T, format_type >::value

Объявления и описания членов структуры находятся в файле:
  • sfm_dbg.h


Pipe Line Filters: Шаблон структуры Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >

Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >

Шаблон структуры Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >

#include <sfm_dbg.h>

Полный список членов класса

Открытые типы

enum | Format { Default, RowsAndCols }
typedef Vtl::NumAlg::Lin::ublas::c_matrix<
T, M, N > 		Matrix

Открытые члены

Fmt (Matrix &m)
std::ostream & | write (std::ostream &os) const

Открытые атрибуты

const Matrix & | value

Закрытые члены

void | write_ (std::ostream &os, Loki::Int2Type< Default >) const
void | write_ (std::ostream &os, Loki::Int2Type< RowsAndCols >) const

template<typename T, int N, int M, int format>
struct Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >

Определения типов

template<typename T, int N, int M, int format>
typedef Vtl::NumAlg::Lin::ublas::c_matrix<T,M,N> Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >::Matrix

Перечисления

template<typename T, int N, int M, int format>
enum Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >::Format

Элементы перечислений:
Default
RowsAndCols

Конструктор(ы)

template<typename T, int N, int M, int format>
Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >::Fmt ( Matrix & m ) [inline, explicit]

Методы

template<typename T, int N, int M, int format>
std::ostream& Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >::write ( std::ostream & os ) const [inline]

template<typename T, int N, int M, int format>
void Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >::write_ | ( | std::ostream & | os,
 |  | Loki::Int2Type< Default > |  |
 | ) |  |  | const [inline, private]

template<typename T, int N, int M, int format>
void Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >::write_ | ( | std::ostream & | os,
 |  | Loki::Int2Type< RowsAndCols > |  |
 | ) |  |  | const [inline, private]

Данные класса

template<typename T, int N, int M, int format>
const Matrix& Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >::value

Объявления и описания членов структуры находятся в файле:
  • sfm_dbg.h


Pipe Line Filters: Шаблон структуры Basics3D::FmTools< T >

Basics3D::FmTools

Шаблон структуры Basics3D::FmTools< T >

#include <sfm_calibration.h>

Полный список членов класса

Открытые типы

typedef Vtl::NumAlg::Lin::ublas::c_matrix<
T, 3, 3 > 		Matrix
typedef Vtl::NumAlg::Lin::ublas::c_vector<
T, 3 > 		Vector3
typedef Vtl::NumAlg::Lin::ublas::c_matrix<
T, 3, 4 > 		Matrix_3x4
typedef Vtl::NumAlg::Lin::ublas::c_matrix<
T, 3, 3 >::value_type 		value_type

Открытые статические члены

static Matrix | Build_K (T focus_x, T focus_y, T u_0=T(0), T v_0=T(0), T skew=T(0))
static void | Build_K (Matrix &K, T focus_x, T focus_y, T u_0=T(0), T v_0=T(0), T skew=T(0))
static Matrix | Build_K (T focus)
static void | Build_K (Matrix &K, T focus)
static Matrix | fm2essential (const Matrix &K2, const Matrix &F, const Matrix &K1)
E = K'^T * F * K , here K2==K' and K1==K.
static void | fm2essential (Matrix &E, const Matrix &K2, const Matrix &F, const Matrix &K1)
E = K'^T * F * K , here K2==K' and K1==K.
static Matrix | essential2fm (const Matrix &K2, const Matrix &E, const Matrix &K1)
F= (K'^T)^(-1) * E * K^(-1) , here K2==K' and K1==K.
static void | essential2fm (Matrix &F, const Matrix &K2, const Matrix &E, const Matrix &K1)
F= (K'^T)^(-1) * E * K^(-1) , here K2==K' and K1==K.
static void | Build_P (Matrix_3x4 &P, const Matrix &K, const Matrix &R, const Vector3 &t)

Подробное описание

template<typename T>
struct Basics3D::FmTools< T >

Утилиты для работы с фундаментальной матрицей. Класс, а не пространство имен, чтобы можно было задавать тип данных (float, double) и было где определить типы (Matrix). Все функции статические.

Определения типов

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_matrix<T, 3, 3> Basics3D::FmTools< T >::Matrix

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_vector<T, 3> Basics3D::FmTools< T >::Vector3

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_matrix<T, 3, 4> Basics3D::FmTools< T >::Matrix_3x4

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_matrix<T, 3, 3>::value_type Basics3D::FmTools< T >::value_type

Методы

template<typename T>
static Matrix Basics3D::FmTools< T >::Build_K | ( | T | focus_x,
 |  | T | focus_y,
 |  | T | u_0 = T(0),
 |  | T | v_0 = T(0),
 |  | T | skew = T(0) |
 | ) |  |  | [inline, static]

template<typename T>
static void Basics3D::FmTools< T >::Build_K | ( | Matrix & | K,
 |  | T | focus_x,
 |  | T | focus_y,
 |  | T | u_0 = T(0),
 |  | T | v_0 = T(0),
 |  | T | skew = T(0) |
 | ) |  |  | [inline, static]

template<typename T>
static Matrix Basics3D::FmTools< T >::Build_K ( T focus ) [inline, static]

template<typename T>
static void Basics3D::FmTools< T >::Build_K | ( | Matrix & | K,
 |  | T | focus |
 | ) |  |  | [inline, static]

template<typename T>
static Matrix Basics3D::FmTools< T >::fm2essential | ( | const Matrix & | K2,
 |  | const Matrix & | F,
 |  | const Matrix & | K1 |
 | ) |  |  | [inline, static]

E = K'^T * F * K , here K2==K' and K1==K.

template<typename T>
static void Basics3D::FmTools< T >::fm2essential | ( | Matrix & | E,
 |  | const Matrix & | K2,
 |  | const Matrix & | F,
 |  | const Matrix & | K1 |
 | ) |  |  | [inline, static]

E = K'^T * F * K , here K2==K' and K1==K.

template<typename T>
static Matrix Basics3D::FmTools< T >::essential2fm | ( | const Matrix & | K2,
 |  | const Matrix & | E,
 |  | const Matrix & | K1 |
 | ) |  |  | [inline, static]

F= (K'^T)^(-1) * E * K^(-1) , here K2==K' and K1==K.

template<typename T>
static void Basics3D::FmTools< T >::essential2fm | ( | Matrix & | F,
 |  | const Matrix & | K2,
 |  | const Matrix & | E,
 |  | const Matrix & | K1 |
 | ) |  |  | [inline, static]

F= (K'^T)^(-1) * E * K^(-1) , here K2==K' and K1==K.

template<typename T>
static void Basics3D::FmTools< T >::Build_P | ( | Matrix_3x4 & | P,
 |  | const Matrix & | K,
 |  | const Matrix & | R,
 |  | const Vector3 & | t |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • sfm_calibration.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward

Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >

#include <convolve.h>

Полный список членов класса

Открытые члены

Forward (T B, T a1, T a2, T a3, T prev_in)
void | operator() (T &out, T in_cur, T in_next)
T | extent (T out, T in_cur, T in_next)
void | operator() (T out)

Закрытые данные

HeadF< T, D > | h
Tail< T > | t

template<typename T, unsigned D>
class Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >

Конструктор(ы)

template<typename T, unsigned D>
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >::Forward | ( | T | B,
 |  | T | a1,
 |  | T | a2,
 |  | T | a3,
 |  | T | prev_in |
 | ) |  |  | [inline]

Методы

template<typename T, unsigned D>
void Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >::operator() | ( | T & | out,
 |  | T | in_cur,
 |  | T | in_next |
 | ) |  |  | [inline]

template<typename T, unsigned D>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >::extent | ( | T | out,
 |  | T | in_cur,
 |  | T | in_next |
 | ) |  |  | [inline]

template<typename T, unsigned D>
void Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >::operator() ( T out ) [inline]

Данные класса

template<typename T, unsigned D>
HeadF<T,D> Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >::h [private]

template<typename T, unsigned D>
Tail<T> Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >::t [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Класс Basics3D::g

Basics3D::g

Класс Basics3D::g

#include <Func.h>

Граф наследования:Basics3D::g:

[см. легенду]
Граф связей класса Basics3D::g:

[см. легенду]
Полный список членов класса

Открытые члены

g (const double in_a, const double in_b, const double in_c, const double in_d, const double in_f, const double in_f1, const int in_n)
double | Func (const double in_t) const
double | Deriv (const double in_t) const
int | N ()

Закрытые данные

const double | a
const double | b
const double | c
const double | d
const double | f
const double | f1
const int | n

Конструктор(ы)

Basics3D::g::g | ( | const double | in_a,
 |  | const double | in_b,
 |  | const double | in_c,
 |  | const double | in_d,
 |  | const double | in_f,
 |  | const double | in_f1,
 |  | const int | in_n
 | ) |  |

Методы

double Basics3D::g::Func ( const double in_t ) const [virtual]

Замещает Basics3D::IFunc.

double Basics3D::g::Deriv ( const double in_t ) const [virtual]

Замещает Basics3D::IFuncWithDer.

int Basics3D::g::N ( )

Данные класса

const double Basics3D::g::a [private]

const double Basics3D::g::b [private]

const double Basics3D::g::c [private]

const double Basics3D::g::d [private]

const double Basics3D::g::f [private]

const double Basics3D::g::f1 [private]

const int Basics3D::g::n [private]

Объявления и описания членов классов находятся в файлах:
  • Func.h
  • Func.cpp


Pipe Line Filters: Класс Vtl::NumAlg::Spf::Gamma

Vtl::NumAlg::Spf::Gamma

Класс Vtl::NumAlg::Spf::Gamma

#include <spec_functions.h>

Полный список членов класса

Открытые статические члены

static float | gammln (float xx)
Returns the value [image] for x > 0.
static float | factrl (int n)
Returns the value n! as a floating-point number.
static float | bico (int n, int k)
Returns the binomial coefficient [image] as a floating-point number.
static float | factln (int n)
Returns ln(n!).
static float | beta (float z, float w)
Returns the value of the beta function B(z,w).
static float | P (float a, float x)
Returns the incomplete gamma function P(a; x).
static float | Q (float a, float x)
Returns the incomplete gamma function Q(a, x) - 1 = P(a; x).

Закрытые статические члены

static void | gser (float *gamser, float a, float x, float *gln)
static void | gcf (float *gammcf, float a, float x, float *gln)

Методы

static void Vtl::NumAlg::Spf::Gamma::gser | ( | float * | gamser,
 |  | float | a,
 |  | float | x,
 |  | float * | gln |
 | ) |  |  | [inline, static, private]

Returns the incomplete gamma function P(a; x) evaluated by its series representation as gamser. Also returns ln Г(alpha) as gln.

static void Vtl::NumAlg::Spf::Gamma::gcf | ( | float * | gammcf,
 |  | float | a,
 |  | float | x,
 |  | float * | gln |
 | ) |  |  | [inline, static, private]

Returns the incomplete gamma function Q(a; x) evaluated by its continued fraction representation as gammcf. Also returns ln Г(alpha) as gln.

static float Vtl::NumAlg::Spf::Gamma::gammln ( float xx ) [inline, static]

Returns the value [image] for x > 0.

static float Vtl::NumAlg::Spf::Gamma::factrl ( int n ) [inline, static]

Returns the value n! as a floating-point number.

static float Vtl::NumAlg::Spf::Gamma::bico | ( | int | n,
 |  | int | k |
 | ) |  |  | [inline, static]

Returns the binomial coefficient [image] as a floating-point number.

static float Vtl::NumAlg::Spf::Gamma::factln ( int n ) [inline, static]

Returns ln(n!).

static float Vtl::NumAlg::Spf::Gamma::beta | ( | float | z,
 |  | float | w |
 | ) |  |  | [inline, static]

Returns the value of the beta function B(z,w).

static float Vtl::NumAlg::Spf::Gamma::P | ( | float | a,
 |  | float | x |
 | ) |  |  | [inline, static]

Returns the incomplete gamma function P(a; x).

static float Vtl::NumAlg::Spf::Gamma::Q | ( | float | a,
 |  | float | x |
 | ) |  |  | [inline, static]

Returns the incomplete gamma function Q(a, x) - 1 = P(a; x).

Объявления и описания членов класса находятся в файле:
  • spec_functions.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F11::GammaCor< T >

Vtl::Plf::F11::GammaCor

Шаблон класса Vtl::Plf::F11::GammaCor< T >

functor GammaCor - выполняет гамма коррекцию, т.е. преобразует значение каждого пикселя V по закону $ M*(V/M)^(1/gamma) $ , где. M - максимально возможное значение пикселя, например для беззнаковых целых типов изображения M=(1<<bits)-1. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

GammaCor ()
GammaCor (T max_val, double _gamma)
T | operator() (T val) const

Закрытые данные

T | maxval
double | gamma

Подробное описание

template<typename T>
class Vtl::Plf::F11::GammaCor< T >

functor GammaCor - выполняет гамма коррекцию, т.е. преобразует значение каждого пикселя V по закону $ M*(V/M)^(1/gamma) $ , где. M - максимально возможное значение пикселя, например для беззнаковых целых типов изображения M=(1<<bits)-1.

Функтор для FilterLevels и постобработок во всех вильтрах. Каждый выход любого фильтра должен представляться, классом OutPort, его второй шаблонный параметр - функтор, который задает обработку пиксель в пиксель, которая будет проведена после того, как фильтр отработал и записал строку, но до того как будет проведены отражения буфера отнгосительно краев и данные станут доступны следующему фильтру. По возможности следует избегать использовать класс FilterLevels и по возможности пользоваться постобработками из за соображений эффективности. do nothing

Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T>
Vtl::Plf::F11::GammaCor< T >::GammaCor ( ) [inline]

template<typename T>
Vtl::Plf::F11::GammaCor< T >::GammaCor | ( | T | max_val,
 |  | double | _gamma |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::Plf::F11::GammaCor< T >::operator() ( T val ) const [inline]

Данные класса

template<typename T>
T Vtl::Plf::F11::GammaCor< T >::maxval [private]

template<typename T>
double Vtl::Plf::F11::GammaCor< T >::gamma [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F11::GammaCorMult< T >

Vtl::Plf::F11::GammaCorMult

Шаблон класса Vtl::Plf::F11::GammaCorMult< T >

functor GammaCorMult - Эквивалентен последовательному применению функторов Mult, затем GammaCor, но более вычислительно эффективен. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

GammaCorMult ()
GammaCorMult (T max_val, double _gamma, double mult_each_pixel)
T | operator() (T val) const

Закрытые данные

T | maxval
double | gamma
double | mult

Подробное описание

template<typename T>
class Vtl::Plf::F11::GammaCorMult< T >

functor GammaCorMult - Эквивалентен последовательному применению функторов Mult, затем GammaCor, но более вычислительно эффективен.

Функтор для FilterLevels и постобработок во всех вильтрах. Каждый выход любого фильтра должен представляться, классом OutPort, его второй шаблонный параметр - функтор, который задает обработку пиксель в пиксель, которая будет проведена после того, как фильтр отработал и записал строку, но до того как будет проведены отражения буфера отнгосительно краев и данные станут доступны следующему фильтру. По возможности следует избегать использовать класс FilterLevels и по возможности пользоваться постобработками из за соображений эффективности. do nothing

Примеры:

test_fast_gauss.cpp и test_plf_filters.cpp.

Конструктор(ы)

template<typename T>
Vtl::Plf::F11::GammaCorMult< T >::GammaCorMult ( ) [inline]

template<typename T>
Vtl::Plf::F11::GammaCorMult< T >::GammaCorMult | ( | T | max_val,
 |  | double | _gamma,
 |  | double | mult_each_pixel |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::Plf::F11::GammaCorMult< T >::operator() ( T val ) const [inline]

Данные класса

template<typename T>
T Vtl::Plf::F11::GammaCorMult< T >::maxval [private]

template<typename T>
double Vtl::Plf::F11::GammaCorMult< T >::gamma [private]

template<typename T>
double Vtl::Plf::F11::GammaCorMult< T >::mult [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >

Vtl::ImAlg::WndFun::Gauss

Шаблон класса Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >

Окно Гаусса (Gauss). Определяется формулой. Подробнее...

#include <windowing_fun.h>

Полный список членов класса

Открытые типы

typedef T | arg_type

Открытые члены

template<class TT, class TTT>
Gauss (TT sigma_, TTT N_sigmas_)
template<class TT>
T | operator() (TT x) const
arg_type | size () const
arg_type | center () const
arg_type | left () const
arg_type | right () const

Открытые статические члены

static const char * | Name ()

Закрытые данные

const T | mult
const T | sigma
const T | half_width

Подробное описание

template<typename T, unsigned D, bool norm_deriv = false>
class Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >

Окно Гаусса (Gauss). Определяется формулой.

> (1)

Параметры шаблона <typename T,unsigned D,bool norm_deriv=false> задают:

  • T - тип переменной для вычислений значения функции (типы с плпвающей точкой)
  • D - номер производной, 0 - сама функция, 1 -первая производная и.т.д.
  • norm_deriv - если true, то производные точно соответствуют функции (1), если false, то производные функции (1) определены с точностью до постоянного множителя ( [image]). когда это допустимо - последнее предпочтительнее, так как при norm_deriv=false значения возвращаемые функтором оказываются порядка единицы, а не числом с большим отрицательным значением степени.

Математические основы и краткое описание алгоритма

Так как окно Гаусса используется очень часто вместе со своими производными различных порядков (для вычисления производных яркости изображения путем свертки), получим общую формулу для производной произвольного порядка функции этого окна и прокоментируем алгоритм вычисления.

Введем функцию
> (2)

Тогда:

> (3)

Производные имеют вид:
> (4a)

...
> (4)
Последняя формула позволяет выразить производную от окна через функцию (процедуру вычисления) производной функции G.

Рассмотрим как вычисляется производная функции [image] .

В общем случае

> (5)

где [image] -полином степени n относительно переменной [image]. Из формул (5) и (4),(4a) следует, что

Отсюда:
> (6)
Эта реккурентная формула позволяет вычислить коэффициента полинома [image]. Из этой формулы можно сделать выводы, необходимые для построения алгоритма вычисления производных функции Гаусса.

1) Полином [image] имеет ненулевые коэффициенты только для четных степеней [image] при четном n и только нечетные - при нечетном n. Полином содержит таких слагаемых [n/2]+1 штук. Действительно,

из формулы (6) легко видеть, что если [image] имеет ненулевые коэффициенты только при четных степенях, то первое слагаемое в (6) перенесет эти коэффициенты со степени -m , 0<=m<=n на степень m+1 с изменением знака, а второе слагаемое (6) - со степени m на степень m-1 >=0, c умножением на целое число m.

2) Из доказательства предыдущего пункта получается следствие: Все коэффициенты полинома [image] являются целочисленными и ненулевыми (соответственно при четных или нечетных степенях, см. п. 1). Это существенно важно, так как позволяет представлять их в виде enum что в конечном итоге позволяет производить вычисления коэффициентов полиномов [image] во время компиляции, а не в runtime [Loki]

3) В [image] при старшей степени [image] коэффициент $ c_{n,n} = (-1)^n $, что очевидно следует из формулы (6).

4) Знак ненулевых коэффициентов чередуется начиная с $ c_{n,n} = (-1)^n $ по последовательности коэффициентов

5) Расписав явно представление [image] и используя формулу (6) легко получить реккурентное выражение для коэффициентов:

или, заменяя переменные

и для модуля коэффициентов:
> (7)
Алгоритм вычисления модуля коэффициентов по предыдущей фрормуле реализован в классе Vtl::Plf::Kernel::F::Impl::Gauss::c_mod <n,m>; А самих коэффициeнтов - по формуле
> $ c_{n,m} = (-1)^n (-1)^{[(n-m)/2]} |c_{n,m}| = (-1)^{[(n-m)/2]+n} |c_{n,m}| $ (8)
реализуется функцией Vtl::Plf::Kernel::F::Impl::Gauss int c<n,m>();

6) По свойствам 1, 3, 4 полином [image] можно выразить как

Где

  • полином по степеням
  • коэффициент при [image] равен 1
  • знаки коэффициентов чередуются [image] его вычисление реализуется шаблонной структурой Vtl::Plf::Kernel::F::Impl::Gauss::P <T,n,m>.
  • привнесение чередующегося знака при $ |c_{n,n}| $ реализуется шаблонной функцией Vtl::Plf::Kernel::F::Impl::Gauss::с <n,m>.

Окончательно, полином [image] вычисляется с помощью шаблонной функции template<unsigned n,typename T> T Vtl::Plf::Kernel::F::Impl::Gauss::Q(T x2,T x), где первый аргумен принимает значение x*x, а второй - x, собственно вычисление функции Гаусса и ее производных происходит по формуле (5). Следует отметить, что значительная часть вычислений происходит во время компиляции, а именно вычисление коэффициентов $ |c_{n,n}| $ и формирование из них полиномов [image] , [image] и собственно выражения задаваемого формулой (5) в виде явного арифметического выражения без каких либо циклов и рекурсий максимально оптимизированного для вычисления именно той производной Гаусса, которая указана вторым шаблонным аргументом D класса Vtl::Plf::Kernel::Gauss. В runtime происходит только вычисление этого выражения, построенного на этапе компиляции.

Примеры:

test_fast_gauss.cpp, test_plf_filters.cpp и test_plf_kernels.cpp.

Определения типов

template<typename T, unsigned D, bool norm_deriv = false>
typedef T Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >::arg_type

Конструктор(ы)

template<typename T, unsigned D, bool norm_deriv = false>
template<class TT, class TTT>
Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >::Gauss | ( | TT | sigma_,
 |  | TTT | N_sigmas_ |
 | ) |  |  | [inline]

Методы

template<typename T, unsigned D, bool norm_deriv = false>
static const char* Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >::Name ( ) [inline, static]

template<typename T, unsigned D, bool norm_deriv = false>
template<class TT>
T Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >::operator() ( TT x ) const [inline]

template<typename T, unsigned D, bool norm_deriv = false>
arg_type Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >::size ( ) const [inline]

template<typename T, unsigned D, bool norm_deriv = false>
arg_type Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >::center ( ) const [inline]

template<typename T, unsigned D, bool norm_deriv = false>
arg_type Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >::left ( ) const [inline]

template<typename T, unsigned D, bool norm_deriv = false>
arg_type Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >::right ( ) const [inline]

Данные класса

template<typename T, unsigned D, bool norm_deriv = false>
const T Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >::mult [private]

template<typename T, unsigned D, bool norm_deriv = false>
const T Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >::sigma [private]

template<typename T, unsigned D, bool norm_deriv = false>
const T Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >::half_width [private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон структуры Vtl::Types::TL::GE< s1, s2 >

Vtl::Types::TL::GE

Шаблон структуры Vtl::Types::TL::GE< s1, s2 >

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum { value = (s1>=s2) }

template<size_t s1, size_t s2>
struct Vtl::Types::TL::GE< s1, s2 >

Перечисления

template<size_t s1, size_t s2>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон класса Vtl::Plf::OLSI::Gistogramm< T >

Vtl::Plf::OLSI::Gistogramm

Шаблон класса Vtl::Plf::OLSI::Gistogramm< T >

Служит для .... . Подробнее...

#include <plf_gistogram.h>

Граф наследования:Vtl::Plf::OLSI::Gistogramm< T >:

[см. легенду]
Полный список членов класса

Открытые члены

Gistogramm ()
void | Init (int bits, int img_width, int size_of_ramka)
~Gistogramm ()
T | getMediana_value (int x)
void | add_del_lines_to_gist (const T *add, const T *del)
void | initGis_of_one_line (const T *start)
void | initMediansForGistogramms (void)

Защищенные члены

int * | get_gistogram (int x)
mediana< T > * | getMediana (int x)
void | del_insert_pixel_from_histogram (T I_del, T I_add, int x)

Защищенные данные

std::vector< int > | gisMem
std::vector< int * > | gishh
std::vector< mediana< T > > | gisMedians
int | _img_width
int | _size_of_ramka

Подробное описание

template<typename T>
class Vtl::Plf::OLSI::Gistogramm< T >

Служит для .... .

Автор - Сидоркина О.

Развернутое описание ..............

Конструктор(ы)

template<typename T>
Vtl::Plf::OLSI::Gistogramm< T >::Gistogramm ( ) [inline]

template<typename T>
Vtl::Plf::OLSI::Gistogramm< T >::~Gistogramm ( ) [inline]

Методы

template<typename T>
void Vtl::Plf::OLSI::Gistogramm< T >::Init | ( | int | bits,
 |  | int | img_width,
 |  | int | size_of_ramka |
 | ) |  |  | [inline]

Переопределяется в Vtl::Plf::OLSI::Gistogramm2< T >.

template<typename T>
T Vtl::Plf::OLSI::Gistogramm< T >::getMediana_value ( int x ) [inline]

Переопределяется в Vtl::Plf::OLSI::Gistogramm2< T >.

template<typename T>
int* Vtl::Plf::OLSI::Gistogramm< T >::get_gistogram ( int x ) [inline, protected]

template<typename T>
mediana<T>* Vtl::Plf::OLSI::Gistogramm< T >::getMediana ( int x ) [inline, protected]

template<typename T>
void Vtl::Plf::OLSI::Gistogramm< T >::del_insert_pixel_from_histogram | ( | T | I_del,
 |  | T | I_add,
 |  | int | x |
 | ) |  |  | [inline, protected]

template<typename T>
void Vtl::Plf::OLSI::Gistogramm< T >::add_del_lines_to_gist | ( | const T * | add,
 |  | const T * | del |
 | ) |  |  | [inline]

Переопределяется в Vtl::Plf::OLSI::Gistogramm2< T >.

template<typename T>
void Vtl::Plf::OLSI::Gistogramm< T >::initGis_of_one_line ( const T * start ) [inline]

Переопределяется в Vtl::Plf::OLSI::Gistogramm2< T >.

template<typename T>
void Vtl::Plf::OLSI::Gistogramm< T >::initMediansForGistogramms ( void ) [inline]

Переопределяется в Vtl::Plf::OLSI::Gistogramm2< T >.

Данные класса

template<typename T>
std::vector<int> Vtl::Plf::OLSI::Gistogramm< T >::gisMem [protected]

template<typename T>
std::vector<int*> Vtl::Plf::OLSI::Gistogramm< T >::gishh [protected]

template<typename T>
std::vector<mediana<T> > Vtl::Plf::OLSI::Gistogramm< T >::gisMedians [protected]

template<typename T>
int Vtl::Plf::OLSI::Gistogramm< T >::_img_width [protected]

template<typename T>
int Vtl::Plf::OLSI::Gistogramm< T >::_size_of_ramka [protected]

Объявления и описания членов класса находятся в файле:
  • plf_gistogram.h


Pipe Line Filters: Шаблон класса Vtl::Plf::OLSI::Gistogramm2< T >

Vtl::Plf::OLSI::Gistogramm2

Шаблон класса Vtl::Plf::OLSI::Gistogramm2< T >

Служит для .... . Подробнее...

#include <plf_gistogram.h>

Граф наследования:Vtl::Plf::OLSI::Gistogramm2< T >:

[см. легенду]
Граф связей класса Vtl::Plf::OLSI::Gistogramm2< T >:

[см. легенду]
Полный список членов класса

Открытые члены

void | Init (int bits, int img_width, int size_of_ramka)
~Gistogramm2 ()
void | add_del_lines_to_gist (const T *add, const T *del)
void | initGis_of_one_line (const T *start)
void | initMediansForGistogramms (void)
T | getMediana_value (int x)

Закрытые члены

int * | get_gisInf (int i)
void | init_gisInf ()
void | init_secondParts ()
int | get_secont_part (int x)

Закрытые данные

std::vector< int > | gisInf
std::vector< int > | secondParts

Подробное описание

template<typename T>
class Vtl::Plf::OLSI::Gistogramm2< T >

Служит для .... .

Автор - Сидоркина О.

Развернутое описание ..............

Конструктор(ы)

template<typename T>
Vtl::Plf::OLSI::Gistogramm2< T >::~Gistogramm2 ( ) [inline]

Методы

template<typename T>
void Vtl::Plf::OLSI::Gistogramm2< T >::Init | ( | int | bits,
 |  | int | img_width,
 |  | int | size_of_ramka |
 | ) |  |  | [inline]

Переопределяет метод предка Vtl::Plf::OLSI::Gistogramm< T >.

template<typename T>
int* Vtl::Plf::OLSI::Gistogramm2< T >::get_gisInf ( int i ) [inline, private]

template<typename T>
void Vtl::Plf::OLSI::Gistogramm2< T >::init_gisInf ( ) [inline, private]

template<typename T>
void Vtl::Plf::OLSI::Gistogramm2< T >::init_secondParts ( ) [inline, private]

template<typename T>
int Vtl::Plf::OLSI::Gistogramm2< T >::get_secont_part ( int x ) [inline, private]

template<typename T>
void Vtl::Plf::OLSI::Gistogramm2< T >::add_del_lines_to_gist | ( | const T * | add,
 |  | const T * | del |
 | ) |  |  | [inline]

Переопределяет метод предка Vtl::Plf::OLSI::Gistogramm< T >.

template<typename T>
void Vtl::Plf::OLSI::Gistogramm2< T >::initGis_of_one_line ( const T * start ) [inline]

Переопределяет метод предка Vtl::Plf::OLSI::Gistogramm< T >.

template<typename T>
void Vtl::Plf::OLSI::Gistogramm2< T >::initMediansForGistogramms ( void ) [inline]

Переопределяет метод предка Vtl::Plf::OLSI::Gistogramm< T >.

template<typename T>
T Vtl::Plf::OLSI::Gistogramm2< T >::getMediana_value ( int x ) [inline]

Переопределяет метод предка Vtl::Plf::OLSI::Gistogramm< T >.

Данные класса

template<typename T>
std::vector<int> Vtl::Plf::OLSI::Gistogramm2< T >::gisInf [private]

template<typename T>
std::vector<int> Vtl::Plf::OLSI::Gistogramm2< T >::secondParts [private]

Объявления и описания членов класса находятся в файле:
  • plf_gistogram.h


Pipe Line Filters: Шаблон класса Vtl::Plf::GradientCorr< T, P >

Vtl::Plf::GradientCorr

Шаблон класса Vtl::Plf::GradientCorr< T, P >
[Complex filters]

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

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::GradientCorr< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::GradientCorr< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

OutPort< T > & | out_xx ()
Должен быть подключен! Модуль градиента.
OutPort< T > & | out_xy ()
Может быть не подключен! Производная по X (X-компонента вектора градиента).
OutPort< T > & | out_yy ()
Может быть не подключен! Производная по Y (Y-компонента вектора градиента).
GradientCorr ()
output_maxval==float((1<<bits)-1)
GradientCorr (std::string name, float sigma_=1.0f, float env_sigmas=2.5f, P func=F23::CorrMatrix< T, T & >())
void | Init (std::string name, float sigma_=1.0f, float env_sigmas=2.5f, P func=F23::CorrMatrix< T, T & >())
virtual | ~GradientCorr ()

Открытые атрибуты

InPortComb< T > | in

Закрытые типы

typedef Vtl::ImAlg::WndFun::Gauss<
T, 0 > 		G0
typedef Vtl::ImAlg::WndFun::Gauss<
T, 1 > 		G1

Закрытые члены

GradientCorr (const GradientCorr &)
GradientCorr & | operator= (const GradientCorr &)

Закрытые данные

float | sigma
Vtl::Plf::Kernel::FKern< T > | gauss
Vtl::Plf::Kernel::FKern< T > | gauss_deriv
Vtl::Plf::SeparableConv2D< T > | gx
Vtl::Plf::SeparableConv2D< T > | gy
Vtl::Plf::PixByPix2to3< T,
Vtl::Plf::F23::CorrMatrix<
T, T & > > 		corr

Подробное описание

template<typename T, class P = F::CorrMatrix<T,T&>>
class Vtl::Plf::GradientCorr< T, P >

Вычисляет произведения компонент вектора градиента: .

Определения типов

template<typename T, class P = F::CorrMatrix<T,T&>>
typedef Vtl::ImAlg::WndFun::Gauss<T,0> Vtl::Plf::GradientCorr< T, P >::G0 [private]

template<typename T, class P = F::CorrMatrix<T,T&>>
typedef Vtl::ImAlg::WndFun::Gauss<T,1> Vtl::Plf::GradientCorr< T, P >::G1 [private]

Конструктор(ы)

template<typename T, class P = F::CorrMatrix<T,T&>>
Vtl::Plf::GradientCorr< T, P >::GradientCorr ( const GradientCorr< T, P > & ) [private]

template<typename T, class P = F::CorrMatrix<T,T&>>
Vtl::Plf::GradientCorr< T, P >::GradientCorr ( ) [inline]

output_maxval==float((1<<bits)-1)

template<typename T, class P = F::CorrMatrix<T,T&>>
Vtl::Plf::GradientCorr< T, P >::GradientCorr | ( | std::string | name,
 |  | float | sigma_ = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | P | func = F23::CorrMatrix<T,T&>() |
 | ) |  |  | [inline]

template<typename T, class P = F::CorrMatrix<T,T&>>
virtual Vtl::Plf::GradientCorr< T, P >::~GradientCorr ( ) [inline, virtual]

Методы

template<typename T, class P = F::CorrMatrix<T,T&>>
GradientCorr& Vtl::Plf::GradientCorr< T, P >::operator= ( const GradientCorr< T, P > & ) [private]

template<typename T, class P = F::CorrMatrix<T,T&>>
OutPort<T >& Vtl::Plf::GradientCorr< T, P >::out_xx ( ) [inline]

Должен быть подключен! Модуль градиента.

template<typename T, class P = F::CorrMatrix<T,T&>>
OutPort<T >& Vtl::Plf::GradientCorr< T, P >::out_xy ( ) [inline]

Может быть не подключен! Производная по X (X-компонента вектора градиента).

template<typename T, class P = F::CorrMatrix<T,T&>>
OutPort<T >& Vtl::Plf::GradientCorr< T, P >::out_yy ( ) [inline]

Может быть не подключен! Производная по Y (Y-компонента вектора градиента).

template<typename T, class P = F::CorrMatrix<T,T&>>
void Vtl::Plf::GradientCorr< T, P >::Init | ( | std::string | name,
 |  | float | sigma_ = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | P | func = F23::CorrMatrix<T,T&>() |
 | ) |  |  | [inline]

Данные класса

template<typename T, class P = F::CorrMatrix<T,T&>>
float Vtl::Plf::GradientCorr< T, P >::sigma [private]

template<typename T, class P = F::CorrMatrix<T,T&>>
Vtl::Plf::Kernel::FKern<T> Vtl::Plf::GradientCorr< T, P >::gauss [private]

template<typename T, class P = F::CorrMatrix<T,T&>>
Vtl::Plf::Kernel::FKern<T> Vtl::Plf::GradientCorr< T, P >::gauss_deriv [private]

template<typename T, class P = F::CorrMatrix<T,T&>>
Vtl::Plf::SeparableConv2D<T> Vtl::Plf::GradientCorr< T, P >::gx [private]

template<typename T, class P = F::CorrMatrix<T,T&>>
Vtl::Plf::SeparableConv2D<T> Vtl::Plf::GradientCorr< T, P >::gy [private]

template<typename T, class P = F::CorrMatrix<T,T&>>
Vtl::Plf::PixByPix2to3<T,Vtl::Plf::F23::CorrMatrix<T,T&> > Vtl::Plf::GradientCorr< T, P >::corr [private]

template<typename T, class P = F::CorrMatrix<T,T&>>
InPortComb<T> Vtl::Plf::GradientCorr< T, P >::in

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::Plf::GradientModul< T, P >

Vtl::Plf::GradientModul

Шаблон класса Vtl::Plf::GradientModul< T, P >
[Complex filters]

Вычисляет модуль градиента для каждой точки изображения по локальной окрестности. Контурный препарат Канни. Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::GradientModul< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::GradientModul< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

OutPort< T, PostProc > & | out ()
Должен быть подключен! Модуль градиента.
OutPort< T, P > & | out_gx ()
Может быть не подключен! Производная по X (X-компонента вектора градиента).
OutPort< T, P > & | out_gy ()
Может быть не подключен! Производная по Y (Y-компонента вектора градиента).
GradientModul ()
GradientModul (std::string name, T output_maxval, float sigma_=1.0f, float env_sigmas=2.5f, float gamma_correction=2.2f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
output_maxval==float((1<<bits)-1)
void | Init (std::string name, T output_maxval, float sigma_=1.0f, float env_sigmas=2.5f, float gamma_correction=2.2f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
output_maxval==float((1<<bits)-1)
virtual | ~GradientModul ()

Открытые атрибуты

InPortComb< T > | in

Закрытые типы

typedef Vtl::Plf::F11::Comb<
T, Vtl::Plf::F11::GammaCorMult<
T >, P > 		PostProc
typedef Vtl::ImAlg::WndFun::Gauss<
T, 0 > 		G0
typedef Vtl::ImAlg::WndFun::Gauss<
T, 1 > 		G1

Закрытые члены

GradientModul (const GradientModul &)
GradientModul & | operator= (const GradientModul &)

Закрытые данные

T | sigma
Vtl::Plf::Kernel::FKern< T > | gauss
Vtl::Plf::Kernel::FKern< T > | gauss_deriv
Vtl::Plf::SeparableConv2D< T > | gx
Vtl::Plf::SeparableConv2D< T > | gy
Vtl::Plf::PixByPix2to1< T,
Vtl::Plf::F21::SqrtOfSumSqr<
T >, PostProc > 		sum_sqr

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::GradientModul< T, P >

Вычисляет модуль градиента для каждой точки изображения по локальной окрестности. Контурный препарат Канни.

Структура фильтра GradientModul вычисления модуля градиента (контурный препарат)

Результат воздействия на изображение

этим фильтром
Примеры:

test_plf_filters.cpp.

Определения типов

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
typedef Vtl::Plf::F11::Comb<T,Vtl::Plf::F11::GammaCorMult<T>,P> Vtl::Plf::GradientModul< T, P >::PostProc [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
typedef Vtl::ImAlg::WndFun::Gauss<T,0> Vtl::Plf::GradientModul< T, P >::G0 [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
typedef Vtl::ImAlg::WndFun::Gauss<T,1> Vtl::Plf::GradientModul< T, P >::G1 [private]

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::GradientModul< T, P >::GradientModul ( const GradientModul< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::GradientModul< T, P >::GradientModul ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::GradientModul< T, P >::GradientModul | ( | std::string | name,
 |  | T | output_maxval,
 |  | float | sigma_ = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | float | gamma_correction = 2.2f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

output_maxval==float((1<<bits)-1)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::GradientModul< T, P >::~GradientModul ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
GradientModul& Vtl::Plf::GradientModul< T, P >::operator= ( const GradientModul< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,PostProc >& Vtl::Plf::GradientModul< T, P >::out ( ) [inline]

Должен быть подключен! Модуль градиента.

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::GradientModul< T, P >::out_gx ( ) [inline]

Может быть не подключен! Производная по X (X-компонента вектора градиента).

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::GradientModul< T, P >::out_gy ( ) [inline]

Может быть не подключен! Производная по Y (Y-компонента вектора градиента).

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::GradientModul< T, P >::Init | ( | std::string | name,
 |  | T | output_maxval,
 |  | float | sigma_ = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | float | gamma_correction = 2.2f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

output_maxval==float((1<<bits)-1)

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
T Vtl::Plf::GradientModul< T, P >::sigma [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Kernel::FKern<T> Vtl::Plf::GradientModul< T, P >::gauss [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Kernel::FKern<T> Vtl::Plf::GradientModul< T, P >::gauss_deriv [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SeparableConv2D<T> Vtl::Plf::GradientModul< T, P >::gx [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SeparableConv2D<T> Vtl::Plf::GradientModul< T, P >::gy [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix2to1<T,Vtl::Plf::F21::SqrtOfSumSqr<T>,PostProc> Vtl::Plf::GradientModul< T, P >::sum_sqr [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPortComb<T> Vtl::Plf::GradientModul< T, P >::in

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Класс Vtl::Plf::Impl::GraphBuilder

Vtl::Plf::Impl::GraphBuilder

Класс Vtl::Plf::Impl::GraphBuilder

Строит граф системы потоковой фильтрации, обеспечивает топологическую сортировку графа, поиск петель и циклов, проверку все ли источники и приемники заданы, отсутствие "висячих" связей. Результат возвращает в std::vector<Node> graph; класса FiltersSystem. Подробнее...

#include <plf_sys.h>

Полный список членов класса

Открытые члены

std::string | BackEdges ()
GraphBuilder (std::vector< Node > &_graph, std::vector< Impl::Edge > &_edges)
template<typename IterSrc>
void | build (IterSrc begin, IterSrc end)
void | build (FilterElementary *begin, FilterElementary *end)
template<typename Iter>
FilterElementary * | checkInGraph (Iter begin, Iter end)
template<typename Iter>
FilterElementary * | checkInGraph (Iter *begin, Iter *end)
void | findParentNotInGraph ()

Закрытые члены

void | fillTopologicallySortedVector ()
bool | isWhite (FilterElementary *filter)
Вызывается DFS_Visit(), checkInGraph(), findParentNotInGraph().
bool | isGray (FilterElementary *filter)
void | DFS_Visit (FilterElementary *filter)

Закрытые данные

std::vector< Node > & | graph
std::vector< Edge > & | edges
std::list< Node > | src
std::list< Node > | sorted
std::list< Node > | dst
int | id
std::ostringstream | os_back

Подробное описание

Строит граф системы потоковой фильтрации, обеспечивает топологическую сортировку графа, поиск петель и циклов, проверку все ли источники и приемники заданы, отсутствие "висячих" связей. Результат возвращает в std::vector<Node> graph; класса FiltersSystem.

Конструктор(ы)

Vtl::Plf::Impl::GraphBuilder::GraphBuilder | ( | std::vector< Node > & | _graph,
 |  | std::vector< Impl::Edge > & | _edges |
 | ) |  |  | [inline]

Методы

std::string Vtl::Plf::Impl::GraphBuilder::BackEdges ( ) [inline]

template<typename IterSrc>
void Vtl::Plf::Impl::GraphBuilder::build | ( | IterSrc | begin,
 |  | IterSrc | end |
 | ) |  |  | [inline]

void Vtl::Plf::Impl::GraphBuilder::build | ( | FilterElementary * | begin,
 |  | FilterElementary * | end |
 | ) |  |  | [inline]

template<typename Iter>
FilterElementary* Vtl::Plf::Impl::GraphBuilder::checkInGraph | ( | Iter | begin,
 |  | Iter | end |
 | ) |  |  | [inline]

template<typename Iter>
FilterElementary* Vtl::Plf::Impl::GraphBuilder::checkInGraph | ( | Iter * | begin,
 |  | Iter * | end |
 | ) |  |  | [inline]

void Vtl::Plf::Impl::GraphBuilder::findParentNotInGraph ( ) [inline]

void Vtl::Plf::Impl::GraphBuilder::fillTopologicallySortedVector ( ) [inline, private]

bool Vtl::Plf::Impl::GraphBuilder::isWhite ( FilterElementary * filter ) [inline, private]

Вызывается DFS_Visit(), checkInGraph(), findParentNotInGraph().

bool Vtl::Plf::Impl::GraphBuilder::isGray ( FilterElementary * filter ) [inline, private]

Вызывается DFS_Visit(), Вызывать только если !isWhite(), иначе обращение по неверному адресу!

void Vtl::Plf::Impl::GraphBuilder::DFS_Visit ( FilterElementary * filter ) [inline, private]

Лемма 23.10 Ориентированный граф не имеет циклов тогда и только тогда, когда поиск в глубину не находит в нем обратных ребер. Обратное ребро - это ребро соединяющее вершину с ее предком в дереве поиска в глубину. При поиске в глубину - Обратное ребро это когда при исследовании ребра найденная вершина серая.

Данные класса

std::vector<Node>& Vtl::Plf::Impl::GraphBuilder::graph [private]

std::vector<Edge>& Vtl::Plf::Impl::GraphBuilder::edges [private]

std::list<Node> Vtl::Plf::Impl::GraphBuilder::src [private]

std::list<Node> Vtl::Plf::Impl::GraphBuilder::sorted [private]

std::list<Node> Vtl::Plf::Impl::GraphBuilder::dst [private]

int Vtl::Plf::Impl::GraphBuilder::id [private]

std::ostringstream Vtl::Plf::Impl::GraphBuilder::os_back [private]

Объявления и описания членов класса находятся в файле:
  • plf_sys.h


Pipe Line Filters: Шаблон структуры Vtl::Types::TL::GT< s1, s2 >

Vtl::Types::TL::GT

Шаблон структуры Vtl::Types::TL::GT< s1, s2 >

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum { value = (s1>s2) }

template<size_t s1, size_t s2>
struct Vtl::Types::TL::GT< s1, s2 >

Перечисления

template<size_t s1, size_t s2>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >

Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >

Шаблон структуры Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >

Предикат GreaterThan: Specialization for boost::ublas::c_vector. Подробнее...

#include <_num_implicit.h>

Полный список членов класса

Открытые типы

enum | { N = N_ }
typedef T_ | value_type
typedef Vtl::NumAlg::Lin::ublas::c_vector<
T_, N_ > 		Vector

Открытые члены

gt (const Vector &vec)
bool | operator() (int elem1, int elem2) const

Открытые атрибуты

const Vector & | v

Подробное описание

template<class T_, int N_>
struct Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >

Предикат GreaterThan: Specialization for boost::ublas::c_vector.

Определения типов

template<class T_, int N_>
typedef T_ Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >::value_type

template<class T_, int N_>
typedef Vtl::NumAlg::Lin::ublas::c_vector<T_,N_> Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >::Vector

Перечисления

template<class T_, int N_>
anonymous enum

Элементы перечислений:
N

Конструктор(ы)

template<class T_, int N_>
Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >::gt ( const Vector & vec ) [inline]

Методы

template<class T_, int N_>
bool Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >::operator() | ( | int | elem1,
 |  | int | elem2 |
 | ) |  |  | const [inline]

Данные класса

template<class T_, int N_>
const Vector& Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >::v

Объявления и описания членов структуры находятся в файле:
  • _num_implicit.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::Hamming< T, D >

Vtl::ImAlg::WndFun::Hamming

Шаблон класса Vtl::ImAlg::WndFun::Hamming< T, D >

Окно Хeмминга (Hamming). Определяется формулой [image] при 0 <= x <= size-1. Подробнее...

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Hamming< T, D >:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::Hamming< T, D >:

[см. легенду]
Полный список членов класса

Открытые члены

template<typename TT>
Hamming (TT size_)

Открытые статические члены

static const char * | Name ()

Закрытые статические члены

static double * | cof ()

Подробное описание

template<typename T, unsigned D>
class Vtl::ImAlg::WndFun::Hamming< T, D >

Окно Хeмминга (Hamming). Определяется формулой [image] при 0 <= x <= size-1.

См. также:
common_Trig
Примеры:

test_plf_kernels.cpp.

Конструктор(ы)

template<typename T, unsigned D>
template<typename TT>
Vtl::ImAlg::WndFun::Hamming< T, D >::Hamming ( TT size_ ) [inline]

Методы

template<typename T, unsigned D>
static const char* Vtl::ImAlg::WndFun::Hamming< T, D >::Name ( ) [inline, static]

template<typename T, unsigned D>
static double* Vtl::ImAlg::WndFun::Hamming< T, D >::cof ( ) [inline, static, private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::Hann< T, D >

Vtl::ImAlg::WndFun::Hann

Шаблон класса Vtl::ImAlg::WndFun::Hann< T, D >

Окно Ханна (Hann). Определяется формулой [image] при 0 <= x <= size-1. Подробнее...

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Hann< T, D >:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::Hann< T, D >:

[см. легенду]
Полный список членов класса

Открытые члены

template<typename TT>
Hann (TT size_)

Открытые статические члены

static const char * | Name ()

Закрытые статические члены

static double * | cof ()

Подробное описание

template<typename T, unsigned D>
class Vtl::ImAlg::WndFun::Hann< T, D >

Окно Ханна (Hann). Определяется формулой [image] при 0 <= x <= size-1.

См. также:
common_Trig
Примеры:

test_fast_gauss.cpp, test_plf_filters.cpp и test_plf_kernels.cpp.

Конструктор(ы)

template<typename T, unsigned D>
template<typename TT>
Vtl::ImAlg::WndFun::Hann< T, D >::Hann ( TT size_ ) [inline]

Методы

template<typename T, unsigned D>
static const char* Vtl::ImAlg::WndFun::Hann< T, D >::Name ( ) [inline, static]

template<typename T, unsigned D>
static double* Vtl::ImAlg::WndFun::Hann< T, D >::cof ( ) [inline, static, private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F31::Harris< T >

Vtl::Plf::F31::Harris

Шаблон класса Vtl::Plf::F31::Harris< T >

Функтор Harris для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет величину отклика детектора Харриса-Стефенса: , Обычно k=0.04. Используется свойство независимости следа и детерминанта матрицы от выбора системы координат.
Внимание: этот функтор на выход выдает значение не $ Harris $, а [image] . Корень четвертой степени появляется из соображений, что [image], а множитель [image] из-за того, что производные [image], т.е. обратно пропорциональны приращению координаты на которой в среднем оценивается приращение функции (производные вычисляются с помощью свертки). Множитель 6.3 - эмпирический. Эта модификация выполнена для того, чтобы динамический диапазон получаемого изображения соответствовал динамическомй диапазону фильтруемого изображения (например [0-255] -> [0-255].
Важно: множитель [image] существенен для монгомасштабных (multiscale) детекторов Харриса, впервые введен в статье
Y. Dufournaud, C. Schmid, and R. Horaud, "Matching images with different resolutions", Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR’00), 2000 (Hilton Head Island, SC, USA). V. 1, P. 612-618. ISBN: 0-7695-0662-3. http://citeseer.ist.psu.edu/dufournaud00matching.html
Сам детектор Харриса вводится в статье:
C. G. Harris and M. Stephens, "A combined corner and edge detector," In Proc. 4th Alvey Vision Conf., Manchester, pages 147-151, 1988. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

Harris (T sigma=1.0f, T coef=0.04f)
T | operator() (T v11, T v12, T v22) const

Закрытые данные

T | k
T | mult

Подробное описание

template<typename T>
class Vtl::Plf::F31::Harris< T >

Функтор Harris для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет величину отклика детектора Харриса-Стефенса: , Обычно k=0.04. Используется свойство независимости следа и детерминанта матрицы от выбора системы координат.
Внимание: этот функтор на выход выдает значение не $ Harris $, а [image] . Корень четвертой степени появляется из соображений, что [image], а множитель [image] из-за того, что производные [image], т.е. обратно пропорциональны приращению координаты на которой в среднем оценивается приращение функции (производные вычисляются с помощью свертки). Множитель 6.3 - эмпирический. Эта модификация выполнена для того, чтобы динамический диапазон получаемого изображения соответствовал динамическомй диапазону фильтруемого изображения (например [0-255] -> [0-255].
Важно: множитель [image] существенен для монгомасштабных (multiscale) детекторов Харриса, впервые введен в статье
Y. Dufournaud, C. Schmid, and R. Horaud, "Matching images with different resolutions", Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR’00), 2000 (Hilton Head Island, SC, USA). V. 1, P. 612-618. ISBN: 0-7695-0662-3. http://citeseer.ist.psu.edu/dufournaud00matching.html
Сам детектор Харриса вводится в статье:
C. G. Harris and M. Stephens, "A combined corner and edge detector," In Proc. 4th Alvey Vision Conf., Manchester, pages 147-151, 1988.
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T>
Vtl::Plf::F31::Harris< T >::Harris | ( | T | sigma = 1.0f,
 |  | T | coef = 0.04f |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::Plf::F31::Harris< T >::operator() | ( | T | v11,
 |  | T | v12,
 |  | T | v22 |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
T Vtl::Plf::F31::Harris< T >::k [private]

template<typename T>
T Vtl::Plf::F31::Harris< T >::mult [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Plf::HarrisLaplace< T, Func, P >

Vtl::Plf::HarrisLaplace

Шаблон класса Vtl::Plf::HarrisLaplace< T, Func, P >
[Complex filters]

Обнаруживает. Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::HarrisLaplace< T, Func, P >:

[см. легенду]
Граф связей класса Vtl::Plf::HarrisLaplace< T, Func, P >:

[см. легенду]
Полный список членов класса

Открытые члены

OutPort< T, P > & | out ()
HarrisLaplace ()
HarrisLaplace (std::string name, float sigma_=1.0f, float env_sigmas=2.5f, Func functor=Vtl::Plf::F31::Harris< T >(), P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (std::string name, float sigma=1.0f, float env_sigmas=2.5f, Func functor=Vtl::Plf::F31::Harris< T >(), P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~HarrisLaplace ()

Открытые атрибуты

InPortComb< T > | in

Закрытые типы

typedef Vtl::ImAlg::WndFun::Gauss<
T, 0 > 		G0

Закрытые члены

HarrisLaplace (const HarrisLaplace &)
HarrisLaplace & | operator= (const HarrisLaplace &)

Закрытые данные

Vtl::Plf::GradientCorr< T,
F23::CorrMatrix< T, T & > > 		corr
Vtl::Plf::Average< T > | avg_xx
Vtl::Plf::Average< T > | avg_xy
Vtl::Plf::Average< T > | avg_yy
Vtl::Plf::Kernel::FKern< T > | gauss
Vtl::Plf::PixByPix5to1< T,
Func, P > 		det

Подробное описание

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::HarrisLaplace< T, Func, P >

Обнаруживает.
Примеры:

test_plf_filters.cpp.

Определения типов

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
typedef Vtl::ImAlg::WndFun::Gauss<T,0> Vtl::Plf::HarrisLaplace< T, Func, P >::G0 [private]

Конструктор(ы)

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::HarrisLaplace< T, Func, P >::HarrisLaplace ( const HarrisLaplace< T, Func, P > & ) [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::HarrisLaplace< T, Func, P >::HarrisLaplace ( ) [inline]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::HarrisLaplace< T, Func, P >::HarrisLaplace | ( | std::string | name,
 |  | float | sigma_ = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | Func | functor = Vtl::Plf::F31::Harris<T>(),
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::HarrisLaplace< T, Func, P >::~HarrisLaplace ( ) [inline, virtual]

Методы

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
HarrisLaplace& Vtl::Plf::HarrisLaplace< T, Func, P >::operator= ( const HarrisLaplace< T, Func, P > & ) [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::HarrisLaplace< T, Func, P >::out ( ) [inline]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::HarrisLaplace< T, Func, P >::Init | ( | std::string | name,
 |  | float | sigma = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | Func | functor = Vtl::Plf::F31::Harris<T>(),
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

Данные класса

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::GradientCorr<T,F23::CorrMatrix<T,T&> > Vtl::Plf::HarrisLaplace< T, Func, P >::corr [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Average<T> Vtl::Plf::HarrisLaplace< T, Func, P >::avg_xx [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Average<T> Vtl::Plf::HarrisLaplace< T, Func, P >::avg_xy [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Average<T> Vtl::Plf::HarrisLaplace< T, Func, P >::avg_yy [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Kernel::FKern<T> Vtl::Plf::HarrisLaplace< T, Func, P >::gauss [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix5to1<T,Func,P > Vtl::Plf::HarrisLaplace< T, Func, P >::det [private]

template<typename T, class Func = Vtl::Plf::F31::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPortComb<T> Vtl::Plf::HarrisLaplace< T, Func, P >::in

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F51::HarrisLaplace< T >

Vtl::Plf::F51::HarrisLaplace

Шаблон класса Vtl::Plf::F51::HarrisLaplace< T >

Функтор HarrisLaplace для PixByPix5to1. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

HarrisLaplace (T sigma=1.0f, T coef=0.04f)
T | operator() (T v11, T v12, T v22, T d2x, T d2y) const

Закрытые данные

T | k
T | mult

Подробное описание

template<typename T>
class Vtl::Plf::F51::HarrisLaplace< T >

Функтор HarrisLaplace для PixByPix5to1.

Из трех величин [image] представляющих собой элементы

Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T>
Vtl::Plf::F51::HarrisLaplace< T >::HarrisLaplace | ( | T | sigma = 1.0f,
 |  | T | coef = 0.04f |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::Plf::F51::HarrisLaplace< T >::operator() | ( | T | v11,
 |  | T | v12,
 |  | T | v22,
 |  | T | d2x,
 |  | T | d2y |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
T Vtl::Plf::F51::HarrisLaplace< T >::k [private]

template<typename T>
T Vtl::Plf::F51::HarrisLaplace< T >::mult [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Fpie::HarrisNMS< T >

Vtl::Plf::Fpie::HarrisNMS

Шаблон класса Vtl::Plf::Fpie::HarrisNMS< T >

Функтор HarrisNMS для EnvProc1to1. Находит точки максимальной яркости. Проверяет 8 соседних пикселей, если яркость в каждом из них меньше яркости центральной точки пишет на выход значение яркости без изменений, в противном случае - выход равен 0. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

void | set_IterNextLineShift (int modul_nls)
Extent | ext () const
HarrisNMS ()
T | operator() (const T *input)

Закрытые данные

int | nls

Подробное описание

template<typename T>
class Vtl::Plf::Fpie::HarrisNMS< T >

Функтор HarrisNMS для EnvProc1to1. Находит точки максимальной яркости. Проверяет 8 соседних пикселей, если яркость в каждом из них меньше яркости центральной точки пишет на выход значение яркости без изменений, в противном случае - выход равен 0.
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T>
Vtl::Plf::Fpie::HarrisNMS< T >::HarrisNMS ( ) [inline]

Методы

template<typename T>
void Vtl::Plf::Fpie::HarrisNMS< T >::set_IterNextLineShift ( int modul_nls ) [inline]

!!! MUST be called by filter BEFORE using 'operator()', by default next line shist parameter set to value which probably most quick lead a 'Invalid memory access' error (for bug search convenience).

template<typename T>
Extent Vtl::Plf::Fpie::HarrisNMS< T >::ext ( ) const [inline]

template<typename T>
T Vtl::Plf::Fpie::HarrisNMS< T >::operator() ( const T * input ) [inline]

Данные класса

template<typename T>
int Vtl::Plf::Fpie::HarrisNMS< T >::nls [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Fpie::HarrisNMS_Smooth< T >

Vtl::Plf::Fpie::HarrisNMS_Smooth

Шаблон класса Vtl::Plf::Fpie::HarrisNMS_Smooth< T >

Функтор HarrisNMS_Smooth для EnvProc1to1 аналогичен HarrisNMS, но возвращает 1/10 от суммы центрального пикселя и всей окрестности 3х3. Находит точки максимальной яркости. Проверяет 8 соседних пикселей, если яркость в каждом из них меньше яркости центральной точки пишет на выход значение яркости без изменений, в противном случае - выход равен 0. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

void | set_IterNextLineShift (int modul_nls)
Extent | ext () const
HarrisNMS_Smooth ()
T | operator() (const T *input)

Закрытые данные

int | nls

Подробное описание

template<typename T>
class Vtl::Plf::Fpie::HarrisNMS_Smooth< T >

Функтор HarrisNMS_Smooth для EnvProc1to1 аналогичен HarrisNMS, но возвращает 1/10 от суммы центрального пикселя и всей окрестности 3х3. Находит точки максимальной яркости. Проверяет 8 соседних пикселей, если яркость в каждом из них меньше яркости центральной точки пишет на выход значение яркости без изменений, в противном случае - выход равен 0.

Конструктор(ы)

template<typename T>
Vtl::Plf::Fpie::HarrisNMS_Smooth< T >::HarrisNMS_Smooth ( ) [inline]

Методы

template<typename T>
void Vtl::Plf::Fpie::HarrisNMS_Smooth< T >::set_IterNextLineShift ( int modul_nls ) [inline]

!!! MUST be called by filter BEFORE using 'operator()', by default next line shist parameter set to value which probably most quick lead a 'Invalid memory access' error (for bug search convenience).

template<typename T>
Extent Vtl::Plf::Fpie::HarrisNMS_Smooth< T >::ext ( ) const [inline]

template<typename T>
T Vtl::Plf::Fpie::HarrisNMS_Smooth< T >::operator() ( const T * input ) [inline]

Данные класса

template<typename T>
int Vtl::Plf::Fpie::HarrisNMS_Smooth< T >::nls [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp

Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье). Подробнее...

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

Hartley2Amp (T hartley[], T amp[])
template<bool upper_half, typename I>
void | operator() (I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf)
template<typename I>
void | operator() (I k, Loki::Int2Type< false >)
template<typename I>
void | operator() (I k, Loki::Int2Type< true >)

Закрытые члены

template<typename I>
void | set_amp (I plus_k, I minus_k, T amplitude)
template<typename I>
void | set_amp (I plus_k, I minus_k, T amplitude, Loki::Int2Type< true >)
template<typename I>
void | set_amp (I plus_k, I minus_k, T amplitude, Loki::Int2Type< false >)

Закрытые данные

T * | hartley_
T * | amp_

Подробное описание

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
class Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье).

Амплитуда помещается в такой же по размерам массив, а так как она симметрична относительно нулевой частоты (вещественный сигнал), то вычисляется только одна полуплоскость, которая - определяется вторым шаблонным параметром.

См. также:
Hartley2Phase
Функтор применим для любой размерности пространства, в т.ч. ndim>2.

Конструктор(ы)

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >::Hartley2Amp | ( | T | hartley[],
 |  | T | amp[] |
 | ) |  |  | [inline]

Методы

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >::set_amp | ( | I | plus_k,
 |  | I | minus_k,
 |  | T | amplitude |
 | ) |  |  | [inline, private]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >::set_amp | ( | I | plus_k,
 |  | I | minus_k,
 |  | T | amplitude,
 |  | Loki::Int2Type< true > |  |
 | ) |  |  | [inline, private]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >::set_amp | ( | I | plus_k,
 |  | I | minus_k,
 |  | T | amplitude,
 |  | Loki::Int2Type< false > |  |
 | ) |  |  | [inline, private]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >::operator() | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > | up_hlf |
 | ) |  |  | [inline]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >::operator() | ( | I | k,
 |  | Loki::Int2Type< false > |  |
 | ) |  |  | [inline]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >::operator() | ( | I | k,
 |  | Loki::Int2Type< true > |  |
 | ) |  |  | [inline]

Данные класса

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >::hartley_ [private]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >::amp_ [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown

Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье). Подробнее...

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

Hartley2AmpDown (T hartley[], T amp[], size_t n[])
template<bool upper_half, typename I>
void | operator() (I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf)
template<typename I>
void | operator() (I k, Loki::Int2Type< false >)
template<typename I>
void | operator() (I k, Loki::Int2Type< true >)

Закрытые члены

template<typename I>
void | set_amp (I plus_k, I minus_k, T amplitude, Loki::Int2Type< true >)
template<typename I>
void | set_amp (I plus_k, I minus_k, T amplitude, Loki::Int2Type< false >)

Закрытые данные

T * | hartley_
T * | amp_

Подробное описание

template<unsigned ndim, typename T>
class Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье).

Амплитуда помещается в массив половинного размера, как будто бы в массив полного размера, но его нижнюю половину. Так как она симметрична относительно нулевой частоты (вещественный сигнал), то вычисляется только одна полуплоскость - нижняя. Она и помещается в массив amp.

Функтор применим для любой размерности пространства, в т.ч. ndim>2.

Конструктор(ы)

template<unsigned ndim, typename T>
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >::Hartley2AmpDown | ( | T | hartley[],
 |  | T | amp[],
 |  | size_t | n[] |
 | ) |  |  | [inline]

Методы

template<unsigned ndim, typename T>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >::set_amp | ( | I | plus_k,
 |  | I | minus_k,
 |  | T | amplitude,
 |  | Loki::Int2Type< true > |  |
 | ) |  |  | [inline, private]

template<unsigned ndim, typename T>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >::set_amp | ( | I | plus_k,
 |  | I | minus_k,
 |  | T | amplitude,
 |  | Loki::Int2Type< false > |  |
 | ) |  |  | [inline, private]

template<unsigned ndim, typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >::operator() | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > | up_hlf |
 | ) |  |  | [inline]

template<unsigned ndim, typename T>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >::operator() | ( | I | k,
 |  | Loki::Int2Type< false > |  |
 | ) |  |  | [inline]

template<unsigned ndim, typename T>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >::operator() | ( | I | k,
 |  | Loki::Int2Type< true > |  |
 | ) |  |  | [inline]

Данные класса

template<unsigned ndim, typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >::hartley_ [private]

template<unsigned ndim, typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >::amp_ [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im

Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

Hartley2Im (T data_in[], T data_out[])
template<bool upper_half, typename I>
void | operator() (I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf)
template<bool upper_half, typename I>
void | operator() (I k, Loki::Int2Type< upper_half >)

Закрытые данные

T * | data_in_
T * | data_out_

template<typename T>
class Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >

Конструктор(ы)

template<typename T>
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >::Hartley2Im | ( | T | data_in[],
 |  | T | data_out[] |
 | ) |  |  | [inline]

Методы

template<typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >::operator() | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > | up_hlf |
 | ) |  |  | [inline]

template<typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >::operator() | ( | I | k,
 |  | Loki::Int2Type< upper_half > |  |
 | ) |  |  | [inline]

Данные класса

template<typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >::data_in_ [private]

template<typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >::data_out_ [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T >

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul

Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T >

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

Hartley2Modul (T data_in[], T data_out[])
template<typename I>
void | operator() (I plus_k, I minus_k)
template<typename I>
void | operator() (I plus_k)

Закрытые данные

T * | data_in_
T * | data_out_

template<typename T>
class Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T >

Конструктор(ы)

template<typename T>
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T >::Hartley2Modul | ( | T | data_in[],
 |  | T | data_out[] |
 | ) |  |  | [inline]

Методы

template<typename T>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T >::operator() | ( | I | plus_k,
 |  | I | minus_k |
 | ) |  |  | [inline]

template<typename T>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T >::operator() ( I plus_k ) [inline]

Данные класса

template<typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T >::data_in_ [private]

template<typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T >::data_out_ [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase

Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде. Подробнее...

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

Hartley2Phase (T hartley[], T phase[])
Hartley2Phase (T hartley_phase[])
template<bool upper_half, typename I>
void | operator() (I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf)
template<bool upper_half, typename I>
void | operator() (I k, Loki::Int2Type< upper_half >)

Закрытые данные

T * | hartley_
T * | phase_

Подробное описание

template<typename T>
class Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде.

Фаза может быть помещена в новый массив или вместо ПХ.

См. также:
Hartley2PhaseAmp
Функтор применим для любой размерности пространства, в т.ч. ndim>2.

Конструктор(ы)

template<typename T>
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >::Hartley2Phase | ( | T | hartley[],
 |  | T | phase[] |
 | ) |  |  | [inline]

template<typename T>
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >::Hartley2Phase ( T hartley_phase[] ) [inline]

Методы

template<typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >::operator() | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > | up_hlf |
 | ) |  |  | [inline]

template<typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >::operator() | ( | I | k,
 |  | Loki::Int2Type< upper_half > |  |
 | ) |  |  | [inline]

Данные класса

template<typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >::hartley_ [private]

template<typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >::phase_ [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp

Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье) и фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде. Подробнее...

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

Hartley2PhaseAmp (T hartley[], T amp[], T phase[])
Hartley2PhaseAmp (T hartley[], T amp[], T phase[], unsigned ndim, size_t n[])
Hartley2PhaseAmp (T hartley_phase[], T amp[])
template<unsigned ndim>
Hartley2PhaseAmp (T hartley_phase[], T amp[], size_t n[])
template<bool upper_half, typename I>
void | operator() (I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf)
template<typename I>
void | operator() (I k, Loki::Int2Type< false >)
template<typename I>
void | operator() (I k, Loki::Int2Type< true >)

Закрытые члены

template<typename I>
void | set_amp (I plus_k, I minus_k, T amplitude)
template<typename I>
void | set_amp (I plus_k, I minus_k, T amplitude, Loki::Int2Type< true >)
template<typename I>
void | set_amp (I plus_k, I minus_k, T amplitude, Loki::Int2Type< false >)

Закрытые данные

T * | hartley_
T * | amp_
T * | phase_

Подробное описание

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
class Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье) и фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде.

Фаза может быть помещена в новый массив или вместо ПХ. Амплитуда помещается в такой же по размерам массив, а так как она симметрична относительно нулевой частоты (вещественный сигнал), то вычисляется только одна полуплоскость, которая - определяется вторым шаблонным параметром.

См. также:
Hartley2Phase
Функтор применим для любой размерности пространства, в т.ч. ndim>2.

Конструктор(ы)

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >::Hartley2PhaseAmp | ( | T | hartley[],
 |  | T | amp[],
 |  | T | phase[] |
 | ) |  |  | [inline]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >::Hartley2PhaseAmp | ( | T | hartley[],
 |  | T | amp[],
 |  | T | phase[],
 |  | unsigned | ndim,
 |  | size_t | n[] |
 | ) |  |  | [inline]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >::Hartley2PhaseAmp | ( | T | hartley_phase[],
 |  | T | amp[] |
 | ) |  |  | [inline]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
template<unsigned ndim>
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >::Hartley2PhaseAmp | ( | T | hartley_phase[],
 |  | T | amp[],
 |  | size_t | n[] |
 | ) |  |  | [inline]

Методы

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >::set_amp | ( | I | plus_k,
 |  | I | minus_k,
 |  | T | amplitude |
 | ) |  |  | [inline, private]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >::set_amp | ( | I | plus_k,
 |  | I | minus_k,
 |  | T | amplitude,
 |  | Loki::Int2Type< true > |  |
 | ) |  |  | [inline, private]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >::set_amp | ( | I | plus_k,
 |  | I | minus_k,
 |  | T | amplitude,
 |  | Loki::Int2Type< false > |  |
 | ) |  |  | [inline, private]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >::operator() | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > | up_hlf |
 | ) |  |  | [inline]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >::operator() | ( | I | k,
 |  | Loki::Int2Type< false > |  |
 | ) |  |  | [inline]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >::operator() | ( | I | k,
 |  | Loki::Int2Type< true > |  |
 | ) |  |  | [inline]

Данные класса

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >::hartley_ [private]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >::amp_ [private]

template<typename T, bool amp_in_up_half_plane, bool only_half_amp = false>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >::phase_ [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown

Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье) и фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде. Подробнее...

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

Hartley2PhaseAmpDown (T hartley[], T amp[], T phase[], size_t n[])
Hartley2PhaseAmpDown (T hartley_phase[], T amp[], size_t n[])
template<bool upper_half, typename I>
void | operator() (I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf)
template<typename I>
void | operator() (I k, Loki::Int2Type< false >)
template<typename I>
void | operator() (I k, Loki::Int2Type< true >)

Закрытые члены

template<typename I>
void | set_amp (I plus_k, I minus_k, T amplitude, Loki::Int2Type< true >)
template<typename I>
void | set_amp (I plus_k, I minus_k, T amplitude, Loki::Int2Type< false >)

Закрытые данные

T * | hartley_
T * | amp_
T * | phase_

Подробное описание

template<unsigned ndim, typename T>
class Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье) и фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде.

Фаза может быть помещена в новый массив или вместо ПХ. Амплитуда помещается в массив половинного размера, как будто бы в массив полного размера, его нижнюю половину. Так как она симметрична относительно нулевой частоты (вещественный сигнал), то вычисляется только одна полуплоскость - нижняя. Она и помещается в массив amp.

Функтор применим для любой размерности пространства, в т.ч. ndim>2.

Конструктор(ы)

template<unsigned ndim, typename T>
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >::Hartley2PhaseAmpDown | ( | T | hartley[],
 |  | T | amp[],
 |  | T | phase[],
 |  | size_t | n[] |
 | ) |  |  | [inline]

template<unsigned ndim, typename T>
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >::Hartley2PhaseAmpDown | ( | T | hartley_phase[],
 |  | T | amp[],
 |  | size_t | n[] |
 | ) |  |  | [inline]

Методы

template<unsigned ndim, typename T>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >::set_amp | ( | I | plus_k,
 |  | I | minus_k,
 |  | T | amplitude,
 |  | Loki::Int2Type< true > |  |
 | ) |  |  | [inline, private]

template<unsigned ndim, typename T>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >::set_amp | ( | I | plus_k,
 |  | I | minus_k,
 |  | T | amplitude,
 |  | Loki::Int2Type< false > |  |
 | ) |  |  | [inline, private]

template<unsigned ndim, typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >::operator() | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > | up_hlf |
 | ) |  |  | [inline]

template<unsigned ndim, typename T>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >::operator() | ( | I | k,
 |  | Loki::Int2Type< false > |  |
 | ) |  |  | [inline]

template<unsigned ndim, typename T>
template<typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >::operator() | ( | I | k,
 |  | Loki::Int2Type< true > |  |
 | ) |  |  | [inline]

Данные класса

template<unsigned ndim, typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >::hartley_ [private]

template<unsigned ndim, typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >::amp_ [private]

template<unsigned ndim, typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >::phase_ [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T >

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re

Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T >

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

Hartley2Re (T data_in[], T data_out[])
template<bool upper_half, typename I>
void | operator() (I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf)
template<bool upper_half, typename I>
void | operator() (I k, Loki::Int2Type< upper_half >)

Закрытые данные

T * | data_in_
T * | data_out_

template<typename T>
class Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T >

Конструктор(ы)

template<typename T>
Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T >::Hartley2Re | ( | T | data_in[],
 |  | T | data_out[] |
 | ) |  |  | [inline]

Методы

template<typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T >::operator() | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > | up_hlf |
 | ) |  |  | [inline]

template<typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T >::operator() | ( | I | k,
 |  | Loki::Int2Type< upper_half > |  |
 | ) |  |  | [inline]

Данные класса

template<typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T >::data_in_ [private]

template<typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T >::data_out_ [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >

Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >

Шаблон класса Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >

Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ и приводится только для сравнения и полноты. Ищется сдвиг, поворот и масштаб (до 1.8). Подробнее...

#include <img_registration.h>

Граф наследования:Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >:

[см. легенду]
Граф связей класса Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef Vtl::ImAlg::Model::Offset<
Real_t > 		Model

Открытые члены

virtual | ~Hartley ()
Hartley ()
void | Init (size_t width, size_t height)
template<unsigned n_img, typename Iter>
void | Insert (Vtl::Plf::OutPortNoPostProc< Real_t > *input, Iter src_begin, Iter src_end)
void | Run (Model &model)

Закрытые члены

template<unsigned n_img>
Real_t * | img_H ()
Real_t * | img_Tmp ()
template<unsigned n_img>
void | AfterInsert ()

Закрытые данные

size_t | n [2]

Подробное описание

template<typename Real_t>
class Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >

Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ и приводится только для сравнения и полноты. Ищется сдвиг, поворот и масштаб (до 1.8).

Определения типов

template<typename Real_t>
typedef Vtl::ImAlg::Model::Offset<Real_t> Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >::Model

Конструктор(ы)

template<typename Real_t>
virtual Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >::~Hartley ( ) [inline, virtual]

template<typename Real_t>
Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >::Hartley ( ) [inline]

Методы

template<typename Real_t>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >::Init | ( | size_t | width,
 |  | size_t | height |
 | ) |  |  | [inline]

template<typename Real_t>
template<unsigned n_img>
Real_t* Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >::img_H ( ) [inline, private]

template<typename Real_t>
Real_t* Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >::img_Tmp ( ) [inline, private]

template<typename Real_t>
template<unsigned n_img, typename Iter>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >::Insert | ( | Vtl::Plf::OutPortNoPostProc< Real_t > * | input,
 |  | Iter | src_begin,
 |  | Iter | src_end |
 | ) |  |  | [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >::Run ( Model & model ) [inline]

template<typename Real_t>
template<unsigned n_img>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >::AfterInsert ( ) [inline, private]

Данные класса

template<typename Real_t>
size_t Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >::n[2] [private]

Объявления и описания членов класса находятся в файле:
  • img_registration.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >

Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >

Шаблон класса Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >

Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным [Yurin_RegBushBroom2008] на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ. Ищется сдвиг, поворот и масштаб (до 1.8). Подробнее...

#include <img_registration.h>

Граф наследования:Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >:

[см. легенду]
Граф связей класса Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef Vtl::ImAlg::Model::Similarity<
Real_t > 		Model

Открытые члены

virtual | ~Hartley ()
Hartley ()
void | Init (size_t size, bool is_edged)
size_t | Size () const
template<unsigned n_img, typename Iter>
void | Insert (Vtl::Plf::OutPortNoPostProc< Real_t > *input, Iter src_begin, Iter src_end)
void | Run (Model &model, int w, int h)

Закрытые члены

template<unsigned n_img>
Real_t * | img_H ()
Real_t * | img_Tmp ()
template<unsigned n_img>
Real_t * | img_Amp ()
template<unsigned n_img>
void | AfterInsert ()
void | MinusMean (const Real_t *data, size_t len, Real_t *out)
template<unsigned n_img>
void | _RotScaleOffset_1 (bool highpass, bool windowing)
void | angle_shift_specif (Container< Real_t > &cont, const Model &model)
void | find_rotate_scale (Container< Real_t > &cont_amp1)

Закрытые данные

size_t | size
Vtl::ImAlg::Resamp::LogGrid<
float > 		lsg
size_t | n [2]
bool | is_edged

Подробное описание

template<typename Real_t>
class Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >

Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным [Yurin_RegBushBroom2008] на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ. Ищется сдвиг, поворот и масштаб (до 1.8).

Определения типов

template<typename Real_t>
typedef Vtl::ImAlg::Model::Similarity<Real_t> Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::Model

Конструктор(ы)

template<typename Real_t>
virtual Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::~Hartley ( ) [inline, virtual]

template<typename Real_t>
Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::Hartley ( ) [inline]

Методы

template<typename Real_t>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::Init | ( | size_t | size,
 |  | bool | is_edged |
 | ) |  |  | [inline]

template<typename Real_t>
size_t Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::Size ( ) const [inline]

template<typename Real_t>
template<unsigned n_img>
Real_t* Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::img_H ( ) [inline, private]

template<typename Real_t>
Real_t* Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::img_Tmp ( ) [inline, private]

template<typename Real_t>
template<unsigned n_img>
Real_t* Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::img_Amp ( ) [inline, private]

template<typename Real_t>
template<unsigned n_img, typename Iter>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::Insert | ( | Vtl::Plf::OutPortNoPostProc< Real_t > * | input,
 |  | Iter | src_begin,
 |  | Iter | src_end |
 | ) |  |  | [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::Run | ( | Model & | model,
 |  | int | w,
 |  | int | h |
 | ) |  |  | [inline]

template<typename Real_t>
template<unsigned n_img>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::AfterInsert ( ) [inline, private]

template<typename Real_t>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::MinusMean | ( | const Real_t * | data,
 |  | size_t | len,
 |  | Real_t * | out |
 | ) |  |  | [inline, private]

template<typename Real_t>
template<unsigned n_img>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::_RotScaleOffset_1 | ( | bool | highpass,
 |  | bool | windowing |
 | ) |  |  | [inline, private]

template<typename Real_t>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::angle_shift_specif | ( | Container< Real_t > & | cont,
 |  | const Model & | model |
 | ) |  |  | [inline, private]

template<typename Real_t>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::find_rotate_scale ( Container< Real_t > & cont_amp1 ) [inline, private]

Данные класса

template<typename Real_t>
size_t Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::size [private]

template<typename Real_t>
Vtl::ImAlg::Resamp::LogGrid<float> Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::lsg [private]

template<typename Real_t>
size_t Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::n[2] [private]

template<typename Real_t>
bool Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >::is_edged [private]

Объявления и описания членов класса находятся в файле:
  • img_registration.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >

Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >

Шаблон класса Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >

Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным [Yurin_RegBushBroom2008] на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ и приводится только для сравнения и полноты. Ищется сдвиг, поворот и масштаб (до 1.8). Подробнее...

#include <img_registration.h>

Граф наследования:Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >:

[см. легенду]
Граф связей класса Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef Vtl::ImAlg::Model::SkewYOffset<
Real_t > 		Model

Открытые члены

virtual | ~Hartley ()
Hartley ()
void | Init (size_t size)
template<unsigned n_img, typename Iter>
void | Insert (Vtl::Plf::OutPortNoPostProc< Real_t > *input, Iter src_begin, Iter src_end)
void | Run (Model &model, int w, int h)

Закрытые члены

template<unsigned n_img>
Real_t * | img_H ()
Real_t * | img_Tmp ()
template<unsigned n_img>
Real_t * | img_Amp ()
Real_t * | img_Sino ()
template<unsigned n_img>
void | AfterInsert ()
void | MinusMean (const Real_t *data, size_t len, Real_t *out)
void | _SkewOffset_2 (float *mat)

Закрытые статические члены

static void | Hough (Real_t angle_from, Real_t angle_to, Real_t *img, Real_t *sino, size_t width, size_t height)

Закрытые данные

size_t | n [2]

Подробное описание

template<typename Real_t>
class Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >

Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным [Yurin_RegBushBroom2008] на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ и приводится только для сравнения и полноты. Ищется сдвиг, поворот и масштаб (до 1.8).

Определения типов

template<typename Real_t>
typedef Vtl::ImAlg::Model::SkewYOffset<Real_t> Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::Model

Конструктор(ы)

template<typename Real_t>
virtual Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::~Hartley ( ) [inline, virtual]

template<typename Real_t>
Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::Hartley ( ) [inline]

Методы

template<typename Real_t>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::Init ( size_t size ) [inline]

template<typename Real_t>
template<unsigned n_img>
Real_t* Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::img_H ( ) [inline, private]

template<typename Real_t>
Real_t* Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::img_Tmp ( ) [inline, private]

template<typename Real_t>
template<unsigned n_img>
Real_t* Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::img_Amp ( ) [inline, private]

template<typename Real_t>
Real_t* Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::img_Sino ( ) [inline, private]

template<typename Real_t>
template<unsigned n_img, typename Iter>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::Insert | ( | Vtl::Plf::OutPortNoPostProc< Real_t > * | input,
 |  | Iter | src_begin,
 |  | Iter | src_end |
 | ) |  |  | [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::Run | ( | Model & | model,
 |  | int | w,
 |  | int | h |
 | ) |  |  | [inline]

template<typename Real_t>
template<unsigned n_img>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::AfterInsert ( ) [inline, private]

template<typename Real_t>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::MinusMean | ( | const Real_t * | data,
 |  | size_t | len,
 |  | Real_t * | out |
 | ) |  |  | [inline, private]

template<typename Real_t>
void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::_SkewOffset_2 ( float * mat ) [inline, private]

template<typename Real_t>
static void Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::Hough | ( | Real_t | angle_from,
 |  | Real_t | angle_to,
 |  | Real_t * | img,
 |  | Real_t * | sino,
 |  | size_t | width,
 |  | size_t | height |
 | ) |  |  | [inline, static, private]

Данные класса

template<typename Real_t>
size_t Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >::n[2] [private]

Объявления и описания членов класса находятся в файле:
  • img_registration.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 >

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 >

Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 >

#include <convolve.h>

Полный список членов класса

Открытые члены

HeadF (T B_, T prev_in)
T | operator() (T cur, T next) const

Закрытые данные

const T | B

template<typename T>
class Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 >

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 >::HeadF | ( | T | B_,
 |  | T | prev_in |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 >::operator() | ( | T | cur,
 |  | T | next |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
const T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 >::B [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >

Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >

#include <convolve.h>

Полный список членов класса

Открытые члены

HeadF (T B_, T prev_in)
T | operator() (T cur, T next)

Закрытые данные

const T | B2
T | prev

template<typename T>
class Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >::HeadF | ( | T | B_,
 |  | T | prev_in |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >::operator() | ( | T | cur,
 |  | T | next |
 | ) |  |  | [inline]

Данные класса

template<typename T>
const T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >::B2 [private]

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >::prev [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >

Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >

#include <convolve.h>

Полный список членов класса

Открытые члены

HeadF (T B_, T prev_in)
T | operator() (T cur, T next)

Закрытые данные

const T | B
T | prev

template<typename T>
class Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >::HeadF | ( | T | B_,
 |  | T | prev_in |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >::operator() | ( | T | cur,
 |  | T | next |
 | ) |  |  | [inline]

Данные класса

template<typename T>
const T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >::B [private]

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >::prev [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >

Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >

#include <convolve.h>

Полный список членов класса

Открытые члены

HeadF (T B_, T prev_in)
T | operator() (T cur, T next)

Закрытые данные

const T | B
T | prev

template<typename T>
class Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >::HeadF | ( | T | B_,
 |  | T | prev_in |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >::operator() | ( | T | cur,
 |  | T | next |
 | ) |  |  | [inline]

Данные класса

template<typename T>
const T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >::B [private]

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >::prev [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >

Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >

#include <convolve.h>

Полный список членов класса

Открытые члены

HeadR (T B_, T prev_in)
T | operator() (T cur, T next) const

Закрытые данные

const T | B

template<typename T>
class Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >::HeadR | ( | T | B_,
 |  | T | prev_in |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >::operator() | ( | T | cur,
 |  | T | next |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
const T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >::B [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >

Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >

#include <convolve.h>

Полный список членов класса

Открытые члены

HeadR (T B_, T prev_in)
T | operator() (T cur, T next) const

Закрытые данные

const T | B

template<typename T>
class Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >::HeadR | ( | T | B_,
 |  | T | prev_in |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >::operator() | ( | T | cur,
 |  | T | next |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
const T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >::B [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >

Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >

#include <convolve.h>

Полный список членов класса

Открытые члены

HeadR (T B_, T prev_in)
T | operator() (T cur, T next)

Закрытые данные

const T | B
T | prev

template<typename T>
class Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >::HeadR | ( | T | B_,
 |  | T | prev_in |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >::operator() | ( | T | cur,
 |  | T | next |
 | ) |  |  | [inline]

Данные класса

template<typename T>
const T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >::B [private]

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >::prev [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >

Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >

#include <convolve.h>

Полный список членов класса

Открытые члены

HeadR (T B_, T prev_in)
T | operator() (T cur, T next)

Закрытые данные

const T | B2
T | prev

template<typename T>
class Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >::HeadR | ( | T | B_,
 |  | T | prev_in |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >::operator() | ( | T | cur,
 |  | T | next |
 | ) |  |  | [inline]

Данные класса

template<typename T>
const T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >::B2 [private]

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >::prev [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Hanina::Hessian3D< T >

Hanina::Hessian3D

Шаблон класса Hanina::Hessian3D< T >

#include <ss_ridge_det.h>

Полный список членов класса

Открытые члены

template<typename T1>
Hessian3D (const T1 *img, int width, int height, int nls)
template<typename T1>
void | operator() (float sigma, T1 *max_eig, T1 *vx1, T1 *vy1, T1 *vt1, T1 *vx2, T1 *vy2, T1 *vt2)
template<typename T1>
void | operator() (float sigma, T1 *max_eig, T1 *vx1, T1 *vy1, T1 *vt1, T1 *vx2, T1 *vy2, T1 *vt2, T *grad_x, T *grad_y)
void | calc_grad_from (float sigma, const T *data, T *grad_x, T *grad_y)
void | calc_deriv_from (float sigma, const T *data)
void | calc_deriv (float sigma)

Закрытые данные

const int | w
const int | h
const int | sz
std::vector< T > | _data
std::vector< T > | _Gxx
std::vector< T > | _Gxy
std::vector< T > | _Gyy
std::vector< T > | _Gxxx
std::vector< T > | _Gyyy
std::vector< T > | _Gxyy
std::vector< T > | _Gyxx
std::vector< T > | _Gxxxx
std::vector< T > | _Gxxyy
std::vector< T > | _Gyyyy
T * | data
T * | Gxx
T * | Gxy
T * | Gyy
T * | Gxxx
T * | Gyyy
T * | Gxyy
T * | Gyxx
T * | Gxxxx
T * | Gxxyy
T * | Gyyyy

Подробное описание

template<typename T>
class Hanina::Hessian3D< T >

вычисление сверток с гауссом и его производными до 4 порядка

Конструктор(ы)

template<typename T>
template<typename T1>
Hanina::Hessian3D< T >::Hessian3D | ( | const T1 * | img,
 |  | int | width,
 |  | int | height,
 |  | int | nls |
 | ) |  |  | [inline]

Методы

template<typename T>
template<typename T1>
void Hanina::Hessian3D< T >::operator() | ( | float | sigma,
 |  | T1 * | max_eig,
 |  | T1 * | vx1,
 |  | T1 * | vy1,
 |  | T1 * | vt1,
 |  | T1 * | vx2,
 |  | T1 * | vy2,
 |  | T1 * | vt2 |
 | ) |  |  | [inline]

template<typename T>
template<typename T1>
void Hanina::Hessian3D< T >::operator() | ( | float | sigma,
 |  | T1 * | max_eig,
 |  | T1 * | vx1,
 |  | T1 * | vy1,
 |  | T1 * | vt1,
 |  | T1 * | vx2,
 |  | T1 * | vy2,
 |  | T1 * | vt2,
 |  | T * | grad_x,
 |  | T * | grad_y |
 | ) |  |  | [inline]

template<typename T>
void Hanina::Hessian3D< T >::calc_grad_from | ( | float | sigma,
 |  | const T * | data,
 |  | T * | grad_x,
 |  | T * | grad_y |
 | ) |  |  | [inline]

template<typename T>
void Hanina::Hessian3D< T >::calc_deriv_from | ( | float | sigma,
 |  | const T * | data |
 | ) |  |  | [inline]

template<typename T>
void Hanina::Hessian3D< T >::calc_deriv ( float sigma ) [inline]

Данные класса

template<typename T>
const int Hanina::Hessian3D< T >::w [private]

template<typename T>
const int Hanina::Hessian3D< T >::h [private]

template<typename T>
const int Hanina::Hessian3D< T >::sz [private]

template<typename T>
std::vector<T> Hanina::Hessian3D< T >::_data [private]

template<typename T>
std::vector<T> Hanina::Hessian3D< T >::_Gxx [private]

template<typename T>
std::vector<T> Hanina::Hessian3D< T >::_Gxy [private]

template<typename T>
std::vector<T> Hanina::Hessian3D< T >::_Gyy [private]

template<typename T>
std::vector<T> Hanina::Hessian3D< T >::_Gxxx [private]

template<typename T>
std::vector<T> Hanina::Hessian3D< T >::_Gyyy [private]

template<typename T>
std::vector<T> Hanina::Hessian3D< T >::_Gxyy [private]

template<typename T>
std::vector<T> Hanina::Hessian3D< T >::_Gyxx [private]

template<typename T>
std::vector<T> Hanina::Hessian3D< T >::_Gxxxx [private]

template<typename T>
std::vector<T> Hanina::Hessian3D< T >::_Gxxyy [private]

template<typename T>
std::vector<T> Hanina::Hessian3D< T >::_Gyyyy [private]

template<typename T>
T* Hanina::Hessian3D< T >::data [private]

template<typename T>
T* Hanina::Hessian3D< T >::Gxx [private]

template<typename T>
T* Hanina::Hessian3D< T >::Gxy [private]

template<typename T>
T* Hanina::Hessian3D< T >::Gyy [private]

template<typename T>
T* Hanina::Hessian3D< T >::Gxxx [private]

template<typename T>
T* Hanina::Hessian3D< T >::Gyyy [private]

template<typename T>
T* Hanina::Hessian3D< T >::Gxyy [private]

template<typename T>
T* Hanina::Hessian3D< T >::Gyxx [private]

template<typename T>
T* Hanina::Hessian3D< T >::Gxxxx [private]

template<typename T>
T* Hanina::Hessian3D< T >::Gxxyy [private]

template<typename T>
T* Hanina::Hessian3D< T >::Gyyyy [private]

Объявления и описания членов класса находятся в файле:
  • ss_ridge_det.h


Pipe Line Filters: Шаблон структуры Vtl::Plf::F31::HessianDet< T >

Vtl::Plf::F31::HessianDet

Шаблон структуры Vtl::Plf::F31::HessianDet< T >

#include <plf_functors.h>

Полный список членов класса

Открытые члены

template<typename T1>
T operator() (T1 Dxx, T1 Dxy, T1 Dyy)

template<typename T>
struct Vtl::Plf::F31::HessianDet< T >

Методы

template<typename T>
template<typename T1>
T Vtl::Plf::F31::HessianDet< T >::operator() | ( | T1 | Dxx,
 |  | T1 | Dxy,
 |  | T1 | Dyy |
 | ) |  |  | [inline]

Объявления и описания членов структуры находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон структуры Vtl::Plf::F31::HessianDetSqrt< T >

Vtl::Plf::F31::HessianDetSqrt

Шаблон структуры Vtl::Plf::F31::HessianDetSqrt< T >

#include <plf_functors.h>

Полный список членов класса

Открытые члены

template<typename T1>
T operator() (T1 Dxx, T1 Dxy, T1 Dyy)

Подробное описание

template<typename T>
struct Vtl::Plf::F31::HessianDetSqrt< T >

Примеры:

test_fast_gauss.cpp.

Методы

template<typename T>
template<typename T1>
T Vtl::Plf::F31::HessianDetSqrt< T >::operator() | ( | T1 | Dxx,
 |  | T1 | Dxy,
 |  | T1 | Dyy |
 | ) |  |  | [inline]

Объявления и описания членов структуры находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон структуры Hanina::HessianDetSqrt< T >

Hanina::HessianDetSqrt

Шаблон структуры Hanina::HessianDetSqrt< T >

#include <ss_ridge_functors_2.h>

Полный список членов класса

Открытые члены

template<typename T1>
T operator() (T1 Dxx, T1 Dxy, T1 Dyy)

template<typename T>
struct Hanina::HessianDetSqrt< T >

Методы

template<typename T>
template<typename T1>
T Hanina::HessianDetSqrt< T >::operator() | ( | T1 | Dxx,
 |  | T1 | Dxy,
 |  | T1 | Dyy |
 | ) |  |  | [inline]

Объявления и описания членов структуры находятся в файле:
  • ss_ridge_functors_2.h


Pipe Line Filters: Шаблон структуры Hanina::HessianEigenDiff< T >

Hanina::HessianEigenDiff

Шаблон структуры Hanina::HessianEigenDiff< T >

#include <ss_ridge_functors_2.h>

Полный список членов класса

Открытые члены

template<typename T1>
T operator() (T1 Dxx, T1 Dxy, T1 Dyy)

template<typename T>
struct Hanina::HessianEigenDiff< T >

Методы

template<typename T>
template<typename T1>
T Hanina::HessianEigenDiff< T >::operator() | ( | T1 | Dxx,
 |  | T1 | Dxy,
 |  | T1 | Dyy |
 | ) |  |  | [inline]

Объявления и описания членов структуры находятся в файле:
  • ss_ridge_functors_2.h


Pipe Line Filters: Структура Hanina::HessianEigenDiffAndMaxCurvatureDirection

Hanina::HessianEigenDiffAndMaxCurvatureDirection

Структура Hanina::HessianEigenDiffAndMaxCurvatureDirection

#include <ss_ridge_functors_2.h>

Полный список членов класса

Открытые члены

template<typename T1>
void operator() (T1 Dxx, T1 Dxy, T1 Dyy, T1 &eigen_diff, T1 &vx, T1 &vy)

Методы

template<typename T1>
void Hanina::HessianEigenDiffAndMaxCurvatureDirection::operator() | ( | T1 | Dxx,
 |  | T1 | Dxy,
 |  | T1 | Dyy,
 |  | T1 & | eigen_diff,
 |  | T1 & | vx,
 |  | T1 & | vy |
 | ) |  |  | [inline]

Объявления и описания членов структуры находятся в файле:
  • ss_ridge_functors_2.h


Pipe Line Filters: Шаблон класса Vtl::Plf::HImage< T, P >

Vtl::Plf::HImage

Шаблон класса Vtl::Plf::HImage< T, P >
[Complex filters]

Контурный препарат H-image [HImg2003],. Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::HImage< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::HImage< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

InPort< T > & | in ()
OutPort< T, P > & | out ()
Должен быть подключен! Модуль градиента.
HImage ()
HImage (std::string name, int radius, P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (std::string name, int radius, P post_proc=Vtl::Plf::F11::DoNothing< T >())
output_maxval==float((1<<bits)-1)
virtual | ~HImage ()

Закрытые члены

HImage (const HImage &)
HImage & | operator= (const HImage &)

Закрытые данные

EnvProc1to1< T, Fpie::Himg<
T >, P > 		h

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::HImage< T, P >

Контурный препарат H-image [HImg2003],.

См. также:
Vtl::Plf::F::Himg.

Структура фильтра Vtl::Plf::HImage

Результат воздействия на изображение

этим фильтром
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::HImage< T, P >::HImage ( const HImage< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::HImage< T, P >::HImage ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::HImage< T, P >::HImage | ( | std::string | name,
 |  | int | radius,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::HImage< T, P >::~HImage ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
HImage& Vtl::Plf::HImage< T, P >::operator= ( const HImage< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T>& Vtl::Plf::HImage< T, P >::in ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::HImage< T, P >::out ( ) [inline]

Должен быть подключен! Модуль градиента.

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::HImage< T, P >::Init | ( | std::string | name,
 |  | int | radius,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

output_maxval==float((1<<bits)-1)

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
EnvProc1to1<T,Fpie::Himg<T>,P > Vtl::Plf::HImage< T, P >::h [private]

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::Plf::HImageEdge< T, P >

Vtl::Plf::HImageEdge

Шаблон класса Vtl::Plf::HImageEdge< T, P >
[Complex filters]

Детектор краев на основе контурного препарата H-image [HImg2003], \see Vtl::Plf::F::Himg, Vtl::Plf::HImage. Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::HImageEdge< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::HImageEdge< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

InPort< T > & | in ()
OutPort< T, P > & | out ()
HImageEdge ()
HImageEdge (std::string name, int radius, T threshold, P post_proc=Vtl::Plf::F11::DoNothing< T >())
output_maxval==float((1<<bits)-1)
void | Init (std::string name, int radius, T threshold, P post_proc=Vtl::Plf::F11::DoNothing< T >())
output_maxval==float((1<<bits)-1)
virtual | ~HImageEdge ()

Закрытые члены

HImageEdge (const HImageEdge &)
HImageEdge & | operator= (const HImageEdge &)

Закрытые данные

Vtl::Plf::EnvProc1to2< T,
Fpie::Himg2< T > > 		himage
Vtl::Plf::PixByPix2to1< T,
Vtl::Plf::F21::SqrtOfSumSqr<
T > > 		sum_sqr
Vtl::Plf::EnvProc3to1< T,
Fpie::CannyNMS< T >, P > 		nms

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::HImageEdge< T, P >

Детектор краев на основе контурного препарата H-image [HImg2003], \see Vtl::Plf::F::Himg, Vtl::Plf::HImage.

Структура фильтра HImageEdge - детектор границ на основе HImage

[HImg2003]

Результат воздействия на изображение

этим фильтром
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::HImageEdge< T, P >::HImageEdge ( const HImageEdge< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::HImageEdge< T, P >::HImageEdge ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::HImageEdge< T, P >::HImageEdge | ( | std::string | name,
 |  | int | radius,
 |  | T | threshold,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

output_maxval==float((1<<bits)-1)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::HImageEdge< T, P >::~HImageEdge ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
HImageEdge& Vtl::Plf::HImageEdge< T, P >::operator= ( const HImageEdge< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T>& Vtl::Plf::HImageEdge< T, P >::in ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::HImageEdge< T, P >::out ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::HImageEdge< T, P >::Init | ( | std::string | name,
 |  | int | radius,
 |  | T | threshold,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

output_maxval==float((1<<bits)-1)

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::EnvProc1to2<T,Fpie::Himg2<T> > Vtl::Plf::HImageEdge< T, P >::himage [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix2to1<T,Vtl::Plf::F21::SqrtOfSumSqr<T> > Vtl::Plf::HImageEdge< T, P >::sum_sqr [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::EnvProc3to1<T,Fpie::CannyNMS<T>,P> Vtl::Plf::HImageEdge< T, P >::nms [private]

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Fpie::Himg< T >

Vtl::Plf::Fpie::Himg

Шаблон класса Vtl::Plf::Fpie::Himg< T >

Функтор Himg для EnvProc1to1. Вычисляет контурный препарат H-image [HImg2003]. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

void | set_IterNextLineShift (int modul_nls)
Extent | ext () const
Himg (int radius_of_square=5)
T | operator() (const T *input)

Закрытые данные

Himg2< T > | hi

Подробное описание

template<typename T>
class Vtl::Plf::Fpie::Himg< T >

Функтор Himg для EnvProc1to1. Вычисляет контурный препарат H-image [HImg2003].

Конструктор(ы)

template<typename T>
Vtl::Plf::Fpie::Himg< T >::Himg ( int radius_of_square = 5 ) [inline]

Методы

template<typename T>
void Vtl::Plf::Fpie::Himg< T >::set_IterNextLineShift ( int modul_nls ) [inline]

!!! MUST be called by filter BEFORE using 'operator()', by default next line shist parameter set to value which probably most quick lead a 'Invalid memory access' error (for bug search convenience).

template<typename T>
Extent Vtl::Plf::Fpie::Himg< T >::ext ( ) const [inline]

template<typename T>
T Vtl::Plf::Fpie::Himg< T >::operator() ( const T * input ) [inline]

Данные класса

template<typename T>
Himg2<T> Vtl::Plf::Fpie::Himg< T >::hi [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Fpie::Himg2< T >

Vtl::Plf::Fpie::Himg2

Шаблон класса Vtl::Plf::Fpie::Himg2< T >

Функтор Himg2 для EnvProc1to2. Вычисляет вектор квази-градиента для контурного препарата H-image [HImg2003]. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

void | set_IterNextLineShift (int modul_nls)
Extent | ext () const
Himg2 (int radius_of_square=5)
void | operator() (const T *input, T &output_x, T &output_y)

Закрытые данные

int | r
int | nls
double | mult

Подробное описание

template<typename T>
class Vtl::Plf::Fpie::Himg2< T >

Функтор Himg2 для EnvProc1to2. Вычисляет вектор квази-градиента для контурного препарата H-image [HImg2003].

Конструктор(ы)

template<typename T>
Vtl::Plf::Fpie::Himg2< T >::Himg2 ( int radius_of_square = 5 ) [inline]

Методы

template<typename T>
void Vtl::Plf::Fpie::Himg2< T >::set_IterNextLineShift ( int modul_nls ) [inline]

!!! MUST be called by filter BEFORE using 'operator()', by default next line shist parameter set to value which probably most quick lead a 'Invalid memory access' error (for bug search convenience).

template<typename T>
Extent Vtl::Plf::Fpie::Himg2< T >::ext ( ) const [inline]

template<typename T>
void Vtl::Plf::Fpie::Himg2< T >::operator() | ( | const T * | input,
 |  | T & | output_x,
 |  | T & | output_y |
 | ) |  |  | [inline]

Данные класса

template<typename T>
int Vtl::Plf::Fpie::Himg2< T >::r [private]

template<typename T>
int Vtl::Plf::Fpie::Himg2< T >::nls [private]

template<typename T>
double Vtl::Plf::Fpie::Himg2< T >::mult [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Transf::Homography< T >

Vtl::ImAlg::Transf::Homography

Шаблон класса Vtl::ImAlg::Transf::Homography< T >

#include <img_trans_models.h>

Полный список членов класса

Открытые типы

enum | { isStrightLineSaving = 1 }
typedef T | value_type
typedef Vtl::NumAlg::Lin::ublas::c_matrix<
T, 3, 3 > 		MatrixH
typedef Vtl::NumAlg::Lin::ublas::c_matrix<
T, 2, 2 > 		MatrixA
typedef Vtl::NumAlg::Lin::ublas::c_vector<
T, 2 > 		Vector2
typedef Vtl::NumAlg::Lin::ublas::c_vector<
T, 3 > 		Vector3

Открытые члены

Homography ()
Homography (Homography &ht)
Homography (const MatrixH &H)
Homography & | operator= (const Homography &ht)
Homography (Offset< T > &ot)
offset transform as homography
Homography (const Vector2 &b)
offset transform as homography
Homography & | operator= (Offset< T > &ot)
offset transform as homography
void | set (const Vector2 &b)
offset transform as homography
Homography (Affine< T > &at)
Affine transform as homography.
Homography (const MatrixA &A, const Vector2 &b)
Affine transform as homography.
Homography & | operator= (Affine< T > &at)
Affine transform as homography.
void | set (const MatrixA &A, const Vector2 &b)
Affine transform as homography.
template<typename T1, typename T2>
void | operator() (T1 x, T2 y, T &x_out, T &y_out) const
template<typename T1, typename T2>
Vector2 | operator() (T1 x, T2 y) const
Vector2 | operator() (Vector2 x) const
Vector3 | operator() (Vector3 x) const

Закрытые данные

MatrixH H

template<typename T>
class Vtl::ImAlg::Transf::Homography< T >

Определения типов

template<typename T>
typedef T Vtl::ImAlg::Transf::Homography< T >::value_type

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_matrix<T,3,3> Vtl::ImAlg::Transf::Homography< T >::MatrixH

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_matrix<T,2,2> Vtl::ImAlg::Transf::Homography< T >::MatrixA

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_vector<T,2> Vtl::ImAlg::Transf::Homography< T >::Vector2

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_vector<T,3> Vtl::ImAlg::Transf::Homography< T >::Vector3

Перечисления

template<typename T>
anonymous enum

Элементы перечислений:
isStrightLineSaving

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Transf::Homography< T >::Homography ( ) [inline]

template<typename T>
Vtl::ImAlg::Transf::Homography< T >::Homography ( Homography< T > & ht ) [inline]

template<typename T>
Vtl::ImAlg::Transf::Homography< T >::Homography ( const MatrixH & H ) [inline]

template<typename T>
Vtl::ImAlg::Transf::Homography< T >::Homography ( Offset< T > & ot ) [inline]

offset transform as homography

template<typename T>
Vtl::ImAlg::Transf::Homography< T >::Homography ( const Vector2 & b ) [inline]

offset transform as homography

template<typename T>
Vtl::ImAlg::Transf::Homography< T >::Homography ( Affine< T > & at ) [inline]

Affine transform as homography.

template<typename T>
Vtl::ImAlg::Transf::Homography< T >::Homography | ( | const MatrixA & | A,
 |  | const Vector2 & | b |
 | ) |  |  | [inline]

Affine transform as homography.

Методы

template<typename T>
Homography& Vtl::ImAlg::Transf::Homography< T >::operator= ( const Homography< T > & ht ) [inline]

template<typename T>
Homography& Vtl::ImAlg::Transf::Homography< T >::operator= ( Offset< T > & ot ) [inline]

offset transform as homography

template<typename T>
void Vtl::ImAlg::Transf::Homography< T >::set ( const Vector2 & b ) [inline]

offset transform as homography

template<typename T>
Homography& Vtl::ImAlg::Transf::Homography< T >::operator= ( Affine< T > & at ) [inline]

Affine transform as homography.

template<typename T>
void Vtl::ImAlg::Transf::Homography< T >::set | ( | const MatrixA & | A,
 |  | const Vector2 & | b |
 | ) |  |  | [inline]

Affine transform as homography.

template<typename T>
template<typename T1, typename T2>
void Vtl::ImAlg::Transf::Homography< T >::operator() | ( | T1 | x,
 |  | T2 | y,
 |  | T & | x_out,
 |  | T & | y_out |
 | ) |  |  | const [inline]

template<typename T>
template<typename T1, typename T2>
Vector2 Vtl::ImAlg::Transf::Homography< T >::operator() | ( | T1 | x,
 |  | T2 | y |
 | ) |  |  | const [inline]

template<typename T>
Vector2 Vtl::ImAlg::Transf::Homography< T >::operator() ( Vector2 x ) const [inline]

template<typename T>
Vector3 Vtl::ImAlg::Transf::Homography< T >::operator() ( Vector3 x ) const [inline]

Данные класса

template<typename T>
MatrixH Vtl::ImAlg::Transf::Homography< T >::H [private]

Объявления и описания членов класса находятся в файле:
  • img_trans_models.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Model::Homography< T >

Vtl::ImAlg::Model::Homography

Шаблон класса Vtl::ImAlg::Model::Homography< T >

Класс - модель преобразования, соответствует поиску проективного преобразования ( [Zokai_Wolberg_2005] ). Подробнее...

#include <img_trans_models.h>

Граф наследования:Vtl::ImAlg::Model::Homography< T >:

[см. легенду]
Граф связей класса Vtl::ImAlg::Model::Homography< T >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { N = 8 }
enum | { isLinear = 0 }
enum | { isStrightLineSaving = 1 }
typedef T | value_type
typedef Vtl::NumAlg::Lin::ublas::c_matrix<
T, 3, 3 > 		MatrixA
typedef Transf::Homography<
T > 		Transf

Открытые члены

void | Interp (T *in, int w, int h, int nls, T *out) const
void | setIdentity ()
void | Inverse ()
template<class VectorP>
void | set (VectorP theta_)
void | UpdateByNewAfterThis (Homography &model_new)
template<unsigned n>
T | Dx (T x, T y) const
template<unsigned n>
T | Dy (T x, T y) const

Открытые атрибуты

MatrixA A

Закрытые члены

template<unsigned n>
T | _D (T x, T y) const
template<unsigned n>
T | _D3x (T x, T y) const
template<unsigned n>
T | _D3y (T x, T y) const
T | denom (T x, T y) const

Закрытые статические члены

static T | sqr (T v)

Подробное описание

template<typename T>
class Vtl::ImAlg::Model::Homography< T >

Класс - модель преобразования, соответствует поиску проективного преобразования ( [Zokai_Wolberg_2005] ).

Определения типов

template<typename T>
typedef T Vtl::ImAlg::Model::Homography< T >::value_type

Переопределяет метод предка Vtl::ImAlg::Model::Base< T >.

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_matrix<T,3,3> Vtl::ImAlg::Model::Homography< T >::MatrixA

template<typename T>
typedef Transf::Homography<T> Vtl::ImAlg::Model::Homography< T >::Transf

Перечисления

template<typename T>
anonymous enum

Элементы перечислений:
N

template<typename T>
anonymous enum

Элементы перечислений:
isLinear

template<typename T>
anonymous enum

Элементы перечислений:
isStrightLineSaving

Методы

template<typename T>
void Vtl::ImAlg::Model::Homography< T >::Interp | ( | T * | in,
 |  | int | w,
 |  | int | h,
 |  | int | nls,
 |  | T * | out |
 | ) |  |  | const [inline]

template<typename T>
void Vtl::ImAlg::Model::Homography< T >::setIdentity ( ) [inline]

template<typename T>
void Vtl::ImAlg::Model::Homography< T >::Inverse ( ) [inline]

template<typename T>
template<class VectorP>
void Vtl::ImAlg::Model::Homography< T >::set ( VectorP theta_ ) [inline]

template<typename T>
void Vtl::ImAlg::Model::Homography< T >::UpdateByNewAfterThis ( Homography< T > & model_new ) [inline]

template<typename T>
template<unsigned n>
T Vtl::ImAlg::Model::Homography< T >::Dx | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline]

Возвращает значение производной от модели по параметру номер n, 0 < =n < N в точке x, y Возвращает при см. [Zokai_Wolberg_2005] n=0 -> [ x / (A(2,0)*x + A(2,1)*y + 1) , 0 ]; n=1 -> [ y / (A(2,0)*x + A(2,1)*y + 1) , 0 ]; n=2 -> [ 1 / (A(2,0)*x + A(2,1)*y + 1) , 0 ]; n=3 -> [ 0 , x / (A(2,0)*x + A(2,1)*y + 1) ]; n=4 -> [ 0 , y / (A(2,0)*x + A(2,1)*y + 1) ]; n=5 -> [ 0 , 1 / (A(2,0)*x + A(2,1)*y + 1) ]; n=6 -> [ -x*(A(0,0)*x + A(0,1)*y + A(0,2)) / (A(2,0)*x + A(2,1)*y + 1)^2 , -x*(A(1,0)*x + A(1,1)*y + A(1,2)) / (A(2,0)*x + A(2,1)*y + 1)^2 ]; n=7 -> [ -y*(A(0,0)*x + A(0,1)*y + A(0,2)) / (A(2,0)*x + A(2,1)*y + 1)^2 , -y*(A(1,0)*x + A(1,1)*y + A(1,2)) / (A(2,0)*x + A(2,1)*y + 1)^2 ];

template<typename T>
template<unsigned n>
T Vtl::ImAlg::Model::Homography< T >::Dy | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline]

template<typename T>
template<unsigned n>
T Vtl::ImAlg::Model::Homography< T >::_D | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline, private]

template<typename T>
static T Vtl::ImAlg::Model::Homography< T >::sqr ( T v ) [inline, static, private]

template<typename T>
template<unsigned n>
T Vtl::ImAlg::Model::Homography< T >::_D3x | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline, private]

template<typename T>
template<unsigned n>
T Vtl::ImAlg::Model::Homography< T >::_D3y | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline, private]

template<typename T>
T Vtl::ImAlg::Model::Homography< T >::denom | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline, private]

Данные класса

template<typename T>
MatrixA Vtl::ImAlg::Model::Homography< T >::A

Объявления и описания членов класса находятся в файле:
  • img_trans_models.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::HSI< LinSys >

Vtl::ImAlg::C::HSI

Шаблон структуры Vtl::ImAlg::C::HSI< LinSys >

Цветовое пространство HSI (or may be refered as IHS). The Hue/Saturation/Intensity. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

enum | { n_components = 3 }
enum | { is_metric = 0 }
enum | { is_system = sys_hue }

Открытые статические члены

template<int n>
static const char * | sample_name ()
static std::string | name ()
template<int n, typename T>
static T | sample_min (T MaxColor)
template<int n, typename T>
static T | sample_max (T MaxColor)
template<int n, typename T>
static T | sample_maxabs (T MaxColor)
template<int n>
static bool | is_sample_sign_alternating ()
template<int n>
static bool | is_sample_cyclic_var ()

Классы

struct | fromRGB
Функтор для PixByPix3to3. Подробнее...
struct | toRGB
Функтор для PixByPix3to3. Подробнее...

Подробное описание

template<class LinSys = Vtl::ImAlg::C::IV1V2>
struct Vtl::ImAlg::C::HSI< LinSys >

Цветовое пространство HSI (or may be refered as IHS). The Hue/Saturation/Intensity.

Перечисления

template<class LinSys = Vtl::ImAlg::C::IV1V2>
anonymous enum

Элементы перечислений:
n_components

template<class LinSys = Vtl::ImAlg::C::IV1V2>
anonymous enum

Элементы перечислений:
is_metric

template<class LinSys = Vtl::ImAlg::C::IV1V2>
anonymous enum

Элементы перечислений:
is_system

Методы

template<class LinSys = Vtl::ImAlg::C::IV1V2>
template<int n>
static const char* Vtl::ImAlg::C::HSI< LinSys >::sample_name ( ) [inline, static]

template<class LinSys = Vtl::ImAlg::C::IV1V2>
static std::string Vtl::ImAlg::C::HSI< LinSys >::name ( ) [inline, static]

template<class LinSys = Vtl::ImAlg::C::IV1V2>
template<int n, typename T>
static T Vtl::ImAlg::C::HSI< LinSys >::sample_min ( T MaxColor ) [inline, static]

template<class LinSys = Vtl::ImAlg::C::IV1V2>
template<int n, typename T>
static T Vtl::ImAlg::C::HSI< LinSys >::sample_max ( T MaxColor ) [inline, static]

template<class LinSys = Vtl::ImAlg::C::IV1V2>
template<int n, typename T>
static T Vtl::ImAlg::C::HSI< LinSys >::sample_maxabs ( T MaxColor ) [inline, static]

template<class LinSys = Vtl::ImAlg::C::IV1V2>
template<int n>
static bool Vtl::ImAlg::C::HSI< LinSys >::is_sample_sign_alternating ( ) [inline, static]

template<class LinSys = Vtl::ImAlg::C::IV1V2>
template<int n>
static bool Vtl::ImAlg::C::HSI< LinSys >::is_sample_cyclic_var ( ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter >

Vtl::ImAlg::C::HSI::fromRGB

Шаблон структуры Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef HSI | ColorSystem

Открытые члены

void | operator() (T r, T g, T b, Iter h, Iter s, Iter i) const

Подробное описание

template<class LinSys = Vtl::ImAlg::C::IV1V2>
template<typename T, typename Iter = T&>
struct Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter >

Функтор для PixByPix3to3.

Определения типов

template<class LinSys = Vtl::ImAlg::C::IV1V2>
template<typename T, typename Iter = T&>
typedef HSI Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter >::ColorSystem

Методы

template<class LinSys = Vtl::ImAlg::C::IV1V2>
template<typename T, typename Iter = T&>
void Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Iter | h,
 |  | Iter | s,
 |  | Iter | i |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter >

Vtl::ImAlg::C::HSI::toRGB

Шаблон структуры Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef HSI | ColorSystem

Открытые члены

void | operator() (T h, T s, T i, Iter r, Iter g, Iter b) const

Подробное описание

template<class LinSys = Vtl::ImAlg::C::IV1V2>
template<typename T, typename Iter = T&>
struct Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter >

Функтор для PixByPix3to3.

Определения типов

template<class LinSys = Vtl::ImAlg::C::IV1V2>
template<typename T, typename Iter = T&>
typedef HSI Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter >::ColorSystem

Методы

template<class LinSys = Vtl::ImAlg::C::IV1V2>
template<typename T, typename Iter = T&>
void Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter >::operator() | ( | T | h,
 |  | T | s,
 |  | T | i,
 |  | Iter | r,
 |  | Iter | g,
 |  | Iter | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Структура Vtl::ImAlg::C::HSL

Vtl::ImAlg::C::HSL

Структура Vtl::ImAlg::C::HSL

Цветовое пространство HSL . The Hue/Saturation/Value. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

enum | { n_components = 3 }
enum | { is_metric = 0 }
enum | { is_system = sys_hue }

Открытые статические члены

template<int n>
static const char * | sample_name ()
static std::string | name ()
template<int n, typename T>
static T | sample_min (T MaxColor)
template<int n, typename T>
static T | sample_max (T MaxColor)
template<int n, typename T>
static T | sample_maxabs (T MaxColor)
template<int n>
static bool | is_sample_sign_alternating ()
template<int n>
static bool | is_sample_cyclic_var ()

Классы

struct | fromRGB
Функтор для PixByPix3to3. Подробнее...
struct | toRGB
Функтор для PixByPix3to3. Подробнее...

Подробное описание

Цветовое пространство HSL . The Hue/Saturation/Value.

Перечисления

anonymous enum

Элементы перечислений:
n_components

anonymous enum

Элементы перечислений:
is_metric

anonymous enum

Элементы перечислений:
is_system

Методы

template<int n>
static const char* Vtl::ImAlg::C::HSL::sample_name ( ) [inline, static]

static std::string Vtl::ImAlg::C::HSL::name ( ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::HSL::sample_min ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::HSL::sample_max ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::HSL::sample_maxabs ( T MaxColor ) [inline, static]

template<int n>
static bool Vtl::ImAlg::C::HSL::is_sample_sign_alternating ( ) [inline, static]

template<int n>
static bool Vtl::ImAlg::C::HSL::is_sample_cyclic_var ( ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >

Vtl::ImAlg::C::HSL::fromRGB

Шаблон структуры Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef Loki::Select< Loki::TypeTraits<
T >::isFloat, T, double
>::Result 		T_temp
typedef HSL | ColorSystem

Открытые члены

fromRGB (NormType normalizer=Normalizer< T, HSL, nDefault >())
void | operator() (T r, T g, T b, Iter h, Iter s, Iter l) const

Открытые атрибуты

NormType | norm

Подробное описание

template<typename T, class NormType = Normalizer<T,HSL,nDefault>, typename Iter = T&>
struct Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3.

Определения типов

template<typename T, class NormType = Normalizer<T,HSL,nDefault>, typename Iter = T&>
typedef Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >::T_temp

template<typename T, class NormType = Normalizer<T,HSL,nDefault>, typename Iter = T&>
typedef HSL Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,HSL,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >::fromRGB ( NormType normalizer = Normalizer<T,HSL,nDefault>() ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,HSL,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Iter | h,
 |  | Iter | s,
 |  | Iter | l |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,HSL,nDefault>, typename Iter = T&>
NormType Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >::norm

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >

Vtl::ImAlg::C::HSL::toRGB

Шаблон структуры Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef HSL | ColorSystem

Открытые члены

toRGB (const NormType &normalizer=Normalizer< T, HSL, nDefault >())
void | operator() (T h, T s, T l, Iter r, Iter g, Iter b) const

Открытые атрибуты

const NormType & | norm

Закрытые члены

double | ColorC (double p, double q, double t)

Подробное описание

template<typename T, class NormType = Normalizer<T,HSL,nDefault>, typename Iter = T&>
struct Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3.

Определения типов

template<typename T, class NormType = Normalizer<T,HSL,nDefault>, typename Iter = T&>
typedef HSL Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,HSL,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >::toRGB ( const NormType & normalizer = Normalizer<T,HSL,nDefault>() ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,HSL,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >::operator() | ( | T | h,
 |  | T | s,
 |  | T | l,
 |  | Iter | r,
 |  | Iter | g,
 |  | Iter | b |
 | ) |  |  | const [inline]

template<typename T, class NormType = Normalizer<T,HSL,nDefault>, typename Iter = T&>
double Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >::ColorC | ( | double | p,
 |  | double | q,
 |  | double | t |
 | ) |  |  | [inline, private]

Данные класса

template<typename T, class NormType = Normalizer<T,HSL,nDefault>, typename Iter = T&>
const NormType& Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >::norm

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Структура Vtl::ImAlg::C::HSV

Vtl::ImAlg::C::HSV

Структура Vtl::ImAlg::C::HSV

Цветовое пространство HSV . The Hue/Saturation/Value model was created by A. R. Smith in 1978. It is based on such intuitive color characteristics as tint, shade and tone (or family, purety and intensity). The coordinate system is cylindrical, and the colors are defined inside a hexcone. The hue value H runs from 0 to 360?. The saturation S is the degree of strength or purity and is from 0 to 1. Purity is how much white is added to the color, so S=1 makes the purest color (no white). Brightness V also ranges from 0 to 1, where 0 is the black. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

enum | { n_components = 3 }
enum | { is_metric = 0 }
enum | { is_system = sys_hue }

Открытые статические члены

template<int n>
static const char * | sample_name ()
static std::string | name ()

Классы

struct | fromRGB
Функтор для PixByPix3to3. Подробнее...
struct | toRGB
Функтор для PixByPix3to3. Подробнее...

Подробное описание

Цветовое пространство HSV . The Hue/Saturation/Value model was created by A. R. Smith in 1978. It is based on such intuitive color characteristics as tint, shade and tone (or family, purety and intensity). The coordinate system is cylindrical, and the colors are defined inside a hexcone. The hue value H runs from 0 to 360?. The saturation S is the degree of strength or purity and is from 0 to 1. Purity is how much white is added to the color, so S=1 makes the purest color (no white). Brightness V also ranges from 0 to 1, where 0 is the black.

There is no transformation matrix for RGB/HSV conversion, but the algorithm follows:

r,g,b values are from 0 to 1 h = [0,360], s = [0,1], v = [0,1] if s == 0, then h = -1 (undefined)

Перечисления

anonymous enum

Элементы перечислений:
n_components

anonymous enum

Элементы перечислений:
is_metric

anonymous enum

Элементы перечислений:
is_system

Методы

template<int n>
static const char* Vtl::ImAlg::C::HSV::sample_name ( ) [inline, static]

static std::string Vtl::ImAlg::C::HSV::name ( ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::HSV::fromRGB< T, Iter >

Vtl::ImAlg::C::HSV::fromRGB

Шаблон структуры Vtl::ImAlg::C::HSV::fromRGB< T, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef HSV | ColorSystem

Открытые члены

void | operator() (T r, T g, T b, Iter h, Iter s, Iter v) const

Подробное описание

template<typename T, typename Iter = T&>
struct Vtl::ImAlg::C::HSV::fromRGB< T, Iter >

Функтор для PixByPix3to3.

Определения типов

template<typename T, typename Iter = T&>
typedef HSV Vtl::ImAlg::C::HSV::fromRGB< T, Iter >::ColorSystem

Методы

template<typename T, typename Iter = T&>
void Vtl::ImAlg::C::HSV::fromRGB< T, Iter >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Iter | h,
 |  | Iter | s,
 |  | Iter | v |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::HSV::toRGB< T, Iter >

Vtl::ImAlg::C::HSV::toRGB

Шаблон структуры Vtl::ImAlg::C::HSV::toRGB< T, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef HSV | ColorSystem

Открытые члены

void | operator() (T h, T s, T v, Iter r, Iter g, Iter b) const

Подробное описание

template<typename T, typename Iter = T&>
struct Vtl::ImAlg::C::HSV::toRGB< T, Iter >

Функтор для PixByPix3to3.

Определения типов

template<typename T, typename Iter = T&>
typedef HSV Vtl::ImAlg::C::HSV::toRGB< T, Iter >::ColorSystem

Методы

template<typename T, typename Iter = T&>
void Vtl::ImAlg::C::HSV::toRGB< T, Iter >::operator() | ( | T | h,
 |  | T | s,
 |  | T | v,
 |  | Iter | r,
 |  | Iter | g,
 |  | Iter | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::ICount< v, 0, IndexList< j, T > >

Vtl::Meta::IL::ICount< v, 0, IndexList< j, T > >

Шаблон структуры Vtl::Meta::IL::ICount< v, 0, IndexList< j, T > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum { value = 0 }

template<int v, int j, class T>
struct Vtl::Meta::IL::ICount< v, 0, IndexList< j, T > >

Перечисления

template<int v, int j, class T>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::ICount< v, i, IndexList< j, T > >

Vtl::Meta::IL::ICount< v, i, IndexList< j, T > >

Шаблон структуры Vtl::Meta::IL::ICount< v, i, IndexList< j, T > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum { value = ((v==j)?1:0)+ICount<v, i, value = ((v==j)?1:0)+ICount<v }

template<int v, int i, int j, class T>
struct Vtl::Meta::IL::ICount< v, i, IndexList< j, T > >

Перечисления

template<int v, int i, int j, class T>
anonymous enum

Элементы перечислений:
value
i
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::ICount< v, i, Loki::NullType >

Vtl::Meta::IL::ICount< v, i, Loki::NullType >

Шаблон структуры Vtl::Meta::IL::ICount< v, i, Loki::NullType >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum { value = ERROR__Index_out_of_IndexList_range<i>::index }

template<int v, int i>
struct Vtl::Meta::IL::ICount< v, i, Loki::NullType >

Перечисления

template<int v, int i>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Класс Basics3D::IFunc

Basics3D::IFunc

Класс Basics3D::IFunc

#include <Func.h>

Граф наследования:Basics3D::IFunc:

[см. легенду]
Полный список членов класса

Открытые члены

virtual double Func (const double in_t) const =0

Методы

virtual double Basics3D::IFunc::Func ( const double in_t ) const [pure virtual]

Замещается в Basics3D::g, Basics3D::test и Basics3D::Eq4Degree.

Объявления и описания членов класса находятся в файле:
  • Func.h


Pipe Line Filters: Класс Basics3D::IFuncWithDer

Basics3D::IFuncWithDer

Класс Basics3D::IFuncWithDer

#include <Func.h>

Граф наследования:Basics3D::IFuncWithDer:

[см. легенду]
Граф связей класса Basics3D::IFuncWithDer:

[см. легенду]
Полный список членов класса

Открытые члены

virtual double Deriv (const double in_t) const =0

Методы

virtual double Basics3D::IFuncWithDer::Deriv ( const double in_t ) const [pure virtual]

Замещается в Basics3D::g, Basics3D::test и Basics3D::Eq4Degree.

Объявления и описания членов класса находятся в файле:
  • Func.h


Pipe Line Filters: Шаблон класса Vtl::Img::Image< P, planes, interleave >

Vtl::Img::Image

Шаблон класса Vtl::Img::Image< P, planes, interleave >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::Image< P, planes, interleave >:

[см. легенду]
Граф связей класса Vtl::Img::Image< P, planes, interleave >:

[см. легенду]
Полный список членов класса

Открытые члены

virtual | ~Image ()
Image (ImageDataLayout *idl_)
P * | operator[] (int y)
Image< P, 1, BSQ > | GetPlane (int plane)

Закрытые члены

void | check_img_info_propere ()

Закрытые данные

P * | raw_data
int | nls

template<typename P, int planes = 1, int interleave = BSQ>
class Vtl::Img::Image< P, planes, interleave >

Конструктор(ы)

template<typename P, int planes = 1, int interleave = BSQ>
virtual Vtl::Img::Image< P, planes, interleave >::~Image ( ) [inline, virtual]

template<typename P, int planes = 1, int interleave = BSQ>
Vtl::Img::Image< P, planes, interleave >::Image ( ImageDataLayout * idl_ ) [inline]

Методы

template<typename P, int planes = 1, int interleave = BSQ>
void Vtl::Img::Image< P, planes, interleave >::check_img_info_propere ( ) [inline, private]

template<typename P, int planes = 1, int interleave = BSQ>
P* Vtl::Img::Image< P, planes, interleave >::operator[] ( int y ) [inline]

template<typename P, int planes = 1, int interleave = BSQ>
Image<P,1,BSQ> Vtl::Img::Image< P, planes, interleave >::GetPlane ( int plane ) [inline]

Данные класса

template<typename P, int planes = 1, int interleave = BSQ>
P* Vtl::Img::Image< P, planes, interleave >::raw_data [private]

template<typename P, int planes = 1, int interleave = BSQ>
int Vtl::Img::Image< P, planes, interleave >::nls [private]

Объявления и описания членов класса находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон класса Vtl::Img::Image< P, planes, BIP >

Vtl::Img::Image< P, planes, BIP >

Шаблон класса Vtl::Img::Image< P, planes, BIP >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::Image< P, planes, BIP >:

[см. легенду]
Граф связей класса Vtl::Img::Image< P, planes, BIP >:

[см. легенду]
Полный список членов класса

Открытые члены

virtual ~Image ()
Image (ImageDataLayout *idl_)

template<typename P, int planes>
class Vtl::Img::Image< P, planes, BIP >

Конструктор(ы)

template<typename P, int planes>
virtual Vtl::Img::Image< P, planes, BIP >::~Image ( ) [inline, virtual]

template<typename P, int planes>
Vtl::Img::Image< P, planes, BIP >::Image ( ImageDataLayout * idl_ ) [inline]

Объявления и описания членов класса находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон класса Vtl::Img::Image< P, planes, SEP >

Vtl::Img::Image< P, planes, SEP >

Шаблон класса Vtl::Img::Image< P, planes, SEP >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::Image< P, planes, SEP >:

[см. легенду]
Граф связей класса Vtl::Img::Image< P, planes, SEP >:

[см. легенду]
Полный список членов класса

Открытые члены

virtual ~Image ()
Image (ImageDataLayout *idl_)

template<typename P, int planes>
class Vtl::Img::Image< P, planes, SEP >

Конструктор(ы)

template<typename P, int planes>
virtual Vtl::Img::Image< P, planes, SEP >::~Image ( ) [inline, virtual]

template<typename P, int planes>
Vtl::Img::Image< P, planes, SEP >::Image ( ImageDataLayout * idl_ ) [inline]

Объявления и описания членов класса находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон класса Vtl::Img::ImageBase< P, planes, interleave >

Vtl::Img::ImageBase

Шаблон класса Vtl::Img::ImageBase< P, planes, interleave >

#include <vtl_image_types.h>

Граф наследования:Vtl::Img::ImageBase< P, planes, interleave >:

[см. легенду]
Граф связей класса Vtl::Img::ImageBase< P, planes, interleave >:

[см. легенду]
Полный список членов класса

Открытые члены

virtual | ~ImageBase ()
ImageBase (ImageDataLayout *idl_)
int | Width () const
int | Height () const
int | Planes () const
int | Bits () const
ImageClass | iClass () const

Защищенные члены

Vtl::Img::Interleave | check_img_interleave (ImageDataLayout *idl_)
void | check_img_info_propere (const ImageInfo &info)
ImageDataLayout * | check_idl_propere (ImageDataLayout *idl_)

Защищенные данные

const ImageDataLayout * | idl

template<typename P, int planes, int interleave>
class Vtl::Img::ImageBase< P, planes, interleave >

Конструктор(ы)

template<typename P, int planes, int interleave>
virtual Vtl::Img::ImageBase< P, planes, interleave >::~ImageBase ( ) [inline, virtual]

template<typename P, int planes, int interleave>
Vtl::Img::ImageBase< P, planes, interleave >::ImageBase ( ImageDataLayout * idl_ ) [inline]

Методы

template<typename P, int planes, int interleave>
Vtl::Img::Interleave Vtl::Img::ImageBase< P, planes, interleave >::check_img_interleave ( ImageDataLayout * idl_ ) [inline, protected]

template<typename P, int planes, int interleave>
void Vtl::Img::ImageBase< P, planes, interleave >::check_img_info_propere ( const ImageInfo & info ) [inline, protected]

template<typename P, int planes, int interleave>
ImageDataLayout* Vtl::Img::ImageBase< P, planes, interleave >::check_idl_propere ( ImageDataLayout * idl_ ) [inline, protected]

template<typename P, int planes, int interleave>
int Vtl::Img::ImageBase< P, planes, interleave >::Width ( void ) const [inline]

template<typename P, int planes, int interleave>
int Vtl::Img::ImageBase< P, planes, interleave >::Height ( ) const [inline]

template<typename P, int planes, int interleave>
int Vtl::Img::ImageBase< P, planes, interleave >::Planes ( ) const [inline]

template<typename P, int planes, int interleave>
int Vtl::Img::ImageBase< P, planes, interleave >::Bits ( void ) const [inline]

template<typename P, int planes, int interleave>
ImageClass Vtl::Img::ImageBase< P, planes, interleave >::iClass ( ) const [inline]

Данные класса

template<typename P, int planes, int interleave>
const ImageDataLayout* Vtl::Img::ImageBase< P, planes, interleave >::idl [protected]

Объявления и описания членов класса находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон класса ImageContainer< ImgType >

Шаблон класса ImageContainer< ImgType >

#include <ImageContainer.h>

Полный список членов класса

Открытые члены

int | Add (ImgType img)
void | Delete (int i)
ImgType * | operator[] (int i)
int | size () const

Закрытые данные

std::vector< ImgType > | m_images

template<typename ImgType>
class ImageContainer< ImgType >

Методы

template<typename ImgType>
int ImageContainer< ImgType >::Add ( ImgType img ) [inline]

template<typename ImgType>
void ImageContainer< ImgType >::Delete ( int i ) [inline]

template<typename ImgType>
ImgType* ImageContainer< ImgType >::operator[] ( int i ) [inline]

template<typename ImgType>
int ImageContainer< ImgType >::size ( ) const [inline]

Данные класса

template<typename ImgType>
std::vector<ImgType> ImageContainer< ImgType >::m_images [private]

Объявления и описания членов класса находятся в файле:
  • ImageContainer.h


Pipe Line Filters: Структура Vtl::Img::ImageDataLayout

Vtl::Img::ImageDataLayout

Структура Vtl::Img::ImageDataLayout

#include <vtl_image_types.h>

Граф связей класса Vtl::Img::ImageDataLayout:

[см. легенду]
Полный список членов класса

Открытые атрибуты

uint32_t ptr_sizeof
uint32_t struct_sz
uint32_t version
uint32_t reserv
ImageInfo info
PaletteAccess pal
SampleAccess sample [1]

Данные класса

uint32_t Vtl::Img::ImageDataLayout::ptr_sizeof

uint32_t Vtl::Img::ImageDataLayout::struct_sz

uint32_t Vtl::Img::ImageDataLayout::version

uint32_t Vtl::Img::ImageDataLayout::reserv

ImageInfo Vtl::Img::ImageDataLayout::info

PaletteAccess Vtl::Img::ImageDataLayout::pal

SampleAccess Vtl::Img::ImageDataLayout::sample[1]

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Класс Vtl::Img::ImageDataLayoutHolder

Vtl::Img::ImageDataLayoutHolder

Класс Vtl::Img::ImageDataLayoutHolder

#include <vtl_image_types.h>

Граф связей класса Vtl::Img::ImageDataLayoutHolder:

[см. легенду]
Полный список членов класса

Открытые члены

ImageDataLayoutHolder (const ImageInfo &inf)
ImageDataLayout * Layout ()
void | set_Palette ()
template<typename T>
void | set_BIP_data (T *data, int samples_per_row)
template<typename T>
void | set_BIL_data (T *data, int samples_per_row)
template<typename T>
void | set_BSQ_data (T *data, int samples_per_row, int next_band_shift=0)
template<typename T>
void | set_SEP_data (int plane, T *data, int samples_per_row)

Закрытые данные

std::vector< uint8_t > | buf
ImageDataLayout * idl

Конструктор(ы)

Vtl::Img::ImageDataLayoutHolder::ImageDataLayoutHolder ( const ImageInfo & inf ) [inline]

Методы

ImageDataLayout* Vtl::Img::ImageDataLayoutHolder::Layout ( ) [inline]

void Vtl::Img::ImageDataLayoutHolder::set_Palette ( ) [inline]

template<typename T>
void Vtl::Img::ImageDataLayoutHolder::set_BIP_data | ( | T * | data,
 |  | int | samples_per_row |
 | ) |  |  | [inline]

template<typename T>
void Vtl::Img::ImageDataLayoutHolder::set_BIL_data | ( | T * | data,
 |  | int | samples_per_row |
 | ) |  |  | [inline]

template<typename T>
void Vtl::Img::ImageDataLayoutHolder::set_BSQ_data | ( | T * | data,
 |  | int | samples_per_row,
 |  | int | next_band_shift = 0 |
 | ) |  |  | [inline]

template<typename T>
void Vtl::Img::ImageDataLayoutHolder::set_SEP_data | ( | int | plane,
 |  | T * | data,
 |  | int | samples_per_row |
 | ) |  |  | [inline]

Данные класса

std::vector<uint8_t> Vtl::Img::ImageDataLayoutHolder::buf [private]

ImageDataLayout* Vtl::Img::ImageDataLayoutHolder::idl [private]

Объявления и описания членов класса находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Класс ImageFragment16

Класс ImageFragment16
[Handling with images]

#include <aimage.h>

Граф наследования:ImageFragment16:

[см. легенду]
Граф связей класса ImageFragment16:

[см. легенду]
Полный список членов класса

Открытые члены

virtual const char * | ClassName () const
ImageFragment16 ()
virtual | ~ImageFragment16 ()
virtual Pixel16 * | operator[] (int y) const
virtual void | SetTo (Pixel16 color)
virtual void | read (int x, int y, Pixel16 *data, int len) const

Открытые статические члены

static const char * | ThisClassName ()

Конструктор(ы)

ImageFragment16::ImageFragment16 ( ) [inline]

virtual ImageFragment16::~ImageFragment16 ( ) [inline, virtual]

Методы

const char * ImageFragment16::ThisClassName ( ) [static]

Переопределяет метод предка AImageMem16.

virtual const char* ImageFragment16::ClassName ( ) const [inline, virtual]

Переопределяет метод предка tplAImageReference< AImageMem16 >.

virtual Pixel16* ImageFragment16::operator[] ( int y ) const [inline, virtual]

Замещает AImageMem16.

virtual void ImageFragment16::SetTo ( Pixel16 color ) [inline, virtual]

Переопределяет метод предка AImageMem16.

virtual void ImageFragment16::read | ( | int | x,
 |  | int | y,
 |  | Pixel16 * | data,
 |  | int | len |
 | ) |  |  | const [inline, virtual]

Переопределяет метод предка tplAImageReference< AImageMem16 >.

Объявления и описания членов классов находятся в файлах:
  • aimage.h
  • imagemem.cpp


Pipe Line Filters: Класс ImageFragment8

Класс ImageFragment8
[Handling with images]

#include <aimage.h>

Граф наследования:ImageFragment8:

[см. легенду]
Граф связей класса ImageFragment8:

[см. легенду]
Полный список членов класса

Открытые члены

virtual const char * | ClassName () const
ImageFragment8 ()
virtual | ~ImageFragment8 ()
virtual Pixel8 * | operator[] (int y) const
virtual void | SetTo (Pixel8 color)
virtual void | read (int x, int y, Pixel16 *data, int len) const

Открытые статические члены

static const char * | ThisClassName ()

Конструктор(ы)

ImageFragment8::ImageFragment8 ( ) [inline]

virtual ImageFragment8::~ImageFragment8 ( ) [inline, virtual]

Методы

const char * ImageFragment8::ThisClassName ( ) [static]

Переопределяет метод предка AImageMem8.

virtual const char* ImageFragment8::ClassName ( ) const [inline, virtual]

Переопределяет метод предка tplAImageReference< AImageMem8 >.

virtual Pixel8* ImageFragment8::operator[] ( int y ) const [inline, virtual]

Замещает AImageMem8.

virtual void ImageFragment8::SetTo ( Pixel8 color ) [inline, virtual]

Переопределяет метод предка AImageMem8.

virtual void ImageFragment8::read | ( | int | x,
 |  | int | y,
 |  | Pixel16 * | data,
 |  | int | len |
 | ) |  |  | const [inline, virtual]

Переопределяет метод предка tplAImageReference< AImageMem8 >.

Объявления и описания членов классов находятся в файлах:
  • aimage.h
  • imagemem.cpp


Pipe Line Filters: Класс ImageFragmentRgb8

Класс ImageFragmentRgb8
[Handling with images]

#include <aimage.h>

Граф наследования:ImageFragmentRgb8:

[см. легенду]
Граф связей класса ImageFragmentRgb8:

[см. легенду]
Полный список членов класса

Открытые члены

virtual const char * | ClassName () const
ImageFragmentRgb8 ()
virtual | ~ImageFragmentRgb8 ()
virtual void | Init (AImageMemRgb8 *_img)
virtual void | Init (int x, int y, int width, int height)
virtual AImageMem8 * | GetPlane8 (int plane) const
virtual void | SetTo (Rgb color)
virtual void | read (int x, int y, Pixel16 *data, int len) const

Открытые статические члены

static const char * | ThisClassName ()

Закрытые данные

ImageFragment8 | _pl [3]
AImageMem8 * | pl [3]

Подробное описание

class ImageFragmentRgb8

Конструктор(ы)

ImageFragmentRgb8::ImageFragmentRgb8 ( ) [inline]

virtual ImageFragmentRgb8::~ImageFragmentRgb8 ( ) [inline, virtual]

Методы

const char * ImageFragmentRgb8::ThisClassName ( ) [static]

Переопределяет метод предка AImageMemRgb8.

virtual const char* ImageFragmentRgb8::ClassName ( ) const [inline, virtual]

Переопределяет метод предка tplAImageReference< AImageMemRgb8 >.

virtual void ImageFragmentRgb8::Init ( AImageMemRgb8 * _img ) [inline, virtual]

Переопределяет метод предка tplAImageFragment< AImageMemRgb8 >.

virtual void ImageFragmentRgb8::Init | ( | int | x,
 |  | int | y,
 |  | int | width,
 |  | int | height |
 | ) |  |  | [inline, virtual]

Переопределяет метод предка tplAImageFragment< AImageMemRgb8 >.

virtual AImageMem8* ImageFragmentRgb8::GetPlane8 ( int plane ) const [inline, virtual]

Замещает AImageMemRgb8.

virtual void ImageFragmentRgb8::SetTo ( Rgb color ) [inline, virtual]

Переопределяет метод предка AImageMemRgb8.

virtual void ImageFragmentRgb8::read | ( | int | x,
 |  | int | y,
 |  | Pixel16 * | data,
 |  | int | len |
 | ) |  |  | const [inline, virtual]

Переопределяет метод предка tplAImageReference< AImageMemRgb8 >.

Данные класса

ImageFragment8 ImageFragmentRgb8::_pl[3] [private]

AImageMem8* ImageFragmentRgb8::pl[3] [private]

Объявления и описания членов классов находятся в файлах:
  • aimage.h
  • imagemem.cpp


Pipe Line Filters: Шаблон класса Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >

Vtl::Img::ImageHolder

Шаблон класса Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >

#include <vtl_image_types.h>

Полный список членов класса

Открытые члены

virtual | ~ImageHolder ()
ImageHolder (int width, int height, int bits, ImageClass iclass)
ImageHolder ()

Закрытые данные

std::auto_ptr< ImageDataLayout > | idl

template<typename P, int planes = 1, int interleave = BIL, class AllocStrategy = ImageStorageStrategyNew<P>>
class Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >

Конструктор(ы)

template<typename P, int planes = 1, int interleave = BIL, class AllocStrategy = ImageStorageStrategyNew<P>>
virtual Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >::~ImageHolder ( ) [inline, virtual]

template<typename P, int planes = 1, int interleave = BIL, class AllocStrategy = ImageStorageStrategyNew<P>>
Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >::ImageHolder | ( | int | width,
 |  | int | height,
 |  | int | bits,
 |  | ImageClass | iclass |
 | ) |  |  | [inline]

template<typename P, int planes = 1, int interleave = BIL, class AllocStrategy = ImageStorageStrategyNew<P>>
Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >::ImageHolder ( ) [inline]

Данные класса

template<typename P, int planes = 1, int interleave = BIL, class AllocStrategy = ImageStorageStrategyNew<P>>
std::auto_ptr<ImageDataLayout> Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >::idl [private]

Объявления и описания членов класса находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Структура Vtl::Img::ImageInfo

Vtl::Img::ImageInfo

Структура Vtl::Img::ImageInfo

Общая информация об изображении. Подробнее...

#include <vtl_image_types.h>

Полный список членов класса

Открытые атрибуты

uint32_t width
uint32_t height
uint32_t planes
uint32_t bitsPerSample
ImageClass iclass
SampleType sample_type_id
Interleave interleave

Подробное описание

Общая информация об изображении.

Данные класса

uint32_t Vtl::Img::ImageInfo::width

uint32_t Vtl::Img::ImageInfo::height

uint32_t Vtl::Img::ImageInfo::planes

uint32_t Vtl::Img::ImageInfo::bitsPerSample

ImageClass Vtl::Img::ImageInfo::iclass

SampleType Vtl::Img::ImageInfo::sample_type_id

Interleave Vtl::Img::ImageInfo::interleave

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Класс ImageMem16

Класс ImageMem16

#include <imagemem.h>

Граф наследования:ImageMem16:

[см. легенду]
Граф связей класса ImageMem16:

[см. легенду]
Полный список членов класса

Открытые члены

virtual const char * | ClassName () const
ImageMem16 ()
virtual | ~ImageMem16 ()
virtual bool | IsOk () const
virtual bool | Create (short width, short height, short bitsPerPix, bool hasPalette=false)
virtual void | Clear ()
virtual int | Width () const
virtual int | Height () const
virtual int | Bits () const
virtual int | NextLineShift () const
virtual Pixel16 * | operator[] (int y) const
virtual YImageClass | ImageClass () const
virtual int | GetPaletteEntries () const
virtual AImage::Rgb * | Palette () const
virtual void | read (int x, int y, Pixel16 *data, int len) const
virtual void | ChangeBits (int _bits)
specific, not use without special permissions!

Открытые статические члены

static const char * | ThisClassName ()

Закрытые члены

void | nullify ()
ImageMem16 (const ImageMem16 &im)

Закрытые данные

short | wid
short | len
short | bits
Pixel16 * data

Конструктор(ы)

ImageMem16::ImageMem16 ( const ImageMem16 & im ) [private]

ImageMem16::ImageMem16 ( ) [inline]

virtual ImageMem16::~ImageMem16 ( ) [inline, virtual]

Методы

void ImageMem16::nullify ( ) [private]

const char * ImageMem16::ThisClassName ( ) [static]

Переопределяет метод предка AImageMem16.

virtual const char* ImageMem16::ClassName ( ) const [inline, virtual]

Переопределяет метод предка AImageMem16.

virtual bool ImageMem16::IsOk ( ) const [inline, virtual]

Замещает AImage.

bool ImageMem16::Create | ( | short | width,
 |  | short | height,
 |  | short | bitsPerPix,
 |  | bool | hasPalette = false |
 | ) |  |  | [virtual]

Замещает AImage.

void ImageMem16::Clear ( ) [virtual]

Замещает AImage.

virtual int ImageMem16::Width ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMem16::Height ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMem16::Bits ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMem16::NextLineShift ( ) const [inline, virtual]

Замещает AImage.

virtual Pixel16* ImageMem16::operator[] ( int y ) const [inline, virtual]

Замещает AImageMem16.

AImage::YImageClass ImageMem16::ImageClass ( ) const [virtual]

Замещает AImage.

virtual int ImageMem16::GetPaletteEntries ( ) const [inline, virtual]

Переопределяет метод предка AImage.

virtual AImage::Rgb* ImageMem16::Palette ( ) const [inline, virtual]

Переопределяет метод предка AImage.

void ImageMem16::read | ( | int | x,
 |  | int | y,
 |  | Pixel16 * | data,
 |  | int | len |
 | ) |  |  | const [virtual]

Замещает AImage.

virtual void ImageMem16::ChangeBits ( int _bits ) [inline, virtual]

specific, not use without special permissions!

Переопределяет метод предка AImage.

Данные класса

short ImageMem16::wid [private]

short ImageMem16::len [private]

short ImageMem16::bits [private]

Pixel16* ImageMem16::data [private]

Объявления и описания членов классов находятся в файлах:
  • imagemem.h
  • imagemem.cpp


Pipe Line Filters: Класс ImageMem16Stuff

Класс ImageMem16Stuff
[Handling with images]

#include <aimage.h>

Граф наследования:ImageMem16Stuff:

[см. легенду]
Граф связей класса ImageMem16Stuff:

[см. легенду]
Полный список членов класса

Открытые члены

virtual const char * | ClassName () const
ImageMem16Stuff (Pixel16 *_extern_data, short width, short height, short bitsPerPixel=10)
virtual | ~ImageMem16Stuff ()
virtual bool | IsOk () const
virtual void | Load (const char *ozfilename, ProgressCounter *indicator=0)
virtual bool | Create (short width, short height, short bitsPerPix, bool hasPalette=false)
virtual void | Clear ()
virtual int | Width () const
virtual int | Height () const
virtual int | Bits () const
virtual int | NextLineShift () const
virtual YImageClass | ImageClass () const
virtual Pixel16 * | operator[] (int y) const
virtual void | read (int x, int y, Pixel16 *data2, int len) const

Открытые статические члены

static const char * | ThisClassName ()

Закрытые члены

ImageMem16Stuff (const ImageMem16Stuff &im)

Закрытые данные

short | wid
short | len
short | bits
Pixel16 * data

Классы

class | Error

Подробное описание

class ImageMem16Stuff

Конструктор(ы)

ImageMem16Stuff::ImageMem16Stuff ( const ImageMem16Stuff & im ) [private]

ImageMem16Stuff::ImageMem16Stuff | ( | Pixel16 * | _extern_data,
 |  | short | width,
 |  | short | height,
 |  | short | bitsPerPixel = 10 |
 | ) |  |  | [inline]

virtual ImageMem16Stuff::~ImageMem16Stuff ( ) [inline, virtual]

Методы

const char * ImageMem16Stuff::ThisClassName ( ) [static]

Переопределяет метод предка AImageMem16.

virtual const char* ImageMem16Stuff::ClassName ( ) const [inline, virtual]

Переопределяет метод предка AImageMem16.

virtual bool ImageMem16Stuff::IsOk ( ) const [inline, virtual]

Замещает AImage.

void ImageMem16Stuff::Load | ( | const char * | ozfilename,
 |  | ProgressCounter * | indicator = 0 |
 | ) |  |  | [virtual]

bool ImageMem16Stuff::Create | ( | short | width,
 |  | short | height,
 |  | short | bitsPerPix,
 |  | bool | hasPalette = false |
 | ) |  |  | [virtual]

Замещает AImage.

void ImageMem16Stuff::Clear ( ) [virtual]

Замещает AImage.

virtual int ImageMem16Stuff::Width ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMem16Stuff::Height ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMem16Stuff::Bits ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMem16Stuff::NextLineShift ( ) const [inline, virtual]

Замещает AImage.

virtual YImageClass ImageMem16Stuff::ImageClass ( ) const [inline, virtual]

Замещает AImage.

virtual Pixel16* ImageMem16Stuff::operator[] ( int y ) const [inline, virtual]

Замещает AImageMem16.

virtual void ImageMem16Stuff::read | ( | int | x,
 |  | int | y,
 |  | Pixel16 * | data2,
 |  | int | len |
 | ) |  |  | const [inline, virtual]

Замещает AImage.

Данные класса

short ImageMem16Stuff::wid [private]

short ImageMem16Stuff::len [private]

short ImageMem16Stuff::bits [private]

Pixel16* ImageMem16Stuff::data [private]

Объявления и описания членов классов находятся в файлах:
  • aimage.h
  • imagemem.cpp


Pipe Line Filters: Класс ImageMem16Stuff::Error

ImageMem16Stuff::Error

Класс ImageMem16Stuff::Error

#include <aimage.h>

Граф наследования:ImageMem16Stuff::Error:

[см. легенду]
Граф связей класса ImageMem16Stuff::Error:

[см. легенду]
Полный список членов класса

Открытые типы

enum ErrorStatus {
errOK, errInsufficientMemory, errCantLoadObject, errCantCreateObject,
errCantClearObject, errUnknown = 0xFFFF
}

Открытые члены

Error (const char *fname, int nline, const ImageMem16Stuff *obj, bool del_msg, ErrorStatus id_err, const char *msgfmt,...)
virtual ~Error ()
ErrorStatus ErrorID ()

Закрытые данные

ErrorStatus err

Перечисления

enum ImageMem16Stuff::Error::ErrorStatus

Элементы перечислений:
errOK
errInsufficientMemory
errCantLoadObject
errCantCreateObject
errCantClearObject
errUnknown

Конструктор(ы)

ImageMem16Stuff::Error::Error | ( | const char * | fname,
 |  | int | nline,
 |  | const ImageMem16Stuff * | obj,
 |  | bool | del_msg,
 |  | ErrorStatus | id_err,
 |  | const char * | msgfmt,
 |  |  | ...
 | ) |  |

virtual ImageMem16Stuff::Error::~Error ( ) [inline, virtual]

Методы

ErrorStatus ImageMem16Stuff::Error::ErrorID ( ) [inline]

Данные класса

ErrorStatus ImageMem16Stuff::Error::err [private]

Объявления и описания членов классов находятся в файлах:
  • aimage.h
  • imagemem.cpp


Pipe Line Filters: Класс ImageMem8

Класс ImageMem8

#include <imagemem.h>

Граф наследования:ImageMem8:

[см. легенду]
Граф связей класса ImageMem8:

[см. легенду]
Полный список членов класса

Открытые члены

virtual const char * | ClassName () const
ImageMem8 ()
virtual | ~ImageMem8 ()
virtual bool | IsOk () const
virtual bool | Create (short width, short height, short bitsPerPix=8, bool hasPalette=false)
virtual void | Clear ()
virtual int | Width () const
virtual int | Height () const
virtual int | Bits () const
virtual int | NextLineShift () const
virtual Pixel8 * | operator[] (int y) const
virtual YImageClass | ImageClass () const
virtual int | GetPaletteEntries () const
virtual AImage::Rgb * | Palette () const
virtual void | read (int x, int y, Pixel16 *data, int len) const
virtual void | ChangeBits (int _bits)
specific, not use without special permissions!

Открытые статические члены

static const char * | ThisClassName ()

Закрытые члены

void | nullify ()

Закрытые данные

short | wid
short | len
short | bits
int | next_line_shift
Pixel8 * data
int | pal_entries
AImage::Rgb * pal
YImageClass img_class

Конструктор(ы)

ImageMem8::ImageMem8 ( )

ImageMem8::~ImageMem8 ( ) [virtual]

Методы

void ImageMem8::nullify ( ) [private]

const char * ImageMem8::ThisClassName ( ) [static]

Переопределяет метод предка AImageMem8.

virtual const char* ImageMem8::ClassName ( ) const [inline, virtual]

Переопределяет метод предка AImageMem8.

virtual bool ImageMem8::IsOk ( ) const [inline, virtual]

Замещает AImage.

bool ImageMem8::Create | ( | short | width,
 |  | short | height,
 |  | short | bitsPerPix = 8,
 |  | bool | hasPalette = false |
 | ) |  |  | [virtual]

Замещает AImage.

void ImageMem8::Clear ( ) [virtual]

Замещает AImage.

virtual int ImageMem8::Width ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMem8::Height ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMem8::Bits ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMem8::NextLineShift ( ) const [inline, virtual]

Замещает AImage.

virtual Pixel8* ImageMem8::operator[] ( int y ) const [inline, virtual]

Замещает AImageMem8.

AImage::YImageClass ImageMem8::ImageClass ( ) const [virtual]

Замещает AImage.

virtual int ImageMem8::GetPaletteEntries ( ) const [inline, virtual]

Переопределяет метод предка AImage.

virtual AImage::Rgb* ImageMem8::Palette ( ) const [inline, virtual]

Переопределяет метод предка AImage.

void ImageMem8::read | ( | int | x,
 |  | int | y,
 |  | Pixel16 * | data,
 |  | int | len |
 | ) |  |  | const [virtual]

Замещает AImage.

virtual void ImageMem8::ChangeBits ( int _bits ) [inline, virtual]

specific, not use without special permissions!

Переопределяет метод предка AImage.

Данные класса

short ImageMem8::wid [private]

short ImageMem8::len [private]

short ImageMem8::bits [private]

int ImageMem8::next_line_shift [private]

Pixel8* ImageMem8::data [private]

int ImageMem8::pal_entries [private]

AImage::Rgb* ImageMem8::pal [private]

YImageClass ImageMem8::img_class [private]

Объявления и описания членов классов находятся в файлах:
  • imagemem.h
  • imagemem.cpp


Pipe Line Filters: Класс ImageMemFloat

Класс ImageMemFloat

#include <imagemem.h>

Граф наследования:ImageMemFloat:

[см. легенду]
Граф связей класса ImageMemFloat:

[см. легенду]
Полный список членов класса

Открытые члены

void | nullify ()
virtual const char * | ClassName () const
ImageMemFloat ()
virtual | ~ImageMemFloat ()
virtual bool | IsOk () const
virtual bool | Create (short width, short height, short bitsPerPix=8 *sizeof(PixelFloat), bool hasPalette=false)
virtual void | Clear ()
virtual int | Width () const
virtual int | Height () const
virtual int | Bits () const
virtual int | NextLineShift () const
virtual PixelFloat * | operator[] (int y) const
virtual YImageClass | ImageClass () const
virtual void | SetTo (PixelFloat color)
virtual void | read (int x, int y, Pixel16 *data, int len) const

Открытые статические члены

static const char * | ThisClassName ()

Открытые атрибуты

short | wid
short | len
short | bits
PixelFloat * data

Конструктор(ы)

ImageMemFloat::ImageMemFloat ( )

ImageMemFloat::~ImageMemFloat ( ) [virtual]

Методы

void ImageMemFloat::nullify ( )

const char * ImageMemFloat::ThisClassName ( ) [static]

Переопределяет метод предка AImageMemFloat.

virtual const char* ImageMemFloat::ClassName ( ) const [inline, virtual]

Переопределяет метод предка AImageMemFloat.

virtual bool ImageMemFloat::IsOk ( ) const [inline, virtual]

Замещает AImage.

bool ImageMemFloat::Create | ( | short | width,
 |  | short | height,
 |  | short | bitsPerPix = 8 *sizeof(PixelFloat),
 |  | bool | hasPalette = false |
 | ) |  |  | [virtual]

Замещает AImage.

void ImageMemFloat::Clear ( ) [virtual]

Замещает AImage.

virtual int ImageMemFloat::Width ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMemFloat::Height ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMemFloat::Bits ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMemFloat::NextLineShift ( ) const [inline, virtual]

Замещает AImage.

virtual PixelFloat* ImageMemFloat::operator[] ( int y ) const [inline, virtual]

Замещает AImageMemFloat.

virtual YImageClass ImageMemFloat::ImageClass ( ) const [inline, virtual]

Замещает AImage.

void ImageMemFloat::SetTo ( PixelFloat color ) [virtual]

Замещает AImageMemFloat.

void ImageMemFloat::read | ( | int | x,
 |  | int | y,
 |  | Pixel16 * | data,
 |  | int | len |
 | ) |  |  | const [virtual]

Замещает AImage.

Данные класса

short ImageMemFloat::wid

short ImageMemFloat::len

short ImageMemFloat::bits

PixelFloat* ImageMemFloat::data

Объявления и описания членов классов находятся в файлах:
  • imagemem.h
  • imagemem.cpp


Pipe Line Filters: Класс ImageMemRgb8

Класс ImageMemRgb8

#include <imagemem.h>

Граф наследования:ImageMemRgb8:

[см. легенду]
Граф связей класса ImageMemRgb8:

[см. легенду]
Полный список членов класса

Открытые члены

virtual const char * | ClassName () const
ImageMemRgb8 ()
virtual | ~ImageMemRgb8 ()
virtual bool | IsOk () const
virtual bool | Create (short width, short height, short bitsPerPix=8, bool hasPalette=false)
virtual void | Clear ()
virtual YImageClass | ImageClass () const
virtual int | Width () const
virtual int | Height () const
virtual int | Bits () const
virtual int | NextLineShift () const
virtual AImageMem8 * | GetPlane8 (int plane) const
virtual void | read (int x, int y, Pixel16 *data, int len) const

Открытые статические члены

static const char * | ThisClassName ()

Закрытые члены

void | nullify ()
ImageMemRgb8 (const ImageMemRgb8 &im)

Закрытые данные

short | wid
short | len
short | bits
AImageMem8 * | data8 [3]

Конструктор(ы)

ImageMemRgb8::ImageMemRgb8 ( const ImageMemRgb8 & im ) [private]

ImageMemRgb8::ImageMemRgb8 ( ) [inline]

virtual ImageMemRgb8::~ImageMemRgb8 ( ) [inline, virtual]

Методы

void ImageMemRgb8::nullify ( ) [private]

const char * ImageMemRgb8::ThisClassName ( ) [static]

Переопределяет метод предка AImageMemRgb8.

virtual const char* ImageMemRgb8::ClassName ( ) const [inline, virtual]

Переопределяет метод предка AImageMemRgb8.

bool ImageMemRgb8::IsOk ( ) const [virtual]

Замещает AImage.

bool ImageMemRgb8::Create | ( | short | width,
 |  | short | height,
 |  | short | bitsPerPix = 8,
 |  | bool | hasPalette = false |
 | ) |  |  | [virtual]

Замещает AImage.

void ImageMemRgb8::Clear ( ) [virtual]

Замещает AImage.

AImage::YImageClass ImageMemRgb8::ImageClass ( ) const [virtual]

Замещает AImage.

virtual int ImageMemRgb8::Width ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMemRgb8::Height ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMemRgb8::Bits ( ) const [inline, virtual]

Замещает AImage.

virtual int ImageMemRgb8::NextLineShift ( ) const [inline, virtual]

Замещает AImage.

AImageMem8 * ImageMemRgb8::GetPlane8 ( int plane ) const [virtual]

Замещает AImageMemRgb8.

void ImageMemRgb8::read | ( | int | x,
 |  | int | y,
 |  | Pixel16 * | data,
 |  | int | len |
 | ) |  |  | const [virtual]

Замещает AImage.

Данные класса

short ImageMemRgb8::wid [private]

short ImageMemRgb8::len [private]

short ImageMemRgb8::bits [private]

AImageMem8* ImageMemRgb8::data8[3] [private]

Объявления и описания членов классов находятся в файлах:
  • imagemem.h
  • imagemem.cpp


Pipe Line Filters: Шаблон класса Vtl::Img::ImageNDref< T_SList, T_Layout >

Vtl::Img::ImageNDref

Шаблон класса Vtl::Img::ImageNDref< T_SList, T_Layout >

#include <vtl_image.h>

Полный список членов класса

Открытые типы

enum | { Ndim = Vtl::Meta::IL::Length<T_SList::IList>::value }
typedef Iterator_ND< T_Layout > | IterND

Открытые члены

virtual | ~ImageNDref ()
ImageNDref (value_type *data_, const T_SList &size_list, const T_Layout &layout_)
IterND | NIter () const
virtual | ~ImageNDref ()
ImageNDref ()

Закрытые типы

typedef T_Layout::value_type | value_type
typedef BuildIter1DList< T_Layout
>::Result 		Iter1DList
typedef T | value_type

Закрытые данные

T_SList | sizes
T_Layout | layout
value_type * data

Классы

struct | Iter1D
struct | IterBands

template<class T_SList, class T_Layout>
class Vtl::Img::ImageNDref< T_SList, T_Layout >

Определения типов

template<class T_SList, class T_Layout>
typedef Iterator_ND<T_Layout> Vtl::Img::ImageNDref< T_SList, T_Layout >::IterND

template<class T_SList, class T_Layout>
typedef T_Layout::value_type Vtl::Img::ImageNDref< T_SList, T_Layout >::value_type [private]

template<class T_SList, class T_Layout>
typedef BuildIter1DList<T_Layout>::Result Vtl::Img::ImageNDref< T_SList, T_Layout >::Iter1DList [private]

template<class T_SList, class T_Layout>
typedef T Vtl::Img::ImageNDref< T_SList, T_Layout >::value_type [private]

Перечисления

template<class T_SList, class T_Layout>
anonymous enum

Элементы перечислений:
Ndim

Конструктор(ы)

template<class T_SList, class T_Layout>
virtual Vtl::Img::ImageNDref< T_SList, T_Layout >::~ImageNDref ( ) [inline, virtual]

template<class T_SList, class T_Layout>
Vtl::Img::ImageNDref< T_SList, T_Layout >::ImageNDref | ( | value_type * | data_,
 |  | const T_SList & | size_list,
 |  | const T_Layout & | layout_ |
 | ) |  |  | [inline]

template<class T_SList, class T_Layout>
virtual Vtl::Img::ImageNDref< T_SList, T_Layout >::~ImageNDref ( ) [inline, virtual]

template<class T_SList, class T_Layout>
Vtl::Img::ImageNDref< T_SList, T_Layout >::ImageNDref ( ) [inline]

Методы

template<class T_SList, class T_Layout>
IterND Vtl::Img::ImageNDref< T_SList, T_Layout >::NIter ( ) const [inline]

Данные класса

template<class T_SList, class T_Layout>
T_SList Vtl::Img::ImageNDref< T_SList, T_Layout >::sizes [private]

template<class T_SList, class T_Layout>
T_Layout Vtl::Img::ImageNDref< T_SList, T_Layout >::layout [private]

template<class T_SList, class T_Layout>
value_type* Vtl::Img::ImageNDref< T_SList, T_Layout >::data [private]

Объявления и описания членов классов находятся в файлах:
  • vtl_image.h
  • vtl_image_old.h


Pipe Line Filters: Шаблон структуры Vtl::Img::ImageNDref< T_SList, T_Layout >::Iter1D< i >

Vtl::Img::ImageNDref::Iter1D

Шаблон структуры Vtl::Img::ImageNDref< T_SList, T_Layout >::Iter1D< i >

#include <vtl_image.h>

Полный список членов класса

Открытые типы

typedef Loki::TL::TypeAt<
Iter1DList, i >::Result 		Type

template<class T_SList, class T_Layout>
template<int i>
struct Vtl::Img::ImageNDref< T_SList, T_Layout >::Iter1D< i >

Определения типов

template<class T_SList, class T_Layout>
template<int i>
typedef Loki::TL::TypeAt<Iter1DList,i>::Result Vtl::Img::ImageNDref< T_SList, T_Layout >::Iter1D< i >::Type

Объявления и описания членов структуры находятся в файле:
  • vtl_image.h


Pipe Line Filters: Структура Vtl::Img::ImageNDref< T_SList, T_Layout >::IterBands

Vtl::Img::ImageNDref::IterBands

Структура Vtl::Img::ImageNDref< T_SList, T_Layout >::IterBands

#include <vtl_image.h>

Полный список членов класса

Открытые типы

typedef Loki::TL::TypeAt<
Iter1DList, Ndim >::Result 		Type

template<class T_SList, class T_Layout>
struct Vtl::Img::ImageNDref< T_SList, T_Layout >::IterBands

Определения типов

template<class T_SList, class T_Layout>
typedef Loki::TL::TypeAt<Iter1DList,Ndim>::Result Vtl::Img::ImageNDref< T_SList, T_Layout >::IterBands::Type

Объявления и описания членов структуры находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон класса ImageProxy< ImageT >

Шаблон класса ImageProxy< ImageT >

#include <imtransf.h>

Граф наследования:ImageProxy< ImageT >:

[см. легенду]
Граф связей класса ImageProxy< ImageT >:

[см. легенду]
Полный список членов класса

Открытые члены

ImageProxy (ImageT *image)
ImageProxy (const ImageProxy &src)
virtual | ~ImageProxy ()
virtual int | width () const
virtual int | height () const
virtual int | bits () const
virtual AImage::YImageClass | imageClass () const
virtual int | get (int x, int y) const
virtual int | maxValue () const
virtual void | set (int x, int y, int value)
AImageProxy * | clone () const

Закрытые данные

ImageT * | image_
const int | max_

template<class ImageT>
class ImageProxy< ImageT >

Конструктор(ы)

template<class ImageT>
ImageProxy< ImageT >::ImageProxy ( ImageT * image ) [inline]

template<class ImageT>
ImageProxy< ImageT >::ImageProxy ( const ImageProxy< ImageT > & src ) [inline]

template<class ImageT>
virtual ImageProxy< ImageT >::~ImageProxy ( ) [inline, virtual]

Методы

template<class ImageT>
virtual int ImageProxy< ImageT >::width ( ) const [inline, virtual]

Замещает AImageProxy.

template<class ImageT>
virtual int ImageProxy< ImageT >::height ( ) const [inline, virtual]

Замещает AImageProxy.

template<class ImageT>
virtual int ImageProxy< ImageT >::bits ( ) const [inline, virtual]

Замещает AImageProxy.

template<class ImageT>
virtual AImage::YImageClass ImageProxy< ImageT >::imageClass ( ) const [inline, virtual]

Замещает AImageProxy.

template<class ImageT>
virtual int ImageProxy< ImageT >::get | ( | int | x,
 |  | int | y |
 | ) |  |  | const [inline, virtual]

Замещает AImageProxy.

template<class ImageT>
virtual int ImageProxy< ImageT >::maxValue ( ) const [inline, virtual]

Замещает AImageProxy.

template<class ImageT>
virtual void ImageProxy< ImageT >::set | ( | int | x,
 |  | int | y,
 |  | int | value |
 | ) |  |  | [inline, virtual]

Замещает AImageProxy.

template<class ImageT>
AImageProxy* ImageProxy< ImageT >::clone ( ) const [inline, virtual]

Замещает AImageProxy.

Данные класса

template<class ImageT>
ImageT* ImageProxy< ImageT >::image_ [private]

template<class ImageT>
const int ImageProxy< ImageT >::max_ [private]

Объявления и описания членов класса находятся в файле:
  • imtransf.h


Pipe Line Filters: Шаблон класса ImageProxyConst< ImageT >

Шаблон класса ImageProxyConst< ImageT >

#include <imtransf.h>

Граф наследования:ImageProxyConst< ImageT >:

[см. легенду]
Граф связей класса ImageProxyConst< ImageT >:

[см. легенду]
Полный список членов класса

Открытые члены

ImageProxyConst (const ImageT *image)
ImageProxyConst (const ImageProxyConst &src)
virtual | ~ImageProxyConst ()
virtual int | width () const
virtual int | height () const
virtual int | bits () const
virtual AImage::YImageClass | imageClass () const
virtual int | get (int x, int y) const
virtual int | maxValue () const
virtual void | set (int x, int y, int value)
AImageProxy * | clone () const

Закрытые данные

const ImageT * | image_
const int | max_

template<class ImageT>
class ImageProxyConst< ImageT >

Конструктор(ы)

template<class ImageT>
ImageProxyConst< ImageT >::ImageProxyConst ( const ImageT * image ) [inline]

template<class ImageT>
ImageProxyConst< ImageT >::ImageProxyConst ( const ImageProxyConst< ImageT > & src ) [inline]

template<class ImageT>
virtual ImageProxyConst< ImageT >::~ImageProxyConst ( ) [inline, virtual]

Методы

template<class ImageT>
virtual int ImageProxyConst< ImageT >::width ( ) const [inline, virtual]

Замещает AImageProxy.

template<class ImageT>
virtual int ImageProxyConst< ImageT >::height ( ) const [inline, virtual]

Замещает AImageProxy.

template<class ImageT>
virtual int ImageProxyConst< ImageT >::bits ( ) const [inline, virtual]

Замещает AImageProxy.

template<class ImageT>
virtual AImage::YImageClass ImageProxyConst< ImageT >::imageClass ( ) const [inline, virtual]

Замещает AImageProxy.

template<class ImageT>
virtual int ImageProxyConst< ImageT >::get | ( | int | x,
 |  | int | y |
 | ) |  |  | const [inline, virtual]

Замещает AImageProxy.

template<class ImageT>
virtual int ImageProxyConst< ImageT >::maxValue ( ) const [inline, virtual]

Замещает AImageProxy.

template<class ImageT>
virtual void ImageProxyConst< ImageT >::set | ( | int | x,
 |  | int | y,
 |  | int | value |
 | ) |  |  | [inline, virtual]

Замещает AImageProxy.

template<class ImageT>
AImageProxy* ImageProxyConst< ImageT >::clone ( ) const [inline, virtual]

Замещает AImageProxy.

Данные класса

template<class ImageT>
const ImageT* ImageProxyConst< ImageT >::image_ [private]

template<class ImageT>
const int ImageProxyConst< ImageT >::max_ [private]

Объявления и описания членов класса находятся в файле:
  • imtransf.h


Pipe Line Filters: Класс ImageProxyVector

Класс ImageProxyVector

#include <imtransf.h>

Полный список членов класса

Открытые типы

typedef std::vector< AImageProxy
* >::iterator 		iterator
typedef std::vector< AImageProxy
* >::const_iterator 		const_iterator

Открытые члены

ImageProxyVector ()
ImageProxyVector (const AImage *image)
ImageProxyVector (AImage *image)
virtual | ~ImageProxyVector ()
ImageProxyVector (const ImageProxyVector &src)
ImageProxyVector & | operator= (const ImageProxyVector &src)
void | add (AImage *image)
void | add (const AImage *image)
void | add (const AImageProxy &imageProxy)
size_t | countImage () const
size_t | countProxy () const
iterator begin ()
iterator end ()
const_iterator | begin () const
const_iterator | end () const
int | width () const
int | height () const
std::vector< int > | bits () const
std::vector< AImage::YImageClass > | imageClass () const

Закрытые данные

std::vector< AImageProxy * > | proxies_
std::vector< int > | bits_
std::vector< AImage::YImageClass > | imageClass_
int | width_
int | height_

Определения типов

typedef std::vector<AImageProxy*>::iterator ImageProxyVector::iterator

typedef std::vector<AImageProxy*>::const_iterator ImageProxyVector::const_iterator

Конструктор(ы)

ImageProxyVector::ImageProxyVector ( ) [inline]

ImageProxyVector::ImageProxyVector ( const AImage * image ) [inline]

ImageProxyVector::ImageProxyVector ( AImage * image ) [inline]

ImageProxyVector::~ImageProxyVector ( ) [virtual]

ImageProxyVector::ImageProxyVector ( const ImageProxyVector & src )

Методы

ImageProxyVector & ImageProxyVector::operator= ( const ImageProxyVector & src )

void ImageProxyVector::add ( AImage * image )

void ImageProxyVector::add ( const AImage * image )

void ImageProxyVector::add ( const AImageProxy & imageProxy )

size_t ImageProxyVector::countImage ( ) const [inline]

size_t ImageProxyVector::countProxy ( ) const [inline]

iterator ImageProxyVector::begin ( ) [inline]

iterator ImageProxyVector::end ( ) [inline]

const_iterator ImageProxyVector::begin ( ) const [inline]

const_iterator ImageProxyVector::end ( ) const [inline]

int ImageProxyVector::width ( ) const [inline]

int ImageProxyVector::height ( ) const [inline]

std::vector<int> ImageProxyVector::bits ( ) const [inline]

std::vector<AImage::YImageClass> ImageProxyVector::imageClass ( ) const [inline]

Данные класса

std::vector<AImageProxy*> ImageProxyVector::proxies_ [private]

std::vector<int> ImageProxyVector::bits_ [private]

std::vector<AImage::YImageClass> ImageProxyVector::imageClass_ [private]

int ImageProxyVector::width_ [private]

int ImageProxyVector::height_ [private]

Объявления и описания членов классов находятся в файлах:
  • imtransf.h
  • imtransf.cpp


Pipe Line Filters: Шаблон класса Vtl::Plf::ImageRef< T >

Vtl::Plf::ImageRef

Шаблон класса Vtl::Plf::ImageRef< T >
[Ports and buffers]

Класс служит интерфейсом 'только для чтения' к полосе изображения, хранящейся в данный момент в StripBuffer, который в свою очередь находится в OutPortNoPostProc. Подробнее...

#include <plf_strip_buffer_support.h>

Граф связей класса Vtl::Plf::ImageRef< T >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef T | Pixel

Открытые члены

ImageRef ()
ImageRef (T *data_ptr, int width, int next_line_shift, Extent ex)
ImageRef (const ImageRef &ir, const Extent &new_ext, int y_offset)
int | nls () const
int | w () const
int | h () const
const Extent & | ext () const
const T * | operator[] (int y) const

Закрытые статические члены

static void | check (int a, int b, const char *name)

Закрытые данные

T * | _data
int | _width
int | _nls
Extent _ex

Подробное описание

template<typename T>
class Vtl::Plf::ImageRef< T >

Класс служит интерфейсом 'только для чтения' к полосе изображения, хранящейся в данный момент в StripBuffer, который в свою очередь находится в OutPortNoPostProc.

class ImageRef

Примеры:

test_plf_io_ports.cpp и test_plf_strip_buffer.cpp.

Определения типов

template<typename T>
typedef T Vtl::Plf::ImageRef< T >::Pixel

Конструктор(ы)

template<typename T>
Vtl::Plf::ImageRef< T >::ImageRef ( ) [inline]

template<typename T>
Vtl::Plf::ImageRef< T >::ImageRef | ( | T * | data_ptr,
 |  | int | width,
 |  | int | next_line_shift,
 |  | Extent | ex |
 | ) |  |  | [inline]

template<typename T>
Vtl::Plf::ImageRef< T >::ImageRef | ( | const ImageRef< T > & | ir,
 |  | const Extent & | new_ext,
 |  | int | y_offset |
 | ) |  |  | [inline]

Методы

template<typename T>
static void Vtl::Plf::ImageRef< T >::check | ( | int | a,
 |  | int | b,
 |  | const char * | name |
 | ) |  |  | [inline, static, private]

template<typename T>
int Vtl::Plf::ImageRef< T >::nls ( ) const [inline]

template<typename T>
int Vtl::Plf::ImageRef< T >::w ( ) const [inline]

template<typename T>
int Vtl::Plf::ImageRef< T >::h ( ) const [inline]

template<typename T>
const Extent& Vtl::Plf::ImageRef< T >::ext ( ) const [inline]

template<typename T>
const T* Vtl::Plf::ImageRef< T >::operator[] ( int y ) const [inline]

Данные класса

template<typename T>
T* Vtl::Plf::ImageRef< T >::_data [private]

template<typename T>
int Vtl::Plf::ImageRef< T >::_width [private]

template<typename T>
int Vtl::Plf::ImageRef< T >::_nls [private]

template<typename T>
Extent Vtl::Plf::ImageRef< T >::_ex [private]

Объявления и описания членов класса находятся в файле:
  • plf_strip_buffer_support.h


Pipe Line Filters: Класс ImageResample

Класс ImageResample

#include <imresamp.h>

Граф наследования:ImageResample:

[см. легенду]
Граф связей класса ImageResample:

[см. легенду]
Полный список членов класса

Открытые типы

enum | ModifyType { mtRotate, mtResize }
enum InterpolationMethod {
imUnknown, imAuto, imNearest, imBilinear,
imBicubical, imAverage, imHistMax
}

Открытые члены

ImageResample ()
virtual | ~ImageResample ()
bool | initResize (const AImage *input_image, InterpolationMethod method, int new_width, int new_height=0)
bool | initRotate (const AImage *input_image, InterpolationMethod method, double angle, bool radians=true, bool fill_empty_space=true, int fill_intensity=0)
virtual int | Width () const
virtual int | Height () const
virtual AImage::YImageClass | ImageClass () const
virtual int | Bits () const
virtual bool | Run (AImage *output_image, ProgressCounter *indicator=0)

Закрытые члены

void | nullifyPrms ()
bool | init (ImageResampleParams _prms)
void | nullify ()

Закрытые данные

ImageResampleParams prms

Классы

struct | ImageResampleParams

Перечисления

enum ImageResample::ModifyType

Элементы перечислений:
mtRotate
mtResize

enum ImageResample::InterpolationMethod

Элементы перечислений:
imUnknown
imAuto
imNearest
imBilinear
imBicubical
imAverage
imHistMax

Конструктор(ы)

ImageResample::ImageResample ( ) [inline]

virtual ImageResample::~ImageResample ( ) [inline, virtual]

Методы

void ImageResample::nullifyPrms ( ) [private]

bool ImageResample::init ( ImageResampleParams _prms ) [private]

void ImageResample::nullify ( ) [inline, private]

bool ImageResample::initResize | ( | const AImage * | input_image,
 |  | InterpolationMethod | method,
 |  | int | new_width,
 |  | int | new_height = 0
 | ) |  |

bool ImageResample::initRotate | ( | const AImage * | input_image,
 |  | InterpolationMethod | method,
 |  | double | angle,
 |  | bool | radians = true,
 |  | bool | fill_empty_space = true,
 |  | int | fill_intensity = 0
 | ) |  |

virtual int ImageResample::Width ( void ) const [inline, virtual]

Переопределяется в ImageRotate и ImageResize.

virtual int ImageResample::Height ( ) const [inline, virtual]

Переопределяется в ImageRotate и ImageResize.

virtual AImage::YImageClass ImageResample::ImageClass ( ) const [inline, virtual]

Переопределяется в ImageRotate и ImageResize.

virtual int ImageResample::Bits ( void ) const [inline, virtual]

Переопределяется в ImageRotate и ImageResize.

bool ImageResample::Run | ( | AImage * | output_image,
 |  | ProgressCounter * | indicator = 0 |
 | ) |  |  | [virtual]

Переопределяется в ImageRotate и ImageResize.

Данные класса

ImageResampleParams ImageResample::prms [private]

Объявления и описания членов классов находятся в файлах:
  • imresamp.h
  • imresamp.cpp


Pipe Line Filters: Структура ImageResample::ImageResampleParams

ImageResample::ImageResampleParams

Структура ImageResample::ImageResampleParams

#include <imresamp.h>

Граф связей класса ImageResample::ImageResampleParams:

[см. легенду]
Полный список членов класса

Открытые атрибуты

ProgressCounter * indicator
ModifyType mtype
InterpolationMethod imeth
double | radians
int | new_width
int | new_height
bool | fill
int | fill_int
const AImage * | from
int | to_width
int | to_height
AImage::YImageClass to_class
int | to_bits
int | shiftx
int | shifty
bool | is_valid

Данные класса

ProgressCounter* ImageResample::ImageResampleParams::indicator

ModifyType ImageResample::ImageResampleParams::mtype

InterpolationMethod ImageResample::ImageResampleParams::imeth

double ImageResample::ImageResampleParams::radians

int ImageResample::ImageResampleParams::new_width

int ImageResample::ImageResampleParams::new_height

bool ImageResample::ImageResampleParams::fill

int ImageResample::ImageResampleParams::fill_int

const AImage* ImageResample::ImageResampleParams::from

int ImageResample::ImageResampleParams::to_width

int ImageResample::ImageResampleParams::to_height

AImage::YImageClass ImageResample::ImageResampleParams::to_class

int ImageResample::ImageResampleParams::to_bits

int ImageResample::ImageResampleParams::shiftx

int ImageResample::ImageResampleParams::shifty

bool ImageResample::ImageResampleParams::is_valid

Объявления и описания членов структуры находятся в файле:
  • imresamp.h


Pipe Line Filters: Класс ImageResize

Класс ImageResize

#include <imresamp.h>

Граф наследования:ImageResize:

[см. легенду]
Граф связей класса ImageResize:

[см. легенду]
Полный список членов класса

Открытые члены

ImageResize ()
virtual | ~ImageResize ()
bool | init (const AImage *input_image, InterpolationMethod method, int new_width, int new_height=0)
virtual int | Width () const
virtual int | Height () const
virtual AImage::YImageClass | ImageClass () const
virtual int | Bits () const
virtual bool | Run (AImage *output_image, ProgressCounter *indicator=0)

Конструктор(ы)

ImageResize::ImageResize ( ) [inline]

virtual ImageResize::~ImageResize ( ) [inline, virtual]

Методы

bool ImageResize::init | ( | const AImage * | input_image,
 |  | InterpolationMethod | method,
 |  | int | new_width,
 |  | int | new_height = 0 |
 | ) |  |  | [inline]

virtual int ImageResize::Width ( void ) const [inline, virtual]

Переопределяет метод предка ImageResample.

virtual int ImageResize::Height ( ) const [inline, virtual]

Переопределяет метод предка ImageResample.

virtual AImage::YImageClass ImageResize::ImageClass ( ) const [inline, virtual]

Переопределяет метод предка ImageResample.

virtual int ImageResize::Bits ( void ) const [inline, virtual]

Переопределяет метод предка ImageResample.

virtual bool ImageResize::Run | ( | AImage * | output_image,
 |  | ProgressCounter * | indicator = 0 |
 | ) |  |  | [inline, virtual]

Переопределяет метод предка ImageResample.

Объявления и описания членов класса находятся в файле:
  • imresamp.h


Pipe Line Filters: Класс ImageRotate

Класс ImageRotate

#include <imresamp.h>

Граф наследования:ImageRotate:

[см. легенду]
Граф связей класса ImageRotate:

[см. легенду]
Полный список членов класса

Открытые члены

ImageRotate ()
virtual | ~ImageRotate ()
bool | init (const AImage *input_image, InterpolationMethod method, double angle, bool radians=true, bool fill_empty_space=true, int fill_intensity=0)
virtual int | Width () const
virtual int | Height () const
virtual AImage::YImageClass | ImageClass () const
virtual int | Bits () const
virtual bool | Run (AImage *output_image, ProgressCounter *indicator=0)

Конструктор(ы)

ImageRotate::ImageRotate ( ) [inline]

virtual ImageRotate::~ImageRotate ( ) [inline, virtual]

Методы

bool ImageRotate::init | ( | const AImage * | input_image,
 |  | InterpolationMethod | method,
 |  | double | angle,
 |  | bool | radians = true,
 |  | bool | fill_empty_space = true,
 |  | int | fill_intensity = 0 |
 | ) |  |  | [inline]

virtual int ImageRotate::Width ( void ) const [inline, virtual]

Переопределяет метод предка ImageResample.

virtual int ImageRotate::Height ( ) const [inline, virtual]

Переопределяет метод предка ImageResample.

virtual AImage::YImageClass ImageRotate::ImageClass ( ) const [inline, virtual]

Переопределяет метод предка ImageResample.

virtual int ImageRotate::Bits ( void ) const [inline, virtual]

Переопределяет метод предка ImageResample.

virtual bool ImageRotate::Run | ( | AImage * | output_image,
 |  | ProgressCounter * | indicator = 0 |
 | ) |  |  | [inline, virtual]

Переопределяет метод предка ImageResample.

Объявления и описания членов класса находятся в файле:
  • imresamp.h


Pipe Line Filters: Шаблон класса Vtl::Img::ImageStorageStrategyNew< T >

Vtl::Img::ImageStorageStrategyNew

Шаблон класса Vtl::Img::ImageStorageStrategyNew< T >

#include <vtl_image_types.h>

Полный список членов класса

Открытые члены

T * | Create (int size)
void | Destroy (T *data)

template<typename T>
class Vtl::Img::ImageStorageStrategyNew< T >

Методы

template<typename T>
T* Vtl::Img::ImageStorageStrategyNew< T >::Create ( int size ) [inline]

template<typename T>
void Vtl::Img::ImageStorageStrategyNew< T >::Destroy ( T * data ) [inline]

Объявления и описания членов класса находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Класс ImageTransform

Класс ImageTransform

#include <imtransf.h>

Граф связей класса ImageTransform:

[см. легенду]
Полный список членов класса

Открытые типы

enum | EdgeMethod { None }

Открытые члены

ImageTransform (bool fastAlgorithm=true)
virtual | ~ImageTransform ()
void | setBackgroundColor (bool doCorrect, int value=0)
void | setErrorColor (bool doCorrect, int value=0)
void | setFlipHorizontal (bool value)
void | setFlipVertical (bool value)
void | setGridAdjustment (const YPoint< double > &gridNode)
bool | init (const ImageProxyVector *inputVector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, ProgressCounter *indicator=0, const EdgeMethod &edgeMethod=None)
bool | init (const ImageProxyVector *inputVector, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, ProgressCounter *indicator=0, const EdgeMethod &edgeMethod=None)
int | width () const
int | height () const
std::vector< int > | bits () const
std::vector< AImage::YImageClass > | imageClass () const
YPoint< double > | base () const
bool | run (ImageProxyVector *outputVector, ProgressCounter *indicator=0)
bool | run (ImageProxyVector *outputVector, const YRect< int > &outputFragment, ProgressCounter *indicator=0)

Закрытые члены

ImageTransform (const ImageTransform &)
ImageTransform & | operator= (const ImageTransform &)

Закрытые данные

ImageTransformImpl * pImpl_

Перечисления

enum ImageTransform::EdgeMethod

Элементы перечислений:
None

Конструктор(ы)

ImageTransform::ImageTransform ( bool fastAlgorithm = true ) [explicit]

ImageTransform::~ImageTransform ( ) [virtual]

ImageTransform::ImageTransform ( const ImageTransform & ) [private]

Методы

void ImageTransform::setBackgroundColor | ( | bool | doCorrect,
 |  | int | value = 0
 | ) |  |

void ImageTransform::setErrorColor | ( | bool | doCorrect,
 |  | int | value = 0
 | ) |  |

void ImageTransform::setFlipHorizontal ( bool value )

void ImageTransform::setFlipVertical ( bool value )

void ImageTransform::setGridAdjustment ( const YPoint< double > & gridNode )

bool ImageTransform::init | ( | const ImageProxyVector * | inputVector,
 |  | const YRect< int > & | inputFragment,
 |  | const CoordArray2D * | coords,
 |  | const ATransformFunction & | transformFunction,
 |  | double | scale,
 |  | ProgressCounter * | indicator = 0,
 |  | const EdgeMethod & | edgeMethod = None
 | ) |  |

bool ImageTransform::init | ( | const ImageProxyVector * | inputVector,
 |  | const CoordArray2D * | coords,
 |  | const ATransformFunction & | transformFunction,
 |  | double | scale,
 |  | ProgressCounter * | indicator = 0,
 |  | const EdgeMethod & | edgeMethod = None
 | ) |  |

int ImageTransform::width ( ) const

int ImageTransform::height ( ) const

std::vector< int > ImageTransform::bits ( ) const

std::vector< AImage::YImageClass > ImageTransform::imageClass ( ) const

YPoint< double > ImageTransform::base ( ) const

bool ImageTransform::run | ( | ImageProxyVector * | outputVector,
 |  | ProgressCounter * | indicator = 0
 | ) |  |

bool ImageTransform::run | ( | ImageProxyVector * | outputVector,
 |  | const YRect< int > & | outputFragment,
 |  | ProgressCounter * | indicator = 0
 | ) |  |

ImageTransform& ImageTransform::operator= ( const ImageTransform & ) [private]

Данные класса

ImageTransformImpl* ImageTransform::pImpl_ [private]

Объявления и описания членов классов находятся в файлах:
  • imtransf.h
  • imtransf.cpp


Pipe Line Filters: Класс ImageTransformCellImpl

Класс ImageTransformCellImpl

#include <_imtransf.h>

Граф наследования:ImageTransformCellImpl:

[см. легенду]
Граф связей класса ImageTransformCellImpl:

[см. легенду]
Полный список членов класса

Открытые члены

ImageTransformCellImpl ()
virtual | ~ImageTransformCellImpl ()
bool | run (ImageProxyVector *outputVector, const YRect< int > &outputFragment, ProgressCounter *indicator)
bool | calculateOutputData (ProgressCounter *indicator)

Открытые атрибуты

ProcessMatrix processed_

Конструктор(ы)

ImageTransformCellImpl::ImageTransformCellImpl ( ) [inline]

virtual ImageTransformCellImpl::~ImageTransformCellImpl ( ) [inline, virtual]

Методы

bool ImageTransformCellImpl::run | ( | ImageProxyVector * | outputVector,
 |  | const YRect< int > & | outputFragment,
 |  | ProgressCounter * | indicator |
 | ) |  |  | [virtual]

Замещает ImageTransformImpl.

bool ImageTransformCellImpl::calculateOutputData ( ProgressCounter * indicator ) [virtual]

Замещает ImageTransformImpl.

Данные класса

ProcessMatrix ImageTransformCellImpl::processed_

Объявления и описания членов классов находятся в файлах:
  • _imtransf.h
  • imtransf.cpp


Pipe Line Filters: Класс ImageTransformImpl

Класс ImageTransformImpl

#include <_imtransf.h>

Граф наследования:ImageTransformImpl:

[см. легенду]
Граф связей класса ImageTransformImpl:

[см. легенду]
Полный список членов класса

Открытые члены

ImageTransformImpl ()
virtual | ~ImageTransformImpl ()
virtual bool | run (ImageProxyVector *outputVector, const YRect< int > &outputFragment, ProgressCounter *indicator)=0
virtual bool | calculateOutputData (ProgressCounter *indicator)=0
void | setBackgroundColor (bool doCorrect, int value)
void | setErrorColor (bool doCorrect, int value)
void | setFlipHorizontal (bool value)
void | setFlipVertical (bool value)
void | setGridAdjustment (const YPoint< double > &gridNode)
int | width () const
int | height () const
std::vector< int > | bits () const
std::vector< AImage::YImageClass > | imageClass () const
YPoint< double > | base () const
bool | init (const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, ProgressCounter *indicator=0, const ImageTransform::EdgeMethod &edgeMethod=ImageTransform::None)
void | checkInputParameters (const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, const ImageTransform::EdgeMethod &edgeMethod) const
void | acceptInputParameters (const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, const ImageTransform::EdgeMethod &edgeMethod)
void | calculateOutputCoords ()
void | fillOutputPixel (AImageProxy *out, int x, int y, int value)
YPoint< double > | RCStoPRCS (const YPoint< double > &p) const
YPoint< int > | RCStoPRCSr (const YPoint< double > &p) const
YPoint< double > | PRCStoRCS (const YPoint< int > &p) const
YPoint< double > | PRCStoRCS (const YPoint< double > &p) const
bool | canICStoRCS (const YPoint< double > &p) const
bool | canRCStoICS (const YPoint< double > &p) const
YPoint< double > | ICStoRCS (const YPoint< double > &p) const
YPoint< double > | RCStoICS (const YPoint< double > &p) const
YPoint< double > | ICStoPICS (const YPoint< double > &ip, const YPoint< int > *pip4, const YPoint< double > *ip4) const
YPoint< double > | PICStoICS (const YPoint< int > &p) const
bool | canPICStoICS (const YPoint< int > &p) const

Открытые атрибуты

const ImageProxyVector * | inputVector_
YRect< int > | inputFragment_
const CoordArray2D * | inputCoords_
std::auto_ptr< const ATransformFunction > | transformFunction_
double | scale_
int | inputWidth_
int | inputHeight_
int | inputImageWidth_
int | inputImageHeight_
size_t | outputWidth_
size_t | outputHeight_
YRect< double > | outputArea_
ImageProxyVector * outputVector_
YRect< int > | outputFragment_
CoordArray2D outputCoords_
bool | flipH_
bool | flipV_
int | backgroundColor_
bool | edgeH_
bool | edgeV_
int | errorColor_
bool | enableGridAdjustment_
YPoint< double > | gridNode_

Закрытые члены

ImageTransformImpl (const ImageTransformImpl &)
ImageTransformImpl & | operator= (const ImageTransformImpl &)

Конструктор(ы)

ImageTransformImpl::ImageTransformImpl ( )

virtual ImageTransformImpl::~ImageTransformImpl ( ) [inline, virtual]

ImageTransformImpl::ImageTransformImpl ( const ImageTransformImpl & ) [private]

Методы

virtual bool ImageTransformImpl::run | ( | ImageProxyVector * | outputVector,
 |  | const YRect< int > & | outputFragment,
 |  | ProgressCounter * | indicator |
 | ) |  |  | [pure virtual]

Замещается в ImageTransformCellImpl и ImageTransformMatrixImpl.

virtual bool ImageTransformImpl::calculateOutputData ( ProgressCounter * indicator ) [pure virtual]

Замещается в ImageTransformCellImpl и ImageTransformMatrixImpl.

void ImageTransformImpl::setBackgroundColor | ( | bool | doCorrect,
 |  | int | value
 | ) |  |

void ImageTransformImpl::setErrorColor | ( | bool | doCorrect,
 |  | int | value
 | ) |  |

void ImageTransformImpl::setFlipHorizontal ( bool value )

void ImageTransformImpl::setFlipVertical ( bool value )

void ImageTransformImpl::setGridAdjustment ( const YPoint< double > & gridNode )

int ImageTransformImpl::width ( ) const

int ImageTransformImpl::height ( ) const

std::vector< int > ImageTransformImpl::bits ( ) const

std::vector< AImage::YImageClass > ImageTransformImpl::imageClass ( ) const

YPoint< double > ImageTransformImpl::base ( ) const

bool ImageTransformImpl::init | ( | const ImageProxyVector * | vector,
 |  | const YRect< int > & | inputFragment,
 |  | const CoordArray2D * | coords,
 |  | const ATransformFunction & | transformFunction,
 |  | double | scale,
 |  | ProgressCounter * | indicator = 0,
 |  | const ImageTransform::EdgeMethod & | edgeMethod = ImageTransform::None
 | ) |  |

void ImageTransformImpl::checkInputParameters | ( | const ImageProxyVector * | vector,
 |  | const YRect< int > & | inputFragment,
 |  | const CoordArray2D * | coords,
 |  | const ATransformFunction & | transformFunction,
 |  | double | scale,
 |  | const ImageTransform::EdgeMethod & | edgeMethod |
 | ) |  |  | const

void ImageTransformImpl::acceptInputParameters | ( | const ImageProxyVector * | vector,
 |  | const YRect< int > & | inputFragment,
 |  | const CoordArray2D * | coords,
 |  | const ATransformFunction & | transformFunction,
 |  | double | scale,
 |  | const ImageTransform::EdgeMethod & | edgeMethod
 | ) |  |

void ImageTransformImpl::calculateOutputCoords ( )

void ImageTransformImpl::fillOutputPixel | ( | AImageProxy * | out,
 |  | int | x,
 |  | int | y,
 |  | int | value |
 | ) |  |  | [inline]

YPoint< double > ImageTransformImpl::RCStoPRCS ( const YPoint< double > & p ) const

YPoint< int > ImageTransformImpl::RCStoPRCSr ( const YPoint< double > & p ) const

YPoint< double > ImageTransformImpl::PRCStoRCS ( const YPoint< int > & p ) const

YPoint< double > ImageTransformImpl::PRCStoRCS ( const YPoint< double > & p ) const

bool ImageTransformImpl::canICStoRCS ( const YPoint< double > & p ) const

bool ImageTransformImpl::canRCStoICS ( const YPoint< double > & p ) const

YPoint< double > ImageTransformImpl::ICStoRCS ( const YPoint< double > & p ) const

YPoint< double > ImageTransformImpl::RCStoICS ( const YPoint< double > & p ) const

YPoint< double > ImageTransformImpl::ICStoPICS | ( | const YPoint< double > & | ip,
 |  | const YPoint< int > * | pip4,
 |  | const YPoint< double > * | ip4 |
 | ) |  |  | const

YPoint< double > ImageTransformImpl::PICStoICS ( const YPoint< int > & p ) const [inline]

bool ImageTransformImpl::canPICStoICS ( const YPoint< int > & p ) const [inline]

ImageTransformImpl& ImageTransformImpl::operator= ( const ImageTransformImpl & ) [private]

Данные класса

const ImageProxyVector* ImageTransformImpl::inputVector_

YRect<int> ImageTransformImpl::inputFragment_

const CoordArray2D* ImageTransformImpl::inputCoords_

std::auto_ptr<const ATransformFunction> ImageTransformImpl::transformFunction_

double ImageTransformImpl::scale_

int ImageTransformImpl::inputWidth_

int ImageTransformImpl::inputHeight_

int ImageTransformImpl::inputImageWidth_

int ImageTransformImpl::inputImageHeight_

size_t ImageTransformImpl::outputWidth_

size_t ImageTransformImpl::outputHeight_

YRect<double> ImageTransformImpl::outputArea_

ImageProxyVector* ImageTransformImpl::outputVector_

YRect<int> ImageTransformImpl::outputFragment_

CoordArray2D ImageTransformImpl::outputCoords_

bool ImageTransformImpl::flipH_

bool ImageTransformImpl::flipV_

int ImageTransformImpl::backgroundColor_

bool ImageTransformImpl::edgeH_

bool ImageTransformImpl::edgeV_

int ImageTransformImpl::errorColor_

bool ImageTransformImpl::enableGridAdjustment_

YPoint<double> ImageTransformImpl::gridNode_

Объявления и описания членов классов находятся в файлах:
  • _imtransf.h
  • imtransf.cpp


Pipe Line Filters: Класс ImageTransformMatrixFastImpl

Класс ImageTransformMatrixFastImpl

#include <_imtransf.h>

Граф наследования:ImageTransformMatrixFastImpl:

[см. легенду]
Граф связей класса ImageTransformMatrixFastImpl:

[см. легенду]
Полный список членов класса

Открытые члены

virtual void | fillMatricesCell (const YPoint< double > *it, YPoint< double > *resit, const YPoint< int > &p)
virtual bool | isFilledPixel (const YPoint< int > &prp)
virtual double | estimateZoom (const YPoint< int > &prp)
virtual bool | getAnchor (const YPoint< int > &prp, YPoint< int > &pip)
virtual void | initMatrices ()

Открытые атрибуты

CoverageMatrix coverageMatrix_

Методы

void ImageTransformMatrixFastImpl::fillMatricesCell | ( | const YPoint< double > * | it,
 |  | YPoint< double > * | resit,
 |  | const YPoint< int > & | p |
 | ) |  |  | [virtual]

Переопределяет метод предка ImageTransformMatrixImpl.

bool ImageTransformMatrixFastImpl::isFilledPixel ( const YPoint< int > & prp ) [virtual]

Переопределяет метод предка ImageTransformMatrixImpl.

double ImageTransformMatrixFastImpl::estimateZoom ( const YPoint< int > & prp ) [virtual]

Переопределяет метод предка ImageTransformMatrixImpl.

bool ImageTransformMatrixFastImpl::getAnchor | ( | const YPoint< int > & | prp,
 |  | YPoint< int > & | pip |
 | ) |  |  | [virtual]

Переопределяет метод предка ImageTransformMatrixImpl.

void ImageTransformMatrixFastImpl::initMatrices ( ) [virtual]

Переопределяет метод предка ImageTransformMatrixImpl.

Данные класса

CoverageMatrix ImageTransformMatrixFastImpl::coverageMatrix_

Объявления и описания членов классов находятся в файлах:
  • _imtransf.h
  • imtransf.cpp


Pipe Line Filters: Класс ImageTransformMatrixImpl

Класс ImageTransformMatrixImpl

#include <_imtransf.h>

Граф наследования:ImageTransformMatrixImpl:

[см. легенду]
Граф связей класса ImageTransformMatrixImpl:

[см. легенду]
Полный список членов класса

Открытые члены

ImageTransformMatrixImpl ()
virtual | ~ImageTransformMatrixImpl ()
bool | run (ImageProxyVector *outputVector, const YRect< int > &outputFragment, ProgressCounter *indicator)
void | calculateInputPolygon ()
bool | calculateOutputData (ProgressCounter *indicator)
YRect< int > | makeCellRect (const YPoint< double > *pOutputCoordsPoint)
void | makeCellPoly (const YPoint< double > *pOutputCoordsPoint, YPoint< double > *poly4)
virtual void | initMatrices ()
virtual void | fillMatricesCell (const YPoint< double > *it, YPoint< double > *resit, const YPoint< int > &p)
bool | hasError (const YPoint< int > &p) const
void | processPixel (const YPoint< int > &prp)
double | computeZoom (const YPoint< double > *pOutputCoordsPoint) const
virtual double | estimateZoom (const YPoint< int > &prp)
virtual bool | isFilledPixel (const YPoint< int > &prp)
virtual bool | getAnchor (const YPoint< int > &prp, YPoint< int > &pip)
bool | findNearest (const YPoint< int > &prp, const YPoint< double > &ip, YPoint< int > &pip, int rMax) const
bool | findCell (const YPoint< double > &ip, const YPoint< int > &pipNearest, YPoint< int > *pip4, YPoint< double > *ip4) const
bool | findCellAtRadius (const YPoint< double > &ip, YPoint< int > *pip4, YPoint< double > *ip4, int radius) const
bool | shiftCell (int shiftX, int shiftY, YPoint< int > *pip4, YPoint< double > *ip4) const
bool | interpolateAverage (const YPoint< int > &prp, size_t radius=0)
void | fillPixelsWithAverages (const YPoint< int > &prp, std::vector< const DMatrixElem * >::const_iterator begin, std::vector< const DMatrixElem * >::const_iterator end, int size)
void | interpolateBicubical (const YPoint< int > &prp, const YPoint< double > pip)

Открытые атрибуты

DistributionMatrix distributionMatrix_
ITPolygon polygon_

Закрытые типы

enum | { MaxFindRadius = 20 }

Перечисления

anonymous enum [private]

Элементы перечислений:
MaxFindRadius

Конструктор(ы)

ImageTransformMatrixImpl::ImageTransformMatrixImpl ( )

virtual ImageTransformMatrixImpl::~ImageTransformMatrixImpl ( ) [inline, virtual]

Методы

bool ImageTransformMatrixImpl::run | ( | ImageProxyVector * | outputVector,
 |  | const YRect< int > & | outputFragment,
 |  | ProgressCounter * | indicator |
 | ) |  |  | [virtual]

Замещает ImageTransformImpl.

void ImageTransformMatrixImpl::calculateInputPolygon ( )

bool ImageTransformMatrixImpl::calculateOutputData ( ProgressCounter * indicator ) [virtual]

Замещает ImageTransformImpl.

YRect< int > ImageTransformMatrixImpl::makeCellRect ( const YPoint< double > * pOutputCoordsPoint )

void ImageTransformMatrixImpl::makeCellPoly | ( | const YPoint< double > * | pOutputCoordsPoint,
 |  | YPoint< double > * | poly4
 | ) |  |

void ImageTransformMatrixImpl::initMatrices ( ) [virtual]

Переопределяется в ImageTransformMatrixFastImpl.

void ImageTransformMatrixImpl::fillMatricesCell | ( | const YPoint< double > * | it,
 |  | YPoint< double > * | resit,
 |  | const YPoint< int > & | p |
 | ) |  |  | [virtual]

Переопределяется в ImageTransformMatrixFastImpl.

bool ImageTransformMatrixImpl::hasError ( const YPoint< int > & p ) const

void ImageTransformMatrixImpl::processPixel ( const YPoint< int > & prp )

double ImageTransformMatrixImpl::computeZoom ( const YPoint< double > * pOutputCoordsPoint ) const

double ImageTransformMatrixImpl::estimateZoom ( const YPoint< int > & prp ) [virtual]

Переопределяется в ImageTransformMatrixFastImpl.

bool ImageTransformMatrixImpl::isFilledPixel ( const YPoint< int > & prp ) [virtual]

Переопределяется в ImageTransformMatrixFastImpl.

bool ImageTransformMatrixImpl::getAnchor | ( | const YPoint< int > & | prp,
 |  | YPoint< int > & | pip |
 | ) |  |  | [virtual]

Переопределяется в ImageTransformMatrixFastImpl.

bool ImageTransformMatrixImpl::findNearest | ( | const YPoint< int > & | prp,
 |  | const YPoint< double > & | ip,
 |  | YPoint< int > & | pip,
 |  | int | rMax |
 | ) |  |  | const

bool ImageTransformMatrixImpl::findCell | ( | const YPoint< double > & | ip,
 |  | const YPoint< int > & | pipNearest,
 |  | YPoint< int > * | pip4,
 |  | YPoint< double > * | ip4 |
 | ) |  |  | const

bool ImageTransformMatrixImpl::findCellAtRadius | ( | const YPoint< double > & | ip,
 |  | YPoint< int > * | pip4,
 |  | YPoint< double > * | ip4,
 |  | int | radius |
 | ) |  |  | const

bool ImageTransformMatrixImpl::shiftCell | ( | int | shiftX,
 |  | int | shiftY,
 |  | YPoint< int > * | pip4,
 |  | YPoint< double > * | ip4 |
 | ) |  |  | const

bool ImageTransformMatrixImpl::interpolateAverage | ( | const YPoint< int > & | prp,
 |  | size_t | radius = 0
 | ) |  |

void ImageTransformMatrixImpl::fillPixelsWithAverages | ( | const YPoint< int > & | prp,
 |  | std::vector< const DMatrixElem * >::const_iterator | begin,
 |  | std::vector< const DMatrixElem * >::const_iterator | end,
 |  | int | size
 | ) |  |

void ImageTransformMatrixImpl::interpolateBicubical | ( | const YPoint< int > & | prp,
 |  | const YPoint< double > | pip
 | ) |  |

Данные класса

DistributionMatrix ImageTransformMatrixImpl::distributionMatrix_

ITPolygon ImageTransformMatrixImpl::polygon_

Объявления и описания членов классов находятся в файлах:
  • _imtransf.h
  • imtransf.cpp


Pipe Line Filters: Шаблон класса ImageVectorT< Base, Bit8, Bit16 >

Шаблон класса ImageVectorT< Base, Bit8, Bit16 >

#include <imtransf.h>

Полный список членов класса

Открытые типы

typedef std::vector< std::pair<
Bit8 *, int > > 		Bit8Vector
typedef std::vector< std::pair<
Bit16 *, int > > 		Bit16Vector
typedef Bit8Vector::iterator | iterator8
typedef Bit16Vector::iterator | iterator16

Открытые члены

ImageVectorT ()
void | add (Base *image)
size_t | planesCount8 () const
size_t | planesCount16 () const
iterator8 planesBegin8 ()
iterator8 planesEnd8 ()
iterator16 planesBegin16 ()
iterator16 planesEnd16 ()
int | width () const
int | height () const
std::vector< int > | bits () const
std::vector< typename Base::YImageClass > | imageClass () const

Закрытые члены

ImageVectorT (const ImageVectorT &)
ImageVectorT & | operator= (const ImageVectorT &)

Закрытые данные

std::vector< int > | bits_
std::vector< typename Base::YImageClass > | imageClass_
int | width_
int | height_
Bit8Vector vec8_
Bit16Vector vec16_

template<class Base, class Bit8, class Bit16>
class ImageVectorT< Base, Bit8, Bit16 >

Определения типов

template<class Base, class Bit8, class Bit16>
typedef std::vector< std::pair<Bit8*,int> > ImageVectorT< Base, Bit8, Bit16 >::Bit8Vector

template<class Base, class Bit8, class Bit16>
typedef std::vector< std::pair<Bit16*,int> > ImageVectorT< Base, Bit8, Bit16 >::Bit16Vector

template<class Base, class Bit8, class Bit16>
typedef Bit8Vector::iterator ImageVectorT< Base, Bit8, Bit16 >::iterator8

template<class Base, class Bit8, class Bit16>
typedef Bit16Vector::iterator ImageVectorT< Base, Bit8, Bit16 >::iterator16

Конструктор(ы)

template<class Base, class Bit8, class Bit16>
ImageVectorT< Base, Bit8, Bit16 >::ImageVectorT ( ) [inline]

template<class Base, class Bit8, class Bit16>
ImageVectorT< Base, Bit8, Bit16 >::ImageVectorT ( const ImageVectorT< Base, Bit8, Bit16 > & ) [private]

Методы

template<class Base, class Bit8, class Bit16>
void ImageVectorT< Base, Bit8, Bit16 >::add ( Base * image )

template<class Base, class Bit8, class Bit16>
size_t ImageVectorT< Base, Bit8, Bit16 >::planesCount8 ( ) const [inline]

template<class Base, class Bit8, class Bit16>
size_t ImageVectorT< Base, Bit8, Bit16 >::planesCount16 ( ) const [inline]

template<class Base, class Bit8, class Bit16>
iterator8 ImageVectorT< Base, Bit8, Bit16 >::planesBegin8 ( ) [inline]

template<class Base, class Bit8, class Bit16>
iterator8 ImageVectorT< Base, Bit8, Bit16 >::planesEnd8 ( ) [inline]

template<class Base, class Bit8, class Bit16>
iterator16 ImageVectorT< Base, Bit8, Bit16 >::planesBegin16 ( ) [inline]

template<class Base, class Bit8, class Bit16>
iterator16 ImageVectorT< Base, Bit8, Bit16 >::planesEnd16 ( ) [inline]

template<class Base, class Bit8, class Bit16>
int ImageVectorT< Base, Bit8, Bit16 >::width ( ) const [inline]

template<class Base, class Bit8, class Bit16>
int ImageVectorT< Base, Bit8, Bit16 >::height ( ) const [inline]

template<class Base, class Bit8, class Bit16>
std::vector<int> ImageVectorT< Base, Bit8, Bit16 >::bits ( ) const [inline]

template<class Base, class Bit8, class Bit16>
std::vector<typename Base::YImageClass> ImageVectorT< Base, Bit8, Bit16 >::imageClass ( ) const [inline]

template<class Base, class Bit8, class Bit16>
ImageVectorT& ImageVectorT< Base, Bit8, Bit16 >::operator= ( const ImageVectorT< Base, Bit8, Bit16 > & ) [private]

Данные класса

template<class Base, class Bit8, class Bit16>
std::vector<int> ImageVectorT< Base, Bit8, Bit16 >::bits_ [private]

template<class Base, class Bit8, class Bit16>
std::vector<typename Base::YImageClass> ImageVectorT< Base, Bit8, Bit16 >::imageClass_ [private]

template<class Base, class Bit8, class Bit16>
int ImageVectorT< Base, Bit8, Bit16 >::width_ [private]

template<class Base, class Bit8, class Bit16>
int ImageVectorT< Base, Bit8, Bit16 >::height_ [private]

template<class Base, class Bit8, class Bit16>
Bit8Vector ImageVectorT< Base, Bit8, Bit16 >::vec8_ [private]

template<class Base, class Bit8, class Bit16>
Bit16Vector ImageVectorT< Base, Bit8, Bit16 >::vec16_ [private]

Объявления и описания членов класса находятся в файле:
  • imtransf.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Kernel::ImageWin< T >

Vtl::Plf::Kernel::ImageWin

Шаблон класса Vtl::Plf::Kernel::ImageWin< T >

Ограничение изображения окном. Подробнее...

#include <plf_kernels_1d.h>

Граф связей класса Vtl::Plf::Kernel::ImageWin< T >:

[см. легенду]
Полный список членов класса

Открытые члены

ImageWin ()
template<class Fx, class Fy, typename TT>
void | Init (Fx functor_x, Fy functor_y, size_t width, size_t height, TT center_x, TT center_y, T fill_by)
void | Run (T *p, int nls)

Закрытые данные

Vtl::Plf::Kernel::FKern< T,
Vtl::Plf::Kernel::KT_Win,
false > 		ker_x
Vtl::Plf::Kernel::FKern< T,
Vtl::Plf::Kernel::KT_Win,
false > 		ker_y

Подробное описание

template<typename T>
class Vtl::Plf::Kernel::ImageWin< T >

Ограничение изображения окном.

Конструктор(ы)

template<typename T>
Vtl::Plf::Kernel::ImageWin< T >::ImageWin ( ) [inline]

Методы

template<typename T>
template<class Fx, class Fy, typename TT>
void Vtl::Plf::Kernel::ImageWin< T >::Init | ( | Fx | functor_x,
 |  | Fy | functor_y,
 |  | size_t | width,
 |  | size_t | height,
 |  | TT | center_x,
 |  | TT | center_y,
 |  | T | fill_by |
 | ) |  |  | [inline]

template<typename T>
void Vtl::Plf::Kernel::ImageWin< T >::Run | ( | T * | p,
 |  | int | nls |
 | ) |  |  | [inline]

Данные класса

template<typename T>
Vtl::Plf::Kernel::FKern<T,Vtl::Plf::Kernel::KT_Win,false> Vtl::Plf::Kernel::ImageWin< T >::ker_x [private]

template<typename T>
Vtl::Plf::Kernel::FKern<T,Vtl::Plf::Kernel::KT_Win,false> Vtl::Plf::Kernel::ImageWin< T >::ker_y [private]

Объявления и описания членов класса находятся в файле:
  • plf_kernels_1d.h


Pipe Line Filters: Структура Vtl::Plf::ImgSize

Vtl::Plf::ImgSize

Структура Vtl::Plf::ImgSize
[Ports and buffers]

Структура служит для хранения размеров изображения - ширина и высота. Подробнее...

#include <plf_strip_buffer_support.h>

Полный список членов класса

Открытые члены

ImgSize ()
ImgSize (int w, int h)
bool | operator!= (const ImgSize &is)
Размеры изображения различны, если различается хотя бы один размер (ширина высота).
bool | operator== (const ImgSize &is)
Размеры изображения различны, если различается хотя бы один размер (ширина высота).

Открытые атрибуты

int | width
int | height

Друзья

std::ostream & | operator<< (std::ostream &out, const ImgSize &is)
Вывод в формате: (W=640,H=480).

Подробное описание

Структура служит для хранения размеров изображения - ширина и высота.

struct ImgSize

Примеры:

test_plf_filters.cpp, test_plf_filters_rgb.cpp, test_plf_io_ports.cpp и test_plf_strip_buffer.cpp.

Конструктор(ы)

Vtl::Plf::ImgSize::ImgSize ( ) [inline]

Vtl::Plf::ImgSize::ImgSize | ( | int | w,
 |  | int | h |
 | ) |  |  | [inline]

Методы

bool Vtl::Plf::ImgSize::operator!= ( const ImgSize & is ) [inline]

Размеры изображения различны, если различается хотя бы один размер (ширина высота).

bool Vtl::Plf::ImgSize::operator== ( const ImgSize & is ) [inline]

Размеры изображения различны, если различается хотя бы один размер (ширина высота).

Документация по друзьям класса и функциям, отноносящимся к классу

std::ostream& operator<< | ( | std::ostream & | out,
 |  | const ImgSize & | is |
 | ) |  |  | [friend]

Вывод в формате: (W=640,H=480).

Данные класса

int Vtl::Plf::ImgSize::width

Примеры:
test_plf_filters.cpp и test_plf_filters_rgb.cpp.

int Vtl::Plf::ImgSize::height

Примеры:
test_plf_filters.cpp и test_plf_filters_rgb.cpp.

Объявления и описания членов структуры находятся в файле:
  • plf_strip_buffer_support.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IndexList< i, T >

Vtl::Meta::IndexList

Шаблон структуры Vtl::Meta::IndexList< i, T >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum | { value = i }
typedef T | Next

Подробное описание

template<int i, class T = Loki::NullType>
struct Vtl::Meta::IndexList< i, T >

Список целых чисел, известных на момент компиляции. Для вычислений в момент компиляции. Аналогичен по устройству и использованию списку типов из книги [Loki]

Определения типов

template<int i, class T = Loki::NullType>
typedef T Vtl::Meta::IndexList< i, T >::Next

Перечисления

template<int i, class T = Loki::NullType>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Класс Vtl::Types::TL::IndexOf

Vtl::Types::TL::IndexOf

Класс Vtl::Types::TL::IndexOf

Поиск заданного элемента в списке типов, если не найден - возвращает -1;. Подробнее...

#include <alexandresku.h>

Подробное описание

Поиск заданного элемента в списке типов, если не найден - возвращает -1;.

Шаблона имеет два параметра.

    Vtl::Types::TL::IndexOf<TList, class T>
Например:
    //Какой-то класс
    template<unsigned num> class Test {};
    //Некоторый список типов
    typedef TYPELIST_5(int,float,char,Test<3>,double) MyTList;
    //Во время компиляции создать объект класса Test<T>
    //где T - третий элемент списка типов MyTList
    Test<Vtl::Types::TL::IndexOf<MyTList,float>::value > temp;
   // это эквивалентно Test<1> temp; См. список MyTList .

Объявления и описания членов класса находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::IndexOf< i, IndexList< i, T > >

Vtl::Meta::IL::IndexOf< i, IndexList< i, T > >

Шаблон структуры Vtl::Meta::IL::IndexOf< i, IndexList< i, T > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum { value = 0 }

template<int i, class T>
struct Vtl::Meta::IL::IndexOf< i, IndexList< i, T > >

Перечисления

template<int i, class T>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::IndexOf< i, IndexList< j, T > >

Vtl::Meta::IL::IndexOf< i, IndexList< j, T > >

Шаблон структуры Vtl::Meta::IL::IndexOf< i, IndexList< j, T > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum | { value }

Закрытые типы

enum | { temp = IndexOf<i, value }

template<int i, int j, class T>
struct Vtl::Meta::IL::IndexOf< i, IndexList< j, T > >

Перечисления

template<int i, int j, class T>
anonymous enum [private]

Элементы перечислений:
temp
value

template<int i, int j, class T>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::IndexOf< i, Loki::NullType >

Vtl::Meta::IL::IndexOf< i, Loki::NullType >

Шаблон структуры Vtl::Meta::IL::IndexOf< i, Loki::NullType >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum { value = -1 }

template<int i>
struct Vtl::Meta::IL::IndexOf< i, Loki::NullType >

Перечисления

template<int i>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон класса Vtl::Plf::InPort< T >

Vtl::Plf::InPort

Шаблон класса Vtl::Plf::InPort< T >
[Ports and buffers]

Класс реализует функциональность понятия "\с входной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering. Подробнее...

#include <plf_port.h>

Граф наследования:Vtl::Plf::InPort< T >:

[см. легенду]
Граф связей класса Vtl::Plf::InPort< T >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef StripBuffer< T > | BufType

Открытые члены

InPort ()
>forbidden
virtual void | Init (FilterElementary *_filter, int _port, Extent extent_required)
virtual | ~InPort ()
OutPortNoPostProc< T > * | ConnectedTo ()
virtual OutPortBase * | BaseConnectedTo ()
ImageRef< T > | getImg ()
virtual ImgSize | getImageSize () const
virtual bool | isDataReady ()

Закрытые члены

InPort (const InPort &)
InPort & | operator= (const InPort &)
>forbidden

Закрытые данные

OutPortNoPostProc< T > * | input

Друзья

class | OutPortNoPostProc< T >

Подробное описание

template<typename T>
class Vtl::Plf::InPort< T >

Класс реализует функциональность понятия "\с входной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering.

class InPort

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

Примеры:

test_plf_io_ports.cpp.

Определения типов

template<typename T>
typedef StripBuffer<T> Vtl::Plf::InPort< T >::BufType

Конструктор(ы)

template<typename T>
Vtl::Plf::InPort< T >::InPort ( const InPort< T > & ) [private]

template<typename T>
Vtl::Plf::InPort< T >::InPort ( ) [inline]

>forbidden

template<typename T>
virtual Vtl::Plf::InPort< T >::~InPort ( ) [inline, virtual]

Методы

template<typename T>
InPort& Vtl::Plf::InPort< T >::operator= ( const InPort< T > & ) [private]

>forbidden

template<typename T>
virtual void Vtl::Plf::InPort< T >::Init | ( | FilterElementary * | _filter,
 |  | int | _port,
 |  | Extent | extent_required |
 | ) |  |  | [inline, virtual]

Замещает Vtl::Plf::InPortBase.

template<typename T>
OutPortNoPostProc<T>* Vtl::Plf::InPort< T >::ConnectedTo ( ) [inline]

template<typename T>
virtual OutPortBase* Vtl::Plf::InPort< T >::BaseConnectedTo ( ) [inline, virtual]

Замещает Vtl::Plf::InPortBase.

template<typename T>
ImageRef<T> Vtl::Plf::InPort< T >::getImg ( ) [inline]

template<typename T>
virtual ImgSize Vtl::Plf::InPort< T >::getImageSize ( ) const [inline, virtual]

размер изображения, с которым идет работа на этом порту, причем: OutPortNoPostProc его непосредственно хранит в StripBuffer (это виртуальнгое изображение) InPort - спрашивает его у того OutPortNoPostProc, к которому подключен.

Замещает Vtl::Plf::Port.

template<typename T>
virtual bool Vtl::Plf::InPort< T >::isDataReady ( ) [inline, virtual]

Замещает Vtl::Plf::InPortBase.

Документация по друзьям класса и функциям, отноносящимся к классу

template<typename T>
friend class OutPortNoPostProc< T > [friend]

Данные класса

template<typename T>
OutPortNoPostProc<T>* Vtl::Plf::InPort< T >::input [private]

Объявления и описания членов класса находятся в файле:
  • plf_port.h


Pipe Line Filters: Класс Vtl::Plf::InPortBase

Vtl::Plf::InPortBase

Класс Vtl::Plf::InPortBase
[Ports and buffers]

Базовый класс для понятия "\b входной порт". Определяет функциональность, необходимую для работы системы фильтров. Подробнее...

#include <plf_port.h>

Граф наследования:Vtl::Plf::InPortBase:

[см. легенду]
Граф связей класса Vtl::Plf::InPortBase:

[см. легенду]
Полный список членов класса

Открытые члены

virtual void | Init (FilterElementary *_filter, int _port, Extent extent_required)=0
virtual | ~InPortBase ()
Extent | ext () const
void | Rewind ()
void | ToNextLine (int y)
bool | isFinished () const
void | Finish ()
virtual bool | isDataReady ()=0
int | Y () const
Strip getRequiredStrip ()
virtual OutPortBase * | BaseConnectedTo ()=0

Открытые атрибуты

int | total_delay

Защищенные члены

InPortBase ()
void | _init (FilterElementary *_filter, int _port, Extent extent_required)

Закрытые члены

InPortBase (const InPortBase &)
InPortBase & | operator= (const InPortBase &)
>forbidden

Закрытые данные

Extent ext_required
>forbidden
Strip strip
bool | finished

Друзья

class | OutPortBase

Подробное описание

Базовый класс для понятия "\b входной порт". Определяет функциональность, необходимую для работы системы фильтров.

class InPortBase

Конструктор(ы)

Vtl::Plf::InPortBase::InPortBase ( const InPortBase & ) [private]

Vtl::Plf::InPortBase::InPortBase ( ) [inline, protected]

virtual Vtl::Plf::InPortBase::~InPortBase ( ) [inline, virtual]

Методы

InPortBase& Vtl::Plf::InPortBase::operator= ( const InPortBase & ) [private]

>forbidden

void Vtl::Plf::InPortBase::_init | ( | FilterElementary * | _filter,
 |  | int | _port,
 |  | Extent | extent_required |
 | ) |  |  | [inline, protected]

virtual void Vtl::Plf::InPortBase::Init | ( | FilterElementary * | _filter,
 |  | int | _port,
 |  | Extent | extent_required |
 | ) |  |  | [pure virtual]

Замещается в Vtl::Plf::InPort< T > и Vtl::Plf::InPort< float >.

Extent Vtl::Plf::InPortBase::ext ( ) const [inline]

void Vtl::Plf::InPortBase::Rewind ( ) [inline]

void Vtl::Plf::InPortBase::ToNextLine ( int y ) [inline]

bool Vtl::Plf::InPortBase::isFinished ( ) const [inline]

void Vtl::Plf::InPortBase::Finish ( ) [inline]

virtual bool Vtl::Plf::InPortBase::isDataReady ( ) [pure virtual]

Замещается в Vtl::Plf::InPort< T > и Vtl::Plf::InPort< float >.

int Vtl::Plf::InPortBase::Y ( ) const [inline]

Strip Vtl::Plf::InPortBase::getRequiredStrip ( ) [inline]

virtual OutPortBase* Vtl::Plf::InPortBase::BaseConnectedTo ( ) [pure virtual]

Замещается в Vtl::Plf::InPort< T > и Vtl::Plf::InPort< float >.

Документация по друзьям класса и функциям, отноносящимся к классу

friend class OutPortBase [friend]

Данные класса

int Vtl::Plf::InPortBase::total_delay

Extent Vtl::Plf::InPortBase::ext_required [private]

>forbidden

Strip Vtl::Plf::InPortBase::strip [private]

Для обработки нужны строки начиная с y_first и кончая y_first+lines, текущая строка обработки y_first+ext_required.before

bool Vtl::Plf::InPortBase::finished [private]

Объявления и описания членов класса находятся в файле:
  • plf_port.h


Pipe Line Filters: Шаблон класса Vtl::Plf::InPortComb< T >

Vtl::Plf::InPortComb

Шаблон класса Vtl::Plf::InPortComb< T >
[Ports and buffers]

#include <plf_port.h>

Полный список членов класса

Открытые типы

typedef StripBuffer< T > | BufType
typedef std::list< InPort<
T > * > 		List

Открытые члены

InPortComb ()
>forbidden
void | Clear ()
void | Add (InPort< T > *inp)
void | Add (InPortComb< T > *inp)
virtual | ~InPortComb ()

Открытые атрибуты

List inps

Закрытые члены

InPortComb (const InPortComb &)
InPortComb & | operator= (const InPortComb &)
>forbidden

Друзья

class | OutPortNoPostProc< T >

Подробное описание

template<typename T>
class Vtl::Plf::InPortComb< T >

class InPort

Определения типов

template<typename T>
typedef StripBuffer<T> Vtl::Plf::InPortComb< T >::BufType

template<typename T>
typedef std::list<InPort<T>*> Vtl::Plf::InPortComb< T >::List

Конструктор(ы)

template<typename T>
Vtl::Plf::InPortComb< T >::InPortComb ( const InPortComb< T > & ) [private]

template<typename T>
Vtl::Plf::InPortComb< T >::InPortComb ( ) [inline]

>forbidden

template<typename T>
virtual Vtl::Plf::InPortComb< T >::~InPortComb ( ) [inline, virtual]

Методы

template<typename T>
InPortComb& Vtl::Plf::InPortComb< T >::operator= ( const InPortComb< T > & ) [private]

>forbidden

template<typename T>
void Vtl::Plf::InPortComb< T >::Clear ( ) [inline]

template<typename T>
void Vtl::Plf::InPortComb< T >::Add ( InPort< T > * inp ) [inline]

template<typename T>
void Vtl::Plf::InPortComb< T >::Add ( InPortComb< T > * inp ) [inline]

Документация по друзьям класса и функциям, отноносящимся к классу

template<typename T>
friend class OutPortNoPostProc< T > [friend]

Данные класса

template<typename T>
List Vtl::Plf::InPortComb< T >::inps

Объявления и описания членов класса находятся в файле:
  • plf_port.h


Pipe Line Filters: Шаблон структуры Vtl::Types::Int2Type< v >

Vtl::Types::Int2Type

Шаблон структуры Vtl::Types::Int2Type< v >

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum { value = v }

Подробное описание

template<int v>
struct Vtl::Types::Int2Type< v >

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

Перечисления

template<int v>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >

Vtl::ImAlg::Resamp::InterpBilinear

Шаблон класса Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >

Билинейной интерполяцией вычислить интенсивность изображенйи в точке (x,y). Координаты x,y задаются относительно левого верхнего угла изображения. Подробнее...

#include <imalg_resampling.h>

Полный список членов класса

Открытые типы

typedef Pixel | result_type

Открытые члены

InterpBilinear (const Pixel *data_ptr, size_t width, size_t height, size_t next_line_shift, Pixel fill)
Установка внутренних переменных. Необходимо вызывать перед Bilinear.
size_t | border () const
Pixel | at (double x, double y) const
Pixel | operator() (double x, double y) const
size_t | W () const
size_t | H () const
size_t | Nls () const

Закрытые данные

const Pixel * | data
const size_t | nls
const size_t | w
const size_t | h
const Pixel | blank

Подробное описание

template<typename Pixel, unsigned stride = 1>
class Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >

Билинейной интерполяцией вычислить интенсивность изображенйи в точке (x,y). Координаты x,y задаются относительно левого верхнего угла изображения.

При билинейной аппроксимации берется значение четырех ближайших пикселей (квадрат 2x2) к точке, куда попадает центр пикселя результирующего изображения после обратной трансформации на исходном изображении. Значения интенсивностей этих пикселей сначала линейно попарно аппроксимируются в одном направлении (горизонтальном или вертикальном), а потом полученные после аппроксимации значения аппроксимируются в перпендикулярном направлении еще раз:

Где $ I_{ij} $ - интенсивность соответствующих пикселей.

Можно показать, что эти формулы симметричны относительно перестановок [image] и [image] . Для этого получим полное выражение для $ I_0 $ :

Видно, что первый, и второй члены этой формулы симметричны относительно вышеупомянутых перестановок, а что касается третьего члена, то следует дополнительно учесть что при перестановке также перестанавливаются индексы при $ I_{ij} I_{ij} $ . С учетом этого третий член формулы также симметричен, таким образом доказана симметричность формул билинейной аппроксимации. Независимо от того в каком порядке делаются аппроксимации - сначала по x а потом по y или наоборот, результат получается одинаковый.

Для того чтобы минимизировать затраты процессора надо уменьшить количество умножений, которые занимают гораздо больше процессорного времени, чем сложение и вычитание. Применялись оптимизированные формулы с сокращенным количеством операций умножения (7 сложений/вычитаний и 3 умножения).

, где $ b= I_{12}-I_{11} $

Примеры:

test_color_registration.cpp.

Определения типов

template<typename Pixel, unsigned stride = 1>
typedef Pixel Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >::result_type

Конструктор(ы)

template<typename Pixel, unsigned stride = 1>
Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >::InterpBilinear | ( | const Pixel * | data_ptr,
 |  | size_t | width,
 |  | size_t | height,
 |  | size_t | next_line_shift,
 |  | Pixel | fill |
 | ) |  |  | [inline]

Установка внутренних переменных. Необходимо вызывать перед Bilinear.

Методы

template<typename Pixel, unsigned stride = 1>
size_t Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >::border ( ) const [inline]

template<typename Pixel, unsigned stride = 1>
Pixel Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >::at | ( | double | x,
 |  | double | y |
 | ) |  |  | const [inline]

template<typename Pixel, unsigned stride = 1>
Pixel Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >::operator() | ( | double | x,
 |  | double | y |
 | ) |  |  | const [inline]

template<typename Pixel, unsigned stride = 1>
size_t Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >::W ( ) const [inline]

template<typename Pixel, unsigned stride = 1>
size_t Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >::H ( ) const [inline]

template<typename Pixel, unsigned stride = 1>
size_t Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >::Nls ( ) const [inline]

Данные класса

template<typename Pixel, unsigned stride = 1>
const Pixel* Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >::data [private]

template<typename Pixel, unsigned stride = 1>
const size_t Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >::nls [private]

template<typename Pixel, unsigned stride = 1>
const size_t Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >::w [private]

template<typename Pixel, unsigned stride = 1>
const size_t Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >::h [private]

template<typename Pixel, unsigned stride = 1>
const Pixel Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >::blank [private]

Объявления и описания членов класса находятся в файле:
  • imalg_resampling.h


Pipe Line Filters: Структура Vtl::Types::IntOrReal

Vtl::Types::IntOrReal

Структура Vtl::Types::IntOrReal

Определение констант для выбора типа. Подробнее...

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum Types { Int, Real, Unknown = -1 }

Подробное описание

Определение констант для выбора типа.

Перечисления

enum Vtl::Types::IntOrReal::Types

Элементы перечислений:
Int
Real
Unknown

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::Tools::findMax::is_center_max_in3x3< num_equal_neihbours >

Vtl::ImAlg::Tools::findMax::is_center_max_in3x3

Шаблон структуры Vtl::ImAlg::Tools::findMax::is_center_max_in3x3< num_equal_neihbours >

#include <imalg_tools.h>

Полный список членов класса

Открытые члены

template<typename T1, class F, typename T2>
void operator() (const T1 *src, int left, int right, int up, int down, F functor, T2 x, T2 y)

Подробное описание

template<int num_equal_neihbours>
struct Vtl::ImAlg::Tools::findMax::is_center_max_in3x3< num_equal_neihbours >

Примеры:

test_fast_gauss.cpp.

Методы

template<int num_equal_neihbours>
template<typename T1, class F, typename T2>
void Vtl::ImAlg::Tools::findMax::is_center_max_in3x3< num_equal_neihbours >::operator() | ( | const T1 * | src,
 |  | int | left,
 |  | int | right,
 |  | int | up,
 |  | int | down,
 |  | F | functor,
 |  | T2 | x,
 |  | T2 | y |
 | ) |  |  | [inline]

Объявления и описания членов структуры находятся в файле:
  • imalg_tools.h


Pipe Line Filters: Шаблон структуры YXML::IsAttr< T, Cmp >

YXML::IsAttr

Шаблон структуры YXML::IsAttr< T, Cmp >
[Работа с XML и INI файлами и структурами данных, Работа с XML и INI файлами и структурами данных]

#include <xml_interface.h>

Граф наследования:YXML::IsAttr< T, Cmp >:

[см. легенду]
Граф связей класса YXML::IsAttr< T, Cmp >:

[см. легенду]
Полный список членов класса

Открытые члены

IsAttr (std::string at, T value)
virtual bool | operator() (const DNode n) const
virtual DNode::Is * | clone () const

Закрытые данные

std::string | a
T | v

Подробное описание

template<typename T, class Cmp>
struct YXML::IsAttr< T, Cmp >

Один из классов, используемых для построения логических условий поиска на ноду.
См. также:
FirstChild(const Is& cond) const

Next(const Is& cond) const Запрашивает у ноды атрибут

Аргументы:
at
См. также:
IsAttr::IsAttr(), приводит его к типу
Аргументы:
T | посредством набора операций класса DataString и сравнивает с заданным значением
value | c помощью операции сравнения
Cmp,задаваемой | через параметр шаблона. В качестве с
Cmp | могут быть использованы любые бинарные функторы сравнения из STL. В качестве примера
См. также:
IsAttrEq
Примеры:

test_yxml_ini.cpp и test_yxml_learn.cpp.

Конструктор(ы)

template<typename T, class Cmp>
YXML::IsAttr< T, Cmp >::IsAttr | ( | std::string | at,
 |  | T | value |
 | ) |  |  | [inline]

Методы

template<typename T, class Cmp>
virtual bool YXML::IsAttr< T, Cmp >::operator() ( const DNode n ) const [inline, virtual]

Замещает YXML::DNode::Is.

template<typename T, class Cmp>
virtual DNode::Is* YXML::IsAttr< T, Cmp >::clone ( ) const [inline, virtual]

Замещает YXML::DNode::Is.

Данные класса

template<typename T, class Cmp>
std::string YXML::IsAttr< T, Cmp >::a [private]

template<typename T, class Cmp>
T YXML::IsAttr< T, Cmp >::v [private]

Объявления и описания членов структуры находятся в файле:
  • xml_interface.h


Pipe Line Filters: Шаблон структуры YXML::IsAttrIn< T >

YXML::IsAttrIn

Шаблон структуры YXML::IsAttrIn< T >
[Работа с XML и INI файлами и структурами данных, Работа с XML и INI файлами и структурами данных]

#include <xml_interface.h>

Граф наследования:YXML::IsAttrIn< T >:

[см. легенду]
Граф связей класса YXML::IsAttrIn< T >:

[см. легенду]
Полный список членов класса

Открытые члены

IsAttrIn (std::string at, T value1, T value2)
virtual bool | operator() (const DNode n) const
virtual DNode::Is * | clone () const

Закрытые данные

std::string | a
T | v1
T | v2

Подробное описание

template<typename T>
struct YXML::IsAttrIn< T >

Один из классов, используемых для построения логических условий поиска на ноду. Проверяет, что значение аттрибута
Аргументы:
at,преобразованного | к типу
T | находится в диапазоне от
value1 | до
value2 | ВКЛЮЧАЯ ОБЕ ГРАНИЦЫ. Удобен при выборке из одноименных нод, отличающихся значением аттрибутов, имеющих смысл даты/времени, порядкового номера, номера витка ИСЗ и т.п.
Примеры:

test_yxml_ini.cpp и test_yxml_learn.cpp.

Конструктор(ы)

template<typename T>
YXML::IsAttrIn< T >::IsAttrIn | ( | std::string | at,
 |  | T | value1,
 |  | T | value2 |
 | ) |  |  | [inline]

Методы

template<typename T>
virtual bool YXML::IsAttrIn< T >::operator() ( const DNode n ) const [inline, virtual]

Замещает YXML::DNode::Is.

template<typename T>
virtual DNode::Is* YXML::IsAttrIn< T >::clone ( ) const [inline, virtual]

Замещает YXML::DNode::Is.

Данные класса

template<typename T>
std::string YXML::IsAttrIn< T >::a [private]

template<typename T>
T YXML::IsAttrIn< T >::v1 [private]

template<typename T>
T YXML::IsAttrIn< T >::v2 [private]

Объявления и описания членов структуры находятся в файле:
  • xml_interface.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::Edt::isEdge< T >

Vtl::ImAlg::Edt::isEdge

Шаблон структуры Vtl::ImAlg::Edt::isEdge< T >

#include <edt_meijster_2000.h>

Полный список членов класса

Открытые члены

isEdge (T threshold=T(0))
bool | operator() (T value)

Открытые атрибуты

T | thresh

template<typename T>
struct Vtl::ImAlg::Edt::isEdge< T >

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Edt::isEdge< T >::isEdge ( T threshold = T(0) ) [inline]

Методы

template<typename T>
bool Vtl::ImAlg::Edt::isEdge< T >::operator() ( T value ) [inline]

Данные класса

template<typename T>
T Vtl::ImAlg::Edt::isEdge< T >::thresh

Объявления и описания членов структуры находятся в файле:
  • edt_meijster_2000.h


Pipe Line Filters: Структура YXML::IsElem

YXML::IsElem

Структура YXML::IsElem
[Работа с XML и INI файлами и структурами данных, Работа с XML и INI файлами и структурами данных]

#include <xml_interface.h>

Граф наследования:YXML::IsElem:

[см. легенду]
Граф связей класса YXML::IsElem:

[см. легенду]
Полный список членов класса

Открытые члены

virtual bool | operator() (const DNode n) const

Закрытые члены

virtual DNode::Is * | clone () const

Подробное описание

Один из классов, используемых для построения логических условий поиска на ноду.
См. также:
FirstChild(const Is& cond) const

Next(const Is& cond) const

Проверяет тип ноды, если ELEMENT - возвращает true

Условия поиска

См. также:
DNode::IsCond,IsElem,IsName,IsNameEq,IsAttr,IsAttrIn,DNode::IsOR,DNode::IsAND

Методы

virtual bool YXML::IsElem::operator() ( const DNode n ) const [inline, virtual]

Замещает YXML::DNode::Is.

Переопределяется в YXML::IsName< Cmp >.

virtual DNode::Is* YXML::IsElem::clone ( ) const [inline, private, virtual]

Замещает YXML::DNode::Is.

Переопределяется в YXML::IsName< Cmp >.

Объявления и описания членов структуры находятся в файле:
  • xml_interface.h


Pipe Line Filters: Шаблон структуры Vtl::Types::TL::isIn< TList, T >

Vtl::Types::TL::isIn

Шаблон структуры Vtl::Types::TL::isIn< TList, T >

Проверка в списке ли? Подробнее...

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum { Result = (TL::IndexOf<TList,T>::value) >= 0 ? true:false }

Подробное описание

template<class TList, typename T>
struct Vtl::Types::TL::isIn< TList, T >

Проверка в списке ли?

Перечисления

template<class TList, typename T>
anonymous enum

Элементы перечислений:
Result

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Types::isIntOrReal< T >

Vtl::Types::isIntOrReal

Шаблон структуры Vtl::Types::isIntOrReal< T >

Проверка на этапе компиляции к какой группе относится тип T Vtl::Types::IntOrReal. Подробнее...

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum { Result }

Подробное описание

template<typename T>
struct Vtl::Types::isIntOrReal< T >

Проверка на этапе компиляции к какой группе относится тип T Vtl::Types::IntOrReal.

Перечисления

template<typename T>
anonymous enum

Элементы перечислений:
Result

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры YXML::IsName< Cmp >

YXML::IsName

Шаблон структуры YXML::IsName< Cmp >
[Работа с XML и INI файлами и структурами данных, Работа с XML и INI файлами и структурами данных]

#include <xml_interface.h>

Граф наследования:YXML::IsName< Cmp >:

[см. легенду]
Граф связей класса YXML::IsName< Cmp >:

[см. легенду]
Полный список членов класса

Открытые члены

IsName (std::string name)
virtual bool | operator() (const DNode n) const
virtual DNode::Is * | clone () const

Закрытые данные

std::string | _name

Подробное описание

template<class Cmp>
struct YXML::IsName< Cmp >

Один из классов, используемых для построения логических условий поиска на ноду.
См. также:
FirstChild(const Is& cond) const

Next(const Is& cond) const

Проверяет имя ноды типа ELEMENT, если выполняется условие заданное параметром шаблона Cmp - возвращает true

Аргументы:
Cmp - допустимо использование любых бинарных отношений, задаваемых библиотекой STL, в заголовочном файле "<"functional">", таких как less<>,equal_to<>, и т.д., имеющих смысл для сравнения текстовых строк. Наиболее типичный случай проверки равенства имени ноды заданному осуществляется специализированной версией класса IsNameEq. Он реализован через typedef , а не через параметр шаблона по умолчанию в связи с отсутствием такой поддержки в компиляторе Borland C++ Builder 6.0. Microsoft Visual C++ 7.0 и Intel C++ 7.0 поддерживают оба варианта реализации. В дальнейшем целесообразно перейти к параметру шаблона по умолчанию для предотвращения засорения пространства имен.
Условия поиска
См. также:
DNode::IsCond,IsElem,IsName,IsNameEq,IsAttr,IsAttrIn,DNode::IsOR,DNode::IsAND
Примеры:

test_yxml_ini.cpp и test_yxml_learn.cpp.

Конструктор(ы)

template<class Cmp>
YXML::IsName< Cmp >::IsName ( std::string name ) [inline]

Методы

template<class Cmp>
virtual bool YXML::IsName< Cmp >::operator() ( const DNode n ) const [inline, virtual]

Переопределяет метод предка YXML::IsElem.

template<class Cmp>
virtual DNode::Is* YXML::IsName< Cmp >::clone ( ) const [inline, virtual]

Переопределяет метод предка YXML::IsElem.

Данные класса

template<class Cmp>
std::string YXML::IsName< Cmp >::_name [private]

Объявления и описания членов структуры находятся в файле:
  • xml_interface.h


Pipe Line Filters: Шаблон структуры Vtl::Alg::isOdd< N >

Vtl::Alg::isOdd

Шаблон структуры Vtl::Alg::isOdd< N >

Определяет на стадии компиляции нечетное число или нет. Если нечетное, то Vtl::Alg::isOdd::value равно 1, иначе 0. Подробнее...

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum { value = N2 }

Подробное описание

template<unsigned N>
struct Vtl::Alg::isOdd< N >

Определяет на стадии компиляции нечетное число или нет. Если нечетное, то Vtl::Alg::isOdd::value равно 1, иначе 0.
Примеры:

test_alexandresku.cpp.

Перечисления

template<unsigned N>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон класса Vtl::Types::isSameType< T1, T2 >

Vtl::Types::isSameType

Шаблон класса Vtl::Types::isSameType< T1, T2 >

Проверка, совпадают ли типы. Если оба шаблонных параметра одинакового типа - то поле value=1, иначе value=0. Подробнее...

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum { value = 0 }

Подробное описание

template<class T1, class T2>
class Vtl::Types::isSameType< T1, T2 >

Проверка, совпадают ли типы. Если оба шаблонных параметра одинакового типа - то поле value=1, иначе value=0.

Перечисления

template<class T1, class T2>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов класса находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Types::isSUIntOrReal< T >

Vtl::Types::isSUIntOrReal

Шаблон структуры Vtl::Types::isSUIntOrReal< T >

Проверка на этапе компиляции к какомй группе относится тип T Vtl::Types::SUIntOrReal. Подробнее...

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum { Result }

Подробное описание

template<typename T>
struct Vtl::Types::isSUIntOrReal< T >

Проверка на этапе компиляции к какомй группе относится тип T Vtl::Types::SUIntOrReal.

Перечисления

template<typename T>
anonymous enum

Элементы перечислений:
Result

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон класса Vtl::Img::Iterator_1D< T, T_stride >

Vtl::Img::Iterator_1D

Шаблон класса Vtl::Img::Iterator_1D< T, T_stride >

#include <vtl_image.h>

Полный список членов класса

Открытые типы

enum | { stride = T_stride }
typedef T | value_type

Открытые члены

Iterator_1D ()
Iterator_1D (T *data_)
Iterator_1D & operator++ ()
Iterator_1D & operator-- ()
Iterator_1D & | operator+= (offset_type i)
Iterator_1D & | operator-= (offset_type i)
T & | operator[] (offset_type i)
T | operator[] (offset_type i) const
T & | operator * ()
T | operator * () const

Закрытые данные

T * | data

template<class T, int T_stride>
class Vtl::Img::Iterator_1D< T, T_stride >

Определения типов

template<class T, int T_stride>
typedef T Vtl::Img::Iterator_1D< T, T_stride >::value_type

Перечисления

template<class T, int T_stride>
anonymous enum

Элементы перечислений:
stride

Конструктор(ы)

template<class T, int T_stride>
Vtl::Img::Iterator_1D< T, T_stride >::Iterator_1D ( ) [inline]

template<class T, int T_stride>
Vtl::Img::Iterator_1D< T, T_stride >::Iterator_1D ( T * data_ ) [inline]

Методы

template<class T, int T_stride>
Iterator_1D& Vtl::Img::Iterator_1D< T, T_stride >::operator++ ( ) [inline]

template<class T, int T_stride>
Iterator_1D& Vtl::Img::Iterator_1D< T, T_stride >::operator-- ( ) [inline]

template<class T, int T_stride>
Iterator_1D& Vtl::Img::Iterator_1D< T, T_stride >::operator+= ( offset_type i ) [inline]

template<class T, int T_stride>
Iterator_1D& Vtl::Img::Iterator_1D< T, T_stride >::operator-= ( offset_type i ) [inline]

template<class T, int T_stride>
T& Vtl::Img::Iterator_1D< T, T_stride >::operator[] ( offset_type i ) [inline]

template<class T, int T_stride>
T Vtl::Img::Iterator_1D< T, T_stride >::operator[] ( offset_type i ) const [inline]

template<class T, int T_stride>
T& Vtl::Img::Iterator_1D< T, T_stride >::operator * ( ) [inline]

template<class T, int T_stride>
T Vtl::Img::Iterator_1D< T, T_stride >::operator * ( ) const [inline]

Данные класса

template<class T, int T_stride>
T* Vtl::Img::Iterator_1D< T, T_stride >::data [private]

Объявления и описания членов класса находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон класса Vtl::Img::Iterator_1D< T, 0 >

Vtl::Img::Iterator_1D< T, 0 >

Шаблон класса Vtl::Img::Iterator_1D< T, 0 >

#include <vtl_image.h>

Полный список членов класса

Открытые типы

typedef T | value_type

Открытые члены

Iterator_1D ()
Iterator_1D (T *data_, offset_type stride_)
Iterator_1D & operator++ ()
Iterator_1D & operator-- ()
Iterator_1D & | operator+= (offset_type i)
Iterator_1D & | operator-= (offset_type i)
T & | operator[] (offset_type i)
T | operator[] (offset_type i) const
T & | operator * ()
T | operator * () const

Открытые атрибуты

const offset_type | stride

Закрытые данные

T * | data

template<class T>
class Vtl::Img::Iterator_1D< T, 0 >

Определения типов

template<class T>
typedef T Vtl::Img::Iterator_1D< T, 0 >::value_type

Конструктор(ы)

template<class T>
Vtl::Img::Iterator_1D< T, 0 >::Iterator_1D ( ) [inline]

template<class T>
Vtl::Img::Iterator_1D< T, 0 >::Iterator_1D | ( | T * | data_,
 |  | offset_type | stride_ |
 | ) |  |  | [inline]

Методы

template<class T>
Iterator_1D& Vtl::Img::Iterator_1D< T, 0 >::operator++ ( ) [inline]

template<class T>
Iterator_1D& Vtl::Img::Iterator_1D< T, 0 >::operator-- ( ) [inline]

template<class T>
Iterator_1D& Vtl::Img::Iterator_1D< T, 0 >::operator+= ( offset_type i ) [inline]

template<class T>
Iterator_1D& Vtl::Img::Iterator_1D< T, 0 >::operator-= ( offset_type i ) [inline]

template<class T>
T& Vtl::Img::Iterator_1D< T, 0 >::operator[] ( offset_type i ) [inline]

template<class T>
T Vtl::Img::Iterator_1D< T, 0 >::operator[] ( offset_type i ) const [inline]

template<class T>
T& Vtl::Img::Iterator_1D< T, 0 >::operator * ( ) [inline]

template<class T>
T Vtl::Img::Iterator_1D< T, 0 >::operator * ( ) const [inline]

Данные класса

template<class T>
T* Vtl::Img::Iterator_1D< T, 0 >::data [private]

template<class T>
const offset_type Vtl::Img::Iterator_1D< T, 0 >::stride

Объявления и описания членов класса находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон класса Vtl::Img::Iterator_ND< T_Layout >

Vtl::Img::Iterator_ND

Шаблон класса Vtl::Img::Iterator_ND< T_Layout >

#include <vtl_image.h>

Граф наследования:Vtl::Img::Iterator_ND< T_Layout >:

[см. легенду]
Граф связей класса Vtl::Img::Iterator_ND< T_Layout >:

[см. легенду]
Полный список членов класса

Открытые члены

Iterator_ND (T_Layout strides_)

template<class T_Layout>
class Vtl::Img::Iterator_ND< T_Layout >

Конструктор(ы)

template<class T_Layout>
Vtl::Img::Iterator_ND< T_Layout >::Iterator_ND ( T_Layout strides_ ) [inline]

Объявления и описания членов класса находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >

Vtl::Img::Iterator_ND_base

Шаблон класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >

#include <vtl_image.h>

Граф наследования:Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { Ndim = T_Layout::Ndim }
enum | { isGray = isGray_ }
typedef T_Layout::value_type | value_type
typedef T_Layout::SList::IList | IList
typedef T_Layout::SList | SList

Открытые члены

Iterator_ND_base (T_Layout strides_)
void | print ()
template<int i>
Loki::TL::TypeAt< MoveXList,
i >::Result 		x ()

Защищенные типы

typedef BuildMoveXList::Result | MoveXList

Защищенные данные

offset_type | offset [Ndim]
value_type * data

Классы

class | BuildMoveXList
class | MoveX
class | MoveX< I, 0 >

Подробное описание

template<class T_Layout, bool isGray_>
class Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >

Многомерный итератор - базовый класс, общие функции

Определения типов

template<class T_Layout, bool isGray_>
typedef T_Layout::value_type Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::value_type

template<class T_Layout, bool isGray_>
typedef T_Layout::SList::IList Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::IList

template<class T_Layout, bool isGray_>
typedef T_Layout::SList Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::SList

template<class T_Layout, bool isGray_>
typedef BuildMoveXList::Result Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveXList [protected]

Перечисления

template<class T_Layout, bool isGray_>
anonymous enum

Элементы перечислений:
Ndim

template<class T_Layout, bool isGray_>
anonymous enum

Элементы перечислений:
isGray

Конструктор(ы)

template<class T_Layout, bool isGray_>
Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::Iterator_ND_base ( T_Layout strides_ ) [inline]

Методы

template<class T_Layout, bool isGray_>
void Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::print ( ) [inline]

template<class T_Layout, bool isGray_>
template<int i>
Loki::TL::TypeAt<MoveXList,i>::Result Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::x ( ) [inline]

Данные класса

template<class T_Layout, bool isGray_>
offset_type Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::offset[Ndim] [protected]

template<class T_Layout, bool isGray_>
value_type* Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::data [protected]

Объявления и описания членов класса находятся в файле:
  • vtl_image.h


Pipe Line Filters: Класс Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList

Vtl::Img::Iterator_ND_base::BuildMoveXList

Класс Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList

Полный список членов класса

Открытые типы

typedef build< 0 >::Result | Result

Закрытые типы

enum | { ND = Vtl::Meta::IL::Length<IList>::value-2 }
typedef T_Layout::value_type | value_type
typedef T_Layout::SList::IList | IList

Классы

struct | build
struct | build< ND >
struct | MoveX_selector

template<class T_Layout, bool isGray_>
class Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList

Определения типов

template<class T_Layout, bool isGray_>
typedef T_Layout::value_type Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::value_type [private]

template<class T_Layout, bool isGray_>
typedef T_Layout::SList::IList Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::IList [private]

template<class T_Layout, bool isGray_>
typedef build<0>::Result Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::Result

Перечисления

template<class T_Layout, bool isGray_>
anonymous enum [private]

Элементы перечислений:
ND

Объявления и описания членов класса находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон структуры Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< i >

Vtl::Img::Iterator_ND_base::BuildMoveXList::build

Шаблон структуры Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< i >

Полный список членов класса

Открытые типы

typedef Loki::Typelist< typename
MoveX_selector< i >::Result,
typename build< i+1 >::Result > 		Result

template<class T_Layout, bool isGray_>
template<int i>
struct Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< i >

Определения типов

template<class T_Layout, bool isGray_>
template<int i>
typedef Loki::Typelist<typename MoveX_selector<i>::Result,typename build<i+1>::Result > Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< i >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон структуры Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< ND >

Vtl::Img::Iterator_ND_base::BuildMoveXList::build< ND >

Шаблон структуры Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< ND >

Полный список членов класса

Открытые типы

typedef Loki::Typelist< typename
MoveX_selector< ND >::Result,
Loki::NullType > 		Result

template<class T_Layout, bool isGray_>
template<>
struct Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< ND >

Определения типов

template<class T_Layout, bool isGray_>
typedef Loki::Typelist<typename MoveX_selector<ND>::Result,Loki::NullType > Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< ND >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон структуры Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::MoveX_selector< i >

Vtl::Img::Iterator_ND_base::BuildMoveXList::MoveX_selector

Шаблон структуры Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::MoveX_selector< i >

Полный список членов класса

Открытые типы

typedef MoveX< i, Vtl::Meta::IL::Elem<
i, IList >::value > 		Result

template<class T_Layout, bool isGray_>
template<int i>
struct Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::MoveX_selector< i >

Определения типов

template<class T_Layout, bool isGray_>
template<int i>
typedef MoveX<i,Vtl::Meta::IL::Elem<i,IList>::value> Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::MoveX_selector< i >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >

Vtl::Img::Iterator_ND_base::MoveX

Шаблон класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >

#include <vtl_image.h>

Граф связей класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >:

[см. легенду]
Полный список членов класса

Открытые члены

MoveX (Iterator_ND_base &base_, offset_type)
Iterator_ND_base & operator++ ()
Iterator_ND_base & operator-- ()
Iterator_ND_base & | operator+= (offset_type move_by)
Iterator_ND_base & | operator-= (offset_type i)
bool | operator== (const MoveX &rhs) const
bool | operator!= (const MoveX &rhs) const

Закрытые члены

offset_type & ofs ()

Закрытые данные

Iterator_ND_base & base

template<class T_Layout, bool isGray_>
template<int I, int stride>
class Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >

Конструктор(ы)

template<class T_Layout, bool isGray_>
template<int I, int stride>
Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >::MoveX | ( | Iterator_ND_base & | base_,
 |  | offset_type |  |
 | ) |  |  | [inline]

Методы

template<class T_Layout, bool isGray_>
template<int I, int stride>
offset_type& Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >::ofs ( ) [inline, private]

template<class T_Layout, bool isGray_>
template<int I, int stride>
Iterator_ND_base& Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >::operator++ ( ) [inline]

template<class T_Layout, bool isGray_>
template<int I, int stride>
Iterator_ND_base& Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >::operator-- ( ) [inline]

template<class T_Layout, bool isGray_>
template<int I, int stride>
Iterator_ND_base& Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >::operator+= ( offset_type move_by ) [inline]

template<class T_Layout, bool isGray_>
template<int I, int stride>
Iterator_ND_base& Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >::operator-= ( offset_type i ) [inline]

template<class T_Layout, bool isGray_>
template<int I, int stride>
bool Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >::operator== ( const MoveX< I, stride > & rhs ) const [inline]

template<class T_Layout, bool isGray_>
template<int I, int stride>
bool Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >::operator!= ( const MoveX< I, stride > & rhs ) const [inline]

Данные класса

template<class T_Layout, bool isGray_>
template<int I, int stride>
Iterator_ND_base& Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >::base [private]

Объявления и описания членов класса находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >

Vtl::Img::Iterator_ND_base::MoveX< I, 0 >

Шаблон класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >

#include <vtl_image.h>

Граф связей класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >:

[см. легенду]
Полный список членов класса

Открытые члены

MoveX (Iterator_ND_base &base_, offset_type stride_)
Iterator_ND_base & operator++ ()
Iterator_ND_base & operator-- ()
Iterator_ND_base & | operator+= (offset_type move_by)
Iterator_ND_base & | operator-= (offset_type i)
bool | operator== (const MoveX &rhs) const
bool | operator!= (const MoveX &rhs) const

Закрытые члены

offset_type & ofs ()

Закрытые данные

Iterator_ND_base & base
const int | stride

template<class T_Layout, bool isGray_>
template<int I>
class Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >

Конструктор(ы)

template<class T_Layout, bool isGray_>
template<int I>
Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >::MoveX | ( | Iterator_ND_base & | base_,
 |  | offset_type | stride_ |
 | ) |  |  | [inline]

Методы

template<class T_Layout, bool isGray_>
template<int I>
offset_type& Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >::ofs ( ) [inline, private]

template<class T_Layout, bool isGray_>
template<int I>
Iterator_ND_base& Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >::operator++ ( ) [inline]

template<class T_Layout, bool isGray_>
template<int I>
Iterator_ND_base& Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >::operator-- ( ) [inline]

template<class T_Layout, bool isGray_>
template<int I>
Iterator_ND_base& Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >::operator+= ( offset_type move_by ) [inline]

template<class T_Layout, bool isGray_>
template<int I>
Iterator_ND_base& Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >::operator-= ( offset_type i ) [inline]

template<class T_Layout, bool isGray_>
template<int I>
bool Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >::operator== ( const MoveX< I, 0 > & rhs ) const [inline]

template<class T_Layout, bool isGray_>
template<int I>
bool Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >::operator!= ( const MoveX< I, 0 > & rhs ) const [inline]

Данные класса

template<class T_Layout, bool isGray_>
template<int I>
Iterator_ND_base& Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >::base [private]

template<class T_Layout, bool isGray_>
template<int I>
const int Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >::stride [private]

Объявления и описания членов класса находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон класса Vtl::Img::Iterator_ND_spec< T_Layout, isGray, isSubSpace >

Vtl::Img::Iterator_ND_spec

Шаблон класса Vtl::Img::Iterator_ND_spec< T_Layout, isGray, isSubSpace >

#include <vtl_image.h>

Граф наследования:Vtl::Img::Iterator_ND_spec< T_Layout, isGray, isSubSpace >:

[см. легенду]
Граф связей класса Vtl::Img::Iterator_ND_spec< T_Layout, isGray, isSubSpace >:

[см. легенду]

template<class T_Layout, bool isGray, bool isSubSpace>
class Vtl::Img::Iterator_ND_spec< T_Layout, isGray, isSubSpace >

Объявления и описания членов класса находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон класса Vtl::Img::Iterator_ND_spec< T_Layout, false, false >

Vtl::Img::Iterator_ND_spec< T_Layout, false, false >

Шаблон класса Vtl::Img::Iterator_ND_spec< T_Layout, false, false >

#include <vtl_image.h>

Граф наследования:Vtl::Img::Iterator_ND_spec< T_Layout, false, false >:

[см. легенду]
Граф связей класса Vtl::Img::Iterator_ND_spec< T_Layout, false, false >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef BuildIter1DList< T_Layout
>::BandsIterator 		BandsIterator
typedef BuildIter1DList< T_Layout
>::Result 		Iter1DList

Открытые члены

Iterator_ND_spec (T_Layout strides_)
BandsIterator operator * ()

Закрытые члены

offset_type | ofs () const

Классы

struct | IterBands

Подробное описание

template<class T_Layout>
class Vtl::Img::Iterator_ND_spec< T_Layout, false, false >

Многомерный итератор, многоканальное изображение, полный итератор

Определения типов

template<class T_Layout>
typedef BuildIter1DList<T_Layout>::BandsIterator Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::BandsIterator

template<class T_Layout>
typedef BuildIter1DList<T_Layout>::Result Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::Iter1DList

Конструктор(ы)

template<class T_Layout>
Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::Iterator_ND_spec ( T_Layout strides_ ) [inline]

Методы

template<class T_Layout>
offset_type Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::ofs ( ) const [inline, private]

template<class T_Layout>
BandsIterator Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::operator * ( ) [inline]

Объявления и описания членов класса находятся в файле:
  • vtl_image.h


Pipe Line Filters: Структура Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::IterBands

Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::IterBands

Структура Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::IterBands

#include <vtl_image.h>

Полный список членов класса

Открытые типы

typedef Loki::TL::TypeAt<
Iter1DList, Ndim >::Result 		Type

template<class T_Layout>
struct Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::IterBands

Определения типов

template<class T_Layout>
typedef Loki::TL::TypeAt<Iter1DList,Ndim>::Result Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::IterBands::Type

Объявления и описания членов структуры находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон класса Vtl::Img::Iterator_ND_spec< T_Layout, false, true >

Vtl::Img::Iterator_ND_spec< T_Layout, false, true >

Шаблон класса Vtl::Img::Iterator_ND_spec< T_Layout, false, true >

#include <vtl_image.h>

Граф наследования:Vtl::Img::Iterator_ND_spec< T_Layout, false, true >:

[см. легенду]
Граф связей класса Vtl::Img::Iterator_ND_spec< T_Layout, false, true >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef BuildIter1DList< T_Layout
>::BandsIterator 		BandsIterator
typedef BuildIter1DList< T_Layout
>::Result 		Iter1DList

Открытые члены

Iterator_ND_spec (T_Layout strides_)
BandsIterator operator * ()

Закрытые члены

offset_type | ofs () const

Классы

struct | IterBands

Подробное описание

template<class T_Layout>
class Vtl::Img::Iterator_ND_spec< T_Layout, false, true >

Многомерный итератор, многоканальное изображение, итератор по подпространствам

Определения типов

template<class T_Layout>
typedef BuildIter1DList<T_Layout>::BandsIterator Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::BandsIterator

template<class T_Layout>
typedef BuildIter1DList<T_Layout>::Result Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::Iter1DList

Конструктор(ы)

template<class T_Layout>
Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::Iterator_ND_spec ( T_Layout strides_ ) [inline]

Методы

template<class T_Layout>
offset_type Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::ofs ( ) const [inline, private]

template<class T_Layout>
BandsIterator Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::operator * ( ) [inline]

Объявления и описания членов класса находятся в файле:
  • vtl_image.h


Pipe Line Filters: Структура Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::IterBands

Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::IterBands

Структура Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::IterBands

#include <vtl_image.h>

Полный список членов класса

Открытые типы

typedef Loki::TL::TypeAt<
Iter1DList, Ndim >::Result 		Type

template<class T_Layout>
struct Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::IterBands

Определения типов

template<class T_Layout>
typedef Loki::TL::TypeAt<Iter1DList,Ndim>::Result Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::IterBands::Type

Объявления и описания членов структуры находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон класса Vtl::Img::Iterator_ND_spec< T_Layout, true, false >

Vtl::Img::Iterator_ND_spec< T_Layout, true, false >

Шаблон класса Vtl::Img::Iterator_ND_spec< T_Layout, true, false >

#include <vtl_image.h>

Граф наследования:Vtl::Img::Iterator_ND_spec< T_Layout, true, false >:

[см. легенду]
Граф связей класса Vtl::Img::Iterator_ND_spec< T_Layout, true, false >:

[см. легенду]
Полный список членов класса

Открытые члены

Iterator_ND_spec (T_Layout strides_)
value_type & operator * ()

Закрытые члены

offset_type ofs () const

Подробное описание

template<class T_Layout>
class Vtl::Img::Iterator_ND_spec< T_Layout, true, false >

Многомерный итератор, специализация для серого изображения, полный итератор

Конструктор(ы)

template<class T_Layout>
Vtl::Img::Iterator_ND_spec< T_Layout, true, false >::Iterator_ND_spec ( T_Layout strides_ ) [inline]

Методы

template<class T_Layout>
offset_type Vtl::Img::Iterator_ND_spec< T_Layout, true, false >::ofs ( ) const [inline, private]

template<class T_Layout>
value_type& Vtl::Img::Iterator_ND_spec< T_Layout, true, false >::operator * ( ) [inline]

Объявления и описания членов класса находятся в файле:
  • vtl_image.h


Pipe Line Filters: Шаблон класса Vtl::Img::Iterator_ND_spec< T_Layout, true, true >

Vtl::Img::Iterator_ND_spec< T_Layout, true, true >

Шаблон класса Vtl::Img::Iterator_ND_spec< T_Layout, true, true >

#include <vtl_image.h>

Граф наследования:Vtl::Img::Iterator_ND_spec< T_Layout, true, true >:

[см. легенду]
Граф связей класса Vtl::Img::Iterator_ND_spec< T_Layout, true, true >:

[см. легенду]
Полный список членов класса

Открытые члены

Iterator_ND_spec (T_Layout strides_)
value_type & operator * ()

Закрытые члены

offset_type ofs () const

Подробное описание

template<class T_Layout>
class Vtl::Img::Iterator_ND_spec< T_Layout, true, true >

Многомерный итератор, специализация для серого изображения, итератор по подпространствам

Конструктор(ы)

template<class T_Layout>
Vtl::Img::Iterator_ND_spec< T_Layout, true, true >::Iterator_ND_spec ( T_Layout strides_ ) [inline]

Методы

template<class T_Layout>
offset_type Vtl::Img::Iterator_ND_spec< T_Layout, true, true >::ofs ( ) const [inline, private]

template<class T_Layout>
value_type& Vtl::Img::Iterator_ND_spec< T_Layout, true, true >::operator * ( ) [inline]

Объявления и описания членов класса находятся в файле:
  • vtl_image.h


Pipe Line Filters: Структура Vtl::ImAlg::C::IV1V2

Vtl::ImAlg::C::IV1V2

Структура Vtl::ImAlg::C::IV1V2

Специально цветовое пространство, используется struct HSI. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

enum | { n_components = 3 }
enum | { is_metric = 0 }
enum | { is_system = sys_chrom }

Открытые статические члены

template<int n>
static const char * | sample_name ()
static std::string | name ()
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 0 >)
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 1 >)
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 2 >)
template<typename T>
static T | rgb (T i, T v1, T v2, Loki::Int2Type< 0 >)
template<typename T>
static T | rgb (T i, T v1, T v2, Loki::Int2Type< 1 >)
template<typename T>
static T | rgb (T i, T v1, T v2, Loki::Int2Type< 2 >)
template<int n, typename T>
static T | sample (T r, T g, T b)
template<int n, typename T>
static T | rgb (T i, T v1, T v2)
template<int n, typename T>
static T | sample_min (T MaxColor)
template<int n, typename T>
static T | sample_max (T MaxColor)
template<int n, typename T>
static T | sample_maxabs (T MaxColor)
template<typename T>
static T | sample_max_saturation (T MaxColor)
specific for cromatic-like color systems
template<int n>
static bool | is_sample_sign_alternating ()
template<int n>
static bool | is_sample_cyclic_var ()
template<typename T>
static T | I_f (T r, T g, T b)
template<typename T>
static T | V1_f (T r, T g, T b)
template<typename T>
static T | V2_f (T r, T g, T b)
template<typename T>
static T | R_f (T i, T v1, T v2)
template<typename T>
static T | G_f (T i, T v1, T v2)
template<typename T>
static T | B_f (T i, T v1, T v2)

Классы

struct | B
Функтор IV1V2 -> B . Подробнее...
struct | fromRGB
Функтор для PixByPix3to3, преобразование RGB -> IV1V2. Подробнее...
struct | G
Функтор IV1V2 -> G . Подробнее...
struct | I
Функтор IV1V2: RGB -> I. Подробнее...
struct | R
Функтор IV1V2 -> R . Подробнее...
struct | toRGB
Функтор для PixByPix3to3, преобразование IV1V2 -> RGB. Подробнее...
struct | V1
Функтор IV1V2: RGB -> V1 . Подробнее...
struct | V2
Функтор IV1V2: RGB -> V2 . Подробнее...

Подробное описание

Специально цветовое пространство, используется struct HSI.

 2.4494897427831780981972840747059
    a = 1/3         =0.33333333333333333333333333333333
    b = 1/sqrt(6.)  =0.40824829046386301636621401245113 //098
    c = sqrt(6.)/3  =0.81649658092772603273242802490167 //0196
    d = sqrt(6.)/2  =1.2247448713915890490986420373525  //529

    I  =   a * R + a * G +  a * B
    V1 = - b * R - b * G +  c * B
    V2 =   b * R - b * G +  0  * B
    ----------------------------------------------
    R = I -  b * V1 + d * V2
    G = I +  b * V1 - d * V2
    B = I +  c * V1 + 0 * V2

Перечисления

anonymous enum

Элементы перечислений:
n_components

anonymous enum

Элементы перечислений:
is_metric

anonymous enum

Элементы перечислений:
is_system

Методы

template<int n>
static const char* Vtl::ImAlg::C::IV1V2::sample_name ( ) [inline, static]

static std::string Vtl::ImAlg::C::IV1V2::name ( ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::IV1V2::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::IV1V2::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::IV1V2::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 2 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::IV1V2::rgb | ( | T | i,
 |  | T | v1,
 |  | T | v2,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::IV1V2::rgb | ( | T | i,
 |  | T | v1,
 |  | T | v2,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::IV1V2::rgb | ( | T | i,
 |  | T | v1,
 |  | T | v2,
 |  | Loki::Int2Type< 2 > |  |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::IV1V2::sample | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::IV1V2::rgb | ( | T | i,
 |  | T | v1,
 |  | T | v2 |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::IV1V2::sample_min ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::IV1V2::sample_max ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::IV1V2::sample_maxabs ( T MaxColor ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::IV1V2::sample_max_saturation ( T MaxColor ) [inline, static]

specific for cromatic-like color systems

template<int n>
static bool Vtl::ImAlg::C::IV1V2::is_sample_sign_alternating ( ) [inline, static]

template<int n>
static bool Vtl::ImAlg::C::IV1V2::is_sample_cyclic_var ( ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::IV1V2::I_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::IV1V2::V1_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::IV1V2::V2_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::IV1V2::R_f | ( | T | i,
 |  | T | v1,
 |  | T | v2 |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::IV1V2::G_f | ( | T | i,
 |  | T | v1,
 |  | T | v2 |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::IV1V2::B_f | ( | T | i,
 |  | T | v1,
 |  | T | v2 |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::IV1V2::B< T >

Vtl::ImAlg::C::IV1V2::B

Шаблон структуры Vtl::ImAlg::C::IV1V2::B< T >

Функтор IV1V2 -> B . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef IV1V2 | ColorSystem

Открытые члены

T | operator() (T i, T v1, T v2) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::IV1V2::B< T >

Функтор IV1V2 -> B .

Определения типов

template<typename T>
typedef IV1V2 Vtl::ImAlg::C::IV1V2::B< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::IV1V2::B< T >::operator() | ( | T | i,
 |  | T | v1,
 |  | T | v2 |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >

Vtl::ImAlg::C::IV1V2::fromRGB

Шаблон структуры Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3, преобразование RGB -> IV1V2. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef IV1V2 | ColorSystem

Открытые члены

fromRGB (NormType normalizer=Normalizer< T, IV1V2, nDefault >(255, 0, 128))
void | operator() (T r, T g, T b, Iter i, Iter v1, Iter v2) const

Открытые атрибуты

NormType | norm

Подробное описание

template<typename T, class NormType = Normalizer<T,IV1V2,nDefault>, typename Iter = T&>
struct Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3, преобразование RGB -> IV1V2.

Определения типов

template<typename T, class NormType = Normalizer<T,IV1V2,nDefault>, typename Iter = T&>
typedef IV1V2 Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,IV1V2,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >::fromRGB ( NormType normalizer = Normalizer<T,IV1V2,nDefault>(255,0,128) ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,IV1V2,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Iter | i,
 |  | Iter | v1,
 |  | Iter | v2 |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,IV1V2,nDefault>, typename Iter = T&>
NormType Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >::norm

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::IV1V2::G< T >

Vtl::ImAlg::C::IV1V2::G

Шаблон структуры Vtl::ImAlg::C::IV1V2::G< T >

Функтор IV1V2 -> G . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef IV1V2 | ColorSystem

Открытые члены

T | operator() (T i, T v1, T v2) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::IV1V2::G< T >

Функтор IV1V2 -> G .

Определения типов

template<typename T>
typedef IV1V2 Vtl::ImAlg::C::IV1V2::G< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::IV1V2::G< T >::operator() | ( | T | i,
 |  | T | v1,
 |  | T | v2 |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::IV1V2::I< T >

Vtl::ImAlg::C::IV1V2::I

Шаблон структуры Vtl::ImAlg::C::IV1V2::I< T >

Функтор IV1V2: RGB -> I. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef IV1V2 | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::IV1V2::I< T >

Функтор IV1V2: RGB -> I.

Определения типов

template<typename T>
typedef IV1V2 Vtl::ImAlg::C::IV1V2::I< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::IV1V2::I< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::IV1V2::R< T >

Vtl::ImAlg::C::IV1V2::R

Шаблон структуры Vtl::ImAlg::C::IV1V2::R< T >

Функтор IV1V2 -> R . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef IV1V2 | ColorSystem

Открытые члены

T | operator() (T i, T v1, T v2) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::IV1V2::R< T >

Функтор IV1V2 -> R .

Определения типов

template<typename T>
typedef IV1V2 Vtl::ImAlg::C::IV1V2::R< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::IV1V2::R< T >::operator() | ( | T | i,
 |  | T | v1,
 |  | T | v2 |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >

Vtl::ImAlg::C::IV1V2::toRGB

Шаблон структуры Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3, преобразование IV1V2 -> RGB. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef IV1V2 | ColorSystem

Открытые члены

toRGB (NormType normalizer=Normalizer< T, IV1V2, nDefault >(255, 0, 128))
void | operator() (T i, T v1, T v2, Iter r, Iter g, Iter b) const

Открытые атрибуты

NormType | norm

Подробное описание

template<typename T, class NormType = Normalizer<T,IV1V2,nDefault>, typename Iter = T&>
struct Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3, преобразование IV1V2 -> RGB.

Определения типов

template<typename T, class NormType = Normalizer<T,IV1V2,nDefault>, typename Iter = T&>
typedef IV1V2 Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,IV1V2,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >::toRGB ( NormType normalizer = Normalizer<T,IV1V2,nDefault>(255,0,128) ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,IV1V2,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >::operator() | ( | T | i,
 |  | T | v1,
 |  | T | v2,
 |  | Iter | r,
 |  | Iter | g,
 |  | Iter | b |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,IV1V2,nDefault>, typename Iter = T&>
NormType Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >::norm

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::IV1V2::V1< T >

Vtl::ImAlg::C::IV1V2::V1

Шаблон структуры Vtl::ImAlg::C::IV1V2::V1< T >

Функтор IV1V2: RGB -> V1 . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef IV1V2 | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::IV1V2::V1< T >

Функтор IV1V2: RGB -> V1 .

Определения типов

template<typename T>
typedef IV1V2 Vtl::ImAlg::C::IV1V2::V1< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::IV1V2::V1< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::IV1V2::V2< T >

Vtl::ImAlg::C::IV1V2::V2

Шаблон структуры Vtl::ImAlg::C::IV1V2::V2< T >

Функтор IV1V2: RGB -> V2 . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef IV1V2 | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::IV1V2::V2< T >

Функтор IV1V2: RGB -> V2 .

Определения типов

template<typename T>
typedef IV1V2 Vtl::ImAlg::C::IV1V2::V2< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::IV1V2::V2< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::Kaiser< T, D >

Vtl::ImAlg::WndFun::Kaiser

Шаблон класса Vtl::ImAlg::WndFun::Kaiser< T, D >

Окно Кайзера (Kaiser). Определяется формулой [image] , где $ I_0( . )$ - модифицированная функция Бесселя. Подробнее...

#include <windowing_fun.h>

Полный список членов класса

Открытые типы

typedef T | arg_type

Открытые члены

template<class TT>
Kaiser (TT size_, T alpha_)
template<class TT>
T | operator() (TT x) const
arg_type | size () const
arg_type | center () const
arg_type | left () const
arg_type | right () const

Открытые статические члены

static const char * | Name ()

Закрытые члены

T | result (T x, Loki::Int2Type< 0 >) const

Закрытые данные

const T | c
const T | alpha
const arg_type | _size_

Подробное описание

template<typename T, unsigned D>
class Vtl::ImAlg::WndFun::Kaiser< T, D >

Окно Кайзера (Kaiser). Определяется формулой [image] , где $ I_0( . )$ - модифицированная функция Бесселя.

Спектр дается выражением [image], где

Зависимость формы окна и спектра от параметра [image] показана на рисунках:

Примеры:

test_plf_kernels.cpp.

Определения типов

template<typename T, unsigned D>
typedef T Vtl::ImAlg::WndFun::Kaiser< T, D >::arg_type

Конструктор(ы)

template<typename T, unsigned D>
template<class TT>
Vtl::ImAlg::WndFun::Kaiser< T, D >::Kaiser | ( | TT | size_,
 |  | T | alpha_ |
 | ) |  |  | [inline]

Методы

template<typename T, unsigned D>
static const char* Vtl::ImAlg::WndFun::Kaiser< T, D >::Name ( ) [inline, static]

template<typename T, unsigned D>
template<class TT>
T Vtl::ImAlg::WndFun::Kaiser< T, D >::operator() ( TT x ) const [inline]

template<typename T, unsigned D>
arg_type Vtl::ImAlg::WndFun::Kaiser< T, D >::size ( ) const [inline]

template<typename T, unsigned D>
arg_type Vtl::ImAlg::WndFun::Kaiser< T, D >::center ( ) const [inline]

template<typename T, unsigned D>
arg_type Vtl::ImAlg::WndFun::Kaiser< T, D >::left ( ) const [inline]

template<typename T, unsigned D>
arg_type Vtl::ImAlg::WndFun::Kaiser< T, D >::right ( ) const [inline]

template<typename T, unsigned D>
T Vtl::ImAlg::WndFun::Kaiser< T, D >::result | ( | T | x,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | const [inline, private]

Данные класса

template<typename T, unsigned D>
const T Vtl::ImAlg::WndFun::Kaiser< T, D >::c [private]

template<typename T, unsigned D>
const T Vtl::ImAlg::WndFun::Kaiser< T, D >::alpha [private]

template<typename T, unsigned D>
const arg_type Vtl::ImAlg::WndFun::Kaiser< T, D >::_size_ [private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >

Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >

Шаблон класса Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >

#include <sfm_calibration.h>

Полный список членов класса

Открытые члены

KruppaEq (const Matrix &Fm)

Закрытые типы

enum | { n = N }
typedef Vtl::NumAlg::Lin::ublas::c_matrix<
T, N, N > 		Matrix
typedef Vtl::NumAlg::Lin::ublas::c_vector<
T, N > 		Vector
typedef Matrix::value_type | value_type
typedef Matrix::size_type | size_type

Закрытые члены

value_type | build_E (value_type focus, int hypothesis)
value_type find_sing_value_dev (Matrix &E)
Портит входную существенную матрицу.

Закрытые данные

const Matrix | F
Input fundamental matrix.
Matrix | E [6]
Output essential matrix.
Matrix | K1 [6]
Output calibration matrix K.
Matrix | K2 [6]
Output calibration matrix K'.

Классы

class | Km

Подробное описание

template<typename T, int N>
class Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >

Специализация класса KruppaEq для работы с матрицами ublas::c_matrix<T, 3, 3>. !!! ВНИМАНИЕ !!! Запрограммировано вроде бы правильно, но в нашем контексте не работает. При поиске единого фокусного расстояния по фундаментальной матрице (калибровочной матрицы) все три уравнения Круппа получаются существенно разными, и из возможных 6 корней ни один не похож на правду. Может быть дело в устойчивости задачи? Или уравнения Круппа нельзя применять если не найдено и устранено проективное искажение?

Определения типов

template<typename T, int N>
typedef Vtl::NumAlg::Lin::ublas::c_matrix<T, N, N> Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Matrix [private]

template<typename T, int N>
typedef Vtl::NumAlg::Lin::ublas::c_vector<T, N> Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Vector [private]

template<typename T, int N>
typedef Matrix::value_type Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::value_type [private]

template<typename T, int N>
typedef Matrix::size_type Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::size_type [private]

Перечисления

template<typename T, int N>
anonymous enum [private]

Элементы перечислений:
n

Конструктор(ы)

template<typename T, int N>
Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::KruppaEq ( const Matrix & Fm ) [inline]

Методы

template<typename T, int N>
value_type Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::build_E | ( | value_type | focus,
 |  | int | hypothesis |
 | ) |  |  | [inline, private]

template<typename T, int N>
value_type Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::find_sing_value_dev ( Matrix & E ) [inline, private]

Портит входную существенную матрицу.

Данные класса

template<typename T, int N>
const Matrix Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::F [private]

Input fundamental matrix.

template<typename T, int N>
Matrix Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::E[6] [private]

Output essential matrix.

template<typename T, int N>
Matrix Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::K1[6] [private]

Output calibration matrix K.

template<typename T, int N>
Matrix Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::K2[6] [private]

Output calibration matrix K'.

Объявления и описания членов класса находятся в файле:
  • sfm_calibration.h


Pipe Line Filters: Класс Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km

Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km

Класс Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km

#include <sfm_calibration.h>

Полный список членов класса

Открытые члены

Km ()
template<int i>
void | build_expression (value_type multiplier, const Vtl::NumAlg::Lin::ublas::matrix_column< Matrix > &v_1, const Vtl::NumAlg::Lin::ublas::matrix_column< Matrix > &v_2)
template<int ratio_1, int ratio_2>
void | build_equation_coef (value_type *coef)
void | print_ab ()
void | to_single_focus (value_type *coef)
void | solve_qe (const value_type *coef, value_type &x1, value_type &x2)

Закрытые члены

void | mul (value_type &a, value_type &b, value_type coef, const Vtl::NumAlg::Lin::ublas::matrix_column< Matrix > v1, const Vtl::NumAlg::Lin::ublas::matrix_column< Matrix > v2)
template<int i_coef, int i_col, int k>
value_type | col () const
template<int k>
value_type | ab_selector (Loki::Int2Type< 0 >) const
template<int k>
value_type | ab_selector (Loki::Int2Type< 1 >) const
template<int ratio_1, int ratio_2, int i_coef>
value_type det ()

Закрытые данные

value_type | a [6]
value_type | b [6]

template<typename T, int N>
class Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km

Конструктор(ы)

template<typename T, int N>
Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km::Km ( ) [inline]

Методы

template<typename T, int N>
template<int i>
void Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km::build_expression | ( | value_type | multiplier,
 |  | const Vtl::NumAlg::Lin::ublas::matrix_column< Matrix > & | v_1,
 |  | const Vtl::NumAlg::Lin::ublas::matrix_column< Matrix > & | v_2 |
 | ) |  |  | [inline]

template<typename T, int N>
template<int ratio_1, int ratio_2>
void Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km::build_equation_coef ( value_type * coef ) [inline]

template<typename T, int N>
void Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km::print_ab ( ) [inline]

template<typename T, int N>
void Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km::to_single_focus ( value_type * coef ) [inline]

template<typename T, int N>
void Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km::solve_qe | ( | const value_type * | coef,
 |  | value_type & | x1,
 |  | value_type & | x2 |
 | ) |  |  | [inline]

template<typename T, int N>
void Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km::mul | ( | value_type & | a,
 |  | value_type & | b,
 |  | value_type | coef,
 |  | const Vtl::NumAlg::Lin::ublas::matrix_column< Matrix > | v1,
 |  | const Vtl::NumAlg::Lin::ublas::matrix_column< Matrix > | v2 |
 | ) |  |  | [inline, private]

template<typename T, int N>
template<int i_coef, int i_col, int k>
value_type Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km::col ( ) const [inline, private]

template<typename T, int N>
template<int k>
value_type Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km::ab_selector ( Loki::Int2Type< 0 > ) const [inline, private]

template<typename T, int N>
template<int k>
value_type Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km::ab_selector ( Loki::Int2Type< 1 > ) const [inline, private]

template<typename T, int N>
template<int ratio_1, int ratio_2, int i_coef>
value_type Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km::det ( ) [inline, private]

Данные класса

template<typename T, int N>
value_type Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km::a[6] [private]

template<typename T, int N>
value_type Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km::b[6] [private]

Объявления и описания членов класса находятся в файле:
  • sfm_calibration.h


Pipe Line Filters: Структура Vtl::ImAlg::C::Lab

Vtl::ImAlg::C::Lab

Структура Vtl::ImAlg::C::Lab

Цветовое пространство L*a*b*. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

enum | { n_components = 3 }
enum | { is_metric = 1 }
enum | { is_system = sys_other }

Открытые статические члены

template<int n>
static const char * | sample_name ()
static std::string | name ()
template<int n, typename T>
static T | sample_min (T MaxColor)
template<int n, typename T>
static T | sample_max (T MaxColor)
template<int n, typename T>
static T | sample_maxabs (T MaxColor)
template<typename T>
static T | sample_max_saturation (T MaxColor)
specific for cromatic-like color systems, =sqrt(c1^2+c2^2)
template<int n>
static bool | is_sample_sign_alternating ()
template<int n>
static bool | is_sample_cyclic_var ()

Классы

class | fromRGB
Функтор для PixByPix3to3. Подробнее...
class | toRGB
Функтор для PixByPix3to3. Подробнее...

Подробное описание

Цветовое пространство L*a*b*.

Перечисления

anonymous enum

Элементы перечислений:
n_components

anonymous enum

Элементы перечислений:
is_metric

anonymous enum

Элементы перечислений:
is_system

Методы

template<int n>
static const char* Vtl::ImAlg::C::Lab::sample_name ( ) [inline, static]

static std::string Vtl::ImAlg::C::Lab::name ( ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::Lab::sample_min ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::Lab::sample_max ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::Lab::sample_maxabs ( T MaxColor ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::Lab::sample_max_saturation ( T MaxColor ) [inline, static]

specific for cromatic-like color systems, =sqrt(c1^2+c2^2)

template<int n>
static bool Vtl::ImAlg::C::Lab::is_sample_sign_alternating ( ) [inline, static]

template<int n>
static bool Vtl::ImAlg::C::Lab::is_sample_cyclic_var ( ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >

Vtl::ImAlg::C::Lab::fromRGB

Шаблон класса Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef Loki::Select< Loki::TypeTraits<
T >::isFloat, T, double
>::Result 		T_temp
typedef Lab | ColorSystem

Открытые члены

fromRGB (NormType normalizer=Normalizer< T, Lab, nDefault >(255, 0, 128))
void | operator() (T r, T g, T b, Iter lc, Iter ac, Iter bc) const

Открытые атрибуты

NormType | norm

Закрытые статические члены

template<typename F>
static F | f (F w)

Закрытые данные

T_temp x0
T_temp y0
T_temp z0

Подробное описание

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
class Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3.

Определения типов

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
typedef Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >::T_temp

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
typedef Lab Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >::fromRGB ( NormType normalizer = Normalizer<T,Lab,nDefault>(255,0,128) ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
template<typename F>
static F Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >::f ( F w ) [inline, static, private]

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Iter | lc,
 |  | Iter | ac,
 |  | Iter | bc |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
NormType Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >::norm

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
T_temp Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >::x0 [private]

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
T_temp Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >::y0 [private]

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
T_temp Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >::z0 [private]

Объявления и описания членов класса находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >

Vtl::ImAlg::C::Lab::toRGB

Шаблон класса Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef Loki::Select< Loki::TypeTraits<
T >::isFloat, T, double
>::Result 		T_temp
typedef Lab | ColorSystem

Открытые члены

toRGB (NormType normalizer=Normalizer< T, Lab, nDefault >(255, 0, 128))
void | operator() (T lc, T ac, T bc, Iter r, Iter g, Iter b) const

Открытые атрибуты

NormType | norm
T_temp x0
T_temp y0
T_temp z0

Закрытые статические члены

template<typename F>
static F | f_rev (F w)

Подробное описание

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
class Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3.

Определения типов

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
typedef Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >::T_temp

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
typedef Lab Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >::toRGB ( NormType normalizer = Normalizer<T,Lab,nDefault>(255,0,128) ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
template<typename F>
static F Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >::f_rev ( F w ) [inline, static, private]

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >::operator() | ( | T | lc,
 |  | T | ac,
 |  | T | bc,
 |  | Iter | r,
 |  | Iter | g,
 |  | Iter | b |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
NormType Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >::norm

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
T_temp Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >::x0

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
T_temp Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >::y0

template<typename T, class NormType = Normalizer<T,Lab,nDefault>, typename Iter = T&>
T_temp Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >::z0

Объявления и описания членов класса находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::WndFun::Laws5< T >

Vtl::ImAlg::WndFun::Laws5

Шаблон структуры Vtl::ImAlg::WndFun::Laws5< T >

Энергетические текстурные характеристики Лавса. Подробнее...

#include <windowing_fun.h>

Полный список членов класса

Открытые статические члены

static const int * | Level ()
static const int * | Edge ()
static const int * | Spot ()
static const int * | Ripple ()

Классы

struct | E5
struct | L5
struct | R5
struct | S5

Подробное описание

template<typename T>
struct Vtl::ImAlg::WndFun::Laws5< T >

Энергетические текстурные характеристики Лавса.
Примеры:

test_plf_kernels.cpp.

Методы

template<typename T>
static const int* Vtl::ImAlg::WndFun::Laws5< T >::Level ( ) [inline, static]

template<typename T>
static const int* Vtl::ImAlg::WndFun::Laws5< T >::Edge ( ) [inline, static]

template<typename T>
static const int* Vtl::ImAlg::WndFun::Laws5< T >::Spot ( ) [inline, static]

template<typename T>
static const int* Vtl::ImAlg::WndFun::Laws5< T >::Ripple ( ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Структура Vtl::ImAlg::WndFun::Laws5< T >::E5

Vtl::ImAlg::WndFun::Laws5::E5

Структура Vtl::ImAlg::WndFun::Laws5< T >::E5

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Laws5< T >::E5:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::Laws5< T >::E5:

[см. легенду]
Полный список членов класса

Открытые члены

E5 ()

Открытые статические члены

static const char * Name ()

template<typename T>
struct Vtl::ImAlg::WndFun::Laws5< T >::E5

Конструктор(ы)

template<typename T>
Vtl::ImAlg::WndFun::Laws5< T >::E5::E5 ( ) [inline]

Методы

template<typename T>
static const char* Vtl::ImAlg::WndFun::Laws5< T >::E5::Name ( ) [inline, static]

Переопределяет метод предка Vtl::ImAlg::WndFun::Direct_Ref< T, int, 1, 1 >.

Объявления и описания членов структуры находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Структура Vtl::ImAlg::WndFun::Laws5< T >::L5

Vtl::ImAlg::WndFun::Laws5::L5

Структура Vtl::ImAlg::WndFun::Laws5< T >::L5

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Laws5< T >::L5:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::Laws5< T >::L5:

[см. легенду]
Полный список членов класса

Открытые члены

L5 ()

Открытые статические члены

static const char * Name ()

template<typename T>
struct Vtl::ImAlg::WndFun::Laws5< T >::L5

Конструктор(ы)

template<typename T>
Vtl::ImAlg::WndFun::Laws5< T >::L5::L5 ( ) [inline]

Методы

template<typename T>
static const char* Vtl::ImAlg::WndFun::Laws5< T >::L5::Name ( ) [inline, static]

Переопределяет метод предка Vtl::ImAlg::WndFun::Direct_Ref< T, int, 0, 0 >.

Объявления и описания членов структуры находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Структура Vtl::ImAlg::WndFun::Laws5< T >::R5

Vtl::ImAlg::WndFun::Laws5::R5

Структура Vtl::ImAlg::WndFun::Laws5< T >::R5

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Laws5< T >::R5:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::Laws5< T >::R5:

[см. легенду]
Полный список членов класса

Открытые члены

R5 ()

Открытые статические члены

static const char * Name ()

template<typename T>
struct Vtl::ImAlg::WndFun::Laws5< T >::R5

Конструктор(ы)

template<typename T>
Vtl::ImAlg::WndFun::Laws5< T >::R5::R5 ( ) [inline]

Методы

template<typename T>
static const char* Vtl::ImAlg::WndFun::Laws5< T >::R5::Name ( ) [inline, static]

Переопределяет метод предка Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 >.

Объявления и описания членов структуры находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Структура Vtl::ImAlg::WndFun::Laws5< T >::S5

Vtl::ImAlg::WndFun::Laws5::S5

Структура Vtl::ImAlg::WndFun::Laws5< T >::S5

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Laws5< T >::S5:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::Laws5< T >::S5:

[см. легенду]
Полный список членов класса

Открытые члены

S5 ()

Открытые статические члены

static const char * Name ()

template<typename T>
struct Vtl::ImAlg::WndFun::Laws5< T >::S5

Конструктор(ы)

template<typename T>
Vtl::ImAlg::WndFun::Laws5< T >::S5::S5 ( ) [inline]

Методы

template<typename T>
static const char* Vtl::ImAlg::WndFun::Laws5< T >::S5::Name ( ) [inline, static]

Переопределяет метод предка Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 >.

Объявления и описания членов структуры находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон структуры Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >

Vtl::Img::Layout

Шаблон структуры Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >

Specialization Compile time known Nbands. Подробнее...

#include <vtl_image_old.h>

Полный список членов класса

Открытые типы

enum | { N = T_Ndim }
enum | { Interleave = (T_Nbands==1)?0:T_Interleave }
enum | { NbandsIsConst = T_Nbands }
enum | { Nbands = T_Nbands }
enum | { stride_0 = (Interleave==0)?Nbands:1 }
enum | { const_band_stride = (Interleave==0 && Nbands>0)?Nbands:0 }
enum | { strides_array_len = (stride_0)?(N-1):N }
целое число, которое при прибавлении к указателю смещает его на 1 пиксель по i размерности (x,y,z,...) в сторону увеличения координат. Подробнее...
typedef T | value_type

Открытые члены

template<int i>
int | Stride () const
template<int i>
int | Stride (Loki::Int2Type< false >, Loki::Int2Type< i >) const
template<int i>
int | Stride (Loki::Int2Type< true >, Loki::Int2Type< i >) const
Layout (offset_type *known_strides)
Layout (const int *sizes, int align_to, int nbands=Nbands)

Открытые статические члены

template<int i>
static int | Stride (Loki::Int2Type< true >, Loki::Int2Type< 0 >)
template<int i>
static bool | StrideIsEnum ()
Compile time constant!

Открытые атрибуты

offset_type | strides [strides_array_len]

Подробное описание

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
struct Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >

Specialization Compile time known Nbands.

Определения типов

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
typedef T Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >::value_type

Перечисления

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
anonymous enum

Элементы перечислений:
N

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
anonymous enum

Элементы перечислений:
Interleave

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
anonymous enum

Элементы перечислений:
NbandsIsConst

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
anonymous enum

Элементы перечислений:
Nbands

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
anonymous enum

Элементы перечислений:
stride_0

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
anonymous enum

Элементы перечислений:
const_band_stride

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
anonymous enum

целое число, которое при прибавлении к указателю смещает его на 1 пиксель по i размерности (x,y,z,...) в сторону увеличения координат.

Элементы перечислений:
strides_array_len

Конструктор(ы)

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >::Layout ( offset_type * known_strides ) [inline]

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >::Layout | ( | const int * | sizes,
 |  | int | align_to,
 |  | int | nbands = Nbands |
 | ) |  |  | [inline]

Методы

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
template<int i>
int Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >::Stride ( ) const [inline]

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
template<int i>
int Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >::Stride | ( | Loki::Int2Type< false > | ,
 |  | Loki::Int2Type< i > |  |
 | ) |  |  | const [inline]

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
template<int i>
static int Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >::Stride | ( | Loki::Int2Type< true > | ,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static]

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
template<int i>
int Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >::Stride | ( | Loki::Int2Type< true > | ,
 |  | Loki::Int2Type< i > |  |
 | ) |  |  | const [inline]

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
template<int i>
static bool Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >::StrideIsEnum ( ) [inline, static]

Compile time constant!

Данные класса

template<typename T, int T_Ndim, int T_Nbands, int T_Interleave>
offset_type Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >::strides[strides_array_len]

Объявления и описания членов структуры находятся в файле:
  • vtl_image_old.h


Pipe Line Filters: Шаблон класса Vtl::Meta::Layout< T, IList >

Vtl::Meta::Layout

Шаблон класса Vtl::Meta::Layout< T, IList >

#include <vtl_meta_SizeList.h>

Граф наследования:Vtl::Meta::Layout< T, IList >:

[см. легенду]
Граф связей класса Vtl::Meta::Layout< T, IList >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { Ndim = IL::Length<IList>::value-2 }
enum | { isGray = IL::Elem<Ndim, value }
typedef T | value_type
typedef SizeList_base< IList > | SList

Открытые члены

Layout ()
template<int i>
int | stride () const
int | stride_band () const
int | Bands () const

Закрытые типы

typedef SList | Base

Друзья

class | LayoutListDefault
template<typename T, class IList>
void | print (std::ostream &os, const Layout< T, IList > &lay)

template<typename T, class IList>
class Vtl::Meta::Layout< T, IList >

Определения типов

template<typename T, class IList>
typedef T Vtl::Meta::Layout< T, IList >::value_type

template<typename T, class IList>
typedef SizeList_base<IList> Vtl::Meta::Layout< T, IList >::SList

template<typename T, class IList>
typedef SList Vtl::Meta::Layout< T, IList >::Base [private]

Перечисления

template<typename T, class IList>
anonymous enum

Элементы перечислений:
Ndim

template<typename T, class IList>
anonymous enum

Элементы перечислений:
isGray
value

Конструктор(ы)

template<typename T, class IList>
Vtl::Meta::Layout< T, IList >::Layout ( ) [inline]

Методы

template<typename T, class IList>
template<int i>
int Vtl::Meta::Layout< T, IList >::stride ( ) const [inline]

template<typename T, class IList>
int Vtl::Meta::Layout< T, IList >::stride_band ( ) const [inline]

template<typename T, class IList>
int Vtl::Meta::Layout< T, IList >::Bands ( ) const [inline]

Документация по друзьям класса и функциям, отноносящимся к классу

template<typename T, class IList>
friend class LayoutListDefault [friend]

template<typename T, class IList>
template<typename T, class IList>
void print | ( | std::ostream & | os,
 |  | const Layout< T, IList > & | lay |
 | ) |  |  | [friend]

Объявления и описания членов класса находятся в файле:
  • vtl_meta_SizeList.h


Pipe Line Filters: Шаблон структуры Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >

Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >

Шаблон структуры Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >

Specialization RunTime known Nbands. Подробнее...

#include <vtl_image_old.h>

Полный список членов класса

Открытые типы

enum | { N = T_Ndim }
enum | { Interleave = T_Interleave }
enum | { NbandsIsConst = 0 }
enum | { stride_0 = (Interleave==0)?0:1 }
enum | { const_band_stride = 0 }
enum | { strides_array_len = (stride_0)?(N-1):N }
целое число, которое при прибавлении к указателю смещает его на 1 пиксель по i размерности (x,y,z,...) в сторону увеличения координат. Подробнее...
typedef T | value_type

Открытые члены

template<int i>
int | Stride () const
template<int i>
int | Stride (Loki::Int2Type< false >, Loki::Int2Type< i >) const
template<int i>
int | Stride (Loki::Int2Type< true >, Loki::Int2Type< i >) const
Layout (int nbands, offset_type *known_strides)
Layout (const int *sizes, int align_to, int nbands)

Открытые статические члены

template<int i>
static int | Stride (Loki::Int2Type< true >, Loki::Int2Type< 0 >)
template<int i>
static bool | StrideIsEnum ()
Compile time constant!

Открытые атрибуты

const int | Nbands
offset_type | strides [strides_array_len]

Подробное описание

template<typename T, int T_Ndim, int T_Interleave>
struct Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >

Specialization RunTime known Nbands.

Определения типов

template<typename T, int T_Ndim, int T_Interleave>
typedef T Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >::value_type

Перечисления

template<typename T, int T_Ndim, int T_Interleave>
anonymous enum

Элементы перечислений:
N

template<typename T, int T_Ndim, int T_Interleave>
anonymous enum

Элементы перечислений:
Interleave

template<typename T, int T_Ndim, int T_Interleave>
anonymous enum

Элементы перечислений:
NbandsIsConst

template<typename T, int T_Ndim, int T_Interleave>
anonymous enum

Элементы перечислений:
stride_0

template<typename T, int T_Ndim, int T_Interleave>
anonymous enum

Элементы перечислений:
const_band_stride

template<typename T, int T_Ndim, int T_Interleave>
anonymous enum

целое число, которое при прибавлении к указателю смещает его на 1 пиксель по i размерности (x,y,z,...) в сторону увеличения координат.

Элементы перечислений:
strides_array_len

Конструктор(ы)

template<typename T, int T_Ndim, int T_Interleave>
Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >::Layout | ( | int | nbands,
 |  | offset_type * | known_strides |
 | ) |  |  | [inline]

template<typename T, int T_Ndim, int T_Interleave>
Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >::Layout | ( | const int * | sizes,
 |  | int | align_to,
 |  | int | nbands |
 | ) |  |  | [inline]

Методы

template<typename T, int T_Ndim, int T_Interleave>
template<int i>
int Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >::Stride ( ) const [inline]

template<typename T, int T_Ndim, int T_Interleave>
template<int i>
int Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >::Stride | ( | Loki::Int2Type< false > | ,
 |  | Loki::Int2Type< i > |  |
 | ) |  |  | const [inline]

template<typename T, int T_Ndim, int T_Interleave>
template<int i>
static int Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >::Stride | ( | Loki::Int2Type< true > | ,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static]

template<typename T, int T_Ndim, int T_Interleave>
template<int i>
int Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >::Stride | ( | Loki::Int2Type< true > | ,
 |  | Loki::Int2Type< i > |  |
 | ) |  |  | const [inline]

template<typename T, int T_Ndim, int T_Interleave>
template<int i>
static bool Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >::StrideIsEnum ( ) [inline, static]

Compile time constant!

Данные класса

template<typename T, int T_Ndim, int T_Interleave>
const int Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >::Nbands

template<typename T, int T_Ndim, int T_Interleave>
offset_type Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >::strides[strides_array_len]

Объявления и описания членов структуры находятся в файле:
  • vtl_image_old.h


Pipe Line Filters: Шаблон класса Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >

Vtl::Meta::LayoutListDefault

Шаблон класса Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >

#include <vtl_meta_SizeList.h>

Граф связей класса Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { strides_size = IL::Length<IList>::value }
enum | { ndim = SZList::size }
typedef BuildDefaultLayout<
T, typename SZList::IList,
NBands, Interleave, Granulation,
align_to >::Result 		IList
typedef Layout< T, IList > | LayoutType

Открытые члены

operator LayoutType () const
LayoutListDefault (SZList sl, int nbands)

Открытые атрибуты

LayoutType strides

Закрытые члены

template<int i>
void | build (const SZList &sl, int nbands, Loki::Int2Type< i >)
void | build (const SZList &sl, int nbands, Loki::Int2Type< 0 >)
void | build (const SZList &sl, int nbands, Loki::Int2Type< strides_size-1 >)

template<typename T, class SZList, int NBands, int Interleave = SZList::size, int Granulation = SZList::size, int align_to = 1>
class Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >

Определения типов

template<typename T, class SZList, int NBands, int Interleave = SZList::size, int Granulation = SZList::size, int align_to = 1>
typedef BuildDefaultLayout<T,typename SZList::IList,NBands,Interleave,Granulation,align_to>::Result Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >::IList

template<typename T, class SZList, int NBands, int Interleave = SZList::size, int Granulation = SZList::size, int align_to = 1>
typedef Layout<T,IList> Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >::LayoutType

Перечисления

template<typename T, class SZList, int NBands, int Interleave = SZList::size, int Granulation = SZList::size, int align_to = 1>
anonymous enum

Элементы перечислений:
strides_size

template<typename T, class SZList, int NBands, int Interleave = SZList::size, int Granulation = SZList::size, int align_to = 1>
anonymous enum

Элементы перечислений:
ndim

Конструктор(ы)

template<typename T, class SZList, int NBands, int Interleave = SZList::size, int Granulation = SZList::size, int align_to = 1>
Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >::LayoutListDefault | ( | SZList | sl,
 |  | int | nbands |
 | ) |  |  | [inline]

Методы

template<typename T, class SZList, int NBands, int Interleave = SZList::size, int Granulation = SZList::size, int align_to = 1>
Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >::operator LayoutType ( ) const [inline]

template<typename T, class SZList, int NBands, int Interleave = SZList::size, int Granulation = SZList::size, int align_to = 1>
template<int i>
void Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >::build | ( | const SZList & | sl,
 |  | int | nbands,
 |  | Loki::Int2Type< i > |  |
 | ) |  |  | [inline, private]

template<typename T, class SZList, int NBands, int Interleave = SZList::size, int Granulation = SZList::size, int align_to = 1>
void Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >::build | ( | const SZList & | sl,
 |  | int | nbands,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, private]

template<typename T, class SZList, int NBands, int Interleave = SZList::size, int Granulation = SZList::size, int align_to = 1>
void Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >::build | ( | const SZList & | sl,
 |  | int | nbands,
 |  | Loki::Int2Type< strides_size-1 > |  |
 | ) |  |  | [inline, private]

Данные класса

template<typename T, class SZList, int NBands, int Interleave = SZList::size, int Granulation = SZList::size, int align_to = 1>
LayoutType Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >::strides

Объявления и описания членов класса находятся в файле:
  • vtl_meta_SizeList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >

Vtl::Meta::LayoutListDirect

Шаблон структуры Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >

#include <vtl_meta_SizeList.h>

Граф связей класса Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { strides_size = IL::Length<IList>::value }
enum | { ndim = SZList::size }
typedef IL::PushBack< NBands,
typename IL::Make< s_0, s_1,
s_2, s_3, s_4, s_5, s_6,
s_7, s_8, s_9, s_10, s_11,
s_12, s_13, s_14, s_15, s_16,
s_17, s_18, s_19 >::Result
>::Result 		IList

Открытые члены

LayoutListDirect (int nbands, int s_0, int s_1=-1, int s_2=-1, int s_3=-1, int s_4=-1, int s_5=-1, int s_6=-1, int s_7=-1, int s_8=-1, int s_9=-1, int s_10=-1, int s_11=-1, int s_12=-1, int s_13=-1, int s_14=-1, int s_15=-1, int s_16=-1, int s_17=-1, int s_18=-1, int s_19=-1)

Открытые атрибуты

SizeList_base< IList > strides

template<int NBands, int s_0, int s_1 = -1, int s_2 = -1, int s_3 = -1, int s_4 = -1, int s_5 = -1, int s_6 = -1, int s_7 = -1, int s_8 = -1, int s_9 = -1, int s_10 = -1, int s_11 = -1, int s_12 = -1, int s_13 = -1, int s_14 = -1, int s_15 = -1, int s_16 = -1, int s_17 = -1, int s_18 = -1, int s_19 = -1>
struct Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >

Определения типов

template<int NBands, int s_0, int s_1 = -1, int s_2 = -1, int s_3 = -1, int s_4 = -1, int s_5 = -1, int s_6 = -1, int s_7 = -1, int s_8 = -1, int s_9 = -1, int s_10 = -1, int s_11 = -1, int s_12 = -1, int s_13 = -1, int s_14 = -1, int s_15 = -1, int s_16 = -1, int s_17 = -1, int s_18 = -1, int s_19 = -1>
typedef IL::PushBack<NBands,typename IL::Make<s_0,s_1,s_2,s_3,s_4,s_5,s_6,s_7,s_8,s_9,s_10,s_11,s_12,s_13,s_14,s_15,s_16,s_17,s_18,s_19>::Result>::Result Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >::IList

Перечисления

template<int NBands, int s_0, int s_1 = -1, int s_2 = -1, int s_3 = -1, int s_4 = -1, int s_5 = -1, int s_6 = -1, int s_7 = -1, int s_8 = -1, int s_9 = -1, int s_10 = -1, int s_11 = -1, int s_12 = -1, int s_13 = -1, int s_14 = -1, int s_15 = -1, int s_16 = -1, int s_17 = -1, int s_18 = -1, int s_19 = -1>
anonymous enum

Элементы перечислений:
strides_size

template<int NBands, int s_0, int s_1 = -1, int s_2 = -1, int s_3 = -1, int s_4 = -1, int s_5 = -1, int s_6 = -1, int s_7 = -1, int s_8 = -1, int s_9 = -1, int s_10 = -1, int s_11 = -1, int s_12 = -1, int s_13 = -1, int s_14 = -1, int s_15 = -1, int s_16 = -1, int s_17 = -1, int s_18 = -1, int s_19 = -1>
anonymous enum

Элементы перечислений:
ndim

Конструктор(ы)

template<int NBands, int s_0, int s_1 = -1, int s_2 = -1, int s_3 = -1, int s_4 = -1, int s_5 = -1, int s_6 = -1, int s_7 = -1, int s_8 = -1, int s_9 = -1, int s_10 = -1, int s_11 = -1, int s_12 = -1, int s_13 = -1, int s_14 = -1, int s_15 = -1, int s_16 = -1, int s_17 = -1, int s_18 = -1, int s_19 = -1>
Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >::LayoutListDirect | ( | int | nbands,
 |  | int | s_0,
 |  | int | s_1 = -1,
 |  | int | s_2 = -1,
 |  | int | s_3 = -1,
 |  | int | s_4 = -1,
 |  | int | s_5 = -1,
 |  | int | s_6 = -1,
 |  | int | s_7 = -1,
 |  | int | s_8 = -1,
 |  | int | s_9 = -1,
 |  | int | s_10 = -1,
 |  | int | s_11 = -1,
 |  | int | s_12 = -1,
 |  | int | s_13 = -1,
 |  | int | s_14 = -1,
 |  | int | s_15 = -1,
 |  | int | s_16 = -1,
 |  | int | s_17 = -1,
 |  | int | s_18 = -1,
 |  | int | s_19 = -1 |
 | ) |  |  | [inline]

Данные класса

template<int NBands, int s_0, int s_1 = -1, int s_2 = -1, int s_3 = -1, int s_4 = -1, int s_5 = -1, int s_6 = -1, int s_7 = -1, int s_8 = -1, int s_9 = -1, int s_10 = -1, int s_11 = -1, int s_12 = -1, int s_13 = -1, int s_14 = -1, int s_15 = -1, int s_16 = -1, int s_17 = -1, int s_18 = -1, int s_19 = -1>
SizeList_base<IList> Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >::strides

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_SizeList.h


Pipe Line Filters: Шаблон структуры Vtl::Types::TL::LE< s1, s2 >

Vtl::Types::TL::LE

Шаблон структуры Vtl::Types::TL::LE< s1, s2 >

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum { value = (s1<=s2) }

template<size_t s1, size_t s2>
struct Vtl::Types::TL::LE< s1, s2 >

Перечисления

template<size_t s1, size_t s2>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Класс Vtl::Types::TL::Length

Vtl::Types::TL::Length

Класс Vtl::Types::TL::Length

Определение длины списка типов. Подробнее...

#include <alexandresku.h>

Подробное описание

Определение длины списка типов.

Шаблона имеет один параметр.

    Vtl::Types::TL::Length<class TList>
Параметром шаблона должен быть список типов Vtl::Types::Typelist или Vtl::Types::NullType . Имееет единственный член - неименовынный enum , имя поля value , где оказывается длина списка типов. Значение доступно уже во время компиляции! Использование в качестве аргумента шаблона иного типа приводит к ошибке времени компиляции - "не найдена специализация..." Например:
    //Какой-то класс
    template<int num> class Test
    {
    public:
        int get() const {return num;}
    };
    //Некоторый список типов
    typedef TYPELIST_3(int,float,char) MyTList;
    //Во время компиляции подсчитать количество типов в
    //списке MyTList, т.е.его длину и инициализовать шаблон
    //класса этим числом
    Test<Vtl::Types::TL::Length<MyTList>::value > temp;
   // инициализировать этим же числом размер массива:
   float a1[Vtl::Types::TL::Length<MyTList>::value];
   int len=sizeof(my_array)/sizeof(my_array[0]);
   std::cout << "Length of array a1 is" << len << std::endl;
   std::cout << "Class initialized by template integer param " << temp.Get() << std::endl;

Объявления и описания членов класса находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Length< IndexList< i, T > >

Vtl::Meta::IL::Length< IndexList< i, T > >

Шаблон структуры Vtl::Meta::IL::Length< IndexList< i, T > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum { value = 1+Length<T>::value }

template<int i, class T>
struct Vtl::Meta::IL::Length< IndexList< i, T > >

Перечисления

template<int i, class T>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Length< Loki::NullType >

Vtl::Meta::IL::Length< Loki::NullType >

Шаблон структуры Vtl::Meta::IL::Length< Loki::NullType >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

enum { value = 0 }

template<>
struct Vtl::Meta::IL::Length< Loki::NullType >

Перечисления

anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Levels< T, P >

Vtl::Plf::Levels

Шаблон класса Vtl::Plf::Levels< T, P >
[Elementary filters]

Преобразование значение пикселя по формуле. Класс реализует преобразование яркости по таблице или формуле пиксел в пиксел. По возможности следует избегать применение этого класса, используя вместо него постобработку выходов фильтров с тем же функтором. Оправданное применение этого класса - это когда выход некоторого вильтра надо подать на входы нескольких разных фильтров, причем на часть из них с постобработкой, а на другие без (или с разными постобработками). Точно также бессмыслено соединение фильров Levels в цепочку - пишите сразу функтор, который делает все преобразования за один раз, если требуется скомбинировать несколько постробработок - а написать общий функтор сложно или лень есть функтор для комбинирования Vtl::Plf::F::Comb . Подробнее...

#include <plf_filters.h>

Граф наследования:Vtl::Plf::Levels< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::Levels< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

Levels ()
Levels (std::string name, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~Levels ()
void | Init (std::string name, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in
OutPort< T, P > | out
int | tmp

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::Levels< T, P >

Преобразование значение пикселя по формуле. Класс реализует преобразование яркости по таблице или формуле пиксел в пиксел. По возможности следует избегать применение этого класса, используя вместо него постобработку выходов фильтров с тем же функтором. Оправданное применение этого класса - это когда выход некоторого вильтра надо подать на входы нескольких разных фильтров, причем на часть из них с постобработкой, а на другие без (или с разными постобработками). Точно также бессмыслено соединение фильров Levels в цепочку - пишите сразу функтор, который делает все преобразования за один раз, если требуется скомбинировать несколько постробработок - а написать общий функтор сложно или лень есть функтор для комбинирования Vtl::Plf::F::Comb .
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Levels< T, P >::Levels ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Levels< T, P >::Levels | ( | std::string | name,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::Levels< T, P >::~Levels ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::Levels< T, P >::Init | ( | std::string | name,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::Levels< T, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::Levels< T, P >::in

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::Levels< T, P >::out

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::Levels< T, P >::tmp

Объявления и описания членов класса находятся в файле:
  • plf_filters.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F11::Lin< T >

Vtl::Plf::F11::Lin

Шаблон класса Vtl::Plf::F11::Lin< T >

functor Lin - преобразует значение каждого пикселя по закону a*x+b. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

Lin ()
Lin (T a, T b)
T | operator() (T val) const

Закрытые данные

T | _a
T | _b

Подробное описание

template<typename T>
class Vtl::Plf::F11::Lin< T >

functor Lin - преобразует значение каждого пикселя по закону a*x+b.

Функтор для FilterLevels и постобработок во всех вильтрах. Каждый выход любого фильтра должен представляться, классом OutPort, его второй шаблонный параметр - функтор, который задает обработку пиксель в пиксель, которая будет проведена после того, как фильтр отработал и записал строку, но до того как будет проведены отражения буфера отнгосительно краев и данные станут доступны следующему фильтру. По возможности следует избегать использовать класс FilterLevels и по возможности пользоваться постобработками из за соображений эффективности. do nothing

Примеры:

test_fast_gauss.cpp.

Конструктор(ы)

template<typename T>
Vtl::Plf::F11::Lin< T >::Lin ( ) [inline]

template<typename T>
Vtl::Plf::F11::Lin< T >::Lin | ( | T | a,
 |  | T | b |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::Plf::F11::Lin< T >::operator() ( T val ) const [inline]

Данные класса

template<typename T>
T Vtl::Plf::F11::Lin< T >::_a [private]

template<typename T>
T Vtl::Plf::F11::Lin< T >::_b [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Bres::Line< F >

Vtl::ImAlg::Bres::Line

Шаблон класса Vtl::ImAlg::Bres::Line< F >

Алгоритм Брезенхэма 'рисования' линии. Написан по мотивам [Wilton] , Listing 6-2 . В отличие от книги не используется операция перестановки концов отрезка (Swap), чтобы движение вдоль линии всегда шло в направлении возрастания координаты, так как при желании рисовать например ломаные пунктирные линии это будет приводить к нарушению шаблона (маски) пунктира. Поэтому обработка различных направлений движения сделана отдельно. Класс реализован так, что он не занимается собственно рисованием, а вызывает для этой цели функтор (параметр шаблона), который умеет выполнять следующие действия:. Подробнее...

#include <alg_bresenham.h>

Полный список членов класса

Открытые члены

Line (F &f)
void | Draw (int dx, int dy)

Закрытые члены

template<int is_vert, int plus_dir, int Increment>
void | move (int stride)
template<int is_vert, int plus_dir, int Increment>
void | bres (int stride)

Закрытые данные

F & | functor
int | d
int | Aincr
int | Bincr

Подробное описание

template<typename F>
class Vtl::ImAlg::Bres::Line< F >

Алгоритм Брезенхэма 'рисования' линии. Написан по мотивам [Wilton] , Listing 6-2 . В отличие от книги не используется операция перестановки концов отрезка (Swap), чтобы движение вдоль линии всегда шло в направлении возрастания координаты, так как при желании рисовать например ломаные пунктирные линии это будет приводить к нарушению шаблона (маски) пунктира. Поэтому обработка различных направлений движения сделана отдельно. Класс реализован так, что он не занимается собственно рисованием, а вызывает для этой цели функтор (параметр шаблона), который умеет выполнять следующие действия:.

  • Изначально предполагается, что все установлено в текущую позицию, например (x1,y1).
  • Алгоритмы Брезенхэма, реализованные здесь вызывают функцию move<,>() функтора передавая через целочисленные шаблонные параметры на сколько надо сдвинуться по x, и по y, допустимые сдвиги {-1,0,+1}.
  • По вызову этой функции функтор должен от текущей позиции выполнить такой сдвиг и нарисовать (или сделать что-то другое) там точку.
Функтор должен иметь следующую структуру:
        template<...> class MyFunctor
        {
        public:
            MyFunctor(...)  {}
            void Set0(int x,int y)
            {
            }
            // !!! x_inc,y_inc могут принимать значения -1, 0, 1 . Алгоритмы
            // Брезенхэма, реализованные здесь \b НИКОГДА не вызывают функтор
            // при других значениях параметров x_inc,y_inc
            template<int x_inc,int y_inc> void move()
            {
            }
        };

В качестве примера функтора см. class SetPixelGray.

Идея алгоритма: Линия идет от пикселя к пикселю, точнее от центра пикселя [image] к центру пикселя [image] . Рассмотрим сначала случай [image] , т.е. прямая ближе к горизонтали, чем к вертикали.

Алгоритм Брезенхэма итерационного формирования прямой

$ x_1 < x_2 $

Примеры:

test_alg_bresenham.cpp.

Конструктор(ы)

template<typename F>
Vtl::ImAlg::Bres::Line< F >::Line ( F & f ) [inline]

Методы

template<typename F>
void Vtl::ImAlg::Bres::Line< F >::Draw | ( | int | dx,
 |  | int | dy |
 | ) |  |  | [inline]

template<typename F>
template<int is_vert, int plus_dir, int Increment>
void Vtl::ImAlg::Bres::Line< F >::move ( int stride ) [inline, private]

template<typename F>
template<int is_vert, int plus_dir, int Increment>
void Vtl::ImAlg::Bres::Line< F >::bres ( int stride ) [inline, private]

Данные класса

template<typename F>
F& Vtl::ImAlg::Bres::Line< F >::functor [private]

template<typename F>
int Vtl::ImAlg::Bres::Line< F >::d [private]

template<typename F>
int Vtl::ImAlg::Bres::Line< F >::Aincr [private]

template<typename F>
int Vtl::ImAlg::Bres::Line< F >::Bincr [private]

Объявления и описания членов класса находятся в файле:
  • alg_bresenham.h


Pipe Line Filters: Класс LineFun

Класс LineFun

#include <ygeometr.h>

Полный список членов класса

Открытые статические члены

static bool | isInLine (const YPointInt &begin, const YPointInt &end, const YPointInt &what, bool strict=false)
static bool | isInLineBres4 (const YPointInt &begin, const YPointInt &end, const YPointInt &p, bool strict=false)
static bool | areIntersecting (const YPointInt &begin1, const YPointInt &end1, const YPointInt &begin2, const YPointInt &end2, bool strict=false)
static bool | areIntersecting (const YPoint< double > &begin1, const YPoint< double > &end1, const YPoint< double > &begin2, const YPoint< double > &end2)
static YPointInt | getIntersectionPoint (const YPointInt &begin1, const YPointInt &end1, const YPointInt &begin2, const YPointInt &end2)
static YPointInt | getIntersectionPointBres4 (const YPointInt &begin1, const YPointInt &end1, const YPointInt &begin2, const YPointInt &end2)
static bool | onSameSide (const YPointInt &from, const YPointInt &to, const YPointInt &p1, const YPointInt &p2)
static int | getIntersectionPointBres4Y (const YPointInt &begin, const YPointInt &end, int X)
static int | getIntersectionPointBres4X (const YPointInt &begin, const YPointInt &end, int Y)

Методы

bool LineFun::isInLine | ( | const YPointInt & | begin,
 |  | const YPointInt & | end,
 |  | const YPointInt & | what,
 |  | bool | strict = false |
 | ) |  |  | [static]

bool LineFun::isInLineBres4 | ( | const YPointInt & | begin,
 |  | const YPointInt & | end,
 |  | const YPointInt & | p,
 |  | bool | strict = false |
 | ) |  |  | [static]

bool LineFun::areIntersecting | ( | const YPointInt & | begin1,
 |  | const YPointInt & | end1,
 |  | const YPointInt & | begin2,
 |  | const YPointInt & | end2,
 |  | bool | strict = false |
 | ) |  |  | [static]

bool LineFun::areIntersecting | ( | const YPoint< double > & | begin1,
 |  | const YPoint< double > & | end1,
 |  | const YPoint< double > & | begin2,
 |  | const YPoint< double > & | end2 |
 | ) |  |  | [static]

YPointInt LineFun::getIntersectionPoint | ( | const YPointInt & | begin1,
 |  | const YPointInt & | end1,
 |  | const YPointInt & | begin2,
 |  | const YPointInt & | end2 |
 | ) |  |  | [static]

YPointInt LineFun::getIntersectionPointBres4 | ( | const YPointInt & | begin1,
 |  | const YPointInt & | end1,
 |  | const YPointInt & | begin2,
 |  | const YPointInt & | end2 |
 | ) |  |  | [static]

bool LineFun::onSameSide | ( | const YPointInt & | from,
 |  | const YPointInt & | to,
 |  | const YPointInt & | p1,
 |  | const YPointInt & | p2 |
 | ) |  |  | [static]

int LineFun::getIntersectionPointBres4Y | ( | const YPointInt & | begin,
 |  | const YPointInt & | end,
 |  | int | X |
 | ) |  |  | [static]

int LineFun::getIntersectionPointBres4X | ( | const YPointInt & | begin,
 |  | const YPointInt & | end,
 |  | int | Y |
 | ) |  |  | [static]

Объявления и описания членов классов находятся в файлах:
  • ygeometr.h
  • ygeometr.cpp


Pipe Line Filters: Шаблон класса Vtl::Plf::LineIterator< T >

Vtl::Plf::LineIterator

Шаблон класса Vtl::Plf::LineIterator< T >
[Iterators and Utilities for Elementary Filters]

Итератор для получения информации из ImageRef. Подробнее...

#include <plf_iterators.h>

Полный список членов класса

Открытые члены

LineIterator (ImageRef< T > &img, bool end=false)
ColumnIteratorFast< T > | operator * () const
LineIterator & operator++ ()
LineIterator & operator-- ()
bool | operator!= (const LineIterator &li) const

Закрытые данные

const T * | ptr
const int | nls

Подробное описание

template<typename T>
class Vtl::Plf::LineIterator< T >

Итератор для получения информации из ImageRef.

class LineIterator

Реализация различных элементарных фильтров может потребовать написания других итераторов, которые нужны для реализации алгоритмов в унифицированном и обобщенном виде. Этот класс реализует итератор по столбцу, возвращая при разименовывании итератор по строке class ColumnIteratorFast.

Конструктор(ы)

template<typename T>
Vtl::Plf::LineIterator< T >::LineIterator | ( | ImageRef< T > & | img,
 |  | bool | end = false |
 | ) |  |  | [inline]

Методы

template<typename T>
ColumnIteratorFast<T> Vtl::Plf::LineIterator< T >::operator * ( ) const [inline]

template<typename T>
LineIterator& Vtl::Plf::LineIterator< T >::operator++ ( ) [inline]

template<typename T>
LineIterator& Vtl::Plf::LineIterator< T >::operator-- ( ) [inline]

template<typename T>
bool Vtl::Plf::LineIterator< T >::operator!= ( const LineIterator< T > & li ) const [inline]

Данные класса

template<typename T>
const T* Vtl::Plf::LineIterator< T >::ptr [private]

template<typename T>
const int Vtl::Plf::LineIterator< T >::nls [private]

Объявления и описания членов класса находятся в файле:
  • plf_iterators.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Resamp::LinGrid< T >

Vtl::ImAlg::Resamp::LinGrid

Шаблон класса Vtl::ImAlg::Resamp::LinGrid< T >

Для диапазона величин value_min , value_max задает РАВНОМЕРНУЮ сетку из N=N_grid_cells узлов. Номеру ячейки 0 соответвтует величина value_min, а номеру (N-1) - величина value_max. Промежуточным ячейкам i сетки соответствуют величины value_min+step*i , где шаг сетки равномерный: step=(value_max-value_min)/(N-1) . Подробнее...

#include <imalg_resampling.h>

Полный список членов класса

Открытые члены

LinGrid (T value_min_, T value_max_, size_t N_grid_cells)
T | value (size_t i) const
size_t | N () const
template<typename I>
T | values_shift (I i_distance=1) const

Закрытые данные

T | value_min
T | value_max
T | step
size_t | n

Подробное описание

template<typename T>
class Vtl::ImAlg::Resamp::LinGrid< T >

Для диапазона величин value_min , value_max задает РАВНОМЕРНУЮ сетку из N=N_grid_cells узлов. Номеру ячейки 0 соответвтует величина value_min, а номеру (N-1) - величина value_max. Промежуточным ячейкам i сетки соответствуют величины value_min+step*i , где шаг сетки равномерный: step=(value_max-value_min)/(N-1) .

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Resamp::LinGrid< T >::LinGrid | ( | T | value_min_,
 |  | T | value_max_,
 |  | size_t | N_grid_cells |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::ImAlg::Resamp::LinGrid< T >::value ( size_t i ) const [inline]

template<typename T>
size_t Vtl::ImAlg::Resamp::LinGrid< T >::N ( ) const [inline]

template<typename T>
template<typename I>
T Vtl::ImAlg::Resamp::LinGrid< T >::values_shift ( I i_distance = 1 ) const [inline]

Данные класса

template<typename T>
T Vtl::ImAlg::Resamp::LinGrid< T >::value_min [private]

template<typename T>
T Vtl::ImAlg::Resamp::LinGrid< T >::value_max [private]

template<typename T>
T Vtl::ImAlg::Resamp::LinGrid< T >::step [private]

template<typename T>
size_t Vtl::ImAlg::Resamp::LinGrid< T >::n [private]

Объявления и описания членов класса находятся в файле:
  • imalg_resampling.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F11::Log< T >

Vtl::Plf::F11::Log

Шаблон класса Vtl::Plf::F11::Log< T >

functor Log - Вычисляет натуральный логарифм и возвращает максимум из полученной величины и порога. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

Log (double threshold_)
template<typename T1>
T | operator() (T1 val)

Закрытые данные

double | threshold

Подробное описание

template<typename T>
class Vtl::Plf::F11::Log< T >

functor Log - Вычисляет натуральный логарифм и возвращает максимум из полученной величины и порога.

Конструктор(ы)

template<typename T>
Vtl::Plf::F11::Log< T >::Log ( double threshold_ ) [inline]

Методы

template<typename T>
template<typename T1>
T Vtl::Plf::F11::Log< T >::operator() ( T1 val ) [inline]

Данные класса

template<typename T>
double Vtl::Plf::F11::Log< T >::threshold [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Resamp::LogGrid< T >

Vtl::ImAlg::Resamp::LogGrid

Шаблон класса Vtl::ImAlg::Resamp::LogGrid< T >

Для диапазона величин value_min , value_max задает ЛОГАРИФМИЧЕСКУЮ сетку из N=N_grid_cells узлов. Номеру ячейки 0 соответвтует величина value_min, а номеру (N-1) - величина value_max. Промежуточным ячейкам i сетки соответствуют величины value_min*exp(step*i) , где логарифмический шаг сетки : step=(log(value_max)-log(value_min))/(N-1) . Подробнее...

#include <imalg_resampling.h>

Граф наследования:Vtl::ImAlg::Resamp::LogGrid< T >:

[см. легенду]
Полный список членов класса

Открытые члены

LogGrid ()
Only for containers and class member initialization, senseless.
LogGrid (T value_min_, T value_max_, size_t N_grid_cells)
T | value (size_t i) const
size_t | N () const
template<typename I>
T | values_ratio (I i_distance=1) const

Закрытые данные

T | value_min
T | value_max
T | log_value_step
size_t | n

Подробное описание

template<typename T>
class Vtl::ImAlg::Resamp::LogGrid< T >

Для диапазона величин value_min , value_max задает ЛОГАРИФМИЧЕСКУЮ сетку из N=N_grid_cells узлов. Номеру ячейки 0 соответвтует величина value_min, а номеру (N-1) - величина value_max. Промежуточным ячейкам i сетки соответствуют величины value_min*exp(step*i) , где логарифмический шаг сетки : step=(log(value_max)-log(value_min))/(N-1) .

log_rho_step*width=log(rho_max)-log(rho_min); log_rho_step=(log(rho_max)-log(rho_min))/width; log_rho_step*i+log(rho_min)=log(rho); rho=exp(log_rho_step*i+log(rho_min))=rho_min*exp(log_rho_step*i);

rho1=rho_min*exp(log_rho_step*i); rho2=rho_min*exp(log_rho_step*(i+1)); alpha=rho2/rho1=exp(log_rho_step) log_rho_step=log(N/(N-1))

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Resamp::LogGrid< T >::LogGrid ( ) [inline]

Only for containers and class member initialization, senseless.

template<typename T>
Vtl::ImAlg::Resamp::LogGrid< T >::LogGrid | ( | T | value_min_,
 |  | T | value_max_,
 |  | size_t | N_grid_cells |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::ImAlg::Resamp::LogGrid< T >::value ( size_t i ) const [inline]

template<typename T>
size_t Vtl::ImAlg::Resamp::LogGrid< T >::N ( ) const [inline]

template<typename T>
template<typename I>
T Vtl::ImAlg::Resamp::LogGrid< T >::values_ratio ( I i_distance = 1 ) const [inline]

Данные класса

template<typename T>
T Vtl::ImAlg::Resamp::LogGrid< T >::value_min [private]

template<typename T>
T Vtl::ImAlg::Resamp::LogGrid< T >::value_max [private]

template<typename T>
T Vtl::ImAlg::Resamp::LogGrid< T >::log_value_step [private]

template<typename T>
size_t Vtl::ImAlg::Resamp::LogGrid< T >::n [private]

Объявления и описания членов класса находятся в файле:
  • imalg_resampling.h


Pipe Line Filters: Шаблон структуры Vtl::Types::TL::LT< s1, s2 >

Vtl::Types::TL::LT

Шаблон структуры Vtl::Types::TL::LT< s1, s2 >

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum { value = (s1<s2) }

template<size_t s1, size_t s2>
struct Vtl::Types::TL::LT< s1, s2 >

Перечисления

template<size_t s1, size_t s2>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >

Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >

Шаблон структуры Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >

Предикат LessThan: Specialization for boost::ublas::c_vector. Подробнее...

#include <_num_implicit.h>

Полный список членов класса

Открытые типы

enum | { N = N_ }
typedef T_ | value_type
typedef Vtl::NumAlg::Lin::ublas::c_vector<
T_, N_ > 		Vector

Открытые члены

lt (const Vector &vec)
bool | operator() (int elem1, int elem2) const

Открытые атрибуты

const Vector & | v

Подробное описание

template<class T_, int N_>
struct Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >

Предикат LessThan: Specialization for boost::ublas::c_vector.

Определения типов

template<class T_, int N_>
typedef T_ Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >::value_type

template<class T_, int N_>
typedef Vtl::NumAlg::Lin::ublas::c_vector<T_,N_> Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >::Vector

Перечисления

template<class T_, int N_>
anonymous enum

Элементы перечислений:
N

Конструктор(ы)

template<class T_, int N_>
Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >::lt ( const Vector & vec ) [inline]

Методы

template<class T_, int N_>
bool Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >::operator() | ( | int | elem1,
 |  | int | elem2 |
 | ) |  |  | const [inline]

Данные класса

template<class T_, int N_>
const Vector& Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >::v

Объявления и описания членов структуры находятся в файле:
  • _num_implicit.h


Pipe Line Filters: Шаблон структуры Hanina::Luv_from_xy_derivatives< T >

Hanina::Luv_from_xy_derivatives

Шаблон структуры Hanina::Luv_from_xy_derivatives< T >

#include <ss_ridge_functors_2.h>

Полный список членов класса

Открытые члены

template<typename T1>
T operator() (T1 Lx, T1 Ly, T1 Lxx, T1 Lxy, T1 Lyy)

Подробное описание

template<typename T>
struct Hanina::Luv_from_xy_derivatives< T >

Вычисляет $ L_{uv}*(L_x^2+L_y^2) $ . Деления на множитель $ (L_x^2+L_y^2) $ не осуществляется во избежание деления на нуль так как назначение функторя - поиск линий, определяемух как точки, где Luv равно нулю, точнее как множества точек, где происходит СМЕНА ЗНАКА Luv.

Методы

template<typename T>
template<typename T1>
T Hanina::Luv_from_xy_derivatives< T >::operator() | ( | T1 | Lx,
 |  | T1 | Ly,
 |  | T1 | Lxx,
 |  | T1 | Lxy,
 |  | T1 | Lyy |
 | ) |  |  | [inline]

Объявления и описания членов структуры находятся в файле:
  • ss_ridge_functors_2.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >

Vtl::Meta::IL::Make

Шаблон структуры Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >

Создать список из указанных индексов (в указанном порядке, без контроля повторов). В ЭТОМ И ТОЛЬКО ЭТОМ АЛГОРИТМЕ -1 считается недопустимым индексом и используется как указатель конца списка. Подробнее...

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

typedef IndexList< i_0, typename
Make< i_1, i_2, i_3, i_4,
i_5, i_6, i_7, i_8, i_9,
i_10, i_11, i_12, i_13, i_14,
i_15, i_16, i_17, i_18, i_19,
-1 >::Result > 		Result

Подробное описание

template<int i_0, int i_1 = -1, int i_2 = -1, int i_3 = -1, int i_4 = -1, int i_5 = -1, int i_6 = -1, int i_7 = -1, int i_8 = -1, int i_9 = -1, int i_10 = -1, int i_11 = -1, int i_12 = -1, int i_13 = -1, int i_14 = -1, int i_15 = -1, int i_16 = -1, int i_17 = -1, int i_18 = -1, int i_19 = -1>
struct Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >

Создать список из указанных индексов (в указанном порядке, без контроля повторов). В ЭТОМ И ТОЛЬКО ЭТОМ АЛГОРИТМЕ -1 считается недопустимым индексом и используется как указатель конца списка.

Определения типов

template<int i_0, int i_1 = -1, int i_2 = -1, int i_3 = -1, int i_4 = -1, int i_5 = -1, int i_6 = -1, int i_7 = -1, int i_8 = -1, int i_9 = -1, int i_10 = -1, int i_11 = -1, int i_12 = -1, int i_13 = -1, int i_14 = -1, int i_15 = -1, int i_16 = -1, int i_17 = -1, int i_18 = -1, int i_19 = -1>
typedef IndexList<i_0,typename Make<i_1,i_2,i_3,i_4,i_5,i_6,i_7,i_8,i_9,i_10,i_11,i_12,i_13,i_14,i_15,i_16,i_17,i_18,i_19,-1>::Result > Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >

Vtl::Meta::IL::Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >

Шаблон структуры Vtl::Meta::IL::Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

typedef Loki::NullType Result

template<>
struct Vtl::Meta::IL::Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >

Определения типов

typedef Loki::NullType Vtl::Meta::IL::Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::MakeInRange< i, n >

Vtl::Meta::IL::MakeInRange

Шаблон структуры Vtl::Meta::IL::MakeInRange< i, n >

Создать список из последовательных индексов i, i+1, i+2, ... n-1. Например MakeInRange<12,15>::Result - это списко чисел 12,13,14. Подробнее...

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

typedef IndexList< i, typename
MakeInRange< i+1, n >::Result > 		Result

Подробное описание

template<int i, int n>
struct Vtl::Meta::IL::MakeInRange< i, n >

Создать список из последовательных индексов i, i+1, i+2, ... n-1. Например MakeInRange<12,15>::Result - это списко чисел 12,13,14.

Определения типов

template<int i, int n>
typedef IndexList<i,typename MakeInRange<i+1,n>::Result > Vtl::Meta::IL::MakeInRange< i, n >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::MakeInRange< n, n >

Vtl::Meta::IL::MakeInRange< n, n >

Шаблон структуры Vtl::Meta::IL::MakeInRange< n, n >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

typedef Loki::NullType Result

template<int n>
struct Vtl::Meta::IL::MakeInRange< n, n >

Определения типов

template<int n>
typedef Loki::NullType Vtl::Meta::IL::MakeInRange< n, n >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >

Vtl::Types::TL::MakeTypelist

Шаблон структуры Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >

#include <alexandresku.h>

Полный список членов класса

Открытые типы

typedef Typelist< T1, TailResult > Result

Закрытые типы

typedef MakeTypelist< T2,
T3, T4, T5, T6, T7, T8, T9,
T10, T11, T12, T13, T14,
T15, T16, T17, T18 >::Result 		TailResult

Подробное описание

template<typename T1 = NullType, typename T2 = NullType, typename T3 = NullType, typename T4 = NullType, typename T5 = NullType, typename T6 = NullType, typename T7 = NullType, typename T8 = NullType, typename T9 = NullType, typename T10 = NullType, typename T11 = NullType, typename T12 = NullType, typename T13 = NullType, typename T14 = NullType, typename T15 = NullType, typename T16 = NullType, typename T17 = NullType, typename T18 = NullType>
struct Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >

class template MakeTypelist Takes a number of arguments equal to its numeric suffix The arguments are type names.
    MakeTypelist<T1, T2, ...>::Result
returns a typelist that is of T1, T2, ...

Определения типов

template<typename T1 = NullType, typename T2 = NullType, typename T3 = NullType, typename T4 = NullType, typename T5 = NullType, typename T6 = NullType, typename T7 = NullType, typename T8 = NullType, typename T9 = NullType, typename T10 = NullType, typename T11 = NullType, typename T12 = NullType, typename T13 = NullType, typename T14 = NullType, typename T15 = NullType, typename T16 = NullType, typename T17 = NullType, typename T18 = NullType>
typedef MakeTypelist< T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Result Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::TailResult [private]

template<typename T1 = NullType, typename T2 = NullType, typename T3 = NullType, typename T4 = NullType, typename T5 = NullType, typename T6 = NullType, typename T7 = NullType, typename T8 = NullType, typename T9 = NullType, typename T10 = NullType, typename T11 = NullType, typename T12 = NullType, typename T13 = NullType, typename T14 = NullType, typename T15 = NullType, typename T16 = NullType, typename T17 = NullType, typename T18 = NullType>
typedef Typelist<T1, TailResult> Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Result

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Types::TL::MakeTypelist<>

Vtl::Types::TL::MakeTypelist<>

Шаблон структуры Vtl::Types::TL::MakeTypelist<>

#include <alexandresku.h>

Полный список членов класса

Открытые типы

typedef NullType Result

template<>
struct Vtl::Types::TL::MakeTypelist<>

Определения типов

typedef NullType Vtl::Types::TL::MakeTypelist<>::Result

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F31::MaxEigenVal< T >

Vtl::Plf::F31::MaxEigenVal

Шаблон класса Vtl::Plf::F31::MaxEigenVal< T >

Функтор MaxEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет максимальное собственное значение (детектор краев DiZenzo): ,
где [image], т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $ , и [image] , [image]. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

MaxEigenVal (T sigma=1.0f)
T | operator() (T v11, T v12, T v22) const

Закрытые данные

T | mult

Подробное описание

template<typename T>
class Vtl::Plf::F31::MaxEigenVal< T >

Функтор MaxEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет максимальное собственное значение (детектор краев DiZenzo): ,
где [image], т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $ , и [image] , [image].
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T>
Vtl::Plf::F31::MaxEigenVal< T >::MaxEigenVal ( T sigma = 1.0f ) [inline]

Методы

template<typename T>
T Vtl::Plf::F31::MaxEigenVal< T >::operator() | ( | T | v11,
 |  | T | v12,
 |  | T | v22 |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
T Vtl::Plf::F31::MaxEigenVal< T >::mult [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Plf::MeanAndDisp< T, P >

Vtl::Plf::MeanAndDisp

Шаблон класса Vtl::Plf::MeanAndDisp< T, P >
[Complex filters]

Вычисляет среднее и дисперсию по окрестности (путем свертки с гауссом). Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::MeanAndDisp< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::MeanAndDisp< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

OutPort< T, P > & | out_mean ()
Производная по X (X-компонента вектора градиента).
OutPort< T, P > & | out_disp ()
Производная по Y (Y-компонента вектора градиента).
MeanAndDisp ()
MeanAndDisp (std::string name, T output_maxval, float sigma=1.0f, float env_sigmas=2.5f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
output_maxval==float((1<<bits)-1)
void | Init (std::string name, T output_maxval, float sigma=1.0f, float env_sigmas=2.5f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
output_maxval==float((1<<bits)-1)
virtual | ~MeanAndDisp ()

Открытые атрибуты

InPortComb< T > | in

Закрытые типы

typedef Vtl::ImAlg::WndFun::Gauss<
T, 0 > 		G0

Закрытые члены

MeanAndDisp (const MeanAndDisp &)
MeanAndDisp & | operator= (const MeanAndDisp &)

Закрытые данные

Vtl::Plf::Levels< T, Vtl::Plf::F11::Sqr<
T > > 		sqr
Vtl::Plf::Kernel::FKern< T > | gauss
Vtl::Plf::Average< T > | mean
Vtl::Plf::Average< T > | sqr_mean
Vtl::Plf::PixByPix2to1< T,
Vtl::Plf::F21::Disp< T > > 		disp

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::MeanAndDisp< T, P >

Вычисляет среднее и дисперсию по окрестности (путем свертки с гауссом).

Структура фильтра MeanAndDisp вычисления среднего и дисперсии по гауссовой окрестности

Результат воздействия на изображение

этим фильтром среднее:
стандартное отклонение (корень из дисперсии):
Примеры:

test_plf_filters.cpp.

Определения типов

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
typedef Vtl::ImAlg::WndFun::Gauss<T,0> Vtl::Plf::MeanAndDisp< T, P >::G0 [private]

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::MeanAndDisp< T, P >::MeanAndDisp ( const MeanAndDisp< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::MeanAndDisp< T, P >::MeanAndDisp ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::MeanAndDisp< T, P >::MeanAndDisp | ( | std::string | name,
 |  | T | output_maxval,
 |  | float | sigma = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

output_maxval==float((1<<bits)-1)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::MeanAndDisp< T, P >::~MeanAndDisp ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
MeanAndDisp& Vtl::Plf::MeanAndDisp< T, P >::operator= ( const MeanAndDisp< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::MeanAndDisp< T, P >::out_mean ( ) [inline]

Производная по X (X-компонента вектора градиента).

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::MeanAndDisp< T, P >::out_disp ( ) [inline]

Производная по Y (Y-компонента вектора градиента).

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::MeanAndDisp< T, P >::Init | ( | std::string | name,
 |  | T | output_maxval,
 |  | float | sigma = 1.0f,
 |  | float | env_sigmas = 2.5f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

output_maxval==float((1<<bits)-1)

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Levels<T,Vtl::Plf::F11::Sqr<T> > Vtl::Plf::MeanAndDisp< T, P >::sqr [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Kernel::FKern<T> Vtl::Plf::MeanAndDisp< T, P >::gauss [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Average<T> Vtl::Plf::MeanAndDisp< T, P >::mean [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Average<T> Vtl::Plf::MeanAndDisp< T, P >::sqr_mean [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix2to1<T,Vtl::Plf::F21::Disp<T> > Vtl::Plf::MeanAndDisp< T, P >::disp [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPortComb<T> Vtl::Plf::MeanAndDisp< T, P >::in

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::Plf::OLSI::mediana< T >

Vtl::Plf::OLSI::mediana

Шаблон класса Vtl::Plf::OLSI::mediana< T >

Служит для хранение значение медианы в гистограмме. Подробнее...

#include <plf_gistogram.h>

Полный список членов класса

Открытые члены

void | set_m (T _I, int _n)
mediana (T I, int n)
mediana ()

Открытые атрибуты

T | I
int | n

Подробное описание

template<typename T>
class Vtl::Plf::OLSI::mediana< T >

Служит для хранение значение медианы в гистограмме.

Автор - Сидоркина О.

Класс служит для I-яркость, n-номер пикселя яркости I, на котором достигается медиана

Конструктор(ы)

template<typename T>
Vtl::Plf::OLSI::mediana< T >::mediana | ( | T | I,
 |  | int | n |
 | ) |  |  | [inline]

template<typename T>
Vtl::Plf::OLSI::mediana< T >::mediana ( ) [inline]

Методы

template<typename T>
void Vtl::Plf::OLSI::mediana< T >::set_m | ( | T | _I,
 |  | int | _n |
 | ) |  |  | [inline]

Данные класса

template<typename T>
T Vtl::Plf::OLSI::mediana< T >::I

template<typename T>
int Vtl::Plf::OLSI::mediana< T >::n

Объявления и описания членов класса находятся в файле:
  • plf_gistogram.h


Pipe Line Filters: Шаблон класса Vtl::Plf::medianFilter< T, P >

Vtl::Plf::medianFilter

Шаблон класса Vtl::Plf::medianFilter< T, P >

Медианная фильтрация изображения. Подробнее...

#include <plt_filter_image.h>

Граф наследования:Vtl::Plf::medianFilter< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::medianFilter< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

medianFilter ()
medianFilter (int rr, int bits, std::string name, P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (int rr, int bits, std::string name, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual void | set_OutPortsImagesSizeAndInPortsExtents ()
virtual | ~medianFilter ()
virtual void | processLine ()

Открытые атрибуты

Vtl::Plf::OLSI::Gistogramm<
T > 		gistogr
InPort< T > | in
OutPort< T, P > | out
int | r
int | _bits

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::medianFilter< T, P >

Медианная фильтрация изображения.

Автор - Сидоркина О.

Описание алгоритма: .................

Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::medianFilter< T, P >::medianFilter ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::medianFilter< T, P >::medianFilter | ( | int | rr,
 |  | int | bits,
 |  | std::string | name,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::medianFilter< T, P >::~medianFilter ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::medianFilter< T, P >::Init | ( | int | rr,
 |  | int | bits,
 |  | std::string | name,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::medianFilter< T, P >::set_OutPortsImagesSizeAndInPortsExtents ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::FilterElementary.

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::medianFilter< T, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::OLSI::Gistogramm<T> Vtl::Plf::medianFilter< T, P >::gistogr

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::medianFilter< T, P >::in

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::medianFilter< T, P >::out

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::medianFilter< T, P >::r

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::medianFilter< T, P >::_bits

Объявления и описания членов класса находятся в файле:
  • plt_filter_image.h


Pipe Line Filters: Шаблон класса Vtl::Plf::medianFilter2< T, P >

Vtl::Plf::medianFilter2

Шаблон класса Vtl::Plf::medianFilter2< T, P >

Быстрая медианная фильтрация изображения, основанная на построении частичных гистограмм. Подробнее...

#include <plt_filter_image.h>

Граф наследования:Vtl::Plf::medianFilter2< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::medianFilter2< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

medianFilter2 ()
medianFilter2 (int rr, int bits, std::string name, P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (int rr, int bits, std::string name, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual void | set_OutPortsImagesSizeAndInPortsExtents ()
virtual | ~medianFilter2 ()
virtual void | processLine ()

Открытые атрибуты

Vtl::Plf::OLSI::Gistogramm2<
T > 		gistogr
InPort< T > | in
OutPort< T, P > | out
int | r
int | _bits

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::medianFilter2< T, P >

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

Автор - Сидоркина О.

Описание алгоритма: .................

Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::medianFilter2< T, P >::medianFilter2 ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::medianFilter2< T, P >::medianFilter2 | ( | int | rr,
 |  | int | bits,
 |  | std::string | name,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::medianFilter2< T, P >::~medianFilter2 ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::medianFilter2< T, P >::Init | ( | int | rr,
 |  | int | bits,
 |  | std::string | name,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::medianFilter2< T, P >::set_OutPortsImagesSizeAndInPortsExtents ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::FilterElementary.

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::medianFilter2< T, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::OLSI::Gistogramm2<T> Vtl::Plf::medianFilter2< T, P >::gistogr

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::medianFilter2< T, P >::in

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::medianFilter2< T, P >::out

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::medianFilter2< T, P >::r

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::medianFilter2< T, P >::_bits

Объявления и описания членов класса находятся в файле:
  • plt_filter_image.h


Pipe Line Filters: Класс Vtl::ImAlg::Edt::Meijster

Vtl::ImAlg::Edt::Meijster

Класс Vtl::ImAlg::Edt::Meijster

#include <edt_meijster_2000.h>

Полный список членов класса

Открытые статические члены

template<typename T1, typename T2, class Functor>
static void | edt (T1 *src, int w, int h, int nls_s, T2 *res, int nls_d, Functor isEdgeFunc)

Закрытые статические члены

template<typename T2>
static void | edt1D (T2 *dist, int N, T2 MaxValue)

Подробное описание

A general algorithm for computing distance transforms in linear time. In Proceedings of the 5th International Conference on Mathematical Morphology and its Applications to Image and Signal Processing.

Методы

template<typename T1, typename T2, class Functor>
static void Vtl::ImAlg::Edt::Meijster::edt | ( | T1 * | src,
 |  | int | w,
 |  | int | h,
 |  | int | nls_s,
 |  | T2 * | res,
 |  | int | nls_d,
 |  | Functor | isEdgeFunc |
 | ) |  |  | [inline, static]

template<typename T2>
static void Vtl::ImAlg::Edt::Meijster::edt1D | ( | T2 * | dist,
 |  | int | N,
 |  | T2 | MaxValue |
 | ) |  |  | [inline, static, private]

Объявления и описания членов класса находятся в файле:
  • edt_meijster_2000.h


Pipe Line Filters: Класс MImages2Gray

Класс MImages2Gray

#include <imgtools.h>

Граф связей класса MImages2Gray:

[см. легенду]
Полный список членов класса

Открытые члены

MImages2Gray (AImage **src, int Number)
virtual | ~MImages2Gray ()
int | GetNumber () const
AImage ** GetLayers ()

Защищенные данные

AImagePtr * Layers
int | n_out

Конструктор(ы)

MImages2Gray::MImages2Gray | ( | AImage ** | src,
 |  | int | Number
 | ) |  |

MImages2Gray::~MImages2Gray ( ) [virtual]

Методы

int MImages2Gray::GetNumber ( ) const [inline]

AImage** MImages2Gray::GetLayers ( ) [inline]

Данные класса

AImagePtr* MImages2Gray::Layers [protected]

int MImages2Gray::n_out [protected]

Объявления и описания членов классов находятся в файлах:
  • imgtools.h
  • imgtools.cpp


Pipe Line Filters: Шаблон класса Vtl::Plf::F31::MinEigenVal< T >

Vtl::Plf::F31::MinEigenVal

Шаблон класса Vtl::Plf::F31::MinEigenVal< T >

Функтор MinEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет минимальное собственное значение (детектор уголков Канаде-Лукаса): ,
где [image], т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $, и [image] , [image]. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

MinEigenVal (T sigma=1.0f)
T | operator() (T v11, T v12, T v22) const

Закрытые данные

T | mult

Подробное описание

template<typename T>
class Vtl::Plf::F31::MinEigenVal< T >

Функтор MinEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет минимальное собственное значение (детектор уголков Канаде-Лукаса): ,
где [image], т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $, и [image] , [image].
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T>
Vtl::Plf::F31::MinEigenVal< T >::MinEigenVal ( T sigma = 1.0f ) [inline]

Методы

template<typename T>
T Vtl::Plf::F31::MinEigenVal< T >::operator() | ( | T | v11,
 |  | T | v12,
 |  | T | v22 |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
T Vtl::Plf::F31::MinEigenVal< T >::mult [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Класс MSlidingEqualization

Класс MSlidingEqualization

#include <mslieqlz.h>

Граф связей класса MSlidingEqualization:

[см. легенду]
Полный список членов класса

Открытые члены

MSlidingEqualization ()
virtual | ~MSlidingEqualization ()
virtual void | Init (const AImage *src)
virtual bool | Run (AImage *dst, int Original_XFrmSz, int Original_YFrmSz, ProgressCounter *Ind)
virtual void | Close ()
virtual int | Height ()
virtual int | Width ()
virtual int | Bits ()
virtual AImage::YImageClass | ImageClass ()

Закрытые члены

void | CloseThis ()

Закрытые данные

long * | hist
const AImage * | src_image
int | N_colors
int | Hi
int | Wd
int | Bt
AImage::YImageClass ClassType

Конструктор(ы)

MSlidingEqualization::MSlidingEqualization ( )

virtual MSlidingEqualization::~MSlidingEqualization ( ) [inline, virtual]

Методы

void MSlidingEqualization::CloseThis ( ) [private]

void MSlidingEqualization::Init ( const AImage * src ) [virtual]

bool MSlidingEqualization::Run | ( | AImage * | dst,
 |  | int | Original_XFrmSz,
 |  | int | Original_YFrmSz,
 |  | ProgressCounter * | Ind |
 | ) |  |  | [virtual]

virtual void MSlidingEqualization::Close ( ) [inline, virtual]

virtual int MSlidingEqualization::Height ( ) [inline, virtual]

virtual int MSlidingEqualization::Width ( void ) [inline, virtual]

virtual int MSlidingEqualization::Bits ( void ) [inline, virtual]

virtual AImage::YImageClass MSlidingEqualization::ImageClass ( ) [inline, virtual]

Данные класса

long* MSlidingEqualization::hist [private]

const AImage* MSlidingEqualization::src_image [private]

int MSlidingEqualization::N_colors [private]

int MSlidingEqualization::Hi [private]

int MSlidingEqualization::Wd [private]

int MSlidingEqualization::Bt [private]

AImage::YImageClass MSlidingEqualization::ClassType [private]

Объявления и описания членов классов находятся в файлах:
  • mslieqlz.h
  • mslieqlz.cpp


Pipe Line Filters: Шаблон класса Vtl::Plf::F11::Mult< T >

Vtl::Plf::F11::Mult

Шаблон класса Vtl::Plf::F11::Mult< T >

functor Mult - умножавет значение каждого пикселя на константу. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

Mult ()
Mult (T mult_each_pixel)
T | operator() (T val) const

Закрытые данные

T | mult

Подробное описание

template<typename T>
class Vtl::Plf::F11::Mult< T >

functor Mult - умножавет значение каждого пикселя на константу.

Функтор для FilterLevels и постобработок во всех вильтрах. Каждый выход любого фильтра должен представляться, классом OutPort, его второй шаблонный параметр - функтор, который задает обработку пиксель в пиксель, которая будет проведена после того, как фильтр отработал и записал строку, но до того как будет проведены отражения буфера отнгосительно краев и данные станут доступны следующему фильтру. По возможности следует избегать использовать класс FilterLevels и по возможности пользоваться постобработками из за соображений эффективности. do nothing

Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T>
Vtl::Plf::F11::Mult< T >::Mult ( ) [inline]

template<typename T>
Vtl::Plf::F11::Mult< T >::Mult ( T mult_each_pixel ) [inline]

Методы

template<typename T>
T Vtl::Plf::F11::Mult< T >::operator() ( T val ) const [inline]

Данные класса

template<typename T>
T Vtl::Plf::F11::Mult< T >::mult [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон структуры Vtl::Types::TL::NE< s1, s2 >

Vtl::Types::TL::NE

Шаблон структуры Vtl::Types::TL::NE< s1, s2 >

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum { value = (s1!=s2) }

template<size_t s1, size_t s2>
struct Vtl::Types::TL::NE< s1, s2 >

Перечисления

template<size_t s1, size_t s2>
anonymous enum

Элементы перечислений:
value

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F11::Negative< T >

Vtl::Plf::F11::Negative

Шаблон класса Vtl::Plf::F11::Negative< T >

functor Negative - делает негатив изображения, считается что яркость изображения меняется от 0 до maxval, последнюю величина нада задать. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

Negative ()
Negative (T max_val)
T | operator() (T val) const

Закрытые данные

T | maxval

Подробное описание

template<typename T>
class Vtl::Plf::F11::Negative< T >

functor Negative - делает негатив изображения, считается что яркость изображения меняется от 0 до maxval, последнюю величина нада задать.

Функтор для FilterLevels и постобработок во всех вильтрах. Каждый выход любого фильтра должен представляться, классом OutPort, его второй шаблонный параметр - функтор, который задает обработку пиксель в пиксель, которая будет проведена после того, как фильтр отработал и записал строку, но до того как будет проведены отражения буфера отнгосительно краев и данные станут доступны следующему фильтру. По возможности следует избегать использовать класс FilterLevels и по возможности пользоваться постобработками из за соображений эффективности. do nothing

Конструктор(ы)

template<typename T>
Vtl::Plf::F11::Negative< T >::Negative ( ) [inline]

template<typename T>
Vtl::Plf::F11::Negative< T >::Negative ( T max_val ) [inline]

Методы

template<typename T>
T Vtl::Plf::F11::Negative< T >::operator() ( T val ) const [inline]

Данные класса

template<typename T>
T Vtl::Plf::F11::Negative< T >::maxval [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Структура Vtl::Plf::Impl::Node

Vtl::Plf::Impl::Node

Структура Vtl::Plf::Impl::Node

Узел графа, используется в классах FiltersSystem и GraphBuilder. Подробнее...

#include <plf_sys.h>

Граф связей класса Vtl::Plf::Impl::Node:

[см. легенду]
Полный список членов класса

Открытые типы

enum | Role { Source, Target, Transformer }

Открытые члены

Node ()
Node (FilterElementary *filter, int id)
void | buildAdj (const std::vector< Node > &graph, std::vector< Edge > &edges)

Открытые атрибуты

Vtl::Plf::FilterElementary * fil
int | id
int | n_in
int | n_out
int | n_oto
Role role
int | rank
std::list< int > | Adj
Список идентификаторов (из списка edges) всех ребер (OutPortNoPostProc->InPort) исходящих из этого фильтра.
std::list< int > | AdjPrev
Список идентификаторов (из списка edges) всех ребер, подключенных к входам этого фильтра.
std::list< int > | Adj_Next
Фильры, подключенные к выходам этого, без кратных ребер.
std::list< int > | Adj_Prev
Фильры, подключенные к входам этого, без кратных ребер.
std::vector< int > | extra_delay
Индекс - номер вых.порта, значение - доп. задержка.

Подробное описание

Узел графа, используется в классах FiltersSystem и GraphBuilder.

Перечисления

enum Vtl::Plf::Impl::Node::Role

Элементы перечислений:
Source
Target
Transformer

Конструктор(ы)

Vtl::Plf::Impl::Node::Node ( ) [inline]

Vtl::Plf::Impl::Node::Node | ( | FilterElementary * | filter,
 |  | int | id |
 | ) |  |  | [inline]

Методы

void Vtl::Plf::Impl::Node::buildAdj | ( | const std::vector< Node > & | graph,
 |  | std::vector< Edge > & | edges |
 | ) |  |  | [inline]

Данные класса

Vtl::Plf::FilterElementary* Vtl::Plf::Impl::Node::fil

int Vtl::Plf::Impl::Node::id

int Vtl::Plf::Impl::Node::n_in

int Vtl::Plf::Impl::Node::n_out

int Vtl::Plf::Impl::Node::n_oto

Role Vtl::Plf::Impl::Node::role

int Vtl::Plf::Impl::Node::rank

std::list<int> Vtl::Plf::Impl::Node::Adj

Список идентификаторов (из списка edges) всех ребер (OutPortNoPostProc->InPort) исходящих из этого фильтра.

std::list<int> Vtl::Plf::Impl::Node::AdjPrev

Список идентификаторов (из списка edges) всех ребер, подключенных к входам этого фильтра.

std::list<int> Vtl::Plf::Impl::Node::Adj_Next

Фильры, подключенные к выходам этого, без кратных ребер.

std::list<int> Vtl::Plf::Impl::Node::Adj_Prev

Фильры, подключенные к входам этого, без кратных ребер.

std::vector<int> Vtl::Plf::Impl::Node::extra_delay

Индекс - номер вых.порта, значение - доп. задержка.

Объявления и описания членов структуры находятся в файле:
  • plf_sys.h


Pipe Line Filters: Класс Vtl::Types::TL::NoDuplicates

Vtl::Types::TL::NoDuplicates

Класс Vtl::Types::TL::NoDuplicates

Удаление дубликатов вхождений элементов в список типов. Подробнее...

#include <alexandresku.h>

Подробное описание

Удаление дубликатов вхождений элементов в список типов.

Шаблона имеет один параметр.

    Vtl::Types::TL::NoDuplicates<class TList>
Например:

Объявления и описания членов класса находятся в файле:

  • alexandresku.h

 Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008
Author: Dmitry V. Yurin
  [image]
 http://imaging.cs.msu.su/index.html


Pipe Line Filters: Шаблон класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >

Шаблон класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef Loki::Select< Loki::TypeTraits<
T >::isFloat, T, double
>::Result 		T_temp

Открытые члены

Normalizer (T MaxColor=T(255), T MinColor=0, T ZeroColor=T(128))
template<typename TT>
void | RGBto01 (T r, T g, T b, TT &r01, TT &g01, TT &b01) const
template<typename TT>
void | from01toRGB (TT r01, TT g01, TT b01, T &r, T &g, T &b) const
template<int n>
T | fromRGB (T sample_unnorm) const
returns sample_normalized from sample_unnormalized, dual to toRGB()
template<int n>
T | toRGB (T rgb_unnorm) const
returns rgb_normalized from rgb_unnormalized, dual to fromRGB()
template<int n, typename MultiplierType>
MultiplierType | Offset () const
template<int n, typename MultiplierType>
MultiplierType | Mult () const

Открытые атрибуты

const T | maxcolor
const T | mincolor
const T_temp | mult01

template<typename T, class ColorSystem>
class Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >

Определения типов

template<typename T, class ColorSystem>
typedef Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >::T_temp

Конструктор(ы)

template<typename T, class ColorSystem>
Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >::Normalizer | ( | T | MaxColor = T(255),
 |  | T | MinColor = 0,
 |  | T | ZeroColor = T(128) |
 | ) |  |  | [inline]

Методы

template<typename T, class ColorSystem>
template<typename TT>
void Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >::RGBto01 | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | TT & | r01,
 |  | TT & | g01,
 |  | TT & | b01 |
 | ) |  |  | const [inline]

template<typename T, class ColorSystem>
template<typename TT>
void Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >::from01toRGB | ( | TT | r01,
 |  | TT | g01,
 |  | TT | b01,
 |  | T & | r,
 |  | T & | g,
 |  | T & | b |
 | ) |  |  | const [inline]

template<typename T, class ColorSystem>
template<int n>
T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >::fromRGB ( T sample_unnorm ) const [inline]

returns sample_normalized from sample_unnormalized, dual to toRGB()

template<typename T, class ColorSystem>
template<int n>
T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >::toRGB ( T rgb_unnorm ) const [inline]

returns rgb_normalized from rgb_unnormalized, dual to fromRGB()

template<typename T, class ColorSystem>
template<int n, typename MultiplierType>
MultiplierType Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >::Offset ( ) const [inline]

template<typename T, class ColorSystem>
template<int n, typename MultiplierType>
MultiplierType Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >::Mult ( ) const [inline]

Данные класса

template<typename T, class ColorSystem>
const T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >::maxcolor

template<typename T, class ColorSystem>
const T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >::mincolor

template<typename T, class ColorSystem>
const T_temp Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >::mult01

Объявления и описания членов класса находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >

Шаблон класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >

#include <color_spaces.h>

Полный список членов класса

Открытые члены

Normalizer (T MaxColor=T(255), T MinColor=0, T ZeroColor=T(128))
template<typename TT>
void | RGBto01 (T r, T g, T b, TT &r01, TT &g01, TT &b01)
template<typename TT>
void | from01toRGB (TT r01, TT g01, TT b01, T &r, T &g, T &b)
template<int n>
T | fromRGB (T sample_unnorm)
returns sample_normalized from sample_unnormalized, dual to toRGB()
template<int n>
T | toRGB (T rgb_unnorm)
returns rgb_normalized from rgb_unnormalized, dual to fromRGB()
template<int n>
double | Offset (T MaxColor, T MinColor)

Закрытые типы

typedef Loki::Select< Loki::TypeTraits<
T >::isFloat, T, double
>::Result 		T_temp

Закрытые данные

const T | maxcolor
const T | mincolor
const T_temp | mult01
T_temp a
T_temp | b [ColorSystem::n_components]

template<typename T, class ColorSystem>
class Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >

Определения типов

template<typename T, class ColorSystem>
typedef Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >::T_temp [private]

Конструктор(ы)

template<typename T, class ColorSystem>
Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >::Normalizer | ( | T | MaxColor = T(255),
 |  | T | MinColor = 0,
 |  | T | ZeroColor = T(128) |
 | ) |  |  | [inline]

Методы

template<typename T, class ColorSystem>
template<typename TT>
void Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >::RGBto01 | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | TT & | r01,
 |  | TT & | g01,
 |  | TT & | b01 |
 | ) |  |  | [inline]

template<typename T, class ColorSystem>
template<typename TT>
void Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >::from01toRGB | ( | TT | r01,
 |  | TT | g01,
 |  | TT | b01,
 |  | T & | r,
 |  | T & | g,
 |  | T & | b |
 | ) |  |  | [inline]

template<typename T, class ColorSystem>
template<int n>
T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >::fromRGB ( T sample_unnorm ) [inline]

returns sample_normalized from sample_unnormalized, dual to toRGB()

template<typename T, class ColorSystem>
template<int n>
T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >::toRGB ( T rgb_unnorm ) [inline]

returns rgb_normalized from rgb_unnormalized, dual to fromRGB()

template<typename T, class ColorSystem>
template<int n>
double Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >::Offset | ( | T | MaxColor,
 |  | T | MinColor |
 | ) |  |  | [inline]

Данные класса

template<typename T, class ColorSystem>
const T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >::maxcolor [private]

template<typename T, class ColorSystem>
const T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >::mincolor [private]

template<typename T, class ColorSystem>
const T_temp Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >::mult01 [private]

template<typename T, class ColorSystem>
T_temp Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >::a [private]

template<typename T, class ColorSystem>
T_temp Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >::b[ColorSystem::n_components] [private]

Объявления и описания членов класса находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >

Шаблон класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >

#include <color_spaces.h>

Полный список членов класса

Открытые члены

Normalizer (T MaxColor=T(255), T MinColor=0, T ZeroColor=T(128))
template<typename TT>
void | RGBto01 (T r, T g, T b, TT &r01, TT &g01, TT &b01)
template<typename TT>
void | from01toRGB (TT r01, TT g01, TT b01, T &r, T &g, T &b)
template<int n>
T | fromRGB (T sample_unnorm) const
returns sample_normalized from sample_unnormalized, dual to toRGB()
template<int n>
T | toRGB (T rgb_unnorm) const
returns rgb_normalized from rgb_unnormalized, dual to fromRGB()
template<int n, typename MultiplierType>
MultiplierType | Offset () const
template<int n, typename MultiplierType>
MultiplierType | Mult () const

Закрытые типы

typedef Loki::Select< Loki::TypeTraits<
T >::isFloat, T, double
>::Result 		T_temp

Закрытые данные

const T | maxcolor
const T | mincolor
const T_temp | mult01
T_temp a
T_temp | b [ColorSystem::n_components]

Классы

struct | Cof
struct | Cof< 0, TT >
struct | Ofs
struct | Ofs< 0, TT >

template<typename T, class ColorSystem>
class Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >

Определения типов

template<typename T, class ColorSystem>
typedef Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::T_temp [private]

Конструктор(ы)

template<typename T, class ColorSystem>
Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Normalizer | ( | T | MaxColor = T(255),
 |  | T | MinColor = 0,
 |  | T | ZeroColor = T(128) |
 | ) |  |  | [inline]

Методы

template<typename T, class ColorSystem>
template<typename TT>
void Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::RGBto01 | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | TT & | r01,
 |  | TT & | g01,
 |  | TT & | b01 |
 | ) |  |  | [inline]

template<typename T, class ColorSystem>
template<typename TT>
void Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::from01toRGB | ( | TT | r01,
 |  | TT | g01,
 |  | TT | b01,
 |  | T & | r,
 |  | T & | g,
 |  | T & | b |
 | ) |  |  | [inline]

template<typename T, class ColorSystem>
template<int n>
T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::fromRGB ( T sample_unnorm ) const [inline]

returns sample_normalized from sample_unnormalized, dual to toRGB()

template<typename T, class ColorSystem>
template<int n>
T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::toRGB ( T rgb_unnorm ) const [inline]

returns rgb_normalized from rgb_unnormalized, dual to fromRGB()

template<typename T, class ColorSystem>
template<int n, typename MultiplierType>
MultiplierType Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Offset ( ) const [inline]

template<typename T, class ColorSystem>
template<int n, typename MultiplierType>
MultiplierType Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Mult ( ) const [inline]

Данные класса

template<typename T, class ColorSystem>
const T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::maxcolor [private]

template<typename T, class ColorSystem>
const T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::mincolor [private]

template<typename T, class ColorSystem>
const T_temp Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::mult01 [private]

template<typename T, class ColorSystem>
T_temp Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::a [private]

template<typename T, class ColorSystem>
T_temp Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::b[ColorSystem::n_components] [private]

Объявления и описания членов класса находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< n, TT >

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof

Шаблон структуры Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< n, TT >

Полный список членов класса

Открытые статические члены

template<typename T1>
static void build (TT &a, T1 MaxColor)

template<typename T, class ColorSystem>
template<int n, typename TT>
struct Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< n, TT >

Методы

template<typename T, class ColorSystem>
template<int n, typename TT>
template<typename T1>
static void Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< n, TT >::build | ( | TT & | a,
 |  | T1 | MaxColor |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< 0, TT >

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< 0, TT >

Шаблон структуры Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< 0, TT >

Полный список членов класса

Открытые статические члены

static void build (TT &a)

template<typename T, class ColorSystem>
template<typename TT>
struct Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< 0, TT >

Методы

template<typename T, class ColorSystem>
template<typename TT>
static void Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< 0, TT >::build ( TT & a ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< n, TT >

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs

Шаблон структуры Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< n, TT >

Полный список членов класса

Открытые статические члены

static void build (TT a, TT *b)

template<typename T, class ColorSystem>
template<int n, typename TT>
struct Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< n, TT >

Методы

template<typename T, class ColorSystem>
template<int n, typename TT>
static void Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< n, TT >::build | ( | TT | a,
 |  | TT * | b |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< 0, TT >

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< 0, TT >

Шаблон структуры Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< 0, TT >

Полный список членов класса

Открытые статические члены

static void build (TT a, TT *b)

template<typename T, class ColorSystem>
template<typename TT>
struct Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< 0, TT >

Методы

template<typename T, class ColorSystem>
template<typename TT>
static void Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< 0, TT >::build | ( | TT | a,
 |  | TT * | b |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >

Шаблон класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >

#include <color_spaces.h>

Полный список членов класса

Открытые члены

Normalizer (T MaxColor_=T(255), T MinColor_=0, T ZeroColor_=T(128))
template<typename TT>
void | RGBto01 (T r, T g, T b, TT &r01, TT &g01, TT &b01) const
template<typename TT>
void | from01toRGB (TT r01, TT g01, TT b01, T &r, T &g, T &b) const
T | MaxColor () const
template<int n>
T | fromRGB (T sample_unnorm) const
returns sample_normalized from sample_unnormalized, dual to toRGB()
template<int n>
T | toRGB (T rgb_unnorm) const
returns rgb_normalized from rgb_unnormalized, dual to fromRGB()
template<int n, typename MultiplierType>
MultiplierType | Offset () const
template<int n, typename MultiplierType>
MultiplierType | Mult () const

Закрытые типы

typedef Loki::Select< Loki::TypeTraits<
T >::isFloat, T, double
>::Result 		T_temp

Закрытые данные

T | maxcolor
T | mincolor
T_temp mult01
T_temp | a [ColorSystem::n_components]
T_temp | b [ColorSystem::n_components]

Классы

struct | Cof
struct | Cof< 0, TT >

template<typename T, class ColorSystem>
class Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >

Определения типов

template<typename T, class ColorSystem>
typedef Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::T_temp [private]

Конструктор(ы)

template<typename T, class ColorSystem>
Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Normalizer | ( | T | MaxColor_ = T(255),
 |  | T | MinColor_ = 0,
 |  | T | ZeroColor_ = T(128) |
 | ) |  |  | [inline]

Методы

template<typename T, class ColorSystem>
template<typename TT>
void Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::RGBto01 | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | TT & | r01,
 |  | TT & | g01,
 |  | TT & | b01 |
 | ) |  |  | const [inline]

template<typename T, class ColorSystem>
template<typename TT>
void Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::from01toRGB | ( | TT | r01,
 |  | TT | g01,
 |  | TT | b01,
 |  | T & | r,
 |  | T & | g,
 |  | T & | b |
 | ) |  |  | const [inline]

template<typename T, class ColorSystem>
T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::MaxColor ( ) const [inline]

template<typename T, class ColorSystem>
template<int n>
T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::fromRGB ( T sample_unnorm ) const [inline]

returns sample_normalized from sample_unnormalized, dual to toRGB()

template<typename T, class ColorSystem>
template<int n>
T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::toRGB ( T rgb_unnorm ) const [inline]

returns rgb_normalized from rgb_unnormalized, dual to fromRGB()

template<typename T, class ColorSystem>
template<int n, typename MultiplierType>
MultiplierType Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Offset ( ) const [inline]

template<typename T, class ColorSystem>
template<int n, typename MultiplierType>
MultiplierType Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Mult ( ) const [inline]

Данные класса

template<typename T, class ColorSystem>
T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::maxcolor [private]

template<typename T, class ColorSystem>
T Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::mincolor [private]

template<typename T, class ColorSystem>
T_temp Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::mult01 [private]

template<typename T, class ColorSystem>
T_temp Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::a[ColorSystem::n_components] [private]

template<typename T, class ColorSystem>
T_temp Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::b[ColorSystem::n_components] [private]

Объявления и описания членов класса находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< n, TT >

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof

Шаблон структуры Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< n, TT >

Полный список членов класса

Открытые статические члены

template<typename T1>
static void build (TT *a, TT *b, T1 MaxColor, T1 MinColor)

template<typename T, class ColorSystem>
template<int n, typename TT>
struct Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< n, TT >

Методы

template<typename T, class ColorSystem>
template<int n, typename TT>
template<typename T1>
static void Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< n, TT >::build | ( | TT * | a,
 |  | TT * | b,
 |  | T1 | MaxColor,
 |  | T1 | MinColor |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< 0, TT >

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< 0, TT >

Шаблон структуры Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< 0, TT >

Полный список членов класса

Открытые статические члены

template<typename T1>
static void build (TT *a, TT *b, T1 MaxColor, T1 MinColor)

template<typename T, class ColorSystem>
template<typename TT>
struct Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< 0, TT >

Методы

template<typename T, class ColorSystem>
template<typename TT>
template<typename T1>
static void Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< 0, TT >::build | ( | TT * | a,
 |  | TT * | b,
 |  | T1 | MaxColor,
 |  | T1 | MinColor |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Класс Vtl::Types::NullType

Vtl::Types::NullType

Класс Vtl::Types::NullType

Нулевой маркер типов. Подробнее...

#include <alexandresku.h>

Подробное описание

Нулевой маркер типов.

Объявления и описания членов класса находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::Nuttall< T, D >

Vtl::ImAlg::WndFun::Nuttall

Шаблон класса Vtl::ImAlg::WndFun::Nuttall< T, D >

Окно Нуттол (Nuttall), непрерывные первые производные. Подробнее...

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Nuttall< T, D >:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::Nuttall< T, D >:

[см. легенду]
Полный список членов класса

Открытые члены

template<typename TT>
Nuttall (TT size_)

Открытые статические члены

static const char * | Name ()

Закрытые статические члены

static double * | cof ()

Подробное описание

template<typename T, unsigned D>
class Vtl::ImAlg::WndFun::Nuttall< T, D >

Окно Нуттол (Nuttall), непрерывные первые производные.

См. также:
common_Trig
Примеры:

test_plf_kernels.cpp.

Конструктор(ы)

template<typename T, unsigned D>
template<typename TT>
Vtl::ImAlg::WndFun::Nuttall< T, D >::Nuttall ( TT size_ ) [inline]

Методы

template<typename T, unsigned D>
static const char* Vtl::ImAlg::WndFun::Nuttall< T, D >::Name ( ) [inline, static]

template<typename T, unsigned D>
static double* Vtl::ImAlg::WndFun::Nuttall< T, D >::cof ( ) [inline, static, private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Transf::Offset< T >

Vtl::ImAlg::Transf::Offset

Шаблон класса Vtl::ImAlg::Transf::Offset< T >

#include <img_trans_models.h>

Полный список членов класса

Открытые типы

enum | { isStrightLineSaving = 1 }
typedef T | value_type
typedef Vtl::NumAlg::Lin::ublas::c_vector<
T, 2 > 		VectorB

Открытые члены

Offset ()
Offset (Offset &ot)
Offset (const VectorB &b_)
Offset & | operator= (const Offset &ot)
template<typename T1, typename T2>
void | operator() (T1 x, T2 y, T &x_out, T &y_out) const
template<typename T1, typename T2>
VectorB | operator() (T1 x, T2 y) const
VectorB | operator() (VectorB x) const

Закрытые данные

VectorB b

template<typename T>
class Vtl::ImAlg::Transf::Offset< T >

Определения типов

template<typename T>
typedef T Vtl::ImAlg::Transf::Offset< T >::value_type

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_vector<T,2> Vtl::ImAlg::Transf::Offset< T >::VectorB

Перечисления

template<typename T>
anonymous enum

Элементы перечислений:
isStrightLineSaving

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Transf::Offset< T >::Offset ( ) [inline]

template<typename T>
Vtl::ImAlg::Transf::Offset< T >::Offset ( Offset< T > & ot ) [inline]

template<typename T>
Vtl::ImAlg::Transf::Offset< T >::Offset ( const VectorB & b_ ) [inline]

Методы

template<typename T>
Offset& Vtl::ImAlg::Transf::Offset< T >::operator= ( const Offset< T > & ot ) [inline]

template<typename T>
template<typename T1, typename T2>
void Vtl::ImAlg::Transf::Offset< T >::operator() | ( | T1 | x,
 |  | T2 | y,
 |  | T & | x_out,
 |  | T & | y_out |
 | ) |  |  | const [inline]

template<typename T>
template<typename T1, typename T2>
VectorB Vtl::ImAlg::Transf::Offset< T >::operator() | ( | T1 | x,
 |  | T2 | y |
 | ) |  |  | const [inline]

template<typename T>
VectorB Vtl::ImAlg::Transf::Offset< T >::operator() ( VectorB x ) const [inline]

Данные класса

template<typename T>
VectorB Vtl::ImAlg::Transf::Offset< T >::b [private]

Объявления и описания членов класса находятся в файле:
  • img_trans_models.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Model::Offset< T >

Vtl::ImAlg::Model::Offset

Шаблон класса Vtl::ImAlg::Model::Offset< T >

Класс - модель преобразования, соответствует поиску чистого сдвига, (Kanade-Lukas [KLT_TK]). Подробнее...

#include <img_trans_models.h>

Граф наследования:Vtl::ImAlg::Model::Offset< T >:

[см. легенду]
Граф связей класса Vtl::ImAlg::Model::Offset< T >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { N = 2 }
enum | { isLinear = 1 }
enum | { isStrightLineSaving = 1 }
typedef Vtl::NumAlg::Lin::ublas::c_vector<
T, 2 > 		VectorB
typedef Transf::Offset< T > | Transf

Открытые члены

Transf | getTransf (int w, int h) const
template<typename Pixel>
void | Interp (const Pixel *in, int w, int h, int nls, Pixel *out, int nls_out, Pixel fill=Pixel(0)) const
void | setIdentity ()
void | Inverse ()
T | max_err_at_rect (Offset &model_2, T x1, T y1, T x2, T y2)
template<class VectorP>
void | set (VectorP model_parameters)
void | set (T dx, T dy)
void | UpdateByNewAfterThis (Offset &model_new)
template<unsigned n>
T | Dx (T x, T y) const
template<unsigned n>
T | Dy (T x, T y) const

Открытые атрибуты

VectorB b

Подробное описание

template<typename T>
class Vtl::ImAlg::Model::Offset< T >

Класс - модель преобразования, соответствует поиску чистого сдвига, (Kanade-Lukas [KLT_TK]).

Определения типов

template<typename T>
typedef Vtl::NumAlg::Lin::ublas::c_vector<T,2> Vtl::ImAlg::Model::Offset< T >::VectorB

template<typename T>
typedef Transf::Offset<T> Vtl::ImAlg::Model::Offset< T >::Transf

Перечисления

template<typename T>
anonymous enum

Элементы перечислений:
N

template<typename T>
anonymous enum

Элементы перечислений:
isLinear

template<typename T>
anonymous enum

Элементы перечислений:
isStrightLineSaving

Методы

template<typename T>
Transf Vtl::ImAlg::Model::Offset< T >::getTransf | ( | int | w,
 |  | int | h |
 | ) |  |  | const [inline]

template<typename T>
template<typename Pixel>
void Vtl::ImAlg::Model::Offset< T >::Interp | ( | const Pixel * | in,
 |  | int | w,
 |  | int | h,
 |  | int | nls,
 |  | Pixel * | out,
 |  | int | nls_out,
 |  | Pixel | fill = Pixel(0) |
 | ) |  |  | const [inline]

template<typename T>
void Vtl::ImAlg::Model::Offset< T >::setIdentity ( ) [inline]

template<typename T>
void Vtl::ImAlg::Model::Offset< T >::Inverse ( ) [inline]

template<typename T>
T Vtl::ImAlg::Model::Offset< T >::max_err_at_rect | ( | Offset< T > & | model_2,
 |  | T | x1,
 |  | T | y1,
 |  | T | x2,
 |  | T | y2 |
 | ) |  |  | [inline]

template<typename T>
template<class VectorP>
void Vtl::ImAlg::Model::Offset< T >::set ( VectorP model_parameters ) [inline]

template<typename T>
void Vtl::ImAlg::Model::Offset< T >::set | ( | T | dx,
 |  | T | dy |
 | ) |  |  | [inline]

template<typename T>
void Vtl::ImAlg::Model::Offset< T >::UpdateByNewAfterThis ( Offset< T > & model_new ) [inline]

template<typename T>
template<unsigned n>
T Vtl::ImAlg::Model::Offset< T >::Dx | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline]

Возвращает значение производной от модели по параметру номер n, 0 < =n < N в точке x, y Возвращает при n=0 -> 1 n=1 -> 1;

template<typename T>
template<unsigned n>
T Vtl::ImAlg::Model::Offset< T >::Dy | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
VectorB Vtl::ImAlg::Model::Offset< T >::b

Объявления и описания членов класса находятся в файле:
  • img_trans_models.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >

Vtl::ImAlg::Registration::OFlow

Шаблон класса Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >

Совмещение изображений методом оптического потока, см. прострнство имен Vtl::ImAlg::Registration::Model и класс AllocStrategy. Подробнее...

#include <img_registration_oflow.h>

Полный список членов класса

Открытые типы

enum | { UseMask = AllocStrategy::UseMask }
enum | { ColorPlanes = AllocStrategy::ColorPlanes }
typedef AllocStrategy::value_type | T

Открытые члены

OFlow (Model &model_, AllocStrategy &mem_)
virtual | ~OFlow ()
template<class D>
void | Insert1 (D *data, int w, int h, int nls)
template<class D>
void | Insert2 (D *data, int w, int h, int nls)
void | AfterInsert ()

Закрытые данные

Model & | model
AllocStrategy & | mem

Подробное описание

template<class Model, class AllocStrategy>
class Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >

Совмещение изображений методом оптического потока, см. прострнство имен Vtl::ImAlg::Registration::Model и класс AllocStrategy.
Примеры:

test_image_registration_via_oflow.cpp.

Определения типов

template<class Model, class AllocStrategy>
typedef AllocStrategy::value_type Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >::T

Перечисления

template<class Model, class AllocStrategy>
anonymous enum

Элементы перечислений:
UseMask

template<class Model, class AllocStrategy>
anonymous enum

Элементы перечислений:
ColorPlanes

Конструктор(ы)

template<class Model, class AllocStrategy>
Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >::OFlow | ( | Model & | model_,
 |  | AllocStrategy & | mem_ |
 | ) |  |  | [inline]

template<class Model, class AllocStrategy>
virtual Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >::~OFlow ( ) [inline, virtual]

Методы

template<class Model, class AllocStrategy>
template<class D>
void Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >::Insert1 | ( | D * | data,
 |  | int | w,
 |  | int | h,
 |  | int | nls |
 | ) |  |  | [inline]

template<class Model, class AllocStrategy>
template<class D>
void Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >::Insert2 | ( | D * | data,
 |  | int | w,
 |  | int | h,
 |  | int | nls |
 | ) |  |  | [inline]

template<class Model, class AllocStrategy>
void Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >::AfterInsert ( ) [inline]

Данные класса

template<class Model, class AllocStrategy>
Model& Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >::model [private]

template<class Model, class AllocStrategy>
AllocStrategy& Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >::mem [private]

Объявления и описания членов класса находятся в файле:
  • img_registration_oflow.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >

Vtl::ImAlg::Registration::OFlowAllocStrategy

Шаблон класса Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >

Класс отвечает за выделение памяти для работы совмещения по оптическому потоку (Kanade-Lukas [KLT_TK] , Shi-Tomasi [KLT_ST], Projective transform [Zokai_Wolberg_2005] ). Подробнее...

#include <img_registration_oflow.h>

Граф связей класса Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { UseMask = UseMask_ }
enum | { ColorPlanes = ColorPlanes_ }
enum | { ImgPlane = 5 }
enum | { ImgLevel = ImgPlane*ColorPlanes+(UseMask?1:0) }
typedef T | value_type
typedef Storage< T, ImgLevel > | Storage_t

Открытые члены

OFlowAllocStrategy ()
virtual | ~OFlowAllocStrategy ()
void | Init (size_t width, size_t height)
void | Init (size_t width, size_t height, size_t width_min, size_t height_min)
size_t | Levels () const
void | set_Level (size_t level)
size_t | get_Level () const
size_t | W () const
size_t | H () const
template<unsigned n_plane>
T * | I1 ()
template<unsigned n_plane>
T * | I2 ()
template<unsigned n_plane>
T * | It ()
template<unsigned n_plane>
T * | gx ()
template<unsigned n_plane>
T * | gy ()
T * | mask ()

Открытые атрибуты

std::vector< Size > | sizes
size_t | w
size_t | h
size_t | ofs
size_t | level

Закрытые данные

Storage_t storage_

Классы

struct | Size

Подробное описание

template<typename T, unsigned ColorPlanes_, bool UseMask_>
class Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >

Класс отвечает за выделение памяти для работы совмещения по оптическому потоку (Kanade-Lukas [KLT_TK] , Shi-Tomasi [KLT_ST], Projective transform [Zokai_Wolberg_2005] ).
Примеры:

test_image_registration_via_oflow.cpp.

Определения типов

template<typename T, unsigned ColorPlanes_, bool UseMask_>
typedef T Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::value_type

template<typename T, unsigned ColorPlanes_, bool UseMask_>
typedef Storage<T,ImgLevel> Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Storage_t

Перечисления

template<typename T, unsigned ColorPlanes_, bool UseMask_>
anonymous enum

Элементы перечислений:
UseMask

template<typename T, unsigned ColorPlanes_, bool UseMask_>
anonymous enum

Элементы перечислений:
ColorPlanes

template<typename T, unsigned ColorPlanes_, bool UseMask_>
anonymous enum

Элементы перечислений:
ImgPlane

template<typename T, unsigned ColorPlanes_, bool UseMask_>
anonymous enum

Элементы перечислений:
ImgLevel

Конструктор(ы)

template<typename T, unsigned ColorPlanes_, bool UseMask_>
Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::OFlowAllocStrategy ( ) [inline]

template<typename T, unsigned ColorPlanes_, bool UseMask_>
virtual Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::~OFlowAllocStrategy ( ) [inline, virtual]

Методы

template<typename T, unsigned ColorPlanes_, bool UseMask_>
void Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Init | ( | size_t | width,
 |  | size_t | height |
 | ) |  |  | [inline]

template<typename T, unsigned ColorPlanes_, bool UseMask_>
void Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Init | ( | size_t | width,
 |  | size_t | height,
 |  | size_t | width_min,
 |  | size_t | height_min |
 | ) |  |  | [inline]

template<typename T, unsigned ColorPlanes_, bool UseMask_>
size_t Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Levels ( ) const [inline]

template<typename T, unsigned ColorPlanes_, bool UseMask_>
void Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::set_Level ( size_t level ) [inline]

template<typename T, unsigned ColorPlanes_, bool UseMask_>
size_t Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::get_Level ( ) const [inline]

template<typename T, unsigned ColorPlanes_, bool UseMask_>
size_t Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::W ( ) const [inline]

template<typename T, unsigned ColorPlanes_, bool UseMask_>
size_t Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::H ( ) const [inline]

template<typename T, unsigned ColorPlanes_, bool UseMask_>
template<unsigned n_plane>
T* Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::I1 ( ) [inline]

template<typename T, unsigned ColorPlanes_, bool UseMask_>
template<unsigned n_plane>
T* Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::I2 ( ) [inline]

template<typename T, unsigned ColorPlanes_, bool UseMask_>
template<unsigned n_plane>
T* Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::It ( ) [inline]

template<typename T, unsigned ColorPlanes_, bool UseMask_>
template<unsigned n_plane>
T* Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::gx ( ) [inline]

template<typename T, unsigned ColorPlanes_, bool UseMask_>
template<unsigned n_plane>
T* Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::gy ( ) [inline]

template<typename T, unsigned ColorPlanes_, bool UseMask_>
T* Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::mask ( ) [inline]

Данные класса

template<typename T, unsigned ColorPlanes_, bool UseMask_>
std::vector<Size> Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::sizes

template<typename T, unsigned ColorPlanes_, bool UseMask_>
size_t Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::w

template<typename T, unsigned ColorPlanes_, bool UseMask_>
size_t Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::h

template<typename T, unsigned ColorPlanes_, bool UseMask_>
size_t Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::ofs

template<typename T, unsigned ColorPlanes_, bool UseMask_>
size_t Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::level

template<typename T, unsigned ColorPlanes_, bool UseMask_>
Storage_t Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::storage_ [private]

Объявления и описания членов класса находятся в файле:
  • img_registration_oflow.h


Pipe Line Filters: Структура Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size

Vtl::ImAlg::Registration::OFlowAllocStrategy::Size

Структура Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size

#include <img_registration_oflow.h>

Полный список членов класса

Открытые атрибуты

size_t | w
size_t | h
size_t | ofs

template<typename T, unsigned ColorPlanes_, bool UseMask_>
struct Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size

Данные класса

template<typename T, unsigned ColorPlanes_, bool UseMask_>
size_t Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size::w

template<typename T, unsigned ColorPlanes_, bool UseMask_>
size_t Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size::h

template<typename T, unsigned ColorPlanes_, bool UseMask_>
size_t Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size::ofs

Объявления и описания членов структуры находятся в файле:
  • img_registration_oflow.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >

Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper

Шаблон класса Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >

#include <img_registration_oflow.h>

Полный список членов класса

Открытые статические члены

template<typename S>
static void | ins (S *in, int w, int h, int nls, T *data)
static void | dif (T *data1, T *data2, T *gx, T *gy, int w, int h, float sigma)
template<class Model, class BuildX>
static void | build (const Model &model, BuildX &HB, T *I1, T *I2, T *gx, T *gy, size_t w, size_t h, T *mask, float sigma, T fill)

template<typename T>
class Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >

Методы

template<typename T>
template<typename S>
static void Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >::ins | ( | S * | in,
 |  | int | w,
 |  | int | h,
 |  | int | nls,
 |  | T * | data |
 | ) |  |  | [inline, static]

template<typename T>
static void Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >::dif | ( | T * | data1,
 |  | T * | data2,
 |  | T * | gx,
 |  | T * | gy,
 |  | int | w,
 |  | int | h,
 |  | float | sigma |
 | ) |  |  | [inline, static]

Массив data заполнен изображением 2. Функция строит изображения компонент градиента и сглаживает сами изображение 1 и 2 тем же Гауссом.
Сами изображения все равно требуется копировать во внутренний буфер, так как помимо возможных различий в типе для алгоритма они должны быть сглажены Гауссом прежде чем разность изображений использовать при вычислении правой части системы уравнений.

template<typename T>
template<class Model, class BuildX>
static void Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >::build | ( | const Model & | model,
 |  | BuildX & | HB,
 |  | T * | I1,
 |  | T * | I2,
 |  | T * | gx,
 |  | T * | gy,
 |  | size_t | w,
 |  | size_t | h,
 |  | T * | mask,
 |  | float | sigma,
 |  | T | fill |
 | ) |  |  | [inline, static]

Объявления и описания членов класса находятся в файле:
  • img_registration_oflow.h


Pipe Line Filters: Шаблон класса Vtl::Plf::OutPort< T, P >

Vtl::Plf::OutPort

Шаблон класса Vtl::Plf::OutPort< T, P >
[Ports and buffers]

Класс реализует функциональность понятия \с "выходной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering. Добавляет функциональность постобработки к классу OutPortNoPostProc. Подробнее...

#include <plf_port.h>

Граф наследования:Vtl::Plf::OutPort< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::OutPort< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

OutPort ()
>forbidden
OutPort (P func_post_proc)
void | setPostProc (P func_post_proc)
virtual | ~OutPort ()
virtual void | endUpdate ()

Закрытые члены

OutPort (const OutPort &)
OutPort & | operator= (const OutPort &)
>forbidden
template<class P>
void | proc (P functor)
void | proc (Vtl::Plf::F11::DoNothing< T >)

Закрытые данные

P | functor_post_proc

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::OutPort< T, P >

Класс реализует функциональность понятия \с "выходной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering. Добавляет функциональность постобработки к классу OutPortNoPostProc.

class OutPort

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

Примеры:

test_plf_io_ports.cpp.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::OutPort< T, P >::OutPort ( const OutPort< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::OutPort< T, P >::OutPort ( ) [inline]

>forbidden

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::OutPort< T, P >::OutPort ( P func_post_proc ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::OutPort< T, P >::~OutPort ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort& Vtl::Plf::OutPort< T, P >::operator= ( const OutPort< T, P > & ) [private]

>forbidden

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::OutPort< T, P >::setPostProc ( P func_post_proc ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::OutPort< T, P >::endUpdate ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::OutPortNoPostProc< T >.

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
template<class P>
void Vtl::Plf::OutPort< T, P >::proc ( P functor ) [inline, private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::OutPort< T, P >::proc ( Vtl::Plf::F11::DoNothing< T > ) [inline, private]

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
P Vtl::Plf::OutPort< T, P >::functor_post_proc [private]

Объявления и описания членов класса находятся в файле:
  • plf_port.h


Pipe Line Filters: Класс Vtl::Plf::OutPortBase

Vtl::Plf::OutPortBase

Класс Vtl::Plf::OutPortBase
[Ports and buffers]

Базовый класс для понятия "\b выходной порт". Определяет функциональность, необходимую для работы системы фильтров. Подробнее...

#include <plf_port.h>

Граф наследования:Vtl::Plf::OutPortBase:

[см. легенду]
Граф связей класса Vtl::Plf::OutPortBase:

[см. легенду]
Полный список членов класса

Открытые типы

typedef std::list< InPortBase * > | List
>forbidden

Открытые члены

virtual void | Init (FilterElementary *_filter, int _port)
virtual | ~OutPortBase ()
virtual void | Rewind ()
virtual int | this_delay ()=0
Extent calcRequiredExtent ()
virtual void | set_total_delay (int before_delay)
Инициализация шаг 4&5 из 6, может вызываться многократно в процессе балансирования фильтра.
virtual int | NumConnectedTo () const
void | putConnectionsInQueue (std::list< Vtl::Plf::FilterElementary * > &Q)
void | putConnectionsInQueue (Fifo< Vtl::Plf::FilterElementary * > &Q)
virtual Strip | getRequestedStrips ()
bool | isFinished () const
void | Finish ()
bool | isReadyForUpdate ()
virtual bool | inPopTailStage ()=0
virtual void | PopTail ()=0
virtual Strip | getStrip () const=0
virtual void | set_bufferImgSize (const ImgSize &ims)=0
virtual void | init_bufferExtents ()=0
virtual void | init_buffer ()=0
virtual void | init_buffer (Extent ext)=0
virtual void | increase_delay_by (int delta_delay)=0

Защищенные члены

OutPortBase ()
void | ConnectTo_ (InPortBase *in_port)

Закрытые члены

OutPortBase (const OutPortBase &)
OutPortBase & | operator= (const OutPortBase &)
>forbidden

Закрытые данные

List connected_to
bool | finished
> Описывает, какие фильтры читают с выхода этого фильтра

Классы

struct | Connection

Подробное описание

Базовый класс для понятия "\b выходной порт". Определяет функциональность, необходимую для работы системы фильтров.

class OutPortBase

Определения типов

typedef std::list<InPortBase*> Vtl::Plf::OutPortBase::List

>forbidden

Конструктор(ы)

Vtl::Plf::OutPortBase::OutPortBase ( const OutPortBase & ) [private]

Vtl::Plf::OutPortBase::OutPortBase ( ) [inline, protected]

virtual Vtl::Plf::OutPortBase::~OutPortBase ( ) [inline, virtual]

Методы

OutPortBase& Vtl::Plf::OutPortBase::operator= ( const OutPortBase & ) [private]

>forbidden

void Vtl::Plf::OutPortBase::ConnectTo_ ( InPortBase * in_port ) [inline, protected]

virtual void Vtl::Plf::OutPortBase::Init | ( | FilterElementary * | _filter,
 |  | int | _port |
 | ) |  |  | [inline, virtual]

Переопределяется в Vtl::Plf::OutPortNoPostProc< T > и Vtl::Plf::OutPortNoPostProc< float >.

virtual void Vtl::Plf::OutPortBase::Rewind ( ) [inline, virtual]

Переопределяется в Vtl::Plf::OutPortNoPostProc< T > и Vtl::Plf::OutPortNoPostProc< float >.

virtual int Vtl::Plf::OutPortBase::this_delay ( ) [pure virtual]

Замещается в Vtl::Plf::OutPortNoPostProc< T > и Vtl::Plf::OutPortNoPostProc< float >.

Extent Vtl::Plf::OutPortBase::calcRequiredExtent ( ) [inline]

virtual void Vtl::Plf::OutPortBase::set_total_delay ( int before_delay ) [inline, virtual]

Инициализация шаг 4&5 из 6, может вызываться многократно в процессе балансирования фильтра.

virtual int Vtl::Plf::OutPortBase::NumConnectedTo ( ) const [inline, virtual]

void Vtl::Plf::OutPortBase::putConnectionsInQueue ( std::list< Vtl::Plf::FilterElementary * > & Q ) [inline]

void Vtl::Plf::OutPortBase::putConnectionsInQueue ( Fifo< Vtl::Plf::FilterElementary * > & Q ) [inline]

virtual Strip Vtl::Plf::OutPortBase::getRequestedStrips ( ) [inline, virtual]

bool Vtl::Plf::OutPortBase::isFinished ( ) const [inline]

Закончил ли порт работу? Вызывается системой, если все выходы фильтра больше ничего писать не будут, то и весь фильтр закончил работу. Если по входам еще что-то поступает, их надо информировать, что больше данных не надо.

void Vtl::Plf::OutPortBase::Finish ( ) [inline]

Используется и системой и пользователем, чтобы сообщить порту, что больше данных не будет. Нормальное использование - системой, а не пользователем, так как для выходного порта звестен размер выходного изображения \с getImageSize(), а пользователь за один вызов функции FilterBase::processLine() обязан обработать 0 или 1 строку и написать ее на выход. Обычно -1, случай 0 возникает только в сложных фильтрах с несколькими выходами, размер изображения по которым различен, например, если на выходе фильтра изображение и его уменьшенная вдвое версия, то за вызов FilterBase::processLine() по первому выходу всегда пишется 1 строка, а по второму выходу - только каждый второй раз.

bool Vtl::Plf::OutPortBase::isReadyForUpdate ( ) [inline]

Вызывается только системой. Пока функция не вернет true по каждому выходу фильтра

  • вызов FilterBase::processLine() не будет произведен.

virtual bool Vtl::Plf::OutPortBase::inPopTailStage ( ) [pure virtual]

Замещается в Vtl::Plf::OutPortNoPostProc< T > и Vtl::Plf::OutPortNoPostProc< float >.

virtual void Vtl::Plf::OutPortBase::PopTail ( ) [pure virtual]

Замещается в Vtl::Plf::OutPortNoPostProc< T > и Vtl::Plf::OutPortNoPostProc< float >.

virtual Strip Vtl::Plf::OutPortBase::getStrip ( ) const [pure virtual]

Замещается в Vtl::Plf::OutPortNoPostProc< T > и Vtl::Plf::OutPortNoPostProc< float >.

virtual void Vtl::Plf::OutPortBase::set_bufferImgSize ( const ImgSize & ims ) [pure virtual]

Замещается в Vtl::Plf::OutPortNoPostProc< T > и Vtl::Plf::OutPortNoPostProc< float >.

virtual void Vtl::Plf::OutPortBase::init_bufferExtents ( ) [pure virtual]

Замещается в Vtl::Plf::OutPortNoPostProc< T > и Vtl::Plf::OutPortNoPostProc< float >.

virtual void Vtl::Plf::OutPortBase::init_buffer ( ) [pure virtual]

Замещается в Vtl::Plf::OutPortNoPostProc< T > и Vtl::Plf::OutPortNoPostProc< float >.

virtual void Vtl::Plf::OutPortBase::init_buffer ( Extent ext ) [pure virtual]

Замещается в Vtl::Plf::OutPortNoPostProc< T > и Vtl::Plf::OutPortNoPostProc< float >.

virtual void Vtl::Plf::OutPortBase::increase_delay_by ( int delta_delay ) [pure virtual]

Замещается в Vtl::Plf::OutPortNoPostProc< T > и Vtl::Plf::OutPortNoPostProc< float >.

Данные класса

List Vtl::Plf::OutPortBase::connected_to [private]

bool Vtl::Plf::OutPortBase::finished [private]

> Описывает, какие фильтры читают с выхода этого фильтра

Объявления и описания членов класса находятся в файле:
  • plf_port.h


Pipe Line Filters: Структура Vtl::Plf::OutPortBase::Connection

Vtl::Plf::OutPortBase::Connection

Структура Vtl::Plf::OutPortBase::Connection

#include <plf_port.h>

Граф связей класса Vtl::Plf::OutPortBase::Connection:

[см. легенду]
Полный список членов класса

Открытые члены

Connection (FilterBase *filter_, int i_in_)

Открытые атрибуты

FilterBase * filter
int i_in

Конструктор(ы)

Vtl::Plf::OutPortBase::Connection::Connection | ( | FilterBase * | filter_,
 |  | int | i_in_ |
 | ) |  |  | [inline]

Данные класса

FilterBase* Vtl::Plf::OutPortBase::Connection::filter

int Vtl::Plf::OutPortBase::Connection::i_in

Объявления и описания членов структуры находятся в файле:
  • plf_port.h


Pipe Line Filters: Шаблон класса Vtl::Plf::OutPortNoPostProc< T >

Vtl::Plf::OutPortNoPostProc

Шаблон класса Vtl::Plf::OutPortNoPostProc< T >
[Ports and buffers]

Класс реализует базовую функциональность понятия \с "выходной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering. Подробнее...

#include <plf_port.h>

Граф наследования:Vtl::Plf::OutPortNoPostProc< T >:

[см. легенду]
Граф связей класса Vtl::Plf::OutPortNoPostProc< T >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef StripBuffer< T > | BufType
typedef BufType::Iter_Line | Iter

Открытые члены

virtual | ~OutPortNoPostProc ()
virtual void | Init (FilterElementary *_filter, int _port)
Инициализация шаг 1 из 6.
virtual void | set_bufferImgSize (const ImgSize &ims)
Инициализация шаг 2 из 6.
virtual void | init_bufferExtents ()
Инициализация шаг 3 из 6.
virtual void | increase_delay_by (int delta_delay)
Инициализация шаг 4&5 из 6, может вызываться многократно в процессе балансирования фильтра.
virtual void | init_buffer ()
Инициализация шаг 6 из 6.
virtual void | init_buffer (Extent ext)
virtual int | this_delay ()
void | ConnectTo (InPort< T > *in_port)
void | ConnectTo (InPortComb< T > *in_ports)
virtual void | Rewind ()
int | Y_wait () const
Строка изображения, которую надо будет поместить в OutPortNoPostProc при его очередном обновлении. Принимает значения >=0. Если Y_wait()>=getImageSize().height , то порт закончил прием данных.
int | Y () const
Текущая позиция базовой строки буфера.
virtual Strip | getStrip () const
Вызывается системой,чтобы установить фактический размер и текущую позицию буфера.
virtual ImgSize | getImageSize () const
ImageRef< T > | getImg (const Extent &ex1, const Strip &strip) const
Iter begin ()
Итератор на начало строки изображения номер Y_wait(), для записи в буфер. Валиден только между вызовами beginUpdate() и endUpdate().
Iter end ()
Итератор пиксель следующий за последним в строке изображения номер Y_wait(), для записи в буфер. Валиден только между вызовами beginUpdate() и endUpdate().
virtual void | beginUpdate ()
virtual void | endUpdate ()
virtual bool | inPopTailStage ()
virtual void | PopTail ()

Защищенные члены

OutPortNoPostProc ()
>forbidden

Закрытые члены

OutPortNoPostProc (const OutPortNoPostProc &)
> Буфер, куда пишутся результаты этого фильтра
OutPortNoPostProc & | operator= (const OutPortNoPostProc &)
>forbidden

Закрытые данные

BufType buffer

Друзья

class | InPort< T >

Подробное описание

template<typename T>
class Vtl::Plf::OutPortNoPostProc< T >

Класс реализует базовую функциональность понятия \с "выходной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering.

class OutPortNoPostProc

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

Примеры:

test_color_registration.cpp.

Определения типов

template<typename T>
typedef StripBuffer<T> Vtl::Plf::OutPortNoPostProc< T >::BufType

template<typename T>
typedef BufType::Iter_Line Vtl::Plf::OutPortNoPostProc< T >::Iter

Конструктор(ы)

template<typename T>
Vtl::Plf::OutPortNoPostProc< T >::OutPortNoPostProc ( const OutPortNoPostProc< T > & ) [private]

> Буфер, куда пишутся результаты этого фильтра

template<typename T>
Vtl::Plf::OutPortNoPostProc< T >::OutPortNoPostProc ( ) [inline, protected]

>forbidden

template<typename T>
virtual Vtl::Plf::OutPortNoPostProc< T >::~OutPortNoPostProc ( ) [inline, virtual]

Методы

template<typename T>
OutPortNoPostProc& Vtl::Plf::OutPortNoPostProc< T >::operator= ( const OutPortNoPostProc< T > & ) [private]

>forbidden

template<typename T>
virtual void Vtl::Plf::OutPortNoPostProc< T >::Init | ( | FilterElementary * | _filter,
 |  | int | _port |
 | ) |  |  | [inline, virtual]

Инициализация шаг 1 из 6.

Переопределяет метод предка Vtl::Plf::OutPortBase.

template<typename T>
virtual void Vtl::Plf::OutPortNoPostProc< T >::set_bufferImgSize ( const ImgSize & ims ) [inline, virtual]

Инициализация шаг 2 из 6.

Замещает Vtl::Plf::OutPortBase.

template<typename T>
virtual void Vtl::Plf::OutPortNoPostProc< T >::init_bufferExtents ( ) [inline, virtual]

Инициализация шаг 3 из 6.

Замещает Vtl::Plf::OutPortBase.

template<typename T>
virtual void Vtl::Plf::OutPortNoPostProc< T >::increase_delay_by ( int delta_delay ) [inline, virtual]

Инициализация шаг 4&5 из 6, может вызываться многократно в процессе балансирования фильтра.

Замещает Vtl::Plf::OutPortBase.

template<typename T>
virtual void Vtl::Plf::OutPortNoPostProc< T >::init_buffer ( ) [inline, virtual]

Инициализация шаг 6 из 6.

Замещает Vtl::Plf::OutPortBase.

template<typename T>
virtual void Vtl::Plf::OutPortNoPostProc< T >::init_buffer ( Extent ext ) [inline, virtual]

Замещает Vtl::Plf::OutPortBase.

template<typename T>
virtual int Vtl::Plf::OutPortNoPostProc< T >::this_delay ( ) [inline, virtual]

Замещает Vtl::Plf::OutPortBase.

template<typename T>
void Vtl::Plf::OutPortNoPostProc< T >::ConnectTo ( InPort< T > * in_port ) [inline]

template<typename T>
void Vtl::Plf::OutPortNoPostProc< T >::ConnectTo ( InPortComb< T > * in_ports ) [inline]

template<typename T>
virtual void Vtl::Plf::OutPortNoPostProc< T >::Rewind ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::OutPortBase.

template<typename T>
int Vtl::Plf::OutPortNoPostProc< T >::Y_wait ( ) const [inline]

Строка изображения, которую надо будет поместить в OutPortNoPostProc при его очередном обновлении. Принимает значения >=0. Если Y_wait()>=getImageSize().height , то порт закончил прием данных.

template<typename T>
int Vtl::Plf::OutPortNoPostProc< T >::Y ( ) const [inline]

Текущая позиция базовой строки буфера.

template<typename T>
virtual Strip Vtl::Plf::OutPortNoPostProc< T >::getStrip ( ) const [inline, virtual]

Вызывается системой,чтобы установить фактический размер и текущую позицию буфера.

Замещает Vtl::Plf::OutPortBase.

template<typename T>
virtual ImgSize Vtl::Plf::OutPortNoPostProc< T >::getImageSize ( ) const [inline, virtual]

размер изображения, с которым идет работа на этом порту, причем: OutPortNoPostProc его непосредственно хранит в StripBuffer (это виртуальнгое изображение) InPort - спрашивает его у того OutPortNoPostProc, к которому подключен.

Замещает Vtl::Plf::Port.

template<typename T>
ImageRef<T> Vtl::Plf::OutPortNoPostProc< T >::getImg | ( | const Extent & | ex1,
 |  | const Strip & | strip |
 | ) |  |  | const [inline]

template<typename T>
Iter Vtl::Plf::OutPortNoPostProc< T >::begin ( ) [inline]

Итератор на начало строки изображения номер Y_wait(), для записи в буфер. Валиден только между вызовами beginUpdate() и endUpdate().

template<typename T>
Iter Vtl::Plf::OutPortNoPostProc< T >::end ( ) [inline]

Итератор пиксель следующий за последним в строке изображения номер Y_wait(), для записи в буфер. Валиден только между вызовами beginUpdate() и endUpdate().

template<typename T>
virtual void Vtl::Plf::OutPortNoPostProc< T >::beginUpdate ( ) [inline, virtual]

template<typename T>
virtual void Vtl::Plf::OutPortNoPostProc< T >::endUpdate ( ) [inline, virtual]

Переопределяется в Vtl::Plf::OutPort< T, P >, Vtl::Plf::OutPort< T, Vtl::Plf::F11::GammaCorMult< T > >, Vtl::Plf::OutPort< T, P1 >, Vtl::Plf::OutPort< float, Vtl::Plf::F11::DoNothing< float > >, Vtl::Plf::OutPort< T, Vtl::Plf::F11::CombGammaCorMult< T > >, Vtl::Plf::OutPort< T >, Vtl::Plf::OutPort< T, Vtl::Plf::F11::Sqr< T > >, Vtl::Plf::OutPort< T, Vtl::Plf::F11::DoNothing< T > >, Vtl::Plf::OutPort< float, P >, Vtl::Plf::OutPort< T, PostProc >, Vtl::Plf::OutPort< T, P2 > и Vtl::Plf::OutPort< T, P3 >.

template<typename T>
virtual bool Vtl::Plf::OutPortNoPostProc< T >::inPopTailStage ( ) [inline, virtual]

Замещает Vtl::Plf::OutPortBase.

template<typename T>
virtual void Vtl::Plf::OutPortNoPostProc< T >::PopTail ( ) [inline, virtual]

Замещает Vtl::Plf::OutPortBase.

Документация по друзьям класса и функциям, отноносящимся к классу

template<typename T>
friend class InPort< T > [friend]

Данные класса

template<typename T>
BufType Vtl::Plf::OutPortNoPostProc< T >::buffer [private]

Объявления и описания членов класса находятся в файле:
  • plf_port.h


Pipe Line Filters: Класс IFF::OzFile

IFF::OzFile

Класс IFF::OzFile

#include <oz.h>

Граф наследования:IFF::OzFile:

[см. легенду]
Граф связей класса IFF::OzFile:

[см. легенду]
Полный список членов класса

Открытые члены

void | writeHeader ()
void | readHeader ()
OzFile ()
virtual | ~OzFile ()
void | open (const char *szFileName, OpenMode access, int Width=0, int Height=0, int bitsPerPixel=10)
void | close ()
void | read (int x, int y, OzWord *line, int len)
void | write (int x, int y, const OzWord *line, int len)
int | Width () const
int | Length () const
int | Bits () const
OzWord | GetChanel () const
void | SetChanel (OzWord channel)
OzWord | GetTrajectory () const
void | SetTrajectory (OzWord traject)
void | GetTime (OzWord &hour, OzWord &minutes, OzWord &seconds, OzWord &millisec) const
void | GetTimeEnd (OzWord &hour, OzWord &minutes, OzWord &seconds, OzWord &millisec) const
void | SetTime (OzWord hour, OzWord minutes, OzWord seconds, OzWord millisec)
void | SetTimeEnd (OzWord hour, OzWord minutes, OzWord seconds, OzWord millisec)
void | GetDate (OzWord &year, OzWord &month, OzWord &day) const
void | SetDate (OzWord year, OzWord month, OzWord day)
void | GetHeader (Header *header) const
void | SetHeader (Header *header)
bool | IsOneSeance (const OzFile &f) const

Закрытые данные

Header head

Классы

struct | Header

Конструктор(ы)

OzFile::OzFile ( )

OzFile::~OzFile ( ) [virtual]

Методы

void OzFile::writeHeader ( )

void OzFile::readHeader ( )

void OzFile::open | ( | const char * | szFileName,
 |  | OpenMode | access,
 |  | int | Width = 0,
 |  | int | Height = 0,
 |  | int | bitsPerPixel = 10
 | ) |  |

void OzFile::close ( )

void OzFile::read | ( | int | x,
 |  | int | y,
 |  | OzWord * | line,
 |  | int | len
 | ) |  |

void OzFile::write | ( | int | x,
 |  | int | y,
 |  | const OzWord * | line,
 |  | int | len
 | ) |  |

int IFF::OzFile::Width ( ) const [inline]

int IFF::OzFile::Length ( ) const [inline]

int IFF::OzFile::Bits ( ) const [inline]

OzWord OzFile::GetChanel ( ) const

void OzFile::SetChanel ( OzWord channel )

OzWord OzFile::GetTrajectory ( ) const

void OzFile::SetTrajectory ( OzWord traject )

void OzFile::GetTime | ( | OzWord & | hour,
 |  | OzWord & | minutes,
 |  | OzWord & | seconds,
 |  | OzWord & | millisec |
 | ) |  |  | const

void OzFile::GetTimeEnd | ( | OzWord & | hour,
 |  | OzWord & | minutes,
 |  | OzWord & | seconds,
 |  | OzWord & | millisec |
 | ) |  |  | const

void OzFile::SetTime | ( | OzWord | hour,
 |  | OzWord | minutes,
 |  | OzWord | seconds,
 |  | OzWord | millisec
 | ) |  |

void OzFile::SetTimeEnd | ( | OzWord | hour,
 |  | OzWord | minutes,
 |  | OzWord | seconds,
 |  | OzWord | millisec
 | ) |  |

void OzFile::GetDate | ( | OzWord & | year,
 |  | OzWord & | month,
 |  | OzWord & | day |
 | ) |  |  | const

void OzFile::SetDate | ( | OzWord | year,
 |  | OzWord | month,
 |  | OzWord | day
 | ) |  |

void OzFile::GetHeader ( Header * header ) const

void OzFile::SetHeader ( Header * header )

bool OzFile::IsOneSeance ( const OzFile & f ) const

Данные класса

Header IFF::OzFile::head [private]

Объявления и описания членов классов находятся в файлах:
  • oz.h
  • oz.cpp


Pipe Line Filters: Структура IFF::OzFile::Header

IFF::OzFile::Header

Структура IFF::OzFile::Header

#include <oz.h>

Полный список членов класса

Открытые атрибуты

OzWord Trajectory
OzWord day
OzWord month
OzWord year
OzWord begHour
OzWord begMinutes
OzWord begSecond1000
OzWord endHour
OzWord endMinutes
OzWord endSecond1000
OzWord Width
OzWord Length
OzWord Chan
OzWord Bits
OzWord reserved [2]

Данные класса

OzWord IFF::OzFile::Header::Trajectory

OzWord IFF::OzFile::Header::day

OzWord IFF::OzFile::Header::month

OzWord IFF::OzFile::Header::year

OzWord IFF::OzFile::Header::begHour

OzWord IFF::OzFile::Header::begMinutes

OzWord IFF::OzFile::Header::begSecond1000

OzWord IFF::OzFile::Header::endHour

OzWord IFF::OzFile::Header::endMinutes

OzWord IFF::OzFile::Header::endSecond1000

OzWord IFF::OzFile::Header::Width

OzWord IFF::OzFile::Header::Length

OzWord IFF::OzFile::Header::Chan

OzWord IFF::OzFile::Header::Bits

OzWord IFF::OzFile::Header::reserved[2]

Объявления и описания членов структуры находятся в файле:
  • oz.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, m >

Vtl::ImAlg::WndFun::Impl::Gauss::P

Шаблон структуры Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, m >

#include <windowing_fun.h>

Полный список членов класса

Открытые статические члены

static T v (T x2)

template<typename T, unsigned n, unsigned m>
struct Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, m >

Методы

template<typename T, unsigned n, unsigned m>
static T Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, m >::v ( T x2 ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Hanina::p33< T, 0, 1 >

Hanina::p33< T, 0, 1 >

Шаблон класса Hanina::p33< T, 0, 1 >

#include <ss_ridge_functors.h>

Полный список членов класса

Открытые члены

p33 (const Planes_t *plane_, size_t ofs_to_cur_, int nls_)
template<int d_a, int d_b>
T | f ()
template<int d_a, int d_b>
T | b ()

Закрытые типы

typedef const T * | Planes_t

Закрытые данные

const Planes_t * | plane
size_t | ofs_to_cur
int | nls

template<typename T>
class Hanina::p33< T, 0, 1 >

Определения типов

template<typename T>
typedef const T* Hanina::p33< T, 0, 1 >::Planes_t [private]

Конструктор(ы)

template<typename T>
Hanina::p33< T, 0, 1 >::p33 | ( | const Planes_t * | plane_,
 |  | size_t | ofs_to_cur_,
 |  | int | nls_ |
 | ) |  |  | [inline]

Методы

template<typename T>
template<int d_a, int d_b>
T Hanina::p33< T, 0, 1 >::f ( ) [inline]

template<typename T>
template<int d_a, int d_b>
T Hanina::p33< T, 0, 1 >::b ( ) [inline]

Данные класса

template<typename T>
const Planes_t* Hanina::p33< T, 0, 1 >::plane [private]

template<typename T>
size_t Hanina::p33< T, 0, 1 >::ofs_to_cur [private]

template<typename T>
int Hanina::p33< T, 0, 1 >::nls [private]

Объявления и описания членов класса находятся в файле:
  • ss_ridge_functors.h


Pipe Line Filters: Шаблон класса Hanina::p33< T, 0, 2 >

Hanina::p33< T, 0, 2 >

Шаблон класса Hanina::p33< T, 0, 2 >

#include <ss_ridge_functors.h>

Полный список членов класса

Открытые члены

p33 (const Planes_t *plane_, size_t ofs_to_cur_, int nls_)
template<int d_a, int d_b>
T | f ()
template<int d_a, int d_b>
T | b ()

Закрытые типы

typedef const T * | Planes_t

Закрытые данные

const Planes_t * | plane
size_t | ofs_to_cur
int | nls

template<typename T>
class Hanina::p33< T, 0, 2 >

Определения типов

template<typename T>
typedef const T* Hanina::p33< T, 0, 2 >::Planes_t [private]

Конструктор(ы)

template<typename T>
Hanina::p33< T, 0, 2 >::p33 | ( | const Planes_t * | plane_,
 |  | size_t | ofs_to_cur_,
 |  | int | nls_ |
 | ) |  |  | [inline]

Методы

template<typename T>
template<int d_a, int d_b>
T Hanina::p33< T, 0, 2 >::f ( ) [inline]

template<typename T>
template<int d_a, int d_b>
T Hanina::p33< T, 0, 2 >::b ( ) [inline]

Данные класса

template<typename T>
const Planes_t* Hanina::p33< T, 0, 2 >::plane [private]

template<typename T>
size_t Hanina::p33< T, 0, 2 >::ofs_to_cur [private]

template<typename T>
int Hanina::p33< T, 0, 2 >::nls [private]

Объявления и описания членов класса находятся в файле:
  • ss_ridge_functors.h


Pipe Line Filters: Шаблон класса Hanina::p33< T, 1, 2 >

Hanina::p33< T, 1, 2 >

Шаблон класса Hanina::p33< T, 1, 2 >

#include <ss_ridge_functors.h>

Полный список членов класса

Открытые члены

p33 (const Planes_t *plane_, size_t ofs_to_cur_, int nls_)
template<int d_a, int d_b>
T | f ()
template<int d_a, int d_b>
T | b ()

Закрытые типы

typedef const T * | Planes_t

Закрытые данные

const Planes_t * | plane
size_t | ofs_to_cur
int | nls

template<typename T>
class Hanina::p33< T, 1, 2 >

Определения типов

template<typename T>
typedef const T* Hanina::p33< T, 1, 2 >::Planes_t [private]

Конструктор(ы)

template<typename T>
Hanina::p33< T, 1, 2 >::p33 | ( | const Planes_t * | plane_,
 |  | size_t | ofs_to_cur_,
 |  | int | nls_ |
 | ) |  |  | [inline]

Методы

template<typename T>
template<int d_a, int d_b>
T Hanina::p33< T, 1, 2 >::f ( ) [inline]

template<typename T>
template<int d_a, int d_b>
T Hanina::p33< T, 1, 2 >::b ( ) [inline]

Данные класса

template<typename T>
const Planes_t* Hanina::p33< T, 1, 2 >::plane [private]

template<typename T>
size_t Hanina::p33< T, 1, 2 >::ofs_to_cur [private]

template<typename T>
int Hanina::p33< T, 1, 2 >::nls [private]

Объявления и описания членов класса находятся в файле:
  • ss_ridge_functors.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, n >

Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, n >

Шаблон структуры Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, n >

#include <windowing_fun.h>

Полный список членов класса

Открытые статические члены

static T v (T x2)

template<typename T, unsigned n>
struct Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, n >

Методы

template<typename T, unsigned n>
static T Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, n >::v ( T x2 ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Структура Vtl::Img::PaletteAccess

Vtl::Img::PaletteAccess

Структура Vtl::Img::PaletteAccess

#include <vtl_image_types.h>

Полный список членов класса

Открытые атрибуты

void * palette_ptr
uint32_t reserv
uint32_t palette_type
uint32_t palette_entries

Данные класса

void* Vtl::Img::PaletteAccess::palette_ptr

uint32_t Vtl::Img::PaletteAccess::reserv

uint32_t Vtl::Img::PaletteAccess::palette_type

uint32_t Vtl::Img::PaletteAccess::palette_entries

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Класс IFF::PBMfile

IFF::PBMfile

Класс IFF::PBMfile

#include <pbm_file.h>

Граф наследования:IFF::PBMfile:

[см. легенду]
Граф связей класса IFF::PBMfile:

[см. легенду]
Полный список членов класса

Открытые типы

enum | TYPE { PBM_GRAYSCALE, PBM_RGB, PBM_UNKNOWN = 0xFFFF }

Открытые члены

PBMfile ()
virtual | ~PBMfile ()
void | open (const char *fname, OpenMode access, int Width=0, int Heigth=0, int bitsPerPixel=8, TYPE _type=PBM_GRAYSCALE)
void | close ()
bool | IsOk () const
void | read (int x, int y, Byte *line, int len)
void | write (int x, int y, const Byte *line, int len)
int | Width () const
int | Length () const
int | Bits () const
TYPE | Type () const

Закрытые члены

void | nullify ()
void | writeHeader ()
void | readHeader ()

Закрытые данные

int | width
int | height
int | bits
int | type
unsigned | data_offset

Перечисления

enum IFF::PBMfile::TYPE

Элементы перечислений:
PBM_GRAYSCALE
PBM_RGB
PBM_UNKNOWN

Конструктор(ы)

PBMfile::PBMfile ( )

PBMfile::~PBMfile ( ) [virtual]

Методы

void PBMfile::nullify ( ) [private]

void PBMfile::writeHeader ( ) [private]

void PBMfile::readHeader ( ) [private]

void PBMfile::open | ( | const char * | fname,
 |  | OpenMode | access,
 |  | int | Width = 0,
 |  | int | Heigth = 0,
 |  | int | bitsPerPixel = 8,
 |  | TYPE | _type = PBM_GRAYSCALE
 | ) |  |

void PBMfile::close ( )

bool IFF::PBMfile::IsOk ( ) const [inline, virtual]

Переопределяет метод предка YFile.

void PBMfile::read | ( | int | x,
 |  | int | y,
 |  | Byte * | line,
 |  | int | len
 | ) |  |

void PBMfile::write | ( | int | x,
 |  | int | y,
 |  | const Byte * | line,
 |  | int | len
 | ) |  |

int IFF::PBMfile::Width ( ) const [inline]

int IFF::PBMfile::Length ( ) const [inline]

int IFF::PBMfile::Bits ( ) const [inline]

PBMfile::TYPE PBMfile::Type ( ) const

Данные класса

int IFF::PBMfile::width [private]

int IFF::PBMfile::height [private]

int IFF::PBMfile::bits [private]

int IFF::PBMfile::type [private]

unsigned IFF::PBMfile::data_offset [private]

Объявления и описания членов классов находятся в файлах:
  • pbm_file.h
  • pbm_file.cpp


Pipe Line Filters: Шаблон структуры Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >

Vtl::Meta::Impl::permut

Шаблон структуры Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >

#include <vtl_meta_permutations.h>

Полный список членов класса

Открытые типы

enum | { value = IL::Elem<i, value = IL::Elem<i }
enum | { is_Odd = (1&(isOdd+i)) }
typedef IL::EraseAt< i, IList2
>::Result 		Tail
typedef IL::PushBack< value,
IList1 >::Result 		Head

Открытые статические члены

template<class Func>
static void | forEach (Func &f)

Подробное описание

template<class IList1, class IList2, int isOdd, int k, int i>
struct Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >

Задано два списка целых чисел (без дубликатов!). Для списка, являющегося конкатенацией первого списка со всевозможными перестановками второго списка будет вызван функтор f. Для каждой перестановки - вызов будет один и только один раз.
Использование - см. в ForEachPermutation. Этот класс не предназначен для использования в пользовательском коде. Его следует рассматривать как мощный инструмент, с помощю которого реализуются алгоритмы как в ForEachPermutation, а уже эти алгоритмы используются непосредственно в прикладной программе.

Определения типов

template<class IList1, class IList2, int isOdd, int k, int i>
typedef IL::EraseAt<i,IList2>::Result Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >::Tail

template<class IList1, class IList2, int isOdd, int k, int i>
typedef IL::PushBack<value,IList1>::Result Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >::Head

Перечисления

template<class IList1, class IList2, int isOdd, int k, int i>
anonymous enum

Элементы перечислений:
value
value

template<class IList1, class IList2, int isOdd, int k, int i>
anonymous enum

Элементы перечислений:
is_Odd

Методы

template<class IList1, class IList2, int isOdd, int k, int i>
template<class Func>
static void Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >::forEach ( Func & f ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_permutations.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, k >

Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, k >

Шаблон структуры Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, k >

#include <vtl_meta_permutations.h>

Полный список членов класса

Открытые статические члены

template<class Func>
static void forEach (Func &f)

template<class IList1, class IList2, int isOdd, int k>
struct Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, k >

Методы

template<class IList1, class IList2, int isOdd, int k>
template<class Func>
static void Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, k >::forEach ( Func & f ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_permutations.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::Impl::permut< IList1, Loki::NullType, isOdd, 0, 0 >

Vtl::Meta::Impl::permut< IList1, Loki::NullType, isOdd, 0, 0 >

Шаблон структуры Vtl::Meta::Impl::permut< IList1, Loki::NullType, isOdd, 0, 0 >

#include <vtl_meta_permutations.h>

Полный список членов класса

Открытые статические члены

template<class Func>
static void forEach (Func &f)

template<class IList1, int isOdd>
struct Vtl::Meta::Impl::permut< IList1, Loki::NullType, isOdd, 0, 0 >

Методы

template<class IList1, int isOdd>
template<class Func>
static void Vtl::Meta::Impl::permut< IList1, Loki::NullType, isOdd, 0, 0 >::forEach ( Func & f ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_permutations.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >

Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr

Шаблон класса Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Вычисляет выражение для преобразования Хартли аналогичное по свойствам выражению F1.F2* для преобразования Фурье. Результат может быть помещен вместо одного из преобразований Хартли. Функтор применим для любой размерности пространства, в т.ч. ndim>2. Подробнее...

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

PhaseCorr (T hartley1[], T hartley2[], T corr[])
template<bool upper_half, typename I>
void | operator() (I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf)
template<bool upper_half, typename I>
void | operator() (I k, Loki::Int2Type< upper_half >)

Закрытые данные

T * | hartley1_
T * | hartley2_
T * | corr_

Подробное описание

template<typename T>
class Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Вычисляет выражение для преобразования Хартли аналогичное по свойствам выражению F1.F2* для преобразования Фурье. Результат может быть помещен вместо одного из преобразований Хартли. Функтор применим для любой размерности пространства, в т.ч. ndim>2.

Для преобразования Фурье часто вычисляют выражение F1.F2* . Смысл этого выражения таков, что если F1 и F2 отнормированы на амплитуду, т.е. являются чистыми фазами, то это выражение является корреляцией фаз, в частности, если исходные функции отличались постоянным сдвигом (dx,dy), то рассматриваемое выражение является комплексной экспонентой exp(2*pi*i*(kx*dx+ky*dy)). Обратное преобразование Фурье от такой функции даст дельта-функцию в координатах равных как раз параметрам сдвига.

В случае преобразования Хартли, аналогичным свойством обладает выражение H1(x,y)H2(x,y)+H1(-x,-y)H2(-x,-y)+H1(-x,-y)H2(x,y)-H1(x,y)H2(-x,-y), где H1(.), H2(.) - преобразования Хартли нормированные на амплитуду (фазы). В случае если исходные функции отличались только сдвигом, разультатом этого выражения будет функция cas(2*pi*kx*dx+ky*dy)). Обратное преобразование Хартли от такой функции тоже дает дельта-функцию в координатах равных параметрам сдвига.

Доказательство формулы

Тогда:

Конструктор(ы)

template<typename T>
Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >::PhaseCorr | ( | T | hartley1[],
 |  | T | hartley2[],
 |  | T | corr[] |
 | ) |  |  | [inline]

Методы

template<typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >::operator() | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > | up_hlf |
 | ) |  |  | [inline]

template<typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >::operator() | ( | I | k,
 |  | Loki::Int2Type< upper_half > |  |
 | ) |  |  | [inline]

Данные класса

template<typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >::hartley1_ [private]

template<typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >::hartley2_ [private]

template<typename T>
T* Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >::corr_ [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Resamp::PhiGrid< T >

Vtl::ImAlg::Resamp::PhiGrid

Шаблон класса Vtl::ImAlg::Resamp::PhiGrid< T >

#include <imalg_resampling.h>

Полный список членов класса

Открытые члены

PhiGrid (T from_, T to_, size_t N_grid_cells)
T | value (size_t i) const
size_t | N () const

Закрытые данные

T | from
T | step
size_t | n

template<typename T>
class Vtl::ImAlg::Resamp::PhiGrid< T >

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Resamp::PhiGrid< T >::PhiGrid | ( | T | from_,
 |  | T | to_,
 |  | size_t | N_grid_cells |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::ImAlg::Resamp::PhiGrid< T >::value ( size_t i ) const [inline]

template<typename T>
size_t Vtl::ImAlg::Resamp::PhiGrid< T >::N ( ) const [inline]

Данные класса

template<typename T>
T Vtl::ImAlg::Resamp::PhiGrid< T >::from [private]

template<typename T>
T Vtl::ImAlg::Resamp::PhiGrid< T >::step [private]

template<typename T>
size_t Vtl::ImAlg::Resamp::PhiGrid< T >::n [private]

Объявления и описания членов класса находятся в файле:
  • imalg_resampling.h


Pipe Line Filters: Шаблон класса Vtl::Img::pic_plane< pel, stride >

Vtl::Img::pic_plane

Шаблон класса Vtl::Img::pic_plane< pel, stride >

#include <vtl_image_types.h>

Полный список членов класса

Открытые члены

pic_plane (pel *p)
operator pel * ()
void | operator+= (int i)
void | operator-= (int i)
void | operator++ ()
void | operator-- ()
pic_plane | plane (int p) const

Закрытые данные

pel * | ptr

template<typename pel, unsigned stride>
class Vtl::Img::pic_plane< pel, stride >

Конструктор(ы)

template<typename pel, unsigned stride>
Vtl::Img::pic_plane< pel, stride >::pic_plane ( pel * p ) [inline]

Методы

template<typename pel, unsigned stride>
Vtl::Img::pic_plane< pel, stride >::operator pel * ( ) [inline]

template<typename pel, unsigned stride>
void Vtl::Img::pic_plane< pel, stride >::operator+= ( int i ) [inline]

template<typename pel, unsigned stride>
void Vtl::Img::pic_plane< pel, stride >::operator-= ( int i ) [inline]

template<typename pel, unsigned stride>
void Vtl::Img::pic_plane< pel, stride >::operator++ ( ) [inline]

template<typename pel, unsigned stride>
void Vtl::Img::pic_plane< pel, stride >::operator-- ( ) [inline]

template<typename pel, unsigned stride>
pic_plane Vtl::Img::pic_plane< pel, stride >::plane ( int p ) const [inline]

Данные класса

template<typename pel, unsigned stride>
pel* Vtl::Img::pic_plane< pel, stride >::ptr [private]

Объявления и описания членов класса находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон класса Vtl::Plf::PixByPix2to1< T, F, P >

Vtl::Plf::PixByPix2to1

Шаблон класса Vtl::Plf::PixByPix2to1< T, F, P >
[Elementary filters]

Вычисление изображения из двух, значение пикселя вычисляется как некоторая функция из значений пикселей двух исходных изображений, взятых в тех же координатах (x,y). Подробнее...

#include <plf_filters.h>

Граф наследования:Vtl::Plf::PixByPix2to1< T, F, P >:

[см. легенду]
Граф связей класса Vtl::Plf::PixByPix2to1< T, F, P >:

[см. легенду]
Полный список членов класса

Открытые члены

PixByPix2to1 ()
PixByPix2to1 (std::string name, F fun, P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (std::string name, F fun, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~PixByPix2to1 ()
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in_1
InPort< T > | in_2
OutPort< T, P > | out
F | functor
int | tmp

Подробное описание

template<typename T, class F, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::PixByPix2to1< T, F, P >

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

Класс реализует операцию из двух изображений - одно по формуле...

Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class F, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix2to1< T, F, P >::PixByPix2to1 ( ) [inline]

template<typename T, class F, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix2to1< T, F, P >::PixByPix2to1 | ( | std::string | name,
 |  | F | fun,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class F, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::PixByPix2to1< T, F, P >::~PixByPix2to1 ( ) [inline, virtual]

Методы

template<typename T, class F, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::PixByPix2to1< T, F, P >::Init | ( | std::string | name,
 |  | F | fun,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class F, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::PixByPix2to1< T, F, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class F, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix2to1< T, F, P >::in_1

template<typename T, class F, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix2to1< T, F, P >::in_2

template<typename T, class F, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::PixByPix2to1< T, F, P >::out

template<typename T, class F, class P = Vtl::Plf::F11::DoNothing<T>>
F Vtl::Plf::PixByPix2to1< T, F, P >::functor

template<typename T, class F, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::PixByPix2to1< T, F, P >::tmp

Объявления и описания членов класса находятся в файле:
  • plf_filters.h


Pipe Line Filters: Шаблон класса Vtl::Plf::PixByPix2to3< T, P >

Vtl::Plf::PixByPix2to3

Шаблон класса Vtl::Plf::PixByPix2to3< T, P >
[Elementary filters]

На базе двух изображений [image] и [image] вычисляет 3 новых по формулам:

т.е. компоненты корреляционной матрицы, которая симметричная и положительно определенная. (чтобы эта матрица стала собственно корреляционной, остается еще выполнить усреднение компонент в каком либо смысле, например по локальной окрестности. Подробнее...

#include <plf_filters.h>

Граф наследования:Vtl::Plf::PixByPix2to3< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::PixByPix2to3< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

PixByPix2to3 ()
PixByPix2to3 (std::string name)
void | Init (std::string name, P func=F23::CorrMatrix< T, T & >())
virtual | ~PixByPix2to3 ()
virtual void | set_OutPortsImagesSizeAndInPortsExtents ()
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in_1
InPort< T > | in_2
OutPort< T > | out_11
OutPort< T > | out_12
OutPort< T > | out_22

Закрытые данные

P | functor

Подробное описание

template<typename T, class P = Vtl::Plf::F::CorrMatrix<T,T&>>
class Vtl::Plf::PixByPix2to3< T, P >

На базе двух изображений [image] и [image] вычисляет 3 новых по формулам:

т.е. компоненты корреляционной матрицы, которая симметричная и положительно определенная. (чтобы эта матрица стала собственно корреляционной, остается еще выполнить усреднение компонент в каком либо смысле, например по локальной окрестности.

См. также:
class Average).

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F::CorrMatrix<T,T&>>
Vtl::Plf::PixByPix2to3< T, P >::PixByPix2to3 ( ) [inline]

template<typename T, class P = Vtl::Plf::F::CorrMatrix<T,T&>>
Vtl::Plf::PixByPix2to3< T, P >::PixByPix2to3 ( std::string name ) [inline]

template<typename T, class P = Vtl::Plf::F::CorrMatrix<T,T&>>
virtual Vtl::Plf::PixByPix2to3< T, P >::~PixByPix2to3 ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F::CorrMatrix<T,T&>>
void Vtl::Plf::PixByPix2to3< T, P >::Init | ( | std::string | name,
 |  | P | func = F23::CorrMatrix<T,T&>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F::CorrMatrix<T,T&>>
virtual void Vtl::Plf::PixByPix2to3< T, P >::set_OutPortsImagesSizeAndInPortsExtents ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::FilterElementary.

template<typename T, class P = Vtl::Plf::F::CorrMatrix<T,T&>>
virtual void Vtl::Plf::PixByPix2to3< T, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class P = Vtl::Plf::F::CorrMatrix<T,T&>>
P Vtl::Plf::PixByPix2to3< T, P >::functor [private]

template<typename T, class P = Vtl::Plf::F::CorrMatrix<T,T&>>
InPort<T> Vtl::Plf::PixByPix2to3< T, P >::in_1

template<typename T, class P = Vtl::Plf::F::CorrMatrix<T,T&>>
InPort<T> Vtl::Plf::PixByPix2to3< T, P >::in_2

template<typename T, class P = Vtl::Plf::F::CorrMatrix<T,T&>>
OutPort<T> Vtl::Plf::PixByPix2to3< T, P >::out_11

template<typename T, class P = Vtl::Plf::F::CorrMatrix<T,T&>>
OutPort<T> Vtl::Plf::PixByPix2to3< T, P >::out_12

template<typename T, class P = Vtl::Plf::F::CorrMatrix<T,T&>>
OutPort<T> Vtl::Plf::PixByPix2to3< T, P >::out_22

Объявления и описания членов класса находятся в файле:
  • plf_filters.h


Pipe Line Filters: Шаблон класса Vtl::Plf::PixByPix3to1< T, Func, P >

Vtl::Plf::PixByPix3to1

Шаблон класса Vtl::Plf::PixByPix3to1< T, Func, P >
[Elementary filters]

Класс служит для генерации изображения по трем исходным, значение пикселя изображения определяется значением пикселей в тех же координатах на исходных изображениях. Действия определяются вторым шаблонным параметром. Типичные применения:. Подробнее...

#include <plf_filters.h>

Граф наследования:Vtl::Plf::PixByPix3to1< T, Func, P >:

[см. легенду]
Граф связей класса Vtl::Plf::PixByPix3to1< T, Func, P >:

[см. легенду]
Полный список членов класса

Открытые члены

PixByPix3to1 ()
PixByPix3to1 (std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~PixByPix3to1 ()
void | Init (std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual void | set_OutPortsImagesSizeAndInPortsExtents ()
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in_xx
InPort< T > | in_xy
InPort< T > | in_yy
OutPort< T, P > | out
Func | func

Подробное описание

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::PixByPix3to1< T, Func, P >

Класс служит для генерации изображения по трем исходным, значение пикселя изображения определяется значением пикселей в тех же координатах на исходных изображениях. Действия определяются вторым шаблонным параметром. Типичные применения:.

  • преобразование TrueColor изображения в серое
    См. также:
    Ppf::C.
  • детекторы краев и уголков Канниб Канаде-Лукаса, Харриса, DiZenzo, в этом случае да вход подаются компоненты корреляционной матрицы градиента [image].
    См. также:
    Ppf::F, Harris, Trace, MaxEigenVal, MinEigenVal, DiffEigenVal.
Примеры:

test_color_registration.cpp.

Конструктор(ы)

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix3to1< T, Func, P >::PixByPix3to1 ( ) [inline]

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix3to1< T, Func, P >::PixByPix3to1 | ( | std::string | name,
 |  | Func | functor,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::PixByPix3to1< T, Func, P >::~PixByPix3to1 ( ) [inline, virtual]

Методы

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::PixByPix3to1< T, Func, P >::Init | ( | std::string | name,
 |  | Func | functor,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::PixByPix3to1< T, Func, P >::set_OutPortsImagesSizeAndInPortsExtents ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::FilterElementary.

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::PixByPix3to1< T, Func, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix3to1< T, Func, P >::in_xx

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix3to1< T, Func, P >::in_xy

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix3to1< T, Func, P >::in_yy

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::PixByPix3to1< T, Func, P >::out

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Func Vtl::Plf::PixByPix3to1< T, Func, P >::func

Объявления и описания членов класса находятся в файле:
  • plf_filters.h


Pipe Line Filters: Шаблон класса Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >

Vtl::Plf::PixByPix3to3

Шаблон класса Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
[Elementary filters]

Класс служит для генерации 3 изображений по 3 исходным, значение пикселя на выходных изображениях определяется значением пикселей в тех же координатах на исходных изображениях. Действия определяются вторым шаблонным параметром. Типичные применения переход к другой системе цветовых координат,. Подробнее...

#include <plf_filters.h>

Граф наследования:Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >:

[см. легенду]
Граф связей класса Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >:

[см. легенду]
Полный список членов класса

Открытые члены

PixByPix3to3 ()
PixByPix3to3 (std::string name, Func functor, P1 post_proc_1=Vtl::Plf::F11::DoNothing< T >(), P2 post_proc_2=Vtl::Plf::F11::DoNothing< T >(), P3 post_proc_3=Vtl::Plf::F11::DoNothing< T >())
virtual | ~PixByPix3to3 ()
void | Init (std::string name, Func functor, P1 post_proc_1=Vtl::Plf::F11::DoNothing< T >(), P2 post_proc_2=Vtl::Plf::F11::DoNothing< T >(), P3 post_proc_3=Vtl::Plf::F11::DoNothing< T >())
virtual void | set_OutPortsImagesSizeAndInPortsExtents ()
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in_1
InPort< T > | in_2
InPort< T > | in_3
OutPort< T, P1 > | out_1
OutPort< T, P2 > | out_2
OutPort< T, P3 > | out_3
Func | func

Подробное описание

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>, class P3 = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >

Класс служит для генерации 3 изображений по 3 исходным, значение пикселя на выходных изображениях определяется значением пикселей в тех же координатах на исходных изображениях. Действия определяются вторым шаблонным параметром. Типичные применения переход к другой системе цветовых координат,.

См. также:
Vtl::Plf::C,

Vtl::Plf::F::DiZenzo,

Конструктор(ы)

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>, class P3 = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >::PixByPix3to3 ( ) [inline]

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>, class P3 = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >::PixByPix3to3 | ( | std::string | name,
 |  | Func | functor,
 |  | P1 | post_proc_1 = Vtl::Plf::F11::DoNothing<T>(),
 |  | P2 | post_proc_2 = Vtl::Plf::F11::DoNothing<T>(),
 |  | P3 | post_proc_3 = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>, class P3 = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >::~PixByPix3to3 ( ) [inline, virtual]

Методы

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>, class P3 = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >::Init | ( | std::string | name,
 |  | Func | functor,
 |  | P1 | post_proc_1 = Vtl::Plf::F11::DoNothing<T>(),
 |  | P2 | post_proc_2 = Vtl::Plf::F11::DoNothing<T>(),
 |  | P3 | post_proc_3 = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>, class P3 = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >::set_OutPortsImagesSizeAndInPortsExtents ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::FilterElementary.

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>, class P3 = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>, class P3 = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >::in_1

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>, class P3 = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >::in_2

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>, class P3 = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >::in_3

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>, class P3 = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P1> Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >::out_1

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>, class P3 = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P2> Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >::out_2

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>, class P3 = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P3> Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >::out_3

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P1 = Vtl::Plf::F11::DoNothing<T>, class P2 = Vtl::Plf::F11::DoNothing<T>, class P3 = Vtl::Plf::F11::DoNothing<T>>
Func Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >::func

Объявления и описания членов класса находятся в файле:
  • plf_filters.h


Pipe Line Filters: Шаблон класса Vtl::Plf::PixByPix4to1< T, Func, P >

Vtl::Plf::PixByPix4to1

Шаблон класса Vtl::Plf::PixByPix4to1< T, Func, P >
[Elementary filters]

Класс служит для генерации изображения по четырем исходным,. Подробнее...

#include <plf_filters.h>

Граф наследования:Vtl::Plf::PixByPix4to1< T, Func, P >:

[см. легенду]
Граф связей класса Vtl::Plf::PixByPix4to1< T, Func, P >:

[см. легенду]
Полный список членов класса

Открытые члены

PixByPix4to1 ()
PixByPix4to1 (std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~PixByPix4to1 ()
void | Init (std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual void | set_OutPortsImagesSizeAndInPortsExtents ()
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in_1
InPort< T > | in_2
InPort< T > | in_3
InPort< T > | in_4
OutPort< T, P > | out
Func | func

Подробное описание

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::PixByPix4to1< T, Func, P >

Класс служит для генерации изображения по четырем исходным,.

Конструктор(ы)

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix4to1< T, Func, P >::PixByPix4to1 ( ) [inline]

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix4to1< T, Func, P >::PixByPix4to1 | ( | std::string | name,
 |  | Func | functor,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::PixByPix4to1< T, Func, P >::~PixByPix4to1 ( ) [inline, virtual]

Методы

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::PixByPix4to1< T, Func, P >::Init | ( | std::string | name,
 |  | Func | functor,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::PixByPix4to1< T, Func, P >::set_OutPortsImagesSizeAndInPortsExtents ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::FilterElementary.

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::PixByPix4to1< T, Func, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix4to1< T, Func, P >::in_1

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix4to1< T, Func, P >::in_2

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix4to1< T, Func, P >::in_3

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix4to1< T, Func, P >::in_4

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::PixByPix4to1< T, Func, P >::out

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Func Vtl::Plf::PixByPix4to1< T, Func, P >::func

Объявления и описания членов класса находятся в файле:
  • plf_filters.h


Pipe Line Filters: Шаблон класса Vtl::Plf::PixByPix5to1< T, Func, P >

Vtl::Plf::PixByPix5to1

Шаблон класса Vtl::Plf::PixByPix5to1< T, Func, P >
[Elementary filters]

Класс служит для генерации изображения по пяти исходным,. Подробнее...

#include <plf_filters.h>

Граф наследования:Vtl::Plf::PixByPix5to1< T, Func, P >:

[см. легенду]
Граф связей класса Vtl::Plf::PixByPix5to1< T, Func, P >:

[см. легенду]
Полный список членов класса

Открытые члены

PixByPix5to1 ()
PixByPix5to1 (std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~PixByPix5to1 ()
void | Init (std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual void | set_OutPortsImagesSizeAndInPortsExtents ()
virtual void | processLine ()

Открытые атрибуты

InPort< T > | in_1
InPort< T > | in_2
InPort< T > | in_3
InPort< T > | in_4
InPort< T > | in_5
OutPort< T, P > | out
Func | func

Подробное описание

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::PixByPix5to1< T, Func, P >

Класс служит для генерации изображения по пяти исходным,.

Конструктор(ы)

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix5to1< T, Func, P >::PixByPix5to1 ( ) [inline]

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::PixByPix5to1< T, Func, P >::PixByPix5to1 | ( | std::string | name,
 |  | Func | functor,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::PixByPix5to1< T, Func, P >::~PixByPix5to1 ( ) [inline, virtual]

Методы

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::PixByPix5to1< T, Func, P >::Init | ( | std::string | name,
 |  | Func | functor,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::PixByPix5to1< T, Func, P >::set_OutPortsImagesSizeAndInPortsExtents ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::FilterElementary.

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::PixByPix5to1< T, Func, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix5to1< T, Func, P >::in_1

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix5to1< T, Func, P >::in_2

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix5to1< T, Func, P >::in_3

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix5to1< T, Func, P >::in_4

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T> Vtl::Plf::PixByPix5to1< T, Func, P >::in_5

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::PixByPix5to1< T, Func, P >::out

template<typename T, class Func = Vtl::Plf::F::Harris<T>, class P = Vtl::Plf::F11::DoNothing<T>>
Func Vtl::Plf::PixByPix5to1< T, Func, P >::func

Объявления и описания членов класса находятся в файле:
  • plf_filters.h


Pipe Line Filters: Шаблон класса Vtl::Types::PixelTraits< T >

Vtl::Types::PixelTraits

Шаблон класса Vtl::Types::PixelTraits< T >

#include <alexandresku.h>

Полный список членов класса

Открытые типы

typedef LargerTypeSelector<
T, group >::TypesGroup 		TypesGroup
typedef T | PixelType
typedef Vtl::Types::TL::FilteredTypes<
TypesGroup, sizeof(PixelType)*2,
Vtl::Types::TL::GE >::Result 		listForSqr
typedef Vtl::Types::TL::SmallestType<
listForSqr, Vtl::Types::TL::LT
>::Result 		SqrType

Закрытые типы

enum | { group = isSUIntOrReal<T>::Result }

Классы

struct | LargerTypeSelector< P, SUIntOrReal::Real >
struct | LargerTypeSelector< P, SUIntOrReal::SInt >
struct | LargerTypeSelector< P, SUIntOrReal::UInt >

template<typename T>
class Vtl::Types::PixelTraits< T >

Определения типов

template<typename T>
typedef LargerTypeSelector<T,group>::TypesGroup Vtl::Types::PixelTraits< T >::TypesGroup

template<typename T>
typedef T Vtl::Types::PixelTraits< T >::PixelType

template<typename T>
typedef Vtl::Types::TL::FilteredTypes<TypesGroup,sizeof(PixelType)*2,Vtl::Types::TL::GE>::Result Vtl::Types::PixelTraits< T >::listForSqr

template<typename T>
typedef Vtl::Types::TL::SmallestType<listForSqr,Vtl::Types::TL::LT>::Result Vtl::Types::PixelTraits< T >::SqrType

Перечисления

template<typename T>
anonymous enum [private]

Элементы перечислений:
group

Объявления и описания членов класса находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::Real >

Vtl::Types::PixelTraits::LargerTypeSelector< P, SUIntOrReal::Real >

Шаблон структуры Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::Real >

Полный список членов класса

Открытые типы

typedef RealTypes TypesGroup

template<typename T>
template<typename P>
struct Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::Real >

Определения типов

template<typename T>
template<typename P>
typedef RealTypes Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::Real >::TypesGroup

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::SInt >

Vtl::Types::PixelTraits::LargerTypeSelector< P, SUIntOrReal::SInt >

Шаблон структуры Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::SInt >

Полный список членов класса

Открытые типы

typedef SignedIntegerTypes TypesGroup

template<typename T>
template<typename P>
struct Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::SInt >

Определения типов

template<typename T>
template<typename P>
typedef SignedIntegerTypes Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::SInt >::TypesGroup

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::UInt >

Vtl::Types::PixelTraits::LargerTypeSelector< P, SUIntOrReal::UInt >

Шаблон структуры Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::UInt >

Полный список членов класса

Открытые типы

typedef UnsignedIntegerTypes TypesGroup

template<typename T>
template<typename P>
struct Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::UInt >

Определения типов

template<typename T>
template<typename P>
typedef UnsignedIntegerTypes Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::UInt >::TypesGroup

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон класса Hanina::Planes3< T >

Hanina::Planes3

Шаблон класса Hanina::Planes3< T >

#include <ss_ridge_det.h>

Полный список членов класса

Открытые члены

template<typename T1>
Planes3 (const T1 *img, int width, int height, int nls)
void | operator() ()
void | SaveImage (AImageMem8 *img, const T *data, int w, int h, int nls, float sigma, const char *base_name, const char *postfix)

Закрытые данные

int | w
int | h
int | sz
Hessian3D< T > | hess3d
std::vector< T > | _eig_prev
std::vector< T > | _eig_curr
std::vector< T > | _eig_next
std::vector< T > | _grad_x_curr
std::vector< T > | _grad_y_curr
std::vector< T > | _grad_x_next
std::vector< T > | _grad_y_next
std::vector< T > | _h2_x_curr
std::vector< T > | _h2_y_curr
std::vector< T > | _h2_z_curr
std::vector< T > | _h3_x_curr
std::vector< T > | _h3_y_curr
std::vector< T > | _h3_z_curr
std::vector< T > | _h2_x_next
std::vector< T > | _h2_y_next
std::vector< T > | _h2_z_next
std::vector< T > | _h3_x_next
std::vector< T > | _h3_y_next
std::vector< T > | _h3_z_next
std::vector< T > | _image
T * | eig_prev
T * | eig_curr
T * | eig_next
T * | grad_x_curr
T * | grad_y_curr
T * | grad_x_next
T * | grad_y_next
T * | h2_x_curr
T * | h2_y_curr
T * | h2_z_curr
T * | h3_x_curr
T * | h3_y_curr
T * | h3_z_curr
T * | h2_x_next
T * | h2_y_next
T * | h2_z_next
T * | h3_x_next
T * | h3_y_next
T * | h3_z_next
T * | image

Подробное описание

template<typename T>
class Hanina::Planes3< T >

здесь хранятся 3 изображения для 3х последовательных сигма

Конструктор(ы)

template<typename T>
template<typename T1>
Hanina::Planes3< T >::Planes3 | ( | const T1 * | img,
 |  | int | width,
 |  | int | height,
 |  | int | nls |
 | ) |  |  | [inline]

Методы

template<typename T>
void Hanina::Planes3< T >::operator() ( ) [inline]

template<typename T>
void Hanina::Planes3< T >::SaveImage | ( | AImageMem8 * | img,
 |  | const T * | data,
 |  | int | w,
 |  | int | h,
 |  | int | nls,
 |  | float | sigma,
 |  | const char * | base_name,
 |  | const char * | postfix |
 | ) |  |  | [inline]

Данные класса

template<typename T>
int Hanina::Planes3< T >::w [private]

template<typename T>
int Hanina::Planes3< T >::h [private]

template<typename T>
int Hanina::Planes3< T >::sz [private]

template<typename T>
Hessian3D<T> Hanina::Planes3< T >::hess3d [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_eig_prev [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_eig_curr [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_eig_next [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_grad_x_curr [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_grad_y_curr [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_grad_x_next [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_grad_y_next [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_h2_x_curr [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_h2_y_curr [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_h2_z_curr [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_h3_x_curr [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_h3_y_curr [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_h3_z_curr [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_h2_x_next [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_h2_y_next [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_h2_z_next [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_h3_x_next [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_h3_y_next [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_h3_z_next [private]

template<typename T>
std::vector<T> Hanina::Planes3< T >::_image [private]

template<typename T>
T* Hanina::Planes3< T >::eig_prev [private]

template<typename T>
T* Hanina::Planes3< T >::eig_curr [private]

template<typename T>
T* Hanina::Planes3< T >::eig_next [private]

template<typename T>
T* Hanina::Planes3< T >::grad_x_curr [private]

template<typename T>
T* Hanina::Planes3< T >::grad_y_curr [private]

template<typename T>
T* Hanina::Planes3< T >::grad_x_next [private]

template<typename T>
T* Hanina::Planes3< T >::grad_y_next [private]

template<typename T>
T* Hanina::Planes3< T >::h2_x_curr [private]

template<typename T>
T* Hanina::Planes3< T >::h2_y_curr [private]

template<typename T>
T* Hanina::Planes3< T >::h2_z_curr [private]

template<typename T>
T* Hanina::Planes3< T >::h3_x_curr [private]

template<typename T>
T* Hanina::Planes3< T >::h3_y_curr [private]

template<typename T>
T* Hanina::Planes3< T >::h3_z_curr [private]

template<typename T>
T* Hanina::Planes3< T >::h2_x_next [private]

template<typename T>
T* Hanina::Planes3< T >::h2_y_next [private]

template<typename T>
T* Hanina::Planes3< T >::h2_z_next [private]

template<typename T>
T* Hanina::Planes3< T >::h3_x_next [private]

template<typename T>
T* Hanina::Planes3< T >::h3_y_next [private]

template<typename T>
T* Hanina::Planes3< T >::h3_z_next [private]

template<typename T>
T* Hanina::Planes3< T >::image [private]

Объявления и описания членов класса находятся в файле:
  • ss_ridge_det.h


Pipe Line Filters: Структура Basics3D::PointStatus

Basics3D::PointStatus

Структура Basics3D::PointStatus

Define struct to clear namespace from personal enum names. Подробнее...

#include <sfm_types.h>

Полный список членов класса

Открытые типы

enum Flags {
Ok, AtInfinity, Uncertain, BadReproj,
Behind
}

Подробное описание

Define struct to clear namespace from personal enum names.

Перечисления

enum Basics3D::PointStatus::Flags

Элементы перечислений:
Ok
AtInfinity
Uncertain
BadReproj
Behind

Объявления и описания членов структуры находятся в файле:
  • sfm_types.h


Pipe Line Filters: Класс PolyFun

Класс PolyFun

#include <ygeometr.h>

Полный список членов класса

Открытые статические члены

static bool isPointInPolygon (const YPoint< double > &point, const YPoint< double > *polygon, int polygon_points_number)

Методы

bool PolyFun::isPointInPolygon | ( | const YPoint< double > & | point,
 |  | const YPoint< double > * | polygon,
 |  | int | polygon_points_number |
 | ) |  |  | [static]

Объявления и описания членов классов находятся в файлах:
  • ygeometr.h
  • ygeometr.cpp


Pipe Line Filters: Класс Vtl::Plf::Port

Vtl::Plf::Port

Класс Vtl::Plf::Port
[Ports and buffers]

Базовый класс для понятия "\b порт". Определяет функциональность, необходимую для работы системы фильтров. Подробнее...

#include <plf_port.h>

Граф наследования:Vtl::Plf::Port:

[см. легенду]
Граф связей класса Vtl::Plf::Port:

[см. легенду]
Полный список членов класса

Открытые члены

virtual | ~Port ()
virtual FilterElementary * | getFilter ()
virtual int | getPort ()
virtual void | print ()
virtual ImgSize | getImageSize () const=0

Защищенные члены

Port ()
>forbidden
void | _init (FilterElementary *_filter, int _port)

Закрытые члены

Port (const Port &)
Port & | operator= (const Port &)
>forbidden

Закрытые данные

FilterElementary * filter
int | port

Подробное описание

Базовый класс для понятия "\b порт". Определяет функциональность, необходимую для работы системы фильтров.

class Port

Конструктор(ы)

Vtl::Plf::Port::Port ( const Port & ) [private]

Vtl::Plf::Port::Port ( ) [inline, protected]

>forbidden

virtual Vtl::Plf::Port::~Port ( ) [inline, virtual]

Методы

Port& Vtl::Plf::Port::operator= ( const Port & ) [private]

>forbidden

void Vtl::Plf::Port::_init | ( | FilterElementary * | _filter,
 |  | int | _port |
 | ) |  |  | [inline, protected]

virtual FilterElementary* Vtl::Plf::Port::getFilter ( ) [inline, virtual]

virtual int Vtl::Plf::Port::getPort ( ) [inline, virtual]

virtual void Vtl::Plf::Port::print ( ) [inline, virtual]

virtual ImgSize Vtl::Plf::Port::getImageSize ( ) const [pure virtual]

размер изображения, с которым идет работа на этом порту, причем: OutPortNoPostProc его непосредственно хранит в StripBuffer (это виртуальнгое изображение) InPort - спрашивает его у того OutPortNoPostProc, к которому подключен.

Замещается в Vtl::Plf::InPort< T >, Vtl::Plf::OutPortNoPostProc< T >, Vtl::Plf::InPort< float > и Vtl::Plf::OutPortNoPostProc< float >.

Данные класса

FilterElementary* Vtl::Plf::Port::filter [private]

int Vtl::Plf::Port::port [private]

Объявления и описания членов класса находятся в файле:
  • plf_port.h


Pipe Line Filters: Шаблон класса Vtl::Types::TL::Print< TList >

Vtl::Types::TL::Print

Шаблон класса Vtl::Types::TL::Print< TList >

Отладка - печать списка: фактических имен типов и sizeof элементов списка. Подробнее...

#include <alexandresku.h>

Полный список членов класса

Открытые статические члены

static std::string str ()

Подробное описание

template<class TList>
class Vtl::Types::TL::Print< TList >

Отладка - печать списка: фактических имен типов и sizeof элементов списка.

Шаблона имеет один параметр.

    Vtl::Types::TL::Print<class TList>
Например:
    typedef TYPELIST_2(char,int) MyList;
    std::cout << Vtl::Types::TL::Print<MyList>::str()<< std::endl;

Методы

template<class TList>
static std::string Vtl::Types::TL::Print< TList >::str ( ) [inline, static]

Объявления и описания членов класса находятся в файле:
  • alexandresku.h


Pipe Line Filters: Структура Vtl::Meta::printPermutations

Vtl::Meta::printPermutations

Структура Vtl::Meta::printPermutations

#include <vtl_meta_permutations.h>

Полный список членов класса

Открытые члены

template<int isOdd, class IList>
void f ()

Подробное описание

Простой пример функтора и отладочный инструмент для ForEachPermutationOfIndexList, ForEachPermutationOfIndexList, Impl::permut.

Методы

template<int isOdd, class IList>
void Vtl::Meta::printPermutations::f ( ) [inline]

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_permutations.h


Pipe Line Filters: Шаблон структуры Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >

Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_

Шаблон структуры Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >

#include <integral_transforms.h>

Полный список членов класса

Открытые статические члены

template<typename I, class ProcPair>
static void | job_c (I n[], I x1, I x2, ProcPair pp)
template<typename I, class ProcPair>
static void | job_single_left (I n[], I &x1, ProcPair pp)
template<typename I, class ProcPair>
static void | job_single_right (I n[], I &x2, ProcPair pp)
template<typename I, class ProcPair>
static void | job_nc (I n[], I &x1, I &x2, ProcPair pp)

template<size_t ndim, bool upper_half>
struct Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >

Методы

template<size_t ndim, bool upper_half>
template<typename I, class ProcPair>
static void Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >::job_c | ( | I | n[],
 |  | I | x1,
 |  | I | x2,
 |  | ProcPair | pp |
 | ) |  |  | [inline, static]

template<size_t ndim, bool upper_half>
template<typename I, class ProcPair>
static void Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >::job_single_left | ( | I | n[],
 |  | I & | x1,
 |  | ProcPair | pp |
 | ) |  |  | [inline, static]

template<size_t ndim, bool upper_half>
template<typename I, class ProcPair>
static void Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >::job_single_right | ( | I | n[],
 |  | I & | x2,
 |  | ProcPair | pp |
 | ) |  |  | [inline, static]

template<size_t ndim, bool upper_half>
template<typename I, class ProcPair>
static void Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >::job_nc | ( | I | n[],
 |  | I & | x1,
 |  | I & | x2,
 |  | ProcPair | pp |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон структуры Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >

Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >

Шаблон структуры Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >

#include <integral_transforms.h>

Полный список членов класса

Открытые статические члены

template<typename I, class ProcPair>
static void | job_c (I n[], I &x1, I &x2, ProcPair pp)
template<typename I, class ProcPair>
static void | job_single_left (I n[], I &x1, ProcPair pp)
template<typename I, class ProcPair>
static void | job_single_right (I n[], I &x2, ProcPair pp)
template<typename I, class ProcPair>
static void | job_nc (I n[], I &x1, I &x2, ProcPair pp)

template<bool upper_half>
struct Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >

Методы

template<bool upper_half>
template<typename I, class ProcPair>
static void Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >::job_c | ( | I | n[],
 |  | I & | x1,
 |  | I & | x2,
 |  | ProcPair | pp |
 | ) |  |  | [inline, static]

template<bool upper_half>
template<typename I, class ProcPair>
static void Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >::job_single_left | ( | I | n[],
 |  | I & | x1,
 |  | ProcPair | pp |
 | ) |  |  | [inline, static]

template<bool upper_half>
template<typename I, class ProcPair>
static void Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >::job_single_right | ( | I | n[],
 |  | I & | x2,
 |  | ProcPair | pp |
 | ) |  |  | [inline, static]

template<bool upper_half>
template<typename I, class ProcPair>
static void Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >::job_nc | ( | I | n[],
 |  | I & | x1,
 |  | I & | x2,
 |  | ProcPair | pp |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Класс ProcessMatrix

Класс ProcessMatrix

#include <_imtransf.h>

Полный список членов класса

Открытые члены

ProcessMatrix (int width=0, int height=0)
~ProcessMatrix ()
void | clear ()
void | setSize (int width, int height)
void | set (const YPoint< int > &cell, bool value)
void | set (const YRect< int > &area, bool value)
const bool & | at (const YPoint< int > &cell) const
bool & | at (const YPoint< int > &cell)

Закрытые данные

bool * | matrix_
int | w_
int | h_

Конструктор(ы)

ProcessMatrix::ProcessMatrix | ( | int | width = 0,
 |  | int | height = 0 |
 | ) |  |  | [inline]

ProcessMatrix::~ProcessMatrix ( ) [inline]

Методы

void ProcessMatrix::clear ( ) [inline]

void ProcessMatrix::setSize | ( | int | width,
 |  | int | height |
 | ) |  |  | [inline]

void ProcessMatrix::set | ( | const YPoint< int > & | cell,
 |  | bool | value |
 | ) |  |  | [inline]

void ProcessMatrix::set | ( | const YRect< int > & | area,
 |  | bool | value |
 | ) |  |  | [inline]

const bool& ProcessMatrix::at ( const YPoint< int > & cell ) const [inline]

bool& ProcessMatrix::at ( const YPoint< int > & cell ) [inline]

Данные класса

bool* ProcessMatrix::matrix_ [private]

int ProcessMatrix::w_ [private]

int ProcessMatrix::h_ [private]

Объявления и описания членов класса находятся в файле:
  • _imtransf.h


Pipe Line Filters: Шаблон структуры Vtl::Plf::F21::Prod< T >

Vtl::Plf::F21::Prod

Шаблон структуры Vtl::Plf::F21::Prod< T >

Функтор Prod для фильтра PixByPix2to1. Из двух серых изображений вычисляет одно по формуле $ I_1(x,y)*I_2(x,y) $. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

template<typename T1>
T operator() (T1 val1, T1 val2)

Подробное описание

template<typename T>
struct Vtl::Plf::F21::Prod< T >

Функтор Prod для фильтра PixByPix2to1. Из двух серых изображений вычисляет одно по формуле $ I_1(x,y)*I_2(x,y) $.

Методы

template<typename T>
template<typename T1>
T Vtl::Plf::F21::Prod< T >::operator() | ( | T1 | val1,
 |  | T1 | val2 |
 | ) |  |  | [inline]

Объявления и описания членов структуры находятся в файле:
  • plf_functors.h


Pipe Line Filters: Класс ProgressCounter

Класс ProgressCounter

#include <progrcnt.h>

Полный список членов класса

Открытые члены

ProgressCounter ()
virtual | ~ProgressCounter ()
virtual bool | russian () const=0
virtual void | start (const char *filter_name, int count_start, int count_end)=0
virtual bool | current (int count_current)=0
virtual void | finish ()=0
virtual void | error (const char *msg)=0
virtual bool | InProgress () const=0

Подробное описание

class ProgressCounter предназначен для использования долгими вычислительными процедурами для информирования пользователя об проценте выполнения. При начале процедуры следует вызвать start() указав начальное значени счетчика, конечное значени счетчика и название обработки (с большой буквы без точки в конце) на русском или английском в соответствии со значением возвращенным russian(). По мере работы процедуры следует вызывать current(), передавая текущее значение счетчика. Если current() возвратит 'true' - следует немедленно прервать(завершить) работу вычислительной процедуры. Работа процедуры ОБЯЗАТЕЛЬНО должна заканчиваться вызовом finish() или error(). При прерывании процедуры пользователем следует вызывать finish().
См. также:
consolap.h
Примеры:

invert.cpp.

Конструктор(ы)

ProgressCounter::ProgressCounter ( ) [inline]

virtual ProgressCounter::~ProgressCounter ( ) [inline, virtual]

Методы

virtual bool ProgressCounter::russian ( ) const [pure virtual]

virtual void ProgressCounter::start | ( | const char * | filter_name,
 |  | int | count_start,
 |  | int | count_end |
 | ) |  |  | [pure virtual]

Примеры:
invert.cpp и work_with_image.cpp.

virtual bool ProgressCounter::current ( int count_current ) [pure virtual]

Примеры:
invert.cpp и work_with_image.cpp.

virtual void ProgressCounter::finish ( ) [pure virtual]

Примеры:
invert.cpp и work_with_image.cpp.

virtual void ProgressCounter::error ( const char * msg ) [pure virtual]

virtual bool ProgressCounter::InProgress ( ) const [pure virtual]

Объявления и описания членов класса находятся в файле:
  • progrcnt.h


Pipe Line Filters: Шаблон класса Basics3D::Structure::ProjectiveToMetric< T >

Basics3D::Structure::ProjectiveToMetric

Шаблон класса Basics3D::Structure::ProjectiveToMetric< T >

#include <sfm_reconsruction.h>

Полный список членов класса

Открытые типы

typedef Types< T >::value_type | value_type
typedef Types< T >::Vector_3 | Vector_3
typedef Types< T >::Vector_4 | Vector_4
typedef Types< T >::Matrix_3x3 | Matrix_3x3
typedef Types< T >::Matrix_3x4 | Matrix_3x4
typedef Types< T >::Matrix_4x4 | Matrix_4x4

Открытые члены

ProjectiveToMetric (value_type focus, Matrix_3x4 &P1_, Matrix_3x4 &P2_)
void | operator() (Matrix_4x4 &H)
1 - поиск p, 0 - поиск p и f .

Закрытые члены

value_type | build_Functional (const Vector_3 &p, value_type focus_sqr) const
template<int i>
value_type | build_Functional_derivative (const Vector_3 &p, value_type focus_sqr) const
value_type | build_Functional_derivative_d_focus_sqr (const Vector_3 &p, value_type focus_sqr) const
Matrix_3x3 | build_PQPT_KKT (const Matrix_4x4 &Q, const Matrix_3x4 &P, const Matrix_3x3 &KKT) const

Закрытые статические члены

static Matrix_3x3 | build_PQPT (const Matrix_4x4 &Q, const Matrix_3x4 &P)
static Matrix_4x4 | build_Qoo (const Vector_3 &p, value_type focus_sqr)
static void | build_Qoo (Matrix_4x4 &Q, const Vector_3 &p, value_type focus_sqr)
template<int i>
static Matrix_4x4 | build_Qoo_d_p (const Vector_3 &p, value_type focus_sqr)
template<int i>
static void | build_Qoo_d_p (Matrix_4x4 &Qd, const Vector_3 &p, value_type focus_sqr)
static Matrix_4x4 | build_Qoo_d_focus_sqr (const Vector_3 &p)
static void | build_Qoo_d_focus_sqr (Matrix_4x4 &Qd, const Vector_3 &p)
static void | build_KKT (Matrix_3x3 &KKT, value_type focus_sqr)
static void | build_KKT_d_focus_sqr (Matrix_3x3 &KKT)
static value_type | frobenius_norm_sqr (const Matrix_3x3 &A)
static value_type | frobenius_norm_sqr_derivative (const Matrix_3x3 &A, const Matrix_3x3 &A_deriv)
static void | build_H (Matrix_4x4 &H, const Vector_3 &p, value_type focus)

Закрытые данные

const value_type | focus_sqr
const Matrix_3x4 & | P1
const Matrix_3x4 & | P2

Подробное описание

template<typename T>
class Basics3D::Structure::ProjectiveToMetric< T >

Ищет матрицу проективного преобразования по [Hartley, Zisserman 2004] прямой минимизацией выражения (19.16) стр.467. Предполагается что матрицы камер Pi и калибровочные матрицы Ki уже найдены, причем калибровочные матрицы одинаковы и диагональны, AspectRatio =1 и фокусные расстояния обеих камер одинаковы. Ищется только вектор p=(p1,p2,p3)^T.

Определения типов

template<typename T>
typedef Types<T>::value_type Basics3D::Structure::ProjectiveToMetric< T >::value_type

template<typename T>
typedef Types<T>::Vector_3 Basics3D::Structure::ProjectiveToMetric< T >::Vector_3

template<typename T>
typedef Types<T>::Vector_4 Basics3D::Structure::ProjectiveToMetric< T >::Vector_4

template<typename T>
typedef Types<T>::Matrix_3x3 Basics3D::Structure::ProjectiveToMetric< T >::Matrix_3x3

template<typename T>
typedef Types<T>::Matrix_3x4 Basics3D::Structure::ProjectiveToMetric< T >::Matrix_3x4

template<typename T>
typedef Types<T>::Matrix_4x4 Basics3D::Structure::ProjectiveToMetric< T >::Matrix_4x4

Конструктор(ы)

template<typename T>
Basics3D::Structure::ProjectiveToMetric< T >::ProjectiveToMetric | ( | value_type | focus,
 |  | Matrix_3x4 & | P1_,
 |  | Matrix_3x4 & | P2_ |
 | ) |  |  | [inline]

Методы

template<typename T>
void Basics3D::Structure::ProjectiveToMetric< T >::operator() ( Matrix_4x4 & H ) [inline]

1 - поиск p, 0 - поиск p и f .

template<typename T>
value_type Basics3D::Structure::ProjectiveToMetric< T >::build_Functional | ( | const Vector_3 & | p,
 |  | value_type | focus_sqr |
 | ) |  |  | const [inline, private]

template<typename T>
template<int i>
value_type Basics3D::Structure::ProjectiveToMetric< T >::build_Functional_derivative | ( | const Vector_3 & | p,
 |  | value_type | focus_sqr |
 | ) |  |  | const [inline, private]

template<typename T>
value_type Basics3D::Structure::ProjectiveToMetric< T >::build_Functional_derivative_d_focus_sqr | ( | const Vector_3 & | p,
 |  | value_type | focus_sqr |
 | ) |  |  | const [inline, private]

template<typename T>
Matrix_3x3 Basics3D::Structure::ProjectiveToMetric< T >::build_PQPT_KKT | ( | const Matrix_4x4 & | Q,
 |  | const Matrix_3x4 & | P,
 |  | const Matrix_3x3 & | KKT |
 | ) |  |  | const [inline, private]

template<typename T>
static Matrix_3x3 Basics3D::Structure::ProjectiveToMetric< T >::build_PQPT | ( | const Matrix_4x4 & | Q,
 |  | const Matrix_3x4 & | P |
 | ) |  |  | [inline, static, private]

template<typename T>
static Matrix_4x4 Basics3D::Structure::ProjectiveToMetric< T >::build_Qoo | ( | const Vector_3 & | p,
 |  | value_type | focus_sqr |
 | ) |  |  | [inline, static, private]

template<typename T>
static void Basics3D::Structure::ProjectiveToMetric< T >::build_Qoo | ( | Matrix_4x4 & | Q,
 |  | const Vector_3 & | p,
 |  | value_type | focus_sqr |
 | ) |  |  | [inline, static, private]

template<typename T>
template<int i>
static Matrix_4x4 Basics3D::Structure::ProjectiveToMetric< T >::build_Qoo_d_p | ( | const Vector_3 & | p,
 |  | value_type | focus_sqr |
 | ) |  |  | [inline, static, private]

template<typename T>
template<int i>
static void Basics3D::Structure::ProjectiveToMetric< T >::build_Qoo_d_p | ( | Matrix_4x4 & | Qd,
 |  | const Vector_3 & | p,
 |  | value_type | focus_sqr |
 | ) |  |  | [inline, static, private]

template<typename T>
static Matrix_4x4 Basics3D::Structure::ProjectiveToMetric< T >::build_Qoo_d_focus_sqr ( const Vector_3 & p ) [inline, static, private]

template<typename T>
static void Basics3D::Structure::ProjectiveToMetric< T >::build_Qoo_d_focus_sqr | ( | Matrix_4x4 & | Qd,
 |  | const Vector_3 & | p |
 | ) |  |  | [inline, static, private]

template<typename T>
static void Basics3D::Structure::ProjectiveToMetric< T >::build_KKT | ( | Matrix_3x3 & | KKT,
 |  | value_type | focus_sqr |
 | ) |  |  | [inline, static, private]

template<typename T>
static void Basics3D::Structure::ProjectiveToMetric< T >::build_KKT_d_focus_sqr ( Matrix_3x3 & KKT ) [inline, static, private]

template<typename T>
static value_type Basics3D::Structure::ProjectiveToMetric< T >::frobenius_norm_sqr ( const Matrix_3x3 & A ) [inline, static, private]

template<typename T>
static value_type Basics3D::Structure::ProjectiveToMetric< T >::frobenius_norm_sqr_derivative | ( | const Matrix_3x3 & | A,
 |  | const Matrix_3x3 & | A_deriv |
 | ) |  |  | [inline, static, private]

template<typename T>
static void Basics3D::Structure::ProjectiveToMetric< T >::build_H | ( | Matrix_4x4 & | H,
 |  | const Vector_3 & | p,
 |  | value_type | focus |
 | ) |  |  | [inline, static, private]

Данные класса

template<typename T>
const value_type Basics3D::Structure::ProjectiveToMetric< T >::focus_sqr [private]

template<typename T>
const Matrix_3x4& Basics3D::Structure::ProjectiveToMetric< T >::P1 [private]

template<typename T>
const Matrix_3x4& Basics3D::Structure::ProjectiveToMetric< T >::P2 [private]

Объявления и описания членов класса находятся в файле:
  • sfm_reconsruction.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::Lin::PseudoInverseElem< T >

Vtl::NumAlg::Lin::PseudoInverseElem

Шаблон класса Vtl::NumAlg::Lin::PseudoInverseElem< T >

#include <_num_boost_adds.h>

Полный список членов класса

Открытые члены

PseudoInverseElem (const T &_eps)
void | operator() (T &elem) const

Закрытые данные

T | eps

Подробное описание

template<typename T>
class Vtl::NumAlg::Lin::PseudoInverseElem< T >

Обращает число в смысле как псевдообратные сингулярных чисел, но с учетом знака, т.е.

return (abs(value)>eps)? 1/value : 0;

Конструктор(ы)

template<typename T>
Vtl::NumAlg::Lin::PseudoInverseElem< T >::PseudoInverseElem ( const T & _eps ) [inline]

Методы

template<typename T>
void Vtl::NumAlg::Lin::PseudoInverseElem< T >::operator() ( T & elem ) const [inline]

Данные класса

template<typename T>
T Vtl::NumAlg::Lin::PseudoInverseElem< T >::eps [private]

Объявления и описания членов класса находятся в файле:
  • _num_boost_adds.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::Lin::PseudoInverseElemPositive< T >

Vtl::NumAlg::Lin::PseudoInverseElemPositive

Шаблон класса Vtl::NumAlg::Lin::PseudoInverseElemPositive< T >

#include <_num_boost_adds.h>

Полный список членов класса

Открытые члены

PseudoInverseElemPositive (const T &_eps)
void | operator() (T &elem) const

Закрытые данные

T | eps

Подробное описание

template<typename T>
class Vtl::NumAlg::Lin::PseudoInverseElemPositive< T >

Обращает число в смысле как псевдообратные сингулярных чисел, т.е.

return (value>eps)? 1/value : 0;

Предполагается, что value >=0

Конструктор(ы)

template<typename T>
Vtl::NumAlg::Lin::PseudoInverseElemPositive< T >::PseudoInverseElemPositive ( const T & _eps ) [inline]

Методы

template<typename T>
void Vtl::NumAlg::Lin::PseudoInverseElemPositive< T >::operator() ( T & elem ) const [inline]

Данные класса

template<typename T>
T Vtl::NumAlg::Lin::PseudoInverseElemPositive< T >::eps [private]

Объявления и описания членов класса находятся в файле:
  • _num_boost_adds.h


Pipe Line Filters: Шаблон структуры Basics3D::Structure::Pt< T >

Basics3D::Structure::Pt

Шаблон структуры Basics3D::Structure::Pt< T >

#include <sfm_reconsruction.h>

Граф наследования:Basics3D::Structure::Pt< T >:

[см. легенду]
Полный список членов класса

Открытые атрибуты

Types< T >::Vector_3 | p3D
Types< T >::Vector_2 | p1
Types< T >::Vector_2 | p2
PointStatus::Flags flag
int | id

template<typename T>
struct Basics3D::Structure::Pt< T >

Данные класса

template<typename T>
Types<T>::Vector_3 Basics3D::Structure::Pt< T >::p3D

template<typename T>
Types<T>::Vector_2 Basics3D::Structure::Pt< T >::p1

template<typename T>
Types<T>::Vector_2 Basics3D::Structure::Pt< T >::p2

template<typename T>
PointStatus::Flags Basics3D::Structure::Pt< T >::flag

template<typename T>
int Basics3D::Structure::Pt< T >::id

Объявления и описания членов структуры находятся в файле:
  • sfm_reconsruction.h


Pipe Line Filters: Шаблон класса PtrArrayDel< T >

Шаблон класса PtrArrayDel< T >
[Работа с памятью.]

#include <ymem.h>

Полный список членов класса

Открытые члены

PtrArrayDel ()
virtual | ~PtrArrayDel ()
void | clear ()
T ** | Get ()
const T ** | Get () const
int | Size () const
void | Make (int n)
T *& | operator[] (int i)
T *const | operator[] (int i) const

Закрытые данные

T ** | ptr
int | size

template<class T>
class PtrArrayDel< T >

Конструктор(ы)

template<class T>
PtrArrayDel< T >::PtrArrayDel ( ) [inline]

template<class T>
virtual PtrArrayDel< T >::~PtrArrayDel ( ) [inline, virtual]

Методы

template<class T>
void PtrArrayDel< T >::clear ( ) [inline]

template<class T>
T** PtrArrayDel< T >::Get ( ) [inline]

template<class T>
const T** PtrArrayDel< T >::Get ( ) const [inline]

template<class T>
int PtrArrayDel< T >::Size ( ) const [inline]

template<class T>
void PtrArrayDel< T >::Make ( int n ) [inline]

template<class T>
T*& PtrArrayDel< T >::operator[] ( int i ) [inline]

template<class T>
T* const PtrArrayDel< T >::operator[] ( int i ) const [inline]

Данные класса

template<class T>
T** PtrArrayDel< T >::ptr [private]

template<class T>
int PtrArrayDel< T >::size [private]

Объявления и описания членов класса находятся в файле:
  • ymem.h


Pipe Line Filters: Шаблон класса PtrDelete< T >

Шаблон класса PtrDelete< T >
[Работа с памятью.]

#include <ymem.h>

Полный список членов класса

Открытые члены

PtrDelete ()
PtrDelete (T *p, int n=1)
virtual | ~PtrDelete ()
void | clear ()
void | Set (T *p, int n=1)
T * | Make (int n)
T * | Get () const
int | Size () const

Закрытые данные

T * | ptr
int | len

template<class T>
class PtrDelete< T >

Конструктор(ы)

template<class T>
PtrDelete< T >::PtrDelete ( ) [inline]

template<class T>
PtrDelete< T >::PtrDelete | ( | T * | p,
 |  | int | n = 1 |
 | ) |  |  | [inline]

template<class T>
virtual PtrDelete< T >::~PtrDelete ( ) [inline, virtual]

Методы

template<class T>
void PtrDelete< T >::clear ( ) [inline]

template<class T>
void PtrDelete< T >::Set | ( | T * | p,
 |  | int | n = 1 |
 | ) |  |  | [inline]

template<class T>
T* PtrDelete< T >::Make ( int n ) [inline]

template<class T>
T* PtrDelete< T >::Get ( ) const [inline]

template<class T>
int PtrDelete< T >::Size ( ) const [inline]

Данные класса

template<class T>
T* PtrDelete< T >::ptr [private]

template<class T>
int PtrDelete< T >::len [private]

Объявления и описания членов класса находятся в файле:
  • ymem.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::PushBack< i, IndexList< j, Tail > >

Vtl::Meta::IL::PushBack< i, IndexList< j, Tail > >

Шаблон структуры Vtl::Meta::IL::PushBack< i, IndexList< j, Tail > >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

typedef IndexList< j, typename
PushBack< i, Tail >::Result > 		Result

template<int i, int j, class Tail>
struct Vtl::Meta::IL::PushBack< i, IndexList< j, Tail > >

Определения типов

template<int i, int j, class Tail>
typedef IndexList<j,typename PushBack<i,Tail>::Result > Vtl::Meta::IL::PushBack< i, IndexList< j, Tail > >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::PushBack< i, Loki::NullType >

Vtl::Meta::IL::PushBack< i, Loki::NullType >

Шаблон структуры Vtl::Meta::IL::PushBack< i, Loki::NullType >

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

typedef IndexList< i, Loki::NullType > Result

template<int i>
struct Vtl::Meta::IL::PushBack< i, Loki::NullType >

Определения типов

template<int i>
typedef IndexList<i,Loki::NullType> Vtl::Meta::IL::PushBack< i, Loki::NullType >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::IL::PushFront< i, IList >

Vtl::Meta::IL::PushFront

Шаблон структуры Vtl::Meta::IL::PushFront< i, IList >

Создать новый список состоящий из числа i за которым идут числа из списка IList. Подробнее...

#include <vtl_meta_IndexList.h>

Полный список членов класса

Открытые типы

typedef IndexList< i, IList > Result

Подробное описание

template<int i, class IList>
struct Vtl::Meta::IL::PushFront< i, IList >

Создать новый список состоящий из числа i за которым идут числа из списка IList.

Определения типов

template<int i, class IList>
typedef IndexList<i,IList> Vtl::Meta::IL::PushFront< i, IList >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_IndexList.h


Pipe Line Filters: Класс Vtl::NumAlg::Lin::QR

Vtl::NumAlg::Lin::QR

Класс Vtl::NumAlg::Lin::QR

#include <_num_qr.h>

Полный список членов класса

Открытые статические члены

template<class MatrixQR, class VectorR>
static void | decomp (MatrixQR &QR_, VectorR &Rdiag)
template<class MatrixQR, class MatrixQ, class MatrixR, class VectorR>
static void | decomp (MatrixQR &QR_, MatrixQ &Q, MatrixR &R, VectorR &Rdiag)
template<class MatrixQR, class MatrixR, class VectorR>
static void | getR (const MatrixQR &QR_, const VectorR &Rdiag, MatrixR &R)
template<class MatrixQR, class MatrixQ, class VectorR>
static void | getQ (const MatrixQR &QR_, const VectorR &Rdiag, MatrixQ &Q)
template<class VectorR>
static bool | isFullRank (const VectorR &Rdiag)
template<class MatrixQR, class MatrixH>
static void | getHouseholder (const MatrixQR &QR_, MatrixH &H)

Подробное описание

Classical QR Decompisition: for an m-by-n matrix A with m >= n, the QR decomposition is an m-by-n orthogonal matrix Q and an n-by-n upper triangular matrix R so that A = Q*R.

The QR decompostion always exists, even if the matrix does not have full rank, so the constructor will never fail. The primary use of the QR decomposition is in the least squares solution of nonsquare systems of simultaneous linear equations. This will fail if isFullRank() returns 0 (false).

The Q and R factors can be retrived via the getQ() and getR() methods. Furthermore, a solve() method is provided to find the least squares solution of Ax=b using the QR factors.

(Adapted from JAMA, a Java Matrix Library, developed by jointly by the Mathworks and NIST; see http://math.nist.gov/javanumerics/jama).

Примеры:

test_boost_mtr.cpp.

Методы

template<class MatrixQR, class VectorR>
static void Vtl::NumAlg::Lin::QR::decomp | ( | MatrixQR & | QR_,
 |  | VectorR & | Rdiag |
 | ) |  |  | [inline, static]

Create a QR factorization object for A.

Аргументы:
QR_ | - is a rectangular (m>=n) matrix.
QR_ | the (ecnomy-sized) orthogonal factor (Q*R=A).
Rdiag

template<class MatrixQR, class MatrixQ, class MatrixR, class VectorR>
static void Vtl::NumAlg::Lin::QR::decomp | ( | MatrixQR & | QR_,
 |  | MatrixQ & | Q,
 |  | MatrixR & | R,
 |  | VectorR & | Rdiag |
 | ) |  |  | [inline, static]

template<class MatrixQR, class MatrixR, class VectorR>
static void Vtl::NumAlg::Lin::QR::getR | ( | const MatrixQR & | QR_,
 |  | const VectorR & | Rdiag,
 |  | MatrixR & | R |
 | ) |  |  | [inline, static]

Return the upper triangular factor, R, of the QR factorization

Аргументы:
QR_ | the (ecnomy-sized) orthogonal factor (Q*R=A).
Rdiag
R | - result

template<class MatrixQR, class MatrixQ, class VectorR>
static void Vtl::NumAlg::Lin::QR::getQ | ( | const MatrixQR & | QR_,
 |  | const VectorR & | Rdiag,
 |  | MatrixQ & | Q |
 | ) |  |  | [inline, static]

Generate and return the (economy-sized) orthogonal factor

Аргументы:
QR_ | the (ecnomy-sized) orthogonal factor (Q*R=A).
Rdiag
Q | - result

template<class VectorR>
static bool Vtl::NumAlg::Lin::QR::isFullRank ( const VectorR & Rdiag ) [inline, static]

Flag to denote the matrix is of full rank.

Возвращает:
1 if matrix is full rank, 0 otherwise.

template<class MatrixQR, class MatrixH>
static void Vtl::NumAlg::Lin::QR::getHouseholder | ( | const MatrixQR & | QR_,
 |  | MatrixH & | H |
 | ) |  |  | [inline, static]

Retreive the Householder vectors from QR factorization

Возвращает:
lower trapezoidal matrix whose columns define the reflections

Объявления и описания членов класса находятся в файле:
  • _num_qr.h


Pipe Line Filters: Шаблон структуры Quaternion< T >

Шаблон структуры Quaternion< T >

#include <sfm_quaternion.h>

Полный список членов класса

Открытые типы

typedef boost::numeric::ublas::c_matrix<
T, 3, 3 > 		RotationMatrix
typedef boost::numeric::ublas::c_vector<
T, 3 > 		Vector3

Открытые члены

Quaternion ()
Quaternion (const Quaternion &p)
Quaternion (T q0, T q1, T q2, T q3)
Quaternion & | operator= (const Quaternion &p)
Quaternion (const RotationMatrix R)
Construct from ROTATION MATRIX.
T | Modul () const
void | Normalize ()
operator RotationMatrix ()
Construct from ROTATION MATRIX.
Quaternion | operator * (const Quaternion &p) const
Quaternion | operator * (T cof) const
Quaternion | operator/ (T cof) const
Quaternion | inverse () const
Vector3 | toRot (T &angle)
Quaternion (const Vector3 &axis_, T angle)

Открытые атрибуты

T | q [4]

template<typename T>
struct Quaternion< T >

Определения типов

template<typename T>
typedef boost::numeric::ublas::c_matrix<T,3,3> Quaternion< T >::RotationMatrix

template<typename T>
typedef boost::numeric::ublas::c_vector<T,3> Quaternion< T >::Vector3

Конструктор(ы)

template<typename T>
Quaternion< T >::Quaternion ( ) [inline]

template<typename T>
Quaternion< T >::Quaternion ( const Quaternion< T > & p ) [inline]

template<typename T>
Quaternion< T >::Quaternion | ( | T | q0,
 |  | T | q1,
 |  | T | q2,
 |  | T | q3 |
 | ) |  |  | [inline, explicit]

template<typename T>
Quaternion< T >::Quaternion ( const RotationMatrix R ) [inline, explicit]

Construct from ROTATION MATRIX.

template<typename T>
Quaternion< T >::Quaternion | ( | const Vector3 & | axis_,
 |  | T | angle |
 | ) |  |  | [inline, explicit]

Методы

template<typename T>
Quaternion& Quaternion< T >::operator= ( const Quaternion< T > & p ) [inline]

template<typename T>
T Quaternion< T >::Modul ( ) const [inline]

template<typename T>
void Quaternion< T >::Normalize ( ) [inline]

template<typename T>
Quaternion< T >::operator RotationMatrix ( ) [inline]

Construct from ROTATION MATRIX.

template<typename T>
Quaternion Quaternion< T >::operator * ( const Quaternion< T > & p ) const [inline]

template<typename T>
Quaternion Quaternion< T >::operator * ( T cof ) const [inline]

template<typename T>
Quaternion Quaternion< T >::operator/ ( T cof ) const [inline]

template<typename T>
Quaternion Quaternion< T >::inverse ( ) const [inline]

template<typename T>
Vector3 Quaternion< T >::toRot ( T & angle ) [inline]

Данные класса

template<typename T>
T Quaternion< T >::q[4]

Объявления и описания членов структуры находятся в файле:
  • sfm_quaternion.h


Pipe Line Filters: Класс ReadPipe

Класс ReadPipe

#include <apipe.h>

Полный список членов класса

Открытые члены

~ReadPipe ()
bool | isEof () const
void | close ()
unsigned | readNoWait (char *data, unsigned len)
unsigned | readWait (char *data, unsigned len)

Закрытые члены

ReadPipe ()
ReadPipe (HANDLE handle)
ReadPipe (const ReadPipe &)
ReadPipe & | operator= (const ReadPipe &)
void | open (HANDLE handle)

Закрытые данные

HANDLE | handle_

Друзья

class | childPipe

Конструктор(ы)

ReadPipe::ReadPipe ( ) [inline, private]

ReadPipe::ReadPipe ( HANDLE handle ) [inline, private]

ReadPipe::ReadPipe ( const ReadPipe & ) [private]

ReadPipe::~ReadPipe ( ) [inline]

Методы

ReadPipe& ReadPipe::operator= ( const ReadPipe & ) [private]

void ReadPipe::open ( HANDLE handle ) [inline, private]

bool ReadPipe::isEof ( ) const [inline]

void ReadPipe::close ( )

unsigned ReadPipe::readNoWait | ( | char * | data,
 |  | unsigned | len
 | ) |  |

unsigned ReadPipe::readWait | ( | char * | data,
 |  | unsigned | len
 | ) |  |

Документация по друзьям класса и функциям, отноносящимся к классу

friend class childPipe [friend]

Данные класса

HANDLE ReadPipe::handle_ [private]

Объявления и описания членов классов находятся в файлах:
  • apipe.h
  • apipe.cpp


Pipe Line Filters: Класс ReadString

Класс ReadString

#include <apipe.h>

Граф связей класса ReadString:

[см. легенду]
Полный список членов класса

Открытые члены

ReadString (ReadPipe &rdpipe, unsigned max_string_len)
char * | gets (char *buf)
bool | IsAvail ()
bool | IsEOF () const

Закрытые члены

void | copy ()

Закрытые данные

ReadPipe & rdpipe_
const unsigned | max_len
std::vector< char > | buffer
unsigned | first_pos2
unsigned | last_pos2
unsigned | pos
bool | null_detected
bool | eof_detected
char | last_char

Конструктор(ы)

ReadString::ReadString | ( | ReadPipe & | rdpipe,
 |  | unsigned | max_string_len
 | ) |  |

Методы

void ReadString::copy ( ) [private]

char * ReadString::gets ( char * buf )

bool ReadString::IsAvail ( )

bool ReadString::IsEOF ( ) const [inline]

Данные класса

ReadPipe& ReadString::rdpipe_ [private]

const unsigned ReadString::max_len [private]

std::vector<char> ReadString::buffer [private]

unsigned ReadString::first_pos2 [private]

unsigned ReadString::last_pos2 [private]

unsigned ReadString::pos [private]

bool ReadString::null_detected [private]

bool ReadString::eof_detected [private]

char ReadString::last_char [private]

Объявления и описания членов классов находятся в файлах:
  • apipe.h
  • apipe.cpp


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::Rect< T, D >

Vtl::ImAlg::WndFun::Rect

Шаблон класса Vtl::ImAlg::WndFun::Rect< T, D >

Прямоугольное окно . Определяется формулой. Подробнее...

#include <windowing_fun.h>

Полный список членов класса

Открытые члены

template<class TT>
Rect (TT size_)
template<class TT>
T | operator() (TT x) const

Открытые статические члены

static const char * | Name ()

Закрытые члены

T | result (T x, Loki::Int2Type< 0 >) const

Подробное описание

template<typename T, unsigned D>
class Vtl::ImAlg::WndFun::Rect< T, D >

Прямоугольное окно . Определяется формулой.

Производные не определены.

Конструктор(ы)

template<typename T, unsigned D>
template<class TT>
Vtl::ImAlg::WndFun::Rect< T, D >::Rect ( TT size_ ) [inline]

Методы

template<typename T, unsigned D>
static const char* Vtl::ImAlg::WndFun::Rect< T, D >::Name ( ) [inline, static]

template<typename T, unsigned D>
template<class TT>
T Vtl::ImAlg::WndFun::Rect< T, D >::operator() ( TT x ) const [inline]

template<typename T, unsigned D>
T Vtl::ImAlg::WndFun::Rect< T, D >::result | ( | T | x,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | const [inline, private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >

Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther

Шаблон класса Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Отражает данные из полуплоскости (верхней или нижней), заданной параметром fromUpToDown в другую. Данные не имеющие пары прописываются нулем. Подробнее...

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

ReflectHalfToOther (T amp[])
template<bool upper_half, typename I>
void | operator() (I plus_k, I minus_k, Loki::Int2Type< upper_half >)
template<typename I>
void | operator() (I k, Loki::Int2Type< false >)
template<typename I>
void | operator() (I k, Loki::Int2Type< true >)

Закрытые члены

template<typename I>
void | set_amp (I plus_k, I minus_k, Loki::Int2Type< true >)
template<typename I>
void | set_amp (I plus_k, I minus_k, Loki::Int2Type< false >)

Закрытые данные

T * | amp_

Подробное описание

template<unsigned ndim, typename T, bool fromUpToDown>
class Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Отражает данные из полуплоскости (верхней или нижней), заданной параметром fromUpToDown в другую. Данные не имеющие пары прописываются нулем.

Функтор применим для любой размерности пространства, в т.ч. ndim>2.

Конструктор(ы)

template<unsigned ndim, typename T, bool fromUpToDown>
Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >::ReflectHalfToOther ( T amp[] ) [inline]

Методы

template<unsigned ndim, typename T, bool fromUpToDown>
template<typename I>
void Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >::set_amp | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< true > |  |
 | ) |  |  | [inline, private]

template<unsigned ndim, typename T, bool fromUpToDown>
template<typename I>
void Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >::set_amp | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< false > |  |
 | ) |  |  | [inline, private]

template<unsigned ndim, typename T, bool fromUpToDown>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >::operator() | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > |  |
 | ) |  |  | [inline]

template<unsigned ndim, typename T, bool fromUpToDown>
template<typename I>
void Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >::operator() | ( | I | k,
 |  | Loki::Int2Type< false > |  |
 | ) |  |  | [inline]

template<unsigned ndim, typename T, bool fromUpToDown>
template<typename I>
void Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >::operator() | ( | I | k,
 |  | Loki::Int2Type< true > |  |
 | ) |  |  | [inline]

Данные класса

template<unsigned ndim, typename T, bool fromUpToDown>
T* Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >::amp_ [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Resample< T, P >

Vtl::Plf::Resample

Шаблон класса Vtl::Plf::Resample< T, P >
[Complex filters]

Выполняет масштабирование (resampling) изображения (билинейная интерполяция). Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::Resample< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::Resample< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

InPort< T > & | in ()
OutPort< T, P > & | out ()
Resample ()
Resample (std::string name, int new_width, int new_height, P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (std::string name, int new_width, int new_height, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~Resample ()

Закрытые члены

Resample (const Resample &)
Resample & | operator= (const Resample &)

Закрытые данные

Vtl::Plf::FilterResampleVert<
float > 		v_resamp
Vtl::Plf::FilterResampleHorz<
float, P > 		h_resamp

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::Resample< T, P >

Выполняет масштабирование (resampling) изображения (билинейная интерполяция).

Структура фильтра Resample - масштабирование изображения

Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Resample< T, P >::Resample ( const Resample< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Resample< T, P >::Resample ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Resample< T, P >::Resample | ( | std::string | name,
 |  | int | new_width,
 |  | int | new_height,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::Resample< T, P >::~Resample ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Resample& Vtl::Plf::Resample< T, P >::operator= ( const Resample< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T>& Vtl::Plf::Resample< T, P >::in ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::Resample< T, P >::out ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::Resample< T, P >::Init | ( | std::string | name,
 |  | int | new_width,
 |  | int | new_height,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::FilterResampleVert<float> Vtl::Plf::Resample< T, P >::v_resamp [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::FilterResampleHorz<float,P> Vtl::Plf::Resample< T, P >::h_resamp [private]

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D >

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse

Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D >

#include <convolve.h>

Полный список членов класса

Открытые члены

Reverse (T B, T a1, T a2, T a3, T prev_in)
void | operator() (T &out, T in_cur, T in_next)
void | operator() (T out)

Закрытые данные

HeadR< T, D > | h
Tail< T > | t

template<typename T, unsigned D>
class Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D >

Конструктор(ы)

template<typename T, unsigned D>
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D >::Reverse | ( | T | B,
 |  | T | a1,
 |  | T | a2,
 |  | T | a3,
 |  | T | prev_in |
 | ) |  |  | [inline]

Методы

template<typename T, unsigned D>
void Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D >::operator() | ( | T & | out,
 |  | T | in_cur,
 |  | T | in_next |
 | ) |  |  | [inline]

template<typename T, unsigned D>
void Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D >::operator() ( T out ) [inline]

Данные класса

template<typename T, unsigned D>
HeadR<T,D> Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D >::h [private]

template<typename T, unsigned D>
Tail<T> Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D >::t [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон структуры Vtl::Img::Rgb< T >

Vtl::Img::Rgb

Шаблон структуры Vtl::Img::Rgb< T >

#include <vtl_image_types.h>

Полный список членов класса

Открытые атрибуты

T | r
T | g
T | b

template<typename T>
struct Vtl::Img::Rgb< T >

Данные класса

template<typename T>
T Vtl::Img::Rgb< T >::r

template<typename T>
T Vtl::Img::Rgb< T >::g

template<typename T>
T Vtl::Img::Rgb< T >::b

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Структура IFF::RgbQuad

IFF::RgbQuad

Структура IFF::RgbQuad

#include <bmp.h>

Полный список членов класса

Открытые атрибуты

Byte | b
Byte | g
Byte | r
Byte | reserved

Данные класса

Byte IFF::RgbQuad::b

Byte IFF::RgbQuad::g

Byte IFF::RgbQuad::r

Byte IFF::RgbQuad::reserved

Объявления и описания членов структуры находятся в файле:
  • bmp.h


Pipe Line Filters: Структура Vtl::Img::SampleAccess

Vtl::Img::SampleAccess

Структура Vtl::Img::SampleAccess

#include <vtl_image_types.h>

Полный список членов класса

Открытые атрибуты

void * sample_ptr
uint32_t reserv
uint32_t sample_step
uint32_t sample_nextLineShift

Данные класса

void* Vtl::Img::SampleAccess::sample_ptr

uint32_t Vtl::Img::SampleAccess::reserv

uint32_t Vtl::Img::SampleAccess::sample_step

uint32_t Vtl::Img::SampleAccess::sample_nextLineShift

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Класс Gen::Data::SaveFormat

Gen::Data::SaveFormat

Класс Gen::Data::SaveFormat

#include <datastring.h>

Полный список членов класса

Открытые члены

SaveFormat (std::iostream &stream)
~SaveFormat ()

Закрытые данные

std::iostream & | stream_
std::ios_base::fmtflags | flags

Конструктор(ы)

Gen::Data::SaveFormat::SaveFormat ( std::iostream & stream ) [inline]

Gen::Data::SaveFormat::~SaveFormat ( ) [inline]

Данные класса

std::iostream& Gen::Data::SaveFormat::stream_ [private]

std::ios_base::fmtflags Gen::Data::SaveFormat::flags [private]

Объявления и описания членов класса находятся в файле:
  • datastring.h


Pipe Line Filters: Шаблон класса Hanina::ScaleScan3x3< T >

Hanina::ScaleScan3x3

Шаблон класса Hanina::ScaleScan3x3< T >

#include <ss_ridge_functors.h>

Полный список членов класса

Открытые типы

typedef const T * | Planes_t

Открытые члены

int | Nls () const
ScaleScan3x3 (int nls_set)
T | operator() (const Planes_t *modul, size_t ofs_to_cur, T v1x, T v1y, T v1z, T v2x, T v2y, T v2z)
void | dir_check_max_X (const Planes_t *plane, size_t ofs_to_cur, T vx, T vy, T vz, T &v1, T &v2)
void | dir_check_max_Y (const Planes_t *plane, size_t ofs_to_cur, T vx, T vy, T vz, T &v1, T &v2)
void | dir_check_max_Z (const Planes_t *plane, size_t ofs_to_cur, T vx, T vy, T vz, T &v1, T &v2)
bool | dir_check (const Planes_t *plane, size_t ofs_to_cur, T vx, T vy, T vz)

Закрытые данные

T | thr
int | nls

Подробное описание

template<typename T>
class Hanina::ScaleScan3x3< T >

сканирование стопки изображений окном размера 3х3х3

Определения типов

template<typename T>
typedef const T* Hanina::ScaleScan3x3< T >::Planes_t

Конструктор(ы)

template<typename T>
Hanina::ScaleScan3x3< T >::ScaleScan3x3 ( int nls_set ) [inline]

Методы

template<typename T>
int Hanina::ScaleScan3x3< T >::Nls ( ) const [inline]

template<typename T>
T Hanina::ScaleScan3x3< T >::operator() | ( | const Planes_t * | modul,
 |  | size_t | ofs_to_cur,
 |  | T | v1x,
 |  | T | v1y,
 |  | T | v1z,
 |  | T | v2x,
 |  | T | v2y,
 |  | T | v2z |
 | ) |  |  | [inline]

template<typename T>
void Hanina::ScaleScan3x3< T >::dir_check_max_X | ( | const Planes_t * | plane,
 |  | size_t | ofs_to_cur,
 |  | T | vx,
 |  | T | vy,
 |  | T | vz,
 |  | T & | v1,
 |  | T & | v2 |
 | ) |  |  | [inline]

template<typename T>
void Hanina::ScaleScan3x3< T >::dir_check_max_Y | ( | const Planes_t * | plane,
 |  | size_t | ofs_to_cur,
 |  | T | vx,
 |  | T | vy,
 |  | T | vz,
 |  | T & | v1,
 |  | T & | v2 |
 | ) |  |  | [inline]

template<typename T>
void Hanina::ScaleScan3x3< T >::dir_check_max_Z | ( | const Planes_t * | plane,
 |  | size_t | ofs_to_cur,
 |  | T | vx,
 |  | T | vy,
 |  | T | vz,
 |  | T & | v1,
 |  | T & | v2 |
 | ) |  |  | [inline]

template<typename T>
bool Hanina::ScaleScan3x3< T >::dir_check | ( | const Planes_t * | plane,
 |  | size_t | ofs_to_cur,
 |  | T | vx,
 |  | T | vy,
 |  | T | vz |
 | ) |  |  | [inline]

Данные класса

template<typename T>
T Hanina::ScaleScan3x3< T >::thr [private]

template<typename T>
int Hanina::ScaleScan3x3< T >::nls [private]

Объявления и описания членов класса находятся в файле:
  • ss_ridge_functors.h


Pipe Line Filters: Шаблон класса Vtl::Types::Select< flag, Type1, Type2 >

Vtl::Types::Select

Шаблон класса Vtl::Types::Select< flag, Type1, Type2 >

Выбор типа на этапе комспиляции, if flag==true - первый тип, иначе - второй. Подробнее...

#include <alexandresku.h>

Полный список членов класса

Открытые типы

typedef Type1 Type

Подробное описание

template<bool flag, typename Type1, typename Type2>
class Vtl::Types::Select< flag, Type1, Type2 >

Выбор типа на этапе комспиляции, if flag==true - первый тип, иначе - второй.

Например: template<class Pixel> void test(Pixel *p) { // выбрать для работы тип MyType переменной // в случае, если тип Pixel однобайтовый - uint16_t // в противном случае uint32_t typedef Vtl::Types::Select<sizeof(Pixel)==1,uint16_t,uint32_t>Type MyType; MyType1 aa1=*p; }

Определения типов

template<bool flag, typename Type1, typename Type2>
typedef Type1 Vtl::Types::Select< flag, Type1, Type2 >::Type

Объявления и описания членов класса находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон класса Vtl::Plf::SeparableConv2D< T, P >

Vtl::Plf::SeparableConv2D

Шаблон класса Vtl::Plf::SeparableConv2D< T, P >
[Complex filters]

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

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::SeparableConv2D< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::SeparableConv2D< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

InPort< T > & | in ()
OutPort< T, P > & | out ()
SeparableConv2D ()
SeparableConv2D (std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel_x, const Kernel::Base< T, Kernel::KT_Conv > *kernel_y, P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel_x, const Kernel::Base< T, Kernel::KT_Conv > *kernel_y, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~SeparableConv2D ()

Закрытые члены

SeparableConv2D (const SeparableConv2D &)
SeparableConv2D & | operator= (const SeparableConv2D &)

Закрытые данные

Vtl::Plf::ConvolveHorz< T > | h_conv
Vtl::Plf::ConvolveVert< T, P > | v_conv

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::SeparableConv2D< T, P >

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

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SeparableConv2D< T, P >::SeparableConv2D ( const SeparableConv2D< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SeparableConv2D< T, P >::SeparableConv2D ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SeparableConv2D< T, P >::SeparableConv2D | ( | std::string | name,
 |  | const Kernel::Base< T, Kernel::KT_Conv > * | kernel_x,
 |  | const Kernel::Base< T, Kernel::KT_Conv > * | kernel_y,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::SeparableConv2D< T, P >::~SeparableConv2D ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
SeparableConv2D& Vtl::Plf::SeparableConv2D< T, P >::operator= ( const SeparableConv2D< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPort<T>& Vtl::Plf::SeparableConv2D< T, P >::in ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::SeparableConv2D< T, P >::out ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::SeparableConv2D< T, P >::Init | ( | std::string | name,
 |  | const Kernel::Base< T, Kernel::KT_Conv > * | kernel_x,
 |  | const Kernel::Base< T, Kernel::KT_Conv > * | kernel_y,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::ConvolveHorz<T> Vtl::Plf::SeparableConv2D< T, P >::h_conv [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::ConvolveVert<T,P> Vtl::Plf::SeparableConv2D< T, P >::v_conv [private]

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Tools::findMax::SetPixel< T, stride >

Vtl::ImAlg::Tools::findMax::SetPixel

Шаблон класса Vtl::ImAlg::Tools::findMax::SetPixel< T, stride >

#include <imalg_tools.h>

Полный список членов класса

Открытые члены

SetPixel (T *data_ptr, int nls_)
template<typename C, typename V>
void | operator() (C x, C y, V v)

Закрытые данные

T * | src
int | nls

Подробное описание

template<typename T, int stride = 1>
class Vtl::ImAlg::Tools::findMax::SetPixel< T, stride >

Примеры:

test_fast_gauss.cpp.

Конструктор(ы)

template<typename T, int stride = 1>
Vtl::ImAlg::Tools::findMax::SetPixel< T, stride >::SetPixel | ( | T * | data_ptr,
 |  | int | nls_ |
 | ) |  |  | [inline]

Методы

template<typename T, int stride = 1>
template<typename C, typename V>
void Vtl::ImAlg::Tools::findMax::SetPixel< T, stride >::operator() | ( | C | x,
 |  | C | y,
 |  | V | v |
 | ) |  |  | [inline]

Данные класса

template<typename T, int stride = 1>
T* Vtl::ImAlg::Tools::findMax::SetPixel< T, stride >::src [private]

template<typename T, int stride = 1>
int Vtl::ImAlg::Tools::findMax::SetPixel< T, stride >::nls [private]

Объявления и описания членов класса находятся в файле:
  • imalg_tools.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >

Vtl::ImAlg::Bres::SetPixelGray

Шаблон класса Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >

Алгоритм перемещения по пикселям, в предположении, что пиксели расположены в памяти в виде одномерного массива, строка за строкой. Смещение к пикселю с тем же X на следующей строке может быть отрицательным и может превышать по модулю количество пикселей в строке изображения. Способ отрисовки пиксекля задается функтором D, в качестве образца такого функтора см. классы Vtl::Alg::Bres::Draw, Vtl::Alg::Bres::DrawDotted . Подробнее...

#include <alg_bresenham.h>

Полный список членов класса

Открытые члены

SetPixelGray (Pixel *data, int nls, D draw)
void | Set0 (int x, int y)
Начальная точка.
template<int x_inc, int y_inc>
void | move ()

Закрытые данные

Pixel *const | _data
const int | _nls
D | _draw
Pixel * | ptr
int | _x
int | _y

Подробное описание

template<typename Pixel, class D>
class Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >

Алгоритм перемещения по пикселям, в предположении, что пиксели расположены в памяти в виде одномерного массива, строка за строкой. Смещение к пикселю с тем же X на следующей строке может быть отрицательным и может превышать по модулю количество пикселей в строке изображения. Способ отрисовки пиксекля задается функтором D, в качестве образца такого функтора см. классы Vtl::Alg::Bres::Draw, Vtl::Alg::Bres::DrawDotted .
Примеры:

test_alg_bresenham.cpp.

Конструктор(ы)

template<typename Pixel, class D>
Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >::SetPixelGray | ( | Pixel * | data,
 |  | int | nls,
 |  | D | draw |
 | ) |  |  | [inline]

Методы

template<typename Pixel, class D>
void Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >::Set0 | ( | int | x,
 |  | int | y |
 | ) |  |  | [inline]

Начальная точка.

template<typename Pixel, class D>
template<int x_inc, int y_inc>
void Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >::move ( ) [inline]

!!! x_inc,y_inc могут принимать значения -1, 0, 1 . Так как это параметры шаблона, то опимизатор С++ при вычислении выражения y_inc*nls+x_inc

  • во-первых не будет делать умножений, а просто подставит nls со знаком y_inc;
  • во вторых если какой либо из параметров x_inc, y_inc равен нулю, то соответствующий член в формуле просто исчезнет.

Данные класса

template<typename Pixel, class D>
Pixel* const Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >::_data [private]

template<typename Pixel, class D>
const int Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >::_nls [private]

template<typename Pixel, class D>
D Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >::_draw [private]

template<typename Pixel, class D>
Pixel* Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >::ptr [private]

template<typename Pixel, class D>
int Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >::_x [private]

template<typename Pixel, class D>
int Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >::_y [private]

Объявления и описания членов класса находятся в файле:
  • alg_bresenham.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Sharpen< T, P >

Vtl::Plf::Sharpen

Шаблон класса Vtl::Plf::Sharpen< T, P >
[Complex filters]

Вычисляет <I(x,y)>+amp*(I(x,y-<I(x,y)>). Среднее вычисляется двуерной сверткой с сепарабельным ядром, обычно используется Гауссово ядро. Поднимает на изображении границы и мелкие детали (в т.ч. шумы). Алгоритм Sharpen, описывается классическим выражением [Pratt82] [image] , где $ k $ - коэффициент усиления. При $ k=1 $ результатом является исходное изображение, при $ k=0 $ -сглаженное, при $ 0 < k < 1$ - изображение с ослабленными деталями, при $ 1 < k $ - изображение с усиленными деталями. Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::Sharpen< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::Sharpen< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

OutPort< T, P > & | out ()
Sharpen ()
Sharpen (std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel_1D, float amp=4.0, P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Init (std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel_1D, float amp=4.0, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~Sharpen ()

Открытые атрибуты

InPortComb< T > | in

Закрытые члены

Sharpen (const Sharpen &)
Sharpen & | operator= (const Sharpen &)

Закрытые данные

Average< T > | mean
PixByPix2to1< T, F21::Sharpen<
T >, P > 		sharp

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::Sharpen< T, P >

Вычисляет <I(x,y)>+amp*(I(x,y-<I(x,y)>). Среднее вычисляется двуерной сверткой с сепарабельным ядром, обычно используется Гауссово ядро. Поднимает на изображении границы и мелкие детали (в т.ч. шумы). Алгоритм Sharpen, описывается классическим выражением [Pratt82] [image] , где $ k $ - коэффициент усиления. При $ k=1 $ результатом является исходное изображение, при $ k=0 $ -сглаженное, при $ 0 < k < 1$ - изображение с ослабленными деталями, при $ 1 < k $ - изображение с усиленными деталями.

Структура фильтра Vtl::Plf::Sharpen - подчеркивания деталей изображения

Результат воздействия на изображение

этим фильтром
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Sharpen< T, P >::Sharpen ( const Sharpen< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Sharpen< T, P >::Sharpen ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::Sharpen< T, P >::Sharpen | ( | std::string | name,
 |  | const Kernel::Base< T, Kernel::KT_Conv > * | kernel_1D,
 |  | float | amp = 4.0,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::Sharpen< T, P >::~Sharpen ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Sharpen& Vtl::Plf::Sharpen< T, P >::operator= ( const Sharpen< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::Sharpen< T, P >::out ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::Sharpen< T, P >::Init | ( | std::string | name,
 |  | const Kernel::Base< T, Kernel::KT_Conv > * | kernel_1D,
 |  | float | amp = 4.0,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Average<T> Vtl::Plf::Sharpen< T, P >::mean [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
PixByPix2to1<T,F21::Sharpen<T>,P > Vtl::Plf::Sharpen< T, P >::sharp [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPortComb<T> Vtl::Plf::Sharpen< T, P >::in

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F21::Sharpen< T >

Vtl::Plf::F21::Sharpen

Шаблон класса Vtl::Plf::F21::Sharpen< T >

Функтор Sharpen для фильтра PixByPix2to1. Из двух серых изображений - среднего и среднего от квадрата яркости вычисляет одно по формуле [image] , т.е. служит для вычисления величины [image]. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

Sharpen (float amp=2.0f)
T | operator() (T val, T mean) const

Закрытые данные

float | alpha

Подробное описание

template<typename T>
class Vtl::Plf::F21::Sharpen< T >

Функтор Sharpen для фильтра PixByPix2to1. Из двух серых изображений - среднего и среднего от квадрата яркости вычисляет одно по формуле [image] , т.е. служит для вычисления величины [image].

Конструктор(ы)

template<typename T>
Vtl::Plf::F21::Sharpen< T >::Sharpen ( float amp = 2.0f ) [inline]

Методы

template<typename T>
T Vtl::Plf::F21::Sharpen< T >::operator() | ( | T | val,
 |  | T | mean |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
float Vtl::Plf::F21::Sharpen< T >::alpha [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Model::Similarity< T >

Vtl::ImAlg::Model::Similarity

Шаблон класса Vtl::ImAlg::Model::Similarity< T >

Класс - модель преобразования, соответствует поиску полного афинного преобразования (Shi-Tomasi [KLT_ST] ). Подробнее...

#include <img_trans_models.h>

Граф наследования:Vtl::ImAlg::Model::Similarity< T >:

[см. легенду]
Граф связей класса Vtl::ImAlg::Model::Similarity< T >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { N = 4 }

Открытые члены

void | setIdentity ()
void | Inverse ()
template<class VectorP>
void | set (VectorP theta_)
void | set (T phi_, T scale_, T dx, T dy)
void | UpdateByNewAfterThis (Similarity &model_new)

Открытые атрибуты

T | scale
T | phi

Закрытые члены

void | _buildMatrix (T phi_, T scale_)

Подробное описание

template<typename T>
class Vtl::ImAlg::Model::Similarity< T >

Класс - модель преобразования, соответствует поиску полного афинного преобразования (Shi-Tomasi [KLT_ST] ).
Примеры:

test_image_registration_via_fft.cpp.

Перечисления

template<typename T>
anonymous enum

Элементы перечислений:
N

Методы

template<typename T>
void Vtl::ImAlg::Model::Similarity< T >::_buildMatrix | ( | T | phi_,
 |  | T | scale_ |
 | ) |  |  | [inline, private]

template<typename T>
void Vtl::ImAlg::Model::Similarity< T >::setIdentity ( ) [inline]

template<typename T>
void Vtl::ImAlg::Model::Similarity< T >::Inverse ( ) [inline]

template<typename T>
template<class VectorP>
void Vtl::ImAlg::Model::Similarity< T >::set ( VectorP theta_ ) [inline]

template<typename T>
void Vtl::ImAlg::Model::Similarity< T >::set | ( | T | phi_,
 |  | T | scale_,
 |  | T | dx,
 |  | T | dy |
 | ) |  |  | [inline]

template<typename T>
void Vtl::ImAlg::Model::Similarity< T >::UpdateByNewAfterThis ( Similarity< T > & model_new ) [inline]

Данные класса

template<typename T>
T Vtl::ImAlg::Model::Similarity< T >::scale

template<typename T>
T Vtl::ImAlg::Model::Similarity< T >::phi

Объявления и описания членов класса находятся в файле:
  • img_trans_models.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::WndFun::Sinc< T, 0 >

Vtl::ImAlg::WndFun::Sinc< T, 0 >

Шаблон класса Vtl::ImAlg::WndFun::Sinc< T, 0 >

Окно в виде функции sinc(x) . Определяется формулой [image] . Подробнее...

#include <windowing_fun.h>

Полный список членов класса

Открытые типы

typedef T | arg_type

Открытые члены

template<typename TT, typename TTT>
Sinc (TT half_central_size, TTT N_lobes)
template<class TT>
T | operator() (TT x) const
arg_type | size () const
arg_type | center () const
arg_type | left () const
arg_type | right () const

Открытые статические члены

static const char * | Name ()

Закрытые статические члены

static T | sinc (T x)

Закрытые данные

const T | half_cent
const T | half_width
const T | c

Подробное описание

template<typename T>
class Vtl::ImAlg::WndFun::Sinc< T, 0 >

Окно в виде функции sinc(x) . Определяется формулой [image] .

Задается двумя параметрами:

Аргументы:
half_central_size - полуширина ширина центрального лепестка, ограниченного нулями функции, [image] откуда [image]. Таким образом:
если half_central_size=1, то период функции sin(cx) навен 2, и нули находятся в точках х=1,2,3,...
если half_central_size=2, то период функции sin(cx) равен 4 и нули находятся в точка х=2,4,6,8,...
если half_central_size=3, то период функции sin(cx) равен 6 и нули находятся в точка х=3,6,9,12,...
И т.д.
N_lobes - количество учитываемых боковых лепестков. 0 - только центральный лепесток, 1 - плюс левый и правый боковой лепестки и т.д. Хотя N_lobes может быть задан как число с плапающей точкой, практически обычно рекомендуется задавать его целым числом, так, чтобы усечение функции происходило в точках, где значение функции равно нулю.
Таким образом, полная длина носителя функции size=2*half_central_size*(N_lobes+1)+1 , а используемое понятие полуширины окна в настоящей библиотеке и вводимое как size=half_wnd_size+1+half_wnd_size равно half_wnd_size=half_central_size*(N_lobes+1).

Определения типов

template<typename T>
typedef T Vtl::ImAlg::WndFun::Sinc< T, 0 >::arg_type

Конструктор(ы)

template<typename T>
template<typename TT, typename TTT>
Vtl::ImAlg::WndFun::Sinc< T, 0 >::Sinc | ( | TT | half_central_size,
 |  | TTT | N_lobes |
 | ) |  |  | [inline]

Методы

template<typename T>
static T Vtl::ImAlg::WndFun::Sinc< T, 0 >::sinc ( T x ) [inline, static, private]

template<typename T>
static const char* Vtl::ImAlg::WndFun::Sinc< T, 0 >::Name ( ) [inline, static]

template<typename T>
template<class TT>
T Vtl::ImAlg::WndFun::Sinc< T, 0 >::operator() ( TT x ) const [inline]

template<typename T>
arg_type Vtl::ImAlg::WndFun::Sinc< T, 0 >::size ( ) const [inline]

template<typename T>
arg_type Vtl::ImAlg::WndFun::Sinc< T, 0 >::center ( ) const [inline]

template<typename T>
arg_type Vtl::ImAlg::WndFun::Sinc< T, 0 >::left ( ) const [inline]

template<typename T>
arg_type Vtl::ImAlg::WndFun::Sinc< T, 0 >::right ( ) const [inline]

Данные класса

template<typename T>
const T Vtl::ImAlg::WndFun::Sinc< T, 0 >::half_cent [private]

template<typename T>
const T Vtl::ImAlg::WndFun::Sinc< T, 0 >::half_width [private]

template<typename T>
const T Vtl::ImAlg::WndFun::Sinc< T, 0 >::c [private]

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Vtl::Meta::SizeList< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >

Vtl::Meta::SizeList

Шаблон класса Vtl::Meta::SizeList< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >

#include <vtl_meta_SizeList.h>

Граф наследования:Vtl::Meta::SizeList< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >:

[см. легенду]
Граф связей класса Vtl::Meta::SizeList< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >:

[см. легенду]
Полный список членов класса

Открытые члены

SizeList (int i_0, int i_1=-1, int i_2=-1, int i_3=-1, int i_4=-1, int i_5=-1, int i_6=-1, int i_7=-1, int i_8=-1, int i_9=-1, int i_10=-1, int i_11=-1, int i_12=-1, int i_13=-1, int i_14=-1, int i_15=-1, int i_16=-1, int i_17=-1, int i_18=-1, int i_19=-1)

template<int i_0, int i_1 = -1, int i_2 = -1, int i_3 = -1, int i_4 = -1, int i_5 = -1, int i_6 = -1, int i_7 = -1, int i_8 = -1, int i_9 = -1, int i_10 = -1, int i_11 = -1, int i_12 = -1, int i_13 = -1, int i_14 = -1, int i_15 = -1, int i_16 = -1, int i_17 = -1, int i_18 = -1, int i_19 = -1>
class Vtl::Meta::SizeList< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >

Конструктор(ы)

template<int i_0, int i_1 = -1, int i_2 = -1, int i_3 = -1, int i_4 = -1, int i_5 = -1, int i_6 = -1, int i_7 = -1, int i_8 = -1, int i_9 = -1, int i_10 = -1, int i_11 = -1, int i_12 = -1, int i_13 = -1, int i_14 = -1, int i_15 = -1, int i_16 = -1, int i_17 = -1, int i_18 = -1, int i_19 = -1>
Vtl::Meta::SizeList< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >::SizeList | ( | int | i_0,
 |  | int | i_1 = -1,
 |  | int | i_2 = -1,
 |  | int | i_3 = -1,
 |  | int | i_4 = -1,
 |  | int | i_5 = -1,
 |  | int | i_6 = -1,
 |  | int | i_7 = -1,
 |  | int | i_8 = -1,
 |  | int | i_9 = -1,
 |  | int | i_10 = -1,
 |  | int | i_11 = -1,
 |  | int | i_12 = -1,
 |  | int | i_13 = -1,
 |  | int | i_14 = -1,
 |  | int | i_15 = -1,
 |  | int | i_16 = -1,
 |  | int | i_17 = -1,
 |  | int | i_18 = -1,
 |  | int | i_19 = -1 |
 | ) |  |  | [inline]

Объявления и описания членов класса находятся в файле:
  • vtl_meta_SizeList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::SizeList_base< T_IList >

Vtl::Meta::SizeList_base

Шаблон структуры Vtl::Meta::SizeList_base< T_IList >

#include <vtl_meta_SizeList.h>

Граф наследования:Vtl::Meta::SizeList_base< T_IList >:

[см. легенду]
Граф связей класса Vtl::Meta::SizeList_base< T_IList >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { size = IL::Length<IList>::value }
typedef T_IList | IList

Открытые члены

template<int i>
bool | isEnum () const
template<int i>
int | x () const
template<int i>
void | set (int value)
При попытке установить поле, которое enum, а не int - не далает ничего и сообщений об ошибке не выдает.
void | set_all (int i_0, int i_1=-1, int i_2=-1, int i_3=-1, int i_4=-1, int i_5=-1, int i_6=-1, int i_7=-1, int i_8=-1, int i_9=-1, int i_10=-1, int i_11=-1, int i_12=-1, int i_13=-1, int i_14=-1, int i_15=-1, int i_16=-1, int i_17=-1, int i_18=-1, int i_19=-1)

Закрытые члены

template<int i>
int | get_x (Loki::Bool2Type< true >) const
data is enum
template<int i>
int | get_x (Loki::Bool2Type< false >) const
data is int variable
template<int i>
void | set_x (int value, Loki::Bool2Type< true >) const
data is enum
template<int i>
void | set_x (int value, Loki::Bool2Type< false >)
data is int variable
template<int i, int n>
void | set_all_ (Loki::Bool2Type< true >, int i_0, int i_1=-1, int i_2=-1, int i_3=-1, int i_4=-1, int i_5=-1, int i_6=-1, int i_7=-1, int i_8=-1, int i_9=-1, int i_10=-1, int i_11=-1, int i_12=-1, int i_13=-1, int i_14=-1, int i_15=-1, int i_16=-1, int i_17=-1, int i_18=-1, int i_19=-1)
template<int i, int n>
void | set_all_ (Loki::Bool2Type< false >, int i_0, int i_1=-1, int i_2=-1, int i_3=-1, int i_4=-1, int i_5=-1, int i_6=-1, int i_7=-1, int i_8=-1, int i_9=-1, int i_10=-1, int i_11=-1, int i_12=-1, int i_13=-1, int i_14=-1, int i_15=-1, int i_16=-1, int i_17=-1, int i_18=-1, int i_19=-1)

template<class T_IList>
struct Vtl::Meta::SizeList_base< T_IList >

Определения типов

template<class T_IList>
typedef T_IList Vtl::Meta::SizeList_base< T_IList >::IList

Перечисления

template<class T_IList>
anonymous enum

Элементы перечислений:
size

Методы

template<class T_IList>
template<int i>
bool Vtl::Meta::SizeList_base< T_IList >::isEnum ( ) const [inline]

template<class T_IList>
template<int i>
int Vtl::Meta::SizeList_base< T_IList >::x ( ) const [inline]

template<class T_IList>
template<int i>
void Vtl::Meta::SizeList_base< T_IList >::set ( int value ) [inline]

При попытке установить поле, которое enum, а не int - не далает ничего и сообщений об ошибке не выдает.

template<class T_IList>
void Vtl::Meta::SizeList_base< T_IList >::set_all | ( | int | i_0,
 |  | int | i_1 = -1,
 |  | int | i_2 = -1,
 |  | int | i_3 = -1,
 |  | int | i_4 = -1,
 |  | int | i_5 = -1,
 |  | int | i_6 = -1,
 |  | int | i_7 = -1,
 |  | int | i_8 = -1,
 |  | int | i_9 = -1,
 |  | int | i_10 = -1,
 |  | int | i_11 = -1,
 |  | int | i_12 = -1,
 |  | int | i_13 = -1,
 |  | int | i_14 = -1,
 |  | int | i_15 = -1,
 |  | int | i_16 = -1,
 |  | int | i_17 = -1,
 |  | int | i_18 = -1,
 |  | int | i_19 = -1 |
 | ) |  |  | [inline]

template<class T_IList>
template<int i>
int Vtl::Meta::SizeList_base< T_IList >::get_x ( Loki::Bool2Type< true > ) const [inline, private]

data is enum

template<class T_IList>
template<int i>
int Vtl::Meta::SizeList_base< T_IList >::get_x ( Loki::Bool2Type< false > ) const [inline, private]

data is int variable

template<class T_IList>
template<int i>
void Vtl::Meta::SizeList_base< T_IList >::set_x | ( | int | value,
 |  | Loki::Bool2Type< true > |  |
 | ) |  |  | const [inline, private]

data is enum

template<class T_IList>
template<int i>
void Vtl::Meta::SizeList_base< T_IList >::set_x | ( | int | value,
 |  | Loki::Bool2Type< false > |  |
 | ) |  |  | [inline, private]

data is int variable

template<class T_IList>
template<int i, int n>
void Vtl::Meta::SizeList_base< T_IList >::set_all_ | ( | Loki::Bool2Type< true > | ,
 |  | int | i_0,
 |  | int | i_1 = -1,
 |  | int | i_2 = -1,
 |  | int | i_3 = -1,
 |  | int | i_4 = -1,
 |  | int | i_5 = -1,
 |  | int | i_6 = -1,
 |  | int | i_7 = -1,
 |  | int | i_8 = -1,
 |  | int | i_9 = -1,
 |  | int | i_10 = -1,
 |  | int | i_11 = -1,
 |  | int | i_12 = -1,
 |  | int | i_13 = -1,
 |  | int | i_14 = -1,
 |  | int | i_15 = -1,
 |  | int | i_16 = -1,
 |  | int | i_17 = -1,
 |  | int | i_18 = -1,
 |  | int | i_19 = -1 |
 | ) |  |  | [inline, private]

template<class T_IList>
template<int i, int n>
void Vtl::Meta::SizeList_base< T_IList >::set_all_ | ( | Loki::Bool2Type< false > | ,
 |  | int | i_0,
 |  | int | i_1 = -1,
 |  | int | i_2 = -1,
 |  | int | i_3 = -1,
 |  | int | i_4 = -1,
 |  | int | i_5 = -1,
 |  | int | i_6 = -1,
 |  | int | i_7 = -1,
 |  | int | i_8 = -1,
 |  | int | i_9 = -1,
 |  | int | i_10 = -1,
 |  | int | i_11 = -1,
 |  | int | i_12 = -1,
 |  | int | i_13 = -1,
 |  | int | i_14 = -1,
 |  | int | i_15 = -1,
 |  | int | i_16 = -1,
 |  | int | i_17 = -1,
 |  | int | i_18 = -1,
 |  | int | i_19 = -1 |
 | ) |  |  | [inline, private]

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_SizeList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::Impl::SizeList_base_0< IList, sz >

Vtl::Meta::Impl::SizeList_base_0

Шаблон структуры Vtl::Meta::Impl::SizeList_base_0< IList, sz >

#include <vtl_meta_SizeList.h>

Граф наследования:Vtl::Meta::Impl::SizeList_base_0< IList, sz >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { hasInts = sz }

Открытые атрибуты

int | non_enums [sz]

template<class IList, int sz>
struct Vtl::Meta::Impl::SizeList_base_0< IList, sz >

Перечисления

template<class IList, int sz>
anonymous enum

Элементы перечислений:
hasInts

Данные класса

template<class IList, int sz>
int Vtl::Meta::Impl::SizeList_base_0< IList, sz >::non_enums[sz]

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_SizeList.h


Pipe Line Filters: Шаблон структуры Vtl::Meta::Impl::SizeList_base_0< IList, 0 >

Vtl::Meta::Impl::SizeList_base_0< IList, 0 >

Шаблон структуры Vtl::Meta::Impl::SizeList_base_0< IList, 0 >

#include <vtl_meta_SizeList.h>

Полный список членов класса

Открытые типы

enum { hasInts = 0 }

template<class IList>
struct Vtl::Meta::Impl::SizeList_base_0< IList, 0 >

Перечисления

template<class IList>
anonymous enum

Элементы перечислений:
hasInts

Объявления и описания членов структуры находятся в файле:
  • vtl_meta_SizeList.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Model::SkewXOffset< T >

Vtl::ImAlg::Model::SkewXOffset

Шаблон класса Vtl::ImAlg::Model::SkewXOffset< T >

Класс - модель преобразования, соответствует поиску перекоса по x (Shi-Tomasi [Yurin_RegBushBroom2008] ). Подробнее...

#include <img_trans_models.h>

Граф наследования:Vtl::ImAlg::Model::SkewXOffset< T >:

[см. легенду]
Граф связей класса Vtl::ImAlg::Model::SkewXOffset< T >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { N = 3 }

Открытые члены

void | setIdentity ()
void | Inverse ()
template<class VectorP>
void | set (VectorP theta)
template<class T1, class T2, class T3>
void | set (T1 skew, T2 dx, T3 dy)
template<class T2, class T3>
void | offset_by (T2 dx, T3 dy)
void | UpdateByNewAfterThis (SkewXOffset &model_new)
template<unsigned n>
T | Dx (T x, T y) const
template<unsigned n>
T | Dy (T x, T y) const

Подробное описание

template<typename T>
class Vtl::ImAlg::Model::SkewXOffset< T >

Класс - модель преобразования, соответствует поиску перекоса по x (Shi-Tomasi [Yurin_RegBushBroom2008] ).

Перечисления

template<typename T>
anonymous enum

Элементы перечислений:
N

Методы

template<typename T>
void Vtl::ImAlg::Model::SkewXOffset< T >::setIdentity ( ) [inline]

template<typename T>
void Vtl::ImAlg::Model::SkewXOffset< T >::Inverse ( ) [inline]

template<typename T>
template<class VectorP>
void Vtl::ImAlg::Model::SkewXOffset< T >::set ( VectorP theta ) [inline]

template<typename T>
template<class T1, class T2, class T3>
void Vtl::ImAlg::Model::SkewXOffset< T >::set | ( | T1 | skew,
 |  | T2 | dx,
 |  | T3 | dy |
 | ) |  |  | [inline]

template<typename T>
template<class T2, class T3>
void Vtl::ImAlg::Model::SkewXOffset< T >::offset_by | ( | T2 | dx,
 |  | T3 | dy |
 | ) |  |  | [inline]

template<typename T>
void Vtl::ImAlg::Model::SkewXOffset< T >::UpdateByNewAfterThis ( SkewXOffset< T > & model_new ) [inline]

template<typename T>
template<unsigned n>
T Vtl::ImAlg::Model::SkewXOffset< T >::Dx | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline]

Возвращает значение производной от модели по параметру номер n, 0 < =n < N в точке x, y Возвращает при n=0 -> [ y , 0 ]; n=1 -> [ 1 , 0 ]; n=2 -> [ 0 , 1 ];

template<typename T>
template<unsigned n>
T Vtl::ImAlg::Model::SkewXOffset< T >::Dy | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline]

Объявления и описания членов класса находятся в файле:
  • img_trans_models.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Model::SkewYOffset< T >

Vtl::ImAlg::Model::SkewYOffset

Шаблон класса Vtl::ImAlg::Model::SkewYOffset< T >

Класс - модель преобразования, соответствует поиску перекоса по y (Shi-Tomasi [Yurin_RegBushBroom2008] ). Подробнее...

#include <img_trans_models.h>

Граф наследования:Vtl::ImAlg::Model::SkewYOffset< T >:

[см. легенду]
Граф связей класса Vtl::ImAlg::Model::SkewYOffset< T >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { N = 3 }

Открытые члены

void | setIdentity ()
void | Inverse ()
template<class VectorP>
void | set (VectorP theta)
template<class T1, class T2, class T3>
void | set (T1 skew, T2 dx, T3 dy)
template<class T2, class T3>
void | offset_by (T2 dx, T3 dy)
void | UpdateByNewAfterThis (SkewYOffset &model_new)
template<unsigned n>
T | Dx (T x, T y) const
template<unsigned n>
T | Dy (T x, T y) const

Подробное описание

template<typename T>
class Vtl::ImAlg::Model::SkewYOffset< T >

Класс - модель преобразования, соответствует поиску перекоса по y (Shi-Tomasi [Yurin_RegBushBroom2008] ).
Примеры:

test_image_registration_via_fft.cpp.

Перечисления

template<typename T>
anonymous enum

Элементы перечислений:
N

Методы

template<typename T>
void Vtl::ImAlg::Model::SkewYOffset< T >::setIdentity ( ) [inline]

template<typename T>
void Vtl::ImAlg::Model::SkewYOffset< T >::Inverse ( ) [inline]

template<typename T>
template<class VectorP>
void Vtl::ImAlg::Model::SkewYOffset< T >::set ( VectorP theta ) [inline]

template<typename T>
template<class T1, class T2, class T3>
void Vtl::ImAlg::Model::SkewYOffset< T >::set | ( | T1 | skew,
 |  | T2 | dx,
 |  | T3 | dy |
 | ) |  |  | [inline]

template<typename T>
template<class T2, class T3>
void Vtl::ImAlg::Model::SkewYOffset< T >::offset_by | ( | T2 | dx,
 |  | T3 | dy |
 | ) |  |  | [inline]

template<typename T>
void Vtl::ImAlg::Model::SkewYOffset< T >::UpdateByNewAfterThis ( SkewYOffset< T > & model_new ) [inline]

template<typename T>
template<unsigned n>
T Vtl::ImAlg::Model::SkewYOffset< T >::Dx | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline]

Возвращает значение производной от модели по параметру номер n, 0 < =n < N в точке x, y Возвращает при n=0 -> [ 0 , x ]; n=1 -> [ 1 , 0 ]; n=2 -> [ 0 , 1 ];

template<typename T>
template<unsigned n>
T Vtl::ImAlg::Model::SkewYOffset< T >::Dy | ( | T | x,
 |  | T | y |
 | ) |  |  | const [inline]

Объявления и описания членов класса находятся в файле:
  • img_trans_models.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::SliceIter< T, stride >

Vtl::ImAlg::Conv::SliceIter

Шаблон класса Vtl::ImAlg::Conv::SliceIter< T, stride >

Итератор по массиву, шаг известен на момент компиляции. Подробнее...

#include <convolve.h>

Полный список членов класса

Открытые члены

SliceIter (T *data)
SliceIter (const SliceIter< T, stride > &si)
SliceIter< T, stride > & | operator= (const SliceIter< T, stride > &si)
SliceIter & operator++ ()
SliceIter | operator++ (int)
SliceIter & operator-- ()
SliceIter | operator-- (int)
SliceIter & | operator+= (int n)
SliceIter & | operator-= (int n)
SliceIter | operator+ (int n) const
SliceIter | operator- (int n) const
bool | operator== (const SliceIter &si) const
bool | operator!= (const SliceIter &si) const
T | operator * () const
T & | operator * ()

Закрытые данные

T * | d

Подробное описание

template<typename T, int stride = 0>
class Vtl::ImAlg::Conv::SliceIter< T, stride >

Итератор по массиву, шаг известен на момент компиляции.

Конструктор(ы)

template<typename T, int stride = 0>
Vtl::ImAlg::Conv::SliceIter< T, stride >::SliceIter ( T * data ) [inline]

template<typename T, int stride = 0>
Vtl::ImAlg::Conv::SliceIter< T, stride >::SliceIter ( const SliceIter< T, stride > & si ) [inline]

Методы

template<typename T, int stride = 0>
SliceIter<T,stride>& Vtl::ImAlg::Conv::SliceIter< T, stride >::operator= ( const SliceIter< T, stride > & si ) [inline]

template<typename T, int stride = 0>
SliceIter& Vtl::ImAlg::Conv::SliceIter< T, stride >::operator++ ( ) [inline]

template<typename T, int stride = 0>
SliceIter Vtl::ImAlg::Conv::SliceIter< T, stride >::operator++ ( int ) [inline]

template<typename T, int stride = 0>
SliceIter& Vtl::ImAlg::Conv::SliceIter< T, stride >::operator-- ( ) [inline]

template<typename T, int stride = 0>
SliceIter Vtl::ImAlg::Conv::SliceIter< T, stride >::operator-- ( int ) [inline]

template<typename T, int stride = 0>
SliceIter& Vtl::ImAlg::Conv::SliceIter< T, stride >::operator+= ( int n ) [inline]

template<typename T, int stride = 0>
SliceIter& Vtl::ImAlg::Conv::SliceIter< T, stride >::operator-= ( int n ) [inline]

template<typename T, int stride = 0>
SliceIter Vtl::ImAlg::Conv::SliceIter< T, stride >::operator+ ( int n ) const [inline]

template<typename T, int stride = 0>
SliceIter Vtl::ImAlg::Conv::SliceIter< T, stride >::operator- ( int n ) const [inline]

template<typename T, int stride = 0>
bool Vtl::ImAlg::Conv::SliceIter< T, stride >::operator== ( const SliceIter< T, stride > & si ) const [inline]

template<typename T, int stride = 0>
bool Vtl::ImAlg::Conv::SliceIter< T, stride >::operator!= ( const SliceIter< T, stride > & si ) const [inline]

template<typename T, int stride = 0>
T Vtl::ImAlg::Conv::SliceIter< T, stride >::operator * ( ) const [inline]

template<typename T, int stride = 0>
T& Vtl::ImAlg::Conv::SliceIter< T, stride >::operator * ( ) [inline]

Данные класса

template<typename T, int stride = 0>
T* Vtl::ImAlg::Conv::SliceIter< T, stride >::d [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::SliceIter< T, 0 >

Vtl::ImAlg::Conv::SliceIter< T, 0 >

Шаблон класса Vtl::ImAlg::Conv::SliceIter< T, 0 >

Итератор по массиву, шаг НЕ известен на момент компиляции и становится известным только в runtime. Подробнее...

#include <convolve.h>

Полный список членов класса

Открытые члены

SliceIter (T *data, int step)
SliceIter (const SliceIter< T, 0 > &si)
SliceIter< T, 0 > & | operator= (const SliceIter< T, 0 > &si)
SliceIter & operator++ ()
SliceIter | operator++ (int)
SliceIter & operator-- ()
SliceIter | operator-- (int)
SliceIter & | operator+= (int n)
SliceIter & | operator-= (int n)
SliceIter | operator+ (int n) const
SliceIter | operator- (int n) const
bool | operator== (const SliceIter &si) const
bool | operator!= (const SliceIter &si) const
T | operator * () const
T & | operator * ()

Закрытые данные

T * | d
const int | stride_var

Подробное описание

template<typename T>
class Vtl::ImAlg::Conv::SliceIter< T, 0 >

Итератор по массиву, шаг НЕ известен на момент компиляции и становится известным только в runtime.

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Conv::SliceIter< T, 0 >::SliceIter | ( | T * | data,
 |  | int | step |
 | ) |  |  | [inline]

template<typename T>
Vtl::ImAlg::Conv::SliceIter< T, 0 >::SliceIter ( const SliceIter< T, 0 > & si ) [inline]

Методы

template<typename T>
SliceIter<T,0>& Vtl::ImAlg::Conv::SliceIter< T, 0 >::operator= ( const SliceIter< T, 0 > & si ) [inline]

template<typename T>
SliceIter& Vtl::ImAlg::Conv::SliceIter< T, 0 >::operator++ ( ) [inline]

template<typename T>
SliceIter Vtl::ImAlg::Conv::SliceIter< T, 0 >::operator++ ( int ) [inline]

template<typename T>
SliceIter& Vtl::ImAlg::Conv::SliceIter< T, 0 >::operator-- ( ) [inline]

template<typename T>
SliceIter Vtl::ImAlg::Conv::SliceIter< T, 0 >::operator-- ( int ) [inline]

template<typename T>
SliceIter& Vtl::ImAlg::Conv::SliceIter< T, 0 >::operator+= ( int n ) [inline]

template<typename T>
SliceIter& Vtl::ImAlg::Conv::SliceIter< T, 0 >::operator-= ( int n ) [inline]

template<typename T>
SliceIter Vtl::ImAlg::Conv::SliceIter< T, 0 >::operator+ ( int n ) const [inline]

template<typename T>
SliceIter Vtl::ImAlg::Conv::SliceIter< T, 0 >::operator- ( int n ) const [inline]

template<typename T>
bool Vtl::ImAlg::Conv::SliceIter< T, 0 >::operator== ( const SliceIter< T, 0 > & si ) const [inline]

template<typename T>
bool Vtl::ImAlg::Conv::SliceIter< T, 0 >::operator!= ( const SliceIter< T, 0 > & si ) const [inline]

template<typename T>
T Vtl::ImAlg::Conv::SliceIter< T, 0 >::operator * ( ) const [inline]

template<typename T>
T& Vtl::ImAlg::Conv::SliceIter< T, 0 >::operator * ( ) [inline]

Данные класса

template<typename T>
T* Vtl::ImAlg::Conv::SliceIter< T, 0 >::d [private]

template<typename T>
const int Vtl::ImAlg::Conv::SliceIter< T, 0 >::stride_var [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::SliceIterConst< T, stride >

Vtl::ImAlg::Conv::SliceIterConst

Шаблон класса Vtl::ImAlg::Conv::SliceIterConst< T, stride >

Итератор по массиву, шаг известен на момент компиляции. Подробнее...

#include <convolve.h>

Полный список членов класса

Открытые члены

SliceIterConst (const T *data)
SliceIterConst (const SliceIterConst< T, stride > &si)
SliceIterConst< T, stride > & | operator= (const SliceIterConst< T, stride > &si)
SliceIterConst & operator++ ()
SliceIterConst | operator++ (int)
SliceIterConst & operator-- ()
SliceIterConst | operator-- (int)
SliceIterConst & | operator+= (int n)
SliceIterConst & | operator-= (int n)
SliceIterConst | operator+ (int n) const
SliceIterConst | operator- (int n) const
bool | operator== (const SliceIterConst &si) const
bool | operator!= (const SliceIterConst &si) const
T | operator * () const

Закрытые данные

const T * | d

Подробное описание

template<typename T, int stride = 0>
class Vtl::ImAlg::Conv::SliceIterConst< T, stride >

Итератор по массиву, шаг известен на момент компиляции.

Конструктор(ы)

template<typename T, int stride = 0>
Vtl::ImAlg::Conv::SliceIterConst< T, stride >::SliceIterConst ( const T * data ) [inline]

template<typename T, int stride = 0>
Vtl::ImAlg::Conv::SliceIterConst< T, stride >::SliceIterConst ( const SliceIterConst< T, stride > & si ) [inline]

Методы

template<typename T, int stride = 0>
SliceIterConst<T,stride>& Vtl::ImAlg::Conv::SliceIterConst< T, stride >::operator= ( const SliceIterConst< T, stride > & si ) [inline]

template<typename T, int stride = 0>
SliceIterConst& Vtl::ImAlg::Conv::SliceIterConst< T, stride >::operator++ ( ) [inline]

template<typename T, int stride = 0>
SliceIterConst Vtl::ImAlg::Conv::SliceIterConst< T, stride >::operator++ ( int ) [inline]

template<typename T, int stride = 0>
SliceIterConst& Vtl::ImAlg::Conv::SliceIterConst< T, stride >::operator-- ( ) [inline]

template<typename T, int stride = 0>
SliceIterConst Vtl::ImAlg::Conv::SliceIterConst< T, stride >::operator-- ( int ) [inline]

template<typename T, int stride = 0>
SliceIterConst& Vtl::ImAlg::Conv::SliceIterConst< T, stride >::operator+= ( int n ) [inline]

template<typename T, int stride = 0>
SliceIterConst& Vtl::ImAlg::Conv::SliceIterConst< T, stride >::operator-= ( int n ) [inline]

template<typename T, int stride = 0>
SliceIterConst Vtl::ImAlg::Conv::SliceIterConst< T, stride >::operator+ ( int n ) const [inline]

template<typename T, int stride = 0>
SliceIterConst Vtl::ImAlg::Conv::SliceIterConst< T, stride >::operator- ( int n ) const [inline]

template<typename T, int stride = 0>
bool Vtl::ImAlg::Conv::SliceIterConst< T, stride >::operator== ( const SliceIterConst< T, stride > & si ) const [inline]

template<typename T, int stride = 0>
bool Vtl::ImAlg::Conv::SliceIterConst< T, stride >::operator!= ( const SliceIterConst< T, stride > & si ) const [inline]

template<typename T, int stride = 0>
T Vtl::ImAlg::Conv::SliceIterConst< T, stride >::operator * ( ) const [inline]

Данные класса

template<typename T, int stride = 0>
const T* Vtl::ImAlg::Conv::SliceIterConst< T, stride >::d [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::SliceIterConst< T, 0 >

Vtl::ImAlg::Conv::SliceIterConst< T, 0 >

Шаблон класса Vtl::ImAlg::Conv::SliceIterConst< T, 0 >

Итератор по массиву, шаг НЕ известен на момент компиляции и становится известным только в runtime. Подробнее...

#include <convolve.h>

Полный список членов класса

Открытые члены

SliceIterConst (const T *data, int step)
SliceIterConst (const SliceIterConst< T, 0 > &si)
SliceIterConst< T, 0 > & | operator= (const SliceIterConst< T, 0 > &si)
SliceIterConst & operator++ ()
SliceIterConst | operator++ (int)
SliceIterConst & operator-- ()
SliceIterConst | operator-- (int)
SliceIterConst & | operator+= (int n)
SliceIterConst & | operator-= (int n)
SliceIterConst | operator+ (int n) const
SliceIterConst | operator- (int n) const
bool | operator== (const SliceIterConst &si) const
bool | operator!= (const SliceIterConst &si) const
T | operator * () const

Закрытые данные

const T * | d
const int | stride_var

Подробное описание

template<typename T>
class Vtl::ImAlg::Conv::SliceIterConst< T, 0 >

Итератор по массиву, шаг НЕ известен на момент компиляции и становится известным только в runtime.

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::SliceIterConst | ( | const T * | data,
 |  | int | step |
 | ) |  |  | [inline]

template<typename T>
Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::SliceIterConst ( const SliceIterConst< T, 0 > & si ) [inline]

Методы

template<typename T>
SliceIterConst<T,0>& Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::operator= ( const SliceIterConst< T, 0 > & si ) [inline]

template<typename T>
SliceIterConst& Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::operator++ ( ) [inline]

template<typename T>
SliceIterConst Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::operator++ ( int ) [inline]

template<typename T>
SliceIterConst& Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::operator-- ( ) [inline]

template<typename T>
SliceIterConst Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::operator-- ( int ) [inline]

template<typename T>
SliceIterConst& Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::operator+= ( int n ) [inline]

template<typename T>
SliceIterConst& Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::operator-= ( int n ) [inline]

template<typename T>
SliceIterConst Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::operator+ ( int n ) const [inline]

template<typename T>
SliceIterConst Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::operator- ( int n ) const [inline]

template<typename T>
bool Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::operator== ( const SliceIterConst< T, 0 > & si ) const [inline]

template<typename T>
bool Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::operator!= ( const SliceIterConst< T, 0 > & si ) const [inline]

template<typename T>
T Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::operator * ( ) const [inline]

Данные класса

template<typename T>
const T* Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::d [private]

template<typename T>
const int Vtl::ImAlg::Conv::SliceIterConst< T, 0 >::stride_var [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Класс Vtl::Types::TL::SmallestType

Vtl::Types::TL::SmallestType

Класс Vtl::Types::TL::SmallestType

Поиск в списке типов типа с наименьшим sizeof. Подробнее...

#include <alexandresku.h>

Подробное описание

Поиск в списке типов типа с наименьшим sizeof.

Шаблона имеет один параметр.

    Vtl::Types::TL::SmallestType<class TList>
Например:

Объявления и описания членов класса находятся в файле:

  • alexandresku.h

 Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008
Author: Dmitry V. Yurin
  [image]
 http://imaging.cs.msu.su/index.html


Pipe Line Filters: Класс Basics3D::SolveEq

Basics3D::SolveEq

Класс Basics3D::SolveEq

#include <SolveEq.h>

Полный список членов класса

Открытые члены

int | Apply (std::vector< double > &out_sol, const IFuncWithDer *in_g, const double in_acc)

Закрытые члены

int | Find (std::vector< double > &out_sol, const IFuncWithDer *in_g, double *io_x1, double *io_x2, int *io_k, const double in_acc)

Закрытые статические данные

static const int | MAX = 1000000

Методы

int Basics3D::SolveEq::Find | ( | std::vector< double > & | out_sol,
 |  | const IFuncWithDer * | in_g,
 |  | double * | io_x1,
 |  | double * | io_x2,
 |  | int * | io_k,
 |  | const double | in_acc |
 | ) |  |  | [private]

int Basics3D::SolveEq::Apply | ( | std::vector< double > & | out_sol,
 |  | const IFuncWithDer * | in_g,
 |  | const double | in_acc
 | ) |  |

Данные класса

const int Basics3D::SolveEq::MAX = 1000000 [static, private]

Объявления и описания членов классов находятся в файлах:
  • SolveEq.h
  • SolveEq.cpp


Pipe Line Filters: Шаблон класса Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >

Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >

Шаблон класса Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >

Specialization for boost::ublas::c_vector. Алгоритмы неявной сортировки. Вместо сортировки элементов контейнера, создается массив индексов элементов в контейнере. и сортируюутся эти индексы. С помощью функции operator[] можно получить индекс указанного порядкового элемента в исходном контейнере или с помощью щператора преобразования типа к const int* индексироваться просто как в массиве (константный указатель на такой массив может передаваться функциям, см. напр. функции Implicit::sort).
Пример:
. Подробнее...

#include <_num_implicit.h>

Граф наследования:Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >:

[см. легенду]
Граф связей класса Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef T_ value_type
typedef Vtl::NumAlg::Lin::ublas::c_vector<
T_, N_ > 		Vector

Открытые члены

Sort (const Vector &v)
template<class Pred2_>
Sort (const Vector &v, const Pred2_ &p)

Подробное описание

template<class T_, int N_, class Pred_>
class Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >

Specialization for boost::ublas::c_vector. Алгоритмы неявной сортировки. Вместо сортировки элементов контейнера, создается массив индексов элементов в контейнере. и сортируюутся эти индексы. С помощью функции operator[] можно получить индекс указанного порядкового элемента в исходном контейнере или с помощью щператора преобразования типа к const int* индексироваться просто как в массиве (константный указатель на такой массив может передаваться функциям, см. напр. функции Implicit::sort).
Пример:
.

 using namespace Vtl::NumAlg::Implicit;
 using namespace boost::numeric::ublas;
 enum {N=5};
 typedef vector_c<double,N> MyVector;
 MyVector v;
 for(int i=0< i<N ; ++i)
    v(i) = i;
 Sort<MyVector, Pred::gt<MyVector> > s(v);
 //  Pred::gt<MyVector> p(v); // Альтернативный
 //  Sort<MyVector> s(v,p);   // способ вызова.
 std::cout << v(0) << " " << v(s[0]) << v(N-1) << " " << v(s[N-1]) <<std::endl;
Результат будет:
0 4 4 0
Т.е. первый элемент исходного вектора 0, последний 4, а в "отсортированном" векторе - первый элемент 4, последний 0.

Первый параметр шаблона - тип контейнера, с которым будет работать сортировщик. Предполагается, что доступ до элемента контейнера осуществляется с помощью []. Второй аргумент - предиктор, по умолчанию LessThan,т.е. сортировка в порядке "возрастания", что бы по д этим не понималось. Класс должен иметь два конструктора:

  • Первый - принимает константную ссылку на объект, подлежащий сортировке. Объект предиктора создается автоматически как _Pred(object).
  • Второй - шаблонный, помимо объекта принимает константную ссылку на объект-предиктор типа _Pred2 и работает с ним. Предиктор, объявленный в шаблоне всего класаа -ИГНОРИРУЕТСЯ (обыяно он принимает тип по умолчанию и в програмном коде явно не указывается). Такая стратегия выбрана из-за невозможности явного указания типа шаблонного параметра шаблонного конструктора шаблонного класса.
Код следующего вида не компилируется:
 template<typename T1> struct X
 {
        template<typename T2> X(T1 t) {}
 };
 X<float> x<int>(1.0f); //Compile error.
Вероятно это ограничение в стандарте C++ связано с недопустимостью и труднопонимаемостью конструкции:
 X<float> x=X<float><int>(1.0f); //Compile error.

Определения типов

template<class T_, int N_, class Pred_>
typedef T_ Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >::value_type

template<class T_, int N_, class Pred_>
typedef Vtl::NumAlg::Lin::ublas::c_vector<T_,N_> Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >::Vector

Конструктор(ы)

template<class T_, int N_, class Pred_>
Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >::Sort ( const Vector & v ) [inline]

template<class T_, int N_, class Pred_>
template<class Pred2_>
Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >::Sort | ( | const Vector & | v,
 |  | const Pred2_ & | p |
 | ) |  |  | [inline]

Объявления и описания членов класса находятся в файле:
  • _num_implicit.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::Implicit::Sort_base< N_ >

Vtl::NumAlg::Implicit::Sort_base

Шаблон класса Vtl::NumAlg::Implicit::Sort_base< N_ >

#include <_num_implicit.h>

Граф наследования:Vtl::NumAlg::Implicit::Sort_base< N_ >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { N = N_ }

Открытые члены

template<class Pred2_>
Sort_base (const Pred2_ &p, int)
int | operator[] (int i) const
operator const int * () const

Закрытые данные

int | index [N]

Подробное описание

template<int N_>
class Vtl::NumAlg::Implicit::Sort_base< N_ >

Базовый класс для создания специализаций класса Implicit::Sort Если N_=0 - (специализация этого класса) то массив индексов создается динамически как std::vector, Если N_>0 - то массив индексов создается как член в виде int index[N_]; что эффективнее для малых размеров контейнера.

Перечисления

template<int N_>
anonymous enum

Элементы перечислений:
N

Конструктор(ы)

template<int N_>
template<class Pred2_>
Vtl::NumAlg::Implicit::Sort_base< N_ >::Sort_base | ( | const Pred2_ & | p,
 |  | int |  |
 | ) |  |  | [inline]

Методы

template<int N_>
int Vtl::NumAlg::Implicit::Sort_base< N_ >::operator[] ( int i ) const [inline]

template<int N_>
Vtl::NumAlg::Implicit::Sort_base< N_ >::operator const int * ( ) const [inline]

Данные класса

template<int N_>
int Vtl::NumAlg::Implicit::Sort_base< N_ >::index[N] [private]

Объявления и описания членов класса находятся в файле:
  • _num_implicit.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::Implicit::Sort_base< 0 >

Vtl::NumAlg::Implicit::Sort_base< 0 >

Шаблон класса Vtl::NumAlg::Implicit::Sort_base< 0 >

#include <_num_implicit.h>

Полный список членов класса

Открытые члены

template<class Pred2_>
Sort_base (const Pred2_ &p, int n)
int | operator[] (int i) const
operator const int * () const

Открытые атрибуты

const int | N

Закрытые данные

std::vector< int > | index

Подробное описание

template<>
class Vtl::NumAlg::Implicit::Sort_base< 0 >

Базовый класс для создания специализаций класса Implicit::Sort (специализация для случая когда размер контейнера НЕ известен на МОМЕНТ КОМПИЛЯЦИИ).

Конструктор(ы)

template<class Pred2_>
Vtl::NumAlg::Implicit::Sort_base< 0 >::Sort_base | ( | const Pred2_ & | p,
 |  | int | n |
 | ) |  |  | [inline]

Методы

int Vtl::NumAlg::Implicit::Sort_base< 0 >::operator[] ( int i ) const [inline]

Vtl::NumAlg::Implicit::Sort_base< 0 >::operator const int * ( ) const [inline]

Данные класса

const int Vtl::NumAlg::Implicit::Sort_base< 0 >::N

std::vector<int> Vtl::NumAlg::Implicit::Sort_base< 0 >::index [private]

Объявления и описания членов класса находятся в файле:
  • _num_implicit.h


Pipe Line Filters: Шаблон структуры Basics3D::SortS< T >

Basics3D::SortS

Шаблон структуры Basics3D::SortS< T >

#include <Sort.h>

Полный список членов класса

Открытые члены

SortS ()
SortS (T sigma_, int index_)
bool | operator< (const SortS &rhs) const

Открытые атрибуты

T | sigma
int | index

template<class T>
struct Basics3D::SortS< T >

Конструктор(ы)

template<class T>
Basics3D::SortS< T >::SortS ( ) [inline]

template<class T>
Basics3D::SortS< T >::SortS | ( | T | sigma_,
 |  | int | index_ |
 | ) |  |  | [inline]

Методы

template<class T>
bool Basics3D::SortS< T >::operator< ( const SortS< T > & rhs ) const [inline]

Данные класса

template<class T>
T Basics3D::SortS< T >::sigma

template<class T>
int Basics3D::SortS< T >::index

Объявления и описания членов структуры находятся в файле:
  • Sort.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >

Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd

Шаблон класса Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Если для преобразования Фурье в качестве вещественной части было предъявлени изображение I1, а в качестве мнимой - I2 и было выполнено ПФ, то вызов proc_pos_neg_freq() с этим функтором позволяет извлечь преобразования Фурье ОТДЕЛЬНО для I1 и I2. Подробнее...

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

SplitEvenOdd (T Q_re[], T Q_im[], T re_1[], T im_1[], T re_2[], T im_2[])
Some of destinations may may coinside with source.
SplitEvenOdd (T Q_re[], T Q_im[], T re_12[], T im_12[])
Some of destinations may may coinside with source.
template<unsigned ndim>
SplitEvenOdd (T Q_re[], T Q_im[], T re_1[], T im_1[], T re_2[], T im_2[], size_t n[])
Destinations CAN NOT coinside with source! Destinations is half size of source!
template<unsigned ndim>
SplitEvenOdd (T Q_re[], T Q_im[], T re_dest[], T im_dest[], size_t n[])
template<bool upper_half, typename I>
void | operator() (I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf)
template<bool upper_half, typename I>
void | operator() (I k, Loki::Int2Type< upper_half > up_hlf)

Закрытые члены

template<bool upper_half, typename I>
void | extract_ (I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf, Loki::Int2Type< 0 >)
template<bool upper_half, typename I>
void | extract_ (I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf, Loki::Int2Type< 1 >)
template<bool upper_half, typename I>
void | extract_ (I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf, Loki::Int2Type< 2 >)
template<typename I>
void | set_1 (T r1, T i1, I plus_k, I minus_k, Loki::Int2Type< true > up_hlf, Loki::Int2Type< 0 >)
template<typename I>
void | set_1 (T r1, T i1, I plus_k, I minus_k, Loki::Int2Type< false > up_hlf, Loki::Int2Type< 0 >)
template<typename I>
void | set_2 (T r2, T i2, I plus_k, I minus_k, Loki::Int2Type< true > up_hlf, Loki::Int2Type< 0 >)
template<typename I>
void | set_2 (T r2, T i2, I plus_k, I minus_k, Loki::Int2Type< false > up_hlf, Loki::Int2Type< 0 >)
template<typename I>
void | set_1 (T r1, T i1, I plus_k, I minus_k, Loki::Int2Type< false >, Loki::Int2Type< 1 >)
template<typename I>
void | set_2 (T r2, T i2, I plus_k, I minus_k, Loki::Int2Type< false >, Loki::Int2Type< 1 >)
template<typename I>
void | zero (I k, Loki::Int2Type< 0 >)
template<typename I>
void | zero (I k, Loki::Int2Type< 1 >)
template<typename I>
void | zero (I k, Loki::Int2Type< 2 >)
template<typename I>
void | set_zero (I k, Loki::Int2Type< true >)
template<typename I>
void | set_zero (I k, Loki::Int2Type< false >)

Закрытые данные

T * | re
T * | im
T * | re1
T * | im1
T * | re2
T * | im2

Подробное описание

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
class Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Если для преобразования Фурье в качестве вещественной части было предъявлени изображение I1, а в качестве мнимой - I2 и было выполнено ПФ, то вызов proc_pos_neg_freq() с этим функтором позволяет извлечь преобразования Фурье ОТДЕЛЬНО для I1 и I2.

Функтор применим для любой размерности пространства, в т.ч. ndim>2.

Шаблонные параметры:

Аргументы:
first_second_or_both - 0 - Извлчечь I1 и I2, 1 - только I1, 2 - только I2.
layout
=0 - извлекать целиком, и верхнюю и нижнюю полуплоскость,
=1 - только одну полуплоскость, то I2 извлекается в верхнюю полуплоскость, а I1 - в нижнюю.
=2 - извлекаются только нижние полуплоскости сигналов в отдельные массивы половинного размера, но операция inplace невозможна.
Различия связаны с тем, что нулевая частота находится не в центре всего массива с Фурье, а смещена к его второй половине. В случае layou=1 извлекаются соответственно "половинки" до нулевой частоты и после. Во случае layou=2 извлекается действительно полнгостью нижняя половина массива.
Функция используется в случае, когда вычисляется двумерное преобразование Фурье ОДНОВРЕМЕННО ДЛЯ ДВУХ n-мерных вещественных массивов. Так как для двумерного вещественного сигнала f(x) выполняется F(-k)=F*(k), где x,k - векторы размерности n, т.е. например для 2D данных (изображений) нижняя полуплоскость является комплексно сопряженной верхней полуплоскостью, отраженной относительно оси абсцисс, то можно в качестве вещественной части сигнала задать сигнал f1(x,y), а в качестве мнимой - f2(x,y). Из полученного результата преобразования Фурье можно извлечь вещественную и мнимую часть как отдельно для первого сигнала, так и для второго.

Пусть $ f_1(x) $, $ f_2(x) $ -вещественные функции, [image] . Их преобразование Фурье дается формулами:

и выполняются соотношения:

.

Будем представлять комплексноый спектр в виде вещественной и мнимой части $ F_j(k) = Re(F_j(k)) + i Im(F_j(k)) $ . Если сигнал вещественный выполняются соотношения:

Рассмотрим комплексный сигнал $ q(x)=f_1(x) + i f_2(x) $ . Его спектр будет иметь вид $ Q(k)=F_1(k) + i F_2(k) $ . Расписывая выражения для вещественной и мнимой части получим:

Используя соотношение [image] отсюда получим

Итого получаем:

Откуда

Таким образом, для двух вещественных функций заданных в n-мерном пространстве преобразование Фурье можно вычислить одновременно за одно обращение к процедуре fftND<>, предъявив один сигнал в качестве вещественной, а другой в качестве мнимой части комплексного сигнала. По приведенным формулам потом можно извлечь вещественную и мнимую части спектров обеих функций.

=================================
Данные для преобразований Фурье, Хартли хранятся в памяти в виде одномерных массивов, пиксель за пикселем, строка за строкой плоскость за плоскостью. По каждой размерности размер данных является степенью 2. После выполнения процедуры IntTransf::Utils::SwapQuadrants (ее надо выполнять до преобразования и после преобразования!) нулевая частота находится в центре (массива, изображения и.т.п.). Однако "центр" четного массива (степень двух) попадает между его елементами (пикселями). Поэтому на самом деле нулевая частота находится смещена к ближайшему элементу вправо, а отрицательных частот присутствует на 1 больше, чем положительных. Данные для такой отрицательной частоты не имеющая положительной пары не могут быть разделены согласно приведенным формулам. Значение вещественной и мнимой части спектра для таких частот следует положить равным нулю (усечение спектра).

Конструктор(ы)

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::SplitEvenOdd | ( | T | Q_re[],
 |  | T | Q_im[],
 |  | T | re_1[],
 |  | T | im_1[],
 |  | T | re_2[],
 |  | T | im_2[] |
 | ) |  |  | [inline]

Some of destinations may may coinside with source.

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::SplitEvenOdd | ( | T | Q_re[],
 |  | T | Q_im[],
 |  | T | re_12[],
 |  | T | im_12[] |
 | ) |  |  | [inline]

Some of destinations may may coinside with source.

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<unsigned ndim>
Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::SplitEvenOdd | ( | T | Q_re[],
 |  | T | Q_im[],
 |  | T | re_1[],
 |  | T | im_1[],
 |  | T | re_2[],
 |  | T | im_2[],
 |  | size_t | n[] |
 | ) |  |  | [inline]

Destinations CAN NOT coinside with source! Destinations is half size of source!

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<unsigned ndim>
Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::SplitEvenOdd | ( | T | Q_re[],
 |  | T | Q_im[],
 |  | T | re_dest[],
 |  | T | im_dest[],
 |  | size_t | n[] |
 | ) |  |  | [inline]

Методы

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::extract_ | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > | up_hlf,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::extract_ | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > | up_hlf,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::extract_ | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > | up_hlf,
 |  | Loki::Int2Type< 2 > |  |
 | ) |  |  | [inline, private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::set_1 | ( | T | r1,
 |  | T | i1,
 |  | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< true > | up_hlf,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::set_1 | ( | T | r1,
 |  | T | i1,
 |  | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< false > | up_hlf,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::set_2 | ( | T | r2,
 |  | T | i2,
 |  | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< true > | up_hlf,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::set_2 | ( | T | r2,
 |  | T | i2,
 |  | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< false > | up_hlf,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::set_1 | ( | T | r1,
 |  | T | i1,
 |  | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< false > | ,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::set_2 | ( | T | r2,
 |  | T | i2,
 |  | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< false > | ,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::zero | ( | I | k,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::zero | ( | I | k,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::zero | ( | I | k,
 |  | Loki::Int2Type< 2 > |  |
 | ) |  |  | [inline, private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::set_zero | ( | I | k,
 |  | Loki::Int2Type< true > |  |
 | ) |  |  | [inline, private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::set_zero | ( | I | k,
 |  | Loki::Int2Type< false > |  |
 | ) |  |  | [inline, private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::operator() | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > | up_hlf |
 | ) |  |  | [inline]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::operator() | ( | I | k,
 |  | Loki::Int2Type< upper_half > | up_hlf |
 | ) |  |  | [inline]

Данные класса

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
T* Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::re [private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
T* Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::im [private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
T* Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::re1 [private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
T* Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::im1 [private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
T* Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::re2 [private]

template<typename T, unsigned first_second_or_both = 0, unsigned layout = 0>
T* Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >::im2 [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон структуры Vtl::Plf::F11::Sqr< T >

Vtl::Plf::F11::Sqr

Шаблон структуры Vtl::Plf::F11::Sqr< T >

functor Sqr - преобразует значение каждого пикселя $v$ по закону [image]. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

template<typename T1>
T operator() (T1 val)

Подробное описание

template<typename T>
struct Vtl::Plf::F11::Sqr< T >

functor Sqr - преобразует значение каждого пикселя $v$ по закону [image].

Функтор для FilterLevels и постобработок во всех вильтрах. Каждый выход любого фильтра должен представляться, классом OutPort, его второй шаблонный параметр - функтор, который задает обработку пиксель в пиксель, которая будет проведена после того, как фильтр отработал и записал строку, но до того как будет проведены отражения буфера отнгосительно краев и данные станут доступны следующему фильтру. По возможности следует избегать использовать класс FilterLevels и по возможности пользоваться постобработками из за соображений эффективности. do nothing

Методы

template<typename T>
template<typename T1>
T Vtl::Plf::F11::Sqr< T >::operator() ( T1 val ) [inline]

Объявления и описания членов структуры находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон структуры Vtl::Plf::F11::Sqrt< T >

Vtl::Plf::F11::Sqrt

Шаблон структуры Vtl::Plf::F11::Sqrt< T >

functor Sqrt - вычисляет квадратный корень. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

T operator() (T val)

Подробное описание

template<typename T>
struct Vtl::Plf::F11::Sqrt< T >

functor Sqrt - вычисляет квадратный корень.

Методы

template<typename T>
T Vtl::Plf::F11::Sqrt< T >::operator() ( T val ) [inline]

Объявления и описания членов структуры находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F21::SqrtOfSumSqr< T >

Vtl::Plf::F21::SqrtOfSumSqr

Шаблон класса Vtl::Plf::F21::SqrtOfSumSqr< T >

Функтор SqrtOfSumSqr для фильтра PixByPix2to1. Из двух серых изображений вычисляет одно по формуле [image]. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

SqrtOfSumSqr ()
T operator() (T v1, T v2) const

Подробное описание

template<typename T>
class Vtl::Plf::F21::SqrtOfSumSqr< T >

Функтор SqrtOfSumSqr для фильтра PixByPix2to1. Из двух серых изображений вычисляет одно по формуле [image].
Примеры:

test_fast_gauss.cpp и test_plf_filters.cpp.

Конструктор(ы)

template<typename T>
Vtl::Plf::F21::SqrtOfSumSqr< T >::SqrtOfSumSqr ( ) [inline]

Методы

template<typename T>
T Vtl::Plf::F21::SqrtOfSumSqr< T >::operator() | ( | T | v1,
 |  | T | v2 |
 | ) |  |  | const [inline]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Plf::SrcAImage< T, I, P >

Vtl::Plf::SrcAImage

Шаблон класса Vtl::Plf::SrcAImage< T, I, P >
[Source and target filters]

Источник изображений для системы потоковой фильтрации на базе изображений, размещенных в памяти в контейнере типа AImageMem8, AImageMem16, AImageMemFloat. Подробнее...

#include <plf_io_filter.h>

Граф наследования:Vtl::Plf::SrcAImage< T, I, P >:

[см. легенду]
Граф связей класса Vtl::Plf::SrcAImage< T, I, P >:

[см. легенду]
Полный список членов класса

Открытые члены

SrcAImage ()
SrcAImage (std::string name, I *ptr, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~SrcAImage ()
void | Init (std::string name, I *ptr, P post_proc=Vtl::Plf::F11::DoNothing< T >())

Подробное описание

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::SrcAImage< T, I, P >

Источник изображений для системы потоковой фильтрации на базе изображений, размещенных в памяти в контейнере типа AImageMem8, AImageMem16, AImageMemFloat.
Примеры:

test_color_registration.cpp, test_image_registration_via_fft.cpp, test_plf_filters.cpp и test_plf_filters_rgb.cpp.

Конструктор(ы)

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SrcAImage< T, I, P >::SrcAImage ( ) [inline]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SrcAImage< T, I, P >::SrcAImage | ( | std::string | name,
 |  | I * | ptr,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::SrcAImage< T, I, P >::~SrcAImage ( ) [inline, virtual]

Методы

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::SrcAImage< T, I, P >::Init | ( | std::string | name,
 |  | I * | ptr,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

Объявления и описания членов класса находятся в файле:
  • plf_io_filter.h


Pipe Line Filters: Шаблон класса Vtl::Plf::SrcAImageRgb< T, I, P >

Vtl::Plf::SrcAImageRgb

Шаблон класса Vtl::Plf::SrcAImageRgb< T, I, P >
[Source and target filters]

#include <plf_io_filter.h>

Граф наследования:Vtl::Plf::SrcAImageRgb< T, I, P >:

[см. легенду]
Граф связей класса Vtl::Plf::SrcAImageRgb< T, I, P >:

[см. легенду]
Полный список членов класса

Открытые члены

SrcAImageRgb ()
SrcAImageRgb (std::string name, I *ptr, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~SrcAImageRgb ()
void | Init (std::string name, I *ptr, P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Restart ()
virtual void | set_OutPortsImagesSizeAndInPortsExtents ()
virtual void | processLine ()

Открытые атрибуты

OutPort< T, P > | out_1
OutPort< T, P > | out_2
OutPort< T, P > | out_3

Закрытые члены

void | copy_line (typename OutPortNoPostProc< T >::BufType::Iter_Line it, typename I::PlaneImageType::Pixel *p)

Закрытые данные

I::PlaneImageType * | r
I::PlaneImageType * | g
I::PlaneImageType * | b
int | y
int | w
int | h

Подробное описание

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::SrcAImageRgb< T, I, P >

Источник изображений для системы потоковой фильтрации на базе изображений, размещенных в памяти в контейнере типа AImageMemRgb8, AImageMemRgb16.

Конструктор(ы)

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SrcAImageRgb< T, I, P >::SrcAImageRgb ( ) [inline]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SrcAImageRgb< T, I, P >::SrcAImageRgb | ( | std::string | name,
 |  | I * | ptr,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::SrcAImageRgb< T, I, P >::~SrcAImageRgb ( ) [inline, virtual]

Методы

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::SrcAImageRgb< T, I, P >::Init | ( | std::string | name,
 |  | I * | ptr,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::SrcAImageRgb< T, I, P >::Restart ( ) [inline]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::SrcAImageRgb< T, I, P >::set_OutPortsImagesSizeAndInPortsExtents ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::FilterElementary.

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::SrcAImageRgb< T, I, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::SrcAImageRgb< T, I, P >::copy_line | ( | typename OutPortNoPostProc< T >::BufType::Iter_Line | it,
 |  | typename I::PlaneImageType::Pixel * | p |
 | ) |  |  | [inline, private]

Данные класса

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::SrcAImageRgb< T, I, P >::out_1

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::SrcAImageRgb< T, I, P >::out_2

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::SrcAImageRgb< T, I, P >::out_3

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
I::PlaneImageType* Vtl::Plf::SrcAImageRgb< T, I, P >::r [private]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
I::PlaneImageType* Vtl::Plf::SrcAImageRgb< T, I, P >::g [private]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
I::PlaneImageType* Vtl::Plf::SrcAImageRgb< T, I, P >::b [private]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::SrcAImageRgb< T, I, P >::y [private]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::SrcAImageRgb< T, I, P >::w [private]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::SrcAImageRgb< T, I, P >::h [private]

Объявления и описания членов класса находятся в файле:
  • plf_io_filter.h


Pipe Line Filters: Шаблон класса Vtl::Plf::SrcArray< T, I, P >

Vtl::Plf::SrcArray

Шаблон класса Vtl::Plf::SrcArray< T, I, P >
[Source and target filters]

#include <plf_io_filter.h>

Граф наследования:Vtl::Plf::SrcArray< T, I, P >:

[см. легенду]
Граф связей класса Vtl::Plf::SrcArray< T, I, P >:

[см. легенду]
Полный список членов класса

Открытые члены

SrcArray ()
SrcArray (std::string name, I *ptr, int width, int height, int next_line_shift, P post_proc=Vtl::Plf::F11::DoNothing< T >())
virtual | ~SrcArray ()
void | Init (std::string name, I *ptr, int width, int height, int next_line_shift, P post_proc=Vtl::Plf::F11::DoNothing< T >())
void | Restart ()
virtual void | set_OutPortsImagesSizeAndInPortsExtents ()
virtual void | processLine ()

Открытые атрибуты

OutPort< T, P > | out

Закрытые данные

I * | data
int | y
int | w
int | h
int | nls

Подробное описание

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::SrcArray< T, I, P >

Источник изображений для системы потоковой фильтрации на базе изображений, размещенных в памяти в массиве.
Аргументы:
T | - тип выходного потока (пикселей) строк изображения
I | - тип массива данных, для приведения типа P к типу P должно действовать преобразование типа по умолчанию.
P | - тип функтора постобработки, по умолчанию - тождественное преобразование, следующий фильтр получит изображение для каждого пикселя v которого была однократно применена операция v=P(v).

Конструктор(ы)

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SrcArray< T, I, P >::SrcArray ( ) [inline]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::SrcArray< T, I, P >::SrcArray | ( | std::string | name,
 |  | I * | ptr,
 |  | int | width,
 |  | int | height,
 |  | int | next_line_shift,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::SrcArray< T, I, P >::~SrcArray ( ) [inline, virtual]

Методы

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::SrcArray< T, I, P >::Init | ( | std::string | name,
 |  | I * | ptr,
 |  | int | width,
 |  | int | height,
 |  | int | next_line_shift,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::SrcArray< T, I, P >::Restart ( ) [inline]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::SrcArray< T, I, P >::set_OutPortsImagesSizeAndInPortsExtents ( ) [inline, virtual]

Переопределяет метод предка Vtl::Plf::FilterElementary.

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
virtual void Vtl::Plf::SrcArray< T, I, P >::processLine ( ) [inline, virtual]

Замещает Vtl::Plf::FilterElementary.

Данные класса

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P> Vtl::Plf::SrcArray< T, I, P >::out

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
I* Vtl::Plf::SrcArray< T, I, P >::data [private]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::SrcArray< T, I, P >::y [private]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::SrcArray< T, I, P >::w [private]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::SrcArray< T, I, P >::h [private]

template<typename T, class I, class P = Vtl::Plf::F11::DoNothing<T>>
int Vtl::Plf::SrcArray< T, I, P >::nls [private]

Объявления и описания членов класса находятся в файле:
  • plf_io_filter.h


Pipe Line Filters: Шаблон класса Vtl::Plf::StatDiff< T, P >

Vtl::Plf::StatDiff

Шаблон класса Vtl::Plf::StatDiff< T, P >
[Complex filters]

Выполняет статистическое дифференцирование изображения. Среднее и дисперсия вычисляются с помощью свертки с Гауссом. Подробнее...

#include <plf_filters_complex.h>

Граф наследования:Vtl::Plf::StatDiff< T, P >:

[см. легенду]
Граф связей класса Vtl::Plf::StatDiff< T, P >:

[см. легенду]
Полный список членов класса

Открытые члены

OutPort< T, P > & | out ()
StatDiff ()
StatDiff (std::string name, T output_maxval, float sigma=5.0f, float env_sigmas=2.0f, float amplification=6.0f, float sigma_desired=85.0f, float mean_desired=128.0f, float alpha=0.8f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
output_maxval==float((1<<bits)-1)
void | Init (std::string name, T output_maxval, float sigma=5.0f, float env_sigmas=2.0f, float amplification=6.0f, float sigma_desired=85.0f, float mean_desired=128.0f, float alpha=0.8f, P post_proc=Vtl::Plf::F11::DoNothing< T >())
output_maxval==float((1<<bits)-1)
virtual | ~StatDiff ()

Открытые атрибуты

InPortComb< T > | in

Закрытые члены

StatDiff (const StatDiff &)
StatDiff & | operator= (const StatDiff &)

Закрытые данные

Vtl::Plf::MeanAndDisp< T > | mean_and_disp
PixByPix3to1< T, Vtl::Plf::F31::StatDiff<
T >, P > 		stat

Подробное описание

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
class Vtl::Plf::StatDiff< T, P >

Выполняет статистическое дифференцирование изображения. Среднее и дисперсия вычисляются с помощью свертки с Гауссом.

См. также:
MeanAndDisp. Оператор статистического дифференцирования имеет вид: ,
где
  • $ G(x,y) $ - изображение-результат
  • $ I(x,y) $ - исходное изображение
  • - исходное изображение, усредненное (сглаженное) по некоторой окрестности каждой точки (x,y).
  • - дисперсия яркости изображения по окрестности точки.
  • $ m_d $ и [image] - желаемые среднее значение и среднеквадратичное отклонение.
  • $ A $ - максимальный коэффициент усиления, введенный для предотвращения излишне больших яркостей обработанного изображения в тех точках где [image] мало.
  • - исходное коэффициент устанавливающий соотношение между яркостью границ и яркостью фона результирующего изображения.
По сути алгоритм статистического дифференцирования является алгоритмом Sharpen, описываемым классическим выражением [image] , токлько коэффициент усиления $ k $ (при $ k=1 $ результатом является исходное изображение, при $ k=0 $ -сглаженное, при $ 0 < k < 1$ - изображение с ослабленными деталями, при $ 1 < k $ - изображение с усиленными деталями) переменный по плоскости изображения [image] и определяется локальной дисперсией изображения, там где дисперсия больше - коэффициент усиления меньше (и так много деталей). Вместо же первого слагаемого [image] - сглаженного изображения - используется выражение [image] , которое при [image] переходит в константу $ m_d $, т.е. однородный серый фон, а при [image] остается таким же как в алгоритме Sharpen.

Структура фильтра Vtl::Plf::StatDiff - статистического дифференцирования изображения

Результат воздействия на изображение

этим фильтром
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::StatDiff< T, P >::StatDiff ( const StatDiff< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::StatDiff< T, P >::StatDiff ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::StatDiff< T, P >::StatDiff | ( | std::string | name,
 |  | T | output_maxval,
 |  | float | sigma = 5.0f,
 |  | float | env_sigmas = 2.0f,
 |  | float | amplification = 6.0f,
 |  | float | sigma_desired = 85.0f,
 |  | float | mean_desired = 128.0f,
 |  | float | alpha = 0.8f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

output_maxval==float((1<<bits)-1)

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
virtual Vtl::Plf::StatDiff< T, P >::~StatDiff ( ) [inline, virtual]

Методы

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
StatDiff& Vtl::Plf::StatDiff< T, P >::operator= ( const StatDiff< T, P > & ) [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
OutPort<T,P>& Vtl::Plf::StatDiff< T, P >::out ( ) [inline]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
void Vtl::Plf::StatDiff< T, P >::Init | ( | std::string | name,
 |  | T | output_maxval,
 |  | float | sigma = 5.0f,
 |  | float | env_sigmas = 2.0f,
 |  | float | amplification = 6.0f,
 |  | float | sigma_desired = 85.0f,
 |  | float | mean_desired = 128.0f,
 |  | float | alpha = 0.8f,
 |  | P | post_proc = Vtl::Plf::F11::DoNothing<T>() |
 | ) |  |  | [inline]

output_maxval==float((1<<bits)-1)

Данные класса

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
Vtl::Plf::MeanAndDisp<T> Vtl::Plf::StatDiff< T, P >::mean_and_disp [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
PixByPix3to1<T,Vtl::Plf::F31::StatDiff<T>,P > Vtl::Plf::StatDiff< T, P >::stat [private]

template<typename T, class P = Vtl::Plf::F11::DoNothing<T>>
InPortComb<T> Vtl::Plf::StatDiff< T, P >::in

Объявления и описания членов класса находятся в файле:
  • plf_filters_complex.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F31::StatDiff< T >

Vtl::Plf::F31::StatDiff

Шаблон класса Vtl::Plf::F31::StatDiff< T >

Функтор StatDiff для PixByPix3to1. Из трех величин [image] представляющих собой яркостьв точке, среднюю яркость и корень из дисперсии, вычисленные по окрестности точки вычисляет выражение для статистического дифференцирования изображения, [Pratt82]. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

StatDiff (float amplification=6.0f, float sigma_desired=85.0f, float mean_desired=128.0f, float phone_to_edges=0.8f)
T | operator() (T f, T f_mean, T f_sigma) const

Закрытые данные

float | A
float | sigma_d
float | m_d
float | alpha

Подробное описание

template<typename T>
class Vtl::Plf::F31::StatDiff< T >

Функтор StatDiff для PixByPix3to1. Из трех величин [image] представляющих собой яркостьв точке, среднюю яркость и корень из дисперсии, вычисленные по окрестности точки вычисляет выражение для статистического дифференцирования изображения, [Pratt82].

Конструктор(ы)

template<typename T>
Vtl::Plf::F31::StatDiff< T >::StatDiff | ( | float | amplification = 6.0f,
 |  | float | sigma_desired = 85.0f,
 |  | float | mean_desired = 128.0f,
 |  | float | phone_to_edges = 0.8f |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::Plf::F31::StatDiff< T >::operator() | ( | T | f,
 |  | T | f_mean,
 |  | T | f_sigma |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
float Vtl::Plf::F31::StatDiff< T >::A [private]

template<typename T>
float Vtl::Plf::F31::StatDiff< T >::sigma_d [private]

template<typename T>
float Vtl::Plf::F31::StatDiff< T >::m_d [private]

template<typename T>
float Vtl::Plf::F31::StatDiff< T >::alpha [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F31::StatDiffThresh< T >

Vtl::Plf::F31::StatDiffThresh

Шаблон класса Vtl::Plf::F31::StatDiffThresh< T >

#include <StatDiff.h>

Полный список членов класса

Открытые члены

StatDiffThresh (float amplification=6.0f, float sigma_desired=85.0f, float mean_desired=128.0f, float phone_to_edges=0.8f, float in_thresh=5.0f)
T | operator() (T f, T f_mean, T f_sigma) const

Закрытые данные

float | A
float | sigma_d
float | m_d
float | alpha
float | thresh

template<typename T>
class Vtl::Plf::F31::StatDiffThresh< T >

Конструктор(ы)

template<typename T>
Vtl::Plf::F31::StatDiffThresh< T >::StatDiffThresh | ( | float | amplification = 6.0f,
 |  | float | sigma_desired = 85.0f,
 |  | float | mean_desired = 128.0f,
 |  | float | phone_to_edges = 0.8f,
 |  | float | in_thresh = 5.0f |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::Plf::F31::StatDiffThresh< T >::operator() | ( | T | f,
 |  | T | f_mean,
 |  | T | f_sigma |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
float Vtl::Plf::F31::StatDiffThresh< T >::A [private]

template<typename T>
float Vtl::Plf::F31::StatDiffThresh< T >::sigma_d [private]

template<typename T>
float Vtl::Plf::F31::StatDiffThresh< T >::m_d [private]

template<typename T>
float Vtl::Plf::F31::StatDiffThresh< T >::alpha [private]

template<typename T>
float Vtl::Plf::F31::StatDiffThresh< T >::thresh [private]

Объявления и описания членов класса находятся в файле:
  • StatDiff.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >

Vtl::ImAlg::Registration::Storage

Шаблон класса Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >

Класс, для выделения нескольких блоков памяти (и их освобождения). Обеспечивает выравнивание блоков, и обеспечивает, чтобы смещение между любой парой блоков не равнялось указанному числу. Подробнее см. описание к макроопределению PROCESSOR_MEMORY_AVOID_PTR_DIFF . Подробнее...

#include <storage.h>

Полный список членов класса

Открытые типы

enum | { N = ndim }
typedef size_t | Offsets_t [ndim]

Открытые члены

Storage ()
~Storage ()
void | Init (Offsets_t sz)
template<size_t i>
T * | block ()
template<size_t i>
const T * | block () const

Закрытые данные

Offsets_t ofs
std::vector< T > | data_
T * | data

Подробное описание

template<typename T, size_t ndim, size_t align = PROCESSOR_MEMORY_ALIGNMENT, size_t avoid_ptrdiff = PROCESSOR_MEMORY_AVOID_PTR_DIFF>
class Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >

Класс, для выделения нескольких блоков памяти (и их освобождения). Обеспечивает выравнивание блоков, и обеспечивает, чтобы смещение между любой парой блоков не равнялось указанному числу. Подробнее см. описание к макроопределению PROCESSOR_MEMORY_AVOID_PTR_DIFF .

Определения типов

template<typename T, size_t ndim, size_t align = PROCESSOR_MEMORY_ALIGNMENT, size_t avoid_ptrdiff = PROCESSOR_MEMORY_AVOID_PTR_DIFF>
typedef size_t Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >::Offsets_t[ndim]

Перечисления

template<typename T, size_t ndim, size_t align = PROCESSOR_MEMORY_ALIGNMENT, size_t avoid_ptrdiff = PROCESSOR_MEMORY_AVOID_PTR_DIFF>
anonymous enum

Элементы перечислений:
N

Конструктор(ы)

template<typename T, size_t ndim, size_t align = PROCESSOR_MEMORY_ALIGNMENT, size_t avoid_ptrdiff = PROCESSOR_MEMORY_AVOID_PTR_DIFF>
Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >::Storage ( ) [inline]

template<typename T, size_t ndim, size_t align = PROCESSOR_MEMORY_ALIGNMENT, size_t avoid_ptrdiff = PROCESSOR_MEMORY_AVOID_PTR_DIFF>
Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >::~Storage ( ) [inline]

Методы

template<typename T, size_t ndim, size_t align = PROCESSOR_MEMORY_ALIGNMENT, size_t avoid_ptrdiff = PROCESSOR_MEMORY_AVOID_PTR_DIFF>
void Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >::Init ( Offsets_t sz ) [inline]

template<typename T, size_t ndim, size_t align = PROCESSOR_MEMORY_ALIGNMENT, size_t avoid_ptrdiff = PROCESSOR_MEMORY_AVOID_PTR_DIFF>
template<size_t i>
T* Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >::block ( ) [inline]

template<typename T, size_t ndim, size_t align = PROCESSOR_MEMORY_ALIGNMENT, size_t avoid_ptrdiff = PROCESSOR_MEMORY_AVOID_PTR_DIFF>
template<size_t i>
const T* Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >::block ( ) const [inline]

Данные класса

template<typename T, size_t ndim, size_t align = PROCESSOR_MEMORY_ALIGNMENT, size_t avoid_ptrdiff = PROCESSOR_MEMORY_AVOID_PTR_DIFF>
Offsets_t Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >::ofs [private]

template<typename T, size_t ndim, size_t align = PROCESSOR_MEMORY_ALIGNMENT, size_t avoid_ptrdiff = PROCESSOR_MEMORY_AVOID_PTR_DIFF>
std::vector<T> Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >::data_ [private]

template<typename T, size_t ndim, size_t align = PROCESSOR_MEMORY_ALIGNMENT, size_t avoid_ptrdiff = PROCESSOR_MEMORY_AVOID_PTR_DIFF>
T* Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >::data [private]

Объявления и описания членов класса находятся в файле:
  • storage.h


Pipe Line Filters: Класс Vtl::Plf::Strip

Vtl::Plf::Strip

Класс Vtl::Plf::Strip
[Ports and buffers]

Служит для описания полосы изображения, находящейся в class StripBuffer и полосы, которая нужна для обработки class InPort. Подробнее...

#include <plf_strip_buffer_support.h>

Полный список членов класса

Открытые члены

Strip ()
Strip (int y_start, int y_after_end)
Strip (int y_current, Extent ext)
Strip (const Strip &s)
Strip & | operator= (const Strip &s)
bool | isEmpty () const
int | last () const
Strip & operator++ ()
Strip & | operator+= (int delta)
Strip & | operator|= (const Strip &s)
bool | isContains (const Strip &s) const
Возвращает true, если s находится внутри текущей полосы.
bool | isContains (int y) const
Возвращает true, если y находится внутри текущей полосы.
bool | isIn (const Strip &s) const
Возвращает true, если текущая полоса находится внутри s.
bool | canMove (const Strip &s) const

Закрытые данные

int | y_last
int | y_wait

Друзья

static friend Strip | operator| (const Strip &s1, const Strip &s2)

Подробное описание

Служит для описания полосы изображения, находящейся в class StripBuffer и полосы, которая нужна для обработки class InPort.

class Strip

Считается, что y_last <= y_wait в некотором смысле упорядочивания, который задается типом величин T. Если left>right, интервал считается пустым, не содержащим никаких точек, эквивалентно пустому множеству или NULL.

Конструктор(ы)

Vtl::Plf::Strip::Strip ( ) [inline]

Vtl::Plf::Strip::Strip | ( | int | y_start,
 |  | int | y_after_end |
 | ) |  |  | [inline]

Vtl::Plf::Strip::Strip | ( | int | y_current,
 |  | Extent | ext |
 | ) |  |  | [inline]

Vtl::Plf::Strip::Strip ( const Strip & s ) [inline]

Методы

Strip& Vtl::Plf::Strip::operator= ( const Strip & s ) [inline]

bool Vtl::Plf::Strip::isEmpty ( ) const [inline]

int Vtl::Plf::Strip::last ( ) const [inline]

Strip& Vtl::Plf::Strip::operator++ ( ) [inline]

Strip& Vtl::Plf::Strip::operator+= ( int delta ) [inline]

Strip& Vtl::Plf::Strip::operator|= ( const Strip & s ) [inline]

bool Vtl::Plf::Strip::isContains ( const Strip & s ) const [inline]

Возвращает true, если s находится внутри текущей полосы.

bool Vtl::Plf::Strip::isContains ( int y ) const [inline]

Возвращает true, если y находится внутри текущей полосы.

bool Vtl::Plf::Strip::isIn ( const Strip & s ) const [inline]

Возвращает true, если текущая полоса находится внутри s.

bool Vtl::Plf::Strip::canMove ( const Strip & s ) const [inline]

Возвращает true, если запрашиваемая полоса s позднее, чем текущая полоса, т.е. если y_last < s.y_last

Документация по друзьям класса и функциям, отноносящимся к классу

static friend Strip operator| | ( | const Strip & | s1,
 |  | const Strip & | s2 |
 | ) |  |  | [friend]

Данные класса

int Vtl::Plf::Strip::y_last [private]

int Vtl::Plf::Strip::y_wait [private]

Объявления и описания членов класса находятся в файле:
  • plf_strip_buffer_support.h


Pipe Line Filters: Шаблон класса Vtl::Plf::StripBuffer< T >

Vtl::Plf::StripBuffer

Шаблон класса Vtl::Plf::StripBuffer< T >
[Ports and buffers]

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

#include <plf_strip_buffer.h>

Граф связей класса Vtl::Plf::StripBuffer< T >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef T * | Iter_Line

Открытые члены

StripBuffer ()
virtual | ~StripBuffer ()
void | init_1 (const ImgSize &sz)
void | init_2 (const Extent &ext)
void | init_3 (int increase_delay_by)
void | init_4 ()
void | Rewind ()
ImgSize | ImageSize () const
Размер виртуального изображения, которое представляет этот буфер, делая доступной для чтения полосу изображения, определяемую параметрами Extent.
Extent | ext () const
Размер буфера. Параметры Extent буфера - буфер для каждой текущей строки Y() изображения размером ImageSize(), готовой к обработке хранит тавкже строки от Y()-ext().before до Y()+ext().forward включительно. Влево и вправо изображение дополняется на ext().left и ext().right пикселей путем отраженияотносительно границ, дополнение изображения по вертикали также осуществляется путем отражения на ext().before вверх и ext().forward строк вниз.
int | delay () const
Задержка в строках между поступлением 'y' строки в буфер и готовностью к обработке строки 'y' вместе с полосой ext().
Strip | delay (Extent extent) const
Задержка в строках между поступлением 'y' строки в буфер и готовностью к обработке строки 'y' вместе с полосой 'extent'. Возвращает интервал задаржек, строка доступна для чтения при либой задержке из этого интервала.
int | Y () const
Текущая строка изображения, доступная для чтения (вместе со всей полосой Extent).
int | Y_wait () const
Строка изображения, которую надо будет поместить в буфер при его очередном обновлении. До обновления в буфере находятся строки от Y_last() до Y_wait()-1 включительно.
int | Y_last () const
Самая старая строка изображения которая одержится в буфере, при очередном обновлении буфера (подвижке вниз по изображению на одну строку), эта строка уйдет из буфера, будет безвозвратно забыта.
Strip | getCurStrip () const
Задержка в строках между поступлением 'y' строки в буфер и готовностью к обработке строки 'y' вместе с полосой 'extent'. Возвращает интервал задаржек, строка доступна для чтения при либой задержке из этого интервала.
const ImageRef< T > & | getImg () const
ImageRef< T > | getImg (const Extent &ex1, const Strip &strip) const
void | InsertNextLineStart ()
void | InsertNextLineFinished ()
void | PopTail ()
Iter_Line begin_line_insert ()
Iter_Line end_line_insert ()

Закрытые члены

T * | ptrLineStart (int y)
T * | ptrLine0 (int y)
void | _hFlipLeft (Iter_Line it, int len)
void | _hFlipRight (Iter_Line it, int len)
void | _mirrorLineRelCenter (int src_y, int dst_y)

Закрытые данные

std::vector< T > | vec
Extent ex
ImgSize ims
int | full_width
int | y_wait
ImageRef< T > | ir
T * | ptr_beg_ins

Подробное описание

template<typename T>
class Vtl::Plf::StripBuffer< T >

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

class StripBuffer

Подробнее см.

  • StripBuffer Initialization functions
  • StripBuffer current position / info
  • Image data reading from StripBuffer
  • Writing into StripBuffer
Примеры:

test_plf_strip_buffer.cpp.

Конструктор(ы)

template<typename T>
Vtl::Plf::StripBuffer< T >::StripBuffer ( ) [inline]

template<typename T>
virtual Vtl::Plf::StripBuffer< T >::~StripBuffer ( ) [inline, virtual]

Методы

template<typename T>
T* Vtl::Plf::StripBuffer< T >::ptrLineStart ( int y ) [inline, private]

template<typename T>
T* Vtl::Plf::StripBuffer< T >::ptrLine0 ( int y ) [inline, private]

Данные класса

template<typename T>
std::vector<T> Vtl::Plf::StripBuffer< T >::vec [private]

template<typename T>
Extent Vtl::Plf::StripBuffer< T >::ex [private]

template<typename T>
ImgSize Vtl::Plf::StripBuffer< T >::ims [private]

template<typename T>
int Vtl::Plf::StripBuffer< T >::full_width [private]

template<typename T>
int Vtl::Plf::StripBuffer< T >::y_wait [private]

Ожидается поступление (но еще не поступила!) строки входного изображения номер 'y'. Нумерация от 0 до (ims.height-1). Значение изменяется ПОСЛЕ завершения вставки строки, т.е. после вызова функции void InsertNextLineFinished() или после выталкивания очередной строки содержимого, т.е. вызова функции void PopTail().

template<typename T>
ImageRef<T> Vtl::Plf::StripBuffer< T >::ir [private]

Объявления и описания членов класса находятся в файле:
  • plf_strip_buffer.h


Pipe Line Filters: Структура Vtl::Types::SUIntOrReal

Vtl::Types::SUIntOrReal

Структура Vtl::Types::SUIntOrReal

Определение констант для выбора типа. Подробнее...

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum Types { SInt, UInt, Real, Unknown = -1 }

Подробное описание

Определение констант для выбора типа.

Перечисления

enum Vtl::Types::SUIntOrReal::Types

Элементы перечислений:
SInt
UInt
Real
Unknown

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Plf::F21::Sum< T >

Vtl::Plf::F21::Sum

Шаблон структуры Vtl::Plf::F21::Sum< T >

#include <plf_functors.h>

Полный список членов класса

Открытые члены

template<typename T1>
T operator() (T1 val1, T1 val2)

Подробное описание

template<typename T>
struct Vtl::Plf::F21::Sum< T >

Примеры:

test_fast_gauss.cpp.

Методы

template<typename T>
template<typename T1>
T Vtl::Plf::F21::Sum< T >::operator() | ( | T1 | val1,
 |  | T1 | val2 |
 | ) |  |  | [inline]

Объявления и описания членов структуры находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F31::Sum3< T >

Vtl::Plf::F31::Sum3

Шаблон класса Vtl::Plf::F31::Sum3< T >

Функтор Sum3 для PixByPix3to1. Вычисляет [image] . Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

Sum3 ()
T operator() (T v1, T v2, T v3) const

Подробное описание

template<typename T>
class Vtl::Plf::F31::Sum3< T >

Функтор Sum3 для PixByPix3to1. Вычисляет [image] .

Конструктор(ы)

template<typename T>
Vtl::Plf::F31::Sum3< T >::Sum3 ( ) [inline]

Методы

template<typename T>
T Vtl::Plf::F31::Sum3< T >::operator() | ( | T | v1,
 |  | T | v2,
 |  | T | v3 |
 | ) |  |  | const [inline]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Класс Vtl::NumAlg::Lin::svd

Vtl::NumAlg::Lin::svd

Класс Vtl::NumAlg::Lin::svd

#include <_num_svd.h>

Полный список членов класса

Открытые статические члены

template<class MatrixU, class MatrixV, class VectorW, class VectorRV1>
static int | decomp (MatrixU &UU, VectorW &W, MatrixV &VV, VectorRV1 &RV1, bool calcU=true, bool calcV=true)
template<class MatrixU, class MatrixV, class VectorW>
static void | comp (MatrixU &A, MatrixU &UU, VectorW &W, MatrixV &VV)
Собирает матрицу из ее SVD разложения.
template<class MatrixAinv, class MatrixU, class VectorS, class MatrixV>
static void | inverse (MatrixAinv &Ainv, MatrixU &UU, VectorS &W, MatrixV &VV, double relerr)
template<typename T, size_t M, size_t N>
static void | inverse (ublas::c_matrix< T, N, M > &Ainv, ublas::c_matrix< T, M, N > &A, double relerr)
template<typename T, size_t M, size_t N>
static void | inverse_save (ublas::c_matrix< T, N, M > &Ainv, ublas::c_matrix< T, M, N > A, double relerr)
template<typename T, size_t M, size_t N>
static ublas::c_matrix< T,
N, M > 		inverse (ublas::c_matrix< T, M, N > &A, double relerr)
template<typename T, size_t M, size_t N>
static ublas::c_matrix< T,
N, M > 		inverse_save (ublas::c_matrix< T, M, N > A, double relerr)
template<class VectorRes, class VectorB, class MatrixU, class VectorS, class MatrixV>
static void | solve (VectorRes &result, VectorB &b, MatrixU &U, VectorS &S, MatrixV &V, double relerr)
template<typename T, size_t M, size_t N>
static void | solve (ublas::c_vector< T, N > &x, ublas::c_matrix< T, M, N > &A, ublas::c_vector< T, M > &b, double relerr)
template<typename T, size_t M, size_t N>
static void | solve_save (ublas::c_vector< T, N > &x, ublas::c_matrix< T, M, N > A, ublas::c_vector< T, M > b, double relerr)
template<typename T, size_t M, size_t N>
static ublas::c_vector< T, N > | solve (ublas::c_matrix< T, M, N > &A, ublas::c_vector< T, M > &b, double relerr)
template<typename T, size_t M, size_t N>
static ublas::c_vector< T, N > | solve_save (ublas::c_matrix< T, M, N > A, ublas::c_vector< T, M > b, double relerr)
template<typename T, size_t N>
static void | sort (Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > &U, Vtl::NumAlg::Lin::ublas::c_vector< T, N > &W, Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > &V)
Reorder SVD so that singular values in decrement order.

Закрытые статические члены

template<typename T, class MatrixU, class VectorW, class VectorRV1>
static void | hausholder (T &G, T &ANORM, VectorW &W, MatrixU &UU, VectorRV1 &RV1)
хаусхолдерово приведение к двухдиагональной форме

Методы

template<typename T, class MatrixU, class VectorW, class VectorRV1>
static void Vtl::NumAlg::Lin::svd::hausholder | ( | T & | G,
 |  | T & | ANORM,
 |  | VectorW & | W,
 |  | MatrixU & | UU,
 |  | VectorRV1 & | RV1 |
 | ) |  |  | [inline, static, private]

хаусхолдерово приведение к двухдиагональной форме

template<class MatrixU, class MatrixV, class VectorW, class VectorRV1>
static int Vtl::NumAlg::Lin::svd::decomp | ( | MatrixU & | UU,
 |  | VectorW & | W,
 |  | MatrixV & | VV,
 |  | VectorRV1 & | RV1,
 |  | bool | calcU = true,
 |  | bool | calcV = true |
 | ) |  |  | [inline, static]

double A(NM,N),W(N),U(NM,N),V(NM,N),RV1(N) //MY double A(M,N),W(N),U(NM,N),V(N,N),RV1(N)

Эта подпрограмма вычисляет сингулярное разложение T A=USV деиствительной прямоугольной матрицы A с размерами M*N. При этом используется двухдиагонализация посредством хаусхол- деровых отражений и вариант QR-алгоритма.

НА ВХОДЕ: """"""""""""""""" M - число строк матриц A и U.

N - число столбцов матриц A и U и порядок V.

NM =< max{ M,N } - следует положить равным строчной размер- ности двумерных массивов, заявленной в операторе размерности вызывающей программы.

A - содержит прямоугольную входную матрицу, для которой находит- ся разложение.

MATU =.TRUE. если нужно вычислять матрицу U из разложения. MATU =.FALSE. в противном случае.

MATV =.TRUE. если нужно вычислять матрицу V из разложения. MATV =.FALSE. в противном случае. !!!Yurin change: вместо параметра MATU =.FALSE. используется нулевой указатель U=NULL !!!Yurin change: вместо параметра MATV =.FALSE. используется нулевой указатель V=NULL

НА ВЫХОДЕ: """""""""""""""" A не изменяется (если на ее месте не записываются U либо V).

W содержит N (неотрицательных) сингулярных чисел A (диаго- нальных элементов S). Они не упорядочены. Если происходит выход по ошибке, то для значений индекса IERR+1 -:- IERR + N сингулярные числа должны быть верны.

U содержит матрицу U (с ортогональными столбцами) из разложе- ния, если для параметра MATU было задано значение .TRUE. В противном случае U используется как временный массив. U мо- жет совпадать с A. Если происходит выход по ошибке, то столб- цы U , соответствующие индексам верных сингулярных чисел, должны также быть верны.

V содержит матрицу U ( ортогональную ) из разложения, если для параметра MATV было задано значение .TRUE. В противном случае на V не производится ссылок. V также может совпадать с A если U не вычисляется. Если происхо- дит выход по ошибке, то столбцы V , соответствующие индексам верных сингулярных чисел, должны также быть верны.

IERR=0 -если происходит нормальный вуход ис программы. IERR=K -если K-е сингулярное число не было определено после 30 итераций. IERR -возвращаемое значение!!!!!

RV1- это массив промежуточного хранения.

int SVD(int NM,int M,int N,double **A,double *W,bool MATU,double **U,bool MATV,double **V,double *RV1)

template<class MatrixU, class MatrixV, class VectorW>
static void Vtl::NumAlg::Lin::svd::comp | ( | MatrixU & | A,
 |  | MatrixU & | UU,
 |  | VectorW & | W,
 |  | MatrixV & | VV |
 | ) |  |  | [inline, static]

Собирает матрицу из ее SVD разложения.

template<class MatrixAinv, class MatrixU, class VectorS, class MatrixV>
static void Vtl::NumAlg::Lin::svd::inverse | ( | MatrixAinv & | Ainv,
 |  | MatrixU & | UU,
 |  | VectorS & | W,
 |  | MatrixV & | VV,
 |  | double | relerr |
 | ) |  |  | [inline, static]

template<typename T, size_t M, size_t N>
static void Vtl::NumAlg::Lin::svd::inverse | ( | ublas::c_matrix< T, N, M > & | Ainv,
 |  | ublas::c_matrix< T, M, N > & | A,
 |  | double | relerr |
 | ) |  |  | [inline, static]

template<typename T, size_t M, size_t N>
static void Vtl::NumAlg::Lin::svd::inverse_save | ( | ublas::c_matrix< T, N, M > & | Ainv,
 |  | ublas::c_matrix< T, M, N > | A,
 |  | double | relerr |
 | ) |  |  | [inline, static]

template<typename T, size_t M, size_t N>
static ublas::c_matrix<T,N,M> Vtl::NumAlg::Lin::svd::inverse | ( | ublas::c_matrix< T, M, N > & | A,
 |  | double | relerr |
 | ) |  |  | [inline, static]

template<typename T, size_t M, size_t N>
static ublas::c_matrix<T,N,M> Vtl::NumAlg::Lin::svd::inverse_save | ( | ublas::c_matrix< T, M, N > | A,
 |  | double | relerr |
 | ) |  |  | [inline, static]

template<class VectorRes, class VectorB, class MatrixU, class VectorS, class MatrixV>
static void Vtl::NumAlg::Lin::svd::solve | ( | VectorRes & | result,
 |  | VectorB & | b,
 |  | MatrixU & | U,
 |  | VectorS & | S,
 |  | MatrixV & | V,
 |  | double | relerr |
 | ) |  |  | [inline, static]

template<typename T, size_t M, size_t N>
static void Vtl::NumAlg::Lin::svd::solve | ( | ublas::c_vector< T, N > & | x,
 |  | ublas::c_matrix< T, M, N > & | A,
 |  | ublas::c_vector< T, M > & | b,
 |  | double | relerr |
 | ) |  |  | [inline, static]

template<typename T, size_t M, size_t N>
static void Vtl::NumAlg::Lin::svd::solve_save | ( | ublas::c_vector< T, N > & | x,
 |  | ublas::c_matrix< T, M, N > | A,
 |  | ublas::c_vector< T, M > | b,
 |  | double | relerr |
 | ) |  |  | [inline, static]

template<typename T, size_t M, size_t N>
static ublas::c_vector<T,N> Vtl::NumAlg::Lin::svd::solve | ( | ublas::c_matrix< T, M, N > & | A,
 |  | ublas::c_vector< T, M > & | b,
 |  | double | relerr |
 | ) |  |  | [inline, static]

template<typename T, size_t M, size_t N>
static ublas::c_vector<T,N> Vtl::NumAlg::Lin::svd::solve_save | ( | ublas::c_matrix< T, M, N > | A,
 |  | ublas::c_vector< T, M > | b,
 |  | double | relerr |
 | ) |  |  | [inline, static]

template<typename T, size_t N>
static void Vtl::NumAlg::Lin::svd::sort | ( | Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > & | U,
 |  | Vtl::NumAlg::Lin::ublas::c_vector< T, N > & | W,
 |  | Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > & | V |
 | ) |  |  | [inline, static]

Reorder SVD so that singular values in decrement order.

Объявления и описания членов класса находятся в файле:
  • _num_svd.h


Pipe Line Filters: Шаблон структуры Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, nd >

Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants

Шаблон структуры Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, nd >

#include <integral_transforms.h>

Полный список членов класса

Открытые статические члены

template<typename T, typename I>
static void sw (T *data_1, T *data_2, I n[], I ntot)

template<bool is_complex_pairs, int nd>
struct Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, nd >

Методы

template<bool is_complex_pairs, int nd>
template<typename T, typename I>
static void Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, nd >::sw | ( | T * | data_1,
 |  | T * | data_2,
 |  | I | n[],
 |  | I | ntot |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон структуры Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, 1 >

Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, 1 >

Шаблон структуры Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, 1 >

#include <integral_transforms.h>

Полный список членов класса

Открытые статические члены

template<typename T, typename I>
static void sw (T *data_1, T *data_2, I n[], I ntot)

template<bool is_complex_pairs>
struct Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, 1 >

Методы

template<bool is_complex_pairs>
template<typename T, typename I>
static void Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, 1 >::sw | ( | T * | data_1,
 |  | T * | data_2,
 |  | I | n[],
 |  | I | ntot |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон структуры Vtl::Img::T2DataType< T >

Vtl::Img::T2DataType

Шаблон структуры Vtl::Img::T2DataType< T >

По типу данных найти описатель тьипа DataType<>. Подробнее...

#include <vtl_image_types.h>

Полный список членов класса

Открытые типы

typedef DataType< DataTypeId<
T >::value > 		Result

Подробное описание

template<typename T>
struct Vtl::Img::T2DataType< T >

По типу данных найти описатель тьипа DataType<>.

Определения типов

template<typename T>
typedef DataType<DataTypeId<T>::value> Vtl::Img::T2DataType< T >::Result

Объявления и описания членов структуры находятся в файле:
  • vtl_image_types.h


Pipe Line Filters: Шаблон класса Basics3D::T_ImagesSet< Image >

Basics3D::T_ImagesSet

Шаблон класса Basics3D::T_ImagesSet< Image >

#include <ImagesSet.h>

Граф наследования:Basics3D::T_ImagesSet< Image >:

[см. легенду]
Полный список членов класса

Открытые члены

T_ImagesSet (char *in_argv[], int in_N)
Image * | operator[] (int i) const
int | Size () const
~T_ImagesSet ()

Закрытые данные

std::vector< Image * > | m_img

template<class Image>
class Basics3D::T_ImagesSet< Image >

Конструктор(ы)

template<class Image>
Basics3D::T_ImagesSet< Image >::T_ImagesSet | ( | char * | in_argv[],
 |  | int | in_N |
 | ) |  |  | [inline]

template<class Image>
Basics3D::T_ImagesSet< Image >::~T_ImagesSet ( ) [inline]

Методы

template<class Image>
Image* Basics3D::T_ImagesSet< Image >::operator[] ( int i ) const [inline]

template<class Image>
int Basics3D::T_ImagesSet< Image >::Size ( ) const [inline]

Данные класса

template<class Image>
std::vector<Image *> Basics3D::T_ImagesSet< Image >::m_img [private]

Объявления и описания членов класса находятся в файле:
  • ImagesSet.h


Pipe Line Filters: Класс T_Layout

Класс T_Layout

Граф наследования:T_Layout:

[см. легенду]
Объявления и описания членов класса находятся в файле:
  • vtl_image.h


Pipe Line Filters: Класс Basics3D::T_MatrixOperations

Basics3D::T_MatrixOperations

Класс Basics3D::T_MatrixOperations

#include <MatrixOperations.h>

Полный список членов класса

Открытые статические члены

template<class MatrixType>
static void | Normalize (MatrixType &out_M, const MatrixType &in_M, const MatrixType &T1_1, const MatrixType &T)
template<class MatrixType>
static void | TransformIntoNormCoord (std::vector< MatrixType > &out_matrix, const int in_w, const int in_h, const double in_sigma)
template<class MatrixType>
static void | TransformIntoPixelCoord (std::vector< MatrixType > &out_matrix, const int in_w, const int in_h, const double in_sigma)
template<class MatrixType>
static void | SortColumns (MatrixType &out_M, const MatrixType &in_M, const SortS< double > in_k[])
template<class MatrixType>
static void | Scale (MatrixType &out_M, const MatrixType &in_M)
template<class MatrixType>
static void | Print (const MatrixType &in_M)
template<class MatrixType>
static void | Save (const MatrixType &in_M, const char *filename)

Методы

template<class MatrixType>
static void Basics3D::T_MatrixOperations::Normalize | ( | MatrixType & | out_M,
 |  | const MatrixType & | in_M,
 |  | const MatrixType & | T1_1,
 |  | const MatrixType & | T |
 | ) |  |  | [inline, static]

template<class MatrixType>
static void Basics3D::T_MatrixOperations::TransformIntoNormCoord | ( | std::vector< MatrixType > & | out_matrix,
 |  | const int | in_w,
 |  | const int | in_h,
 |  | const double | in_sigma |
 | ) |  |  | [inline, static]

template<class MatrixType>
static void Basics3D::T_MatrixOperations::TransformIntoPixelCoord | ( | std::vector< MatrixType > & | out_matrix,
 |  | const int | in_w,
 |  | const int | in_h,
 |  | const double | in_sigma |
 | ) |  |  | [inline, static]

template<class MatrixType>
static void Basics3D::T_MatrixOperations::SortColumns | ( | MatrixType & | out_M,
 |  | const MatrixType & | in_M,
 |  | const SortS< double > | in_k[] |
 | ) |  |  | [inline, static]

template<class MatrixType>
static void Basics3D::T_MatrixOperations::Scale | ( | MatrixType & | out_M,
 |  | const MatrixType & | in_M |
 | ) |  |  | [inline, static]

template<class MatrixType>
static void Basics3D::T_MatrixOperations::Print ( const MatrixType & in_M ) [inline, static]

template<class MatrixType>
static void Basics3D::T_MatrixOperations::Save | ( | const MatrixType & | in_M,
 |  | const char * | filename |
 | ) |  |  | [inline, static]

Объявления и описания членов класса находятся в файле:
  • MatrixOperations.h


Pipe Line Filters: Шаблон класса Basics3D::T_MistakeFunc< Operations >

Basics3D::T_MistakeFunc

Шаблон класса Basics3D::T_MistakeFunc< Operations >

#include <MistakeFunc.h>

Полный список членов класса

Открытые члены

T_MistakeFunc (const T_Points2DSet< C_Point2D > &in_Points, int in_M)
double | Func (const Vtl::NumAlg::Lin::ublas::vector< double > &in_matrix)
void | Derivative (Vtl::NumAlg::Lin::ublas::vector< double > &out_dy, const Vtl::NumAlg::Lin::ublas::vector< double > &in_matrix)

Закрытые данные

T_Points2DSet< C_Point2D > m_Points
int | m_M

template<class Operations>
class Basics3D::T_MistakeFunc< Operations >

Конструктор(ы)

template<class Operations>
Basics3D::T_MistakeFunc< Operations >::T_MistakeFunc | ( | const T_Points2DSet< C_Point2D > & | in_Points,
 |  | int | in_M |
 | ) |  |  | [inline]

Методы

template<class Operations>
double Basics3D::T_MistakeFunc< Operations >::Func ( const Vtl::NumAlg::Lin::ublas::vector< double > & in_matrix ) [inline]

template<class Operations>
void Basics3D::T_MistakeFunc< Operations >::Derivative | ( | Vtl::NumAlg::Lin::ublas::vector< double > & | out_dy,
 |  | const Vtl::NumAlg::Lin::ublas::vector< double > & | in_matrix |
 | ) |  |  | [inline]

Данные класса

template<class Operations>
T_Points2DSet<C_Point2D> Basics3D::T_MistakeFunc< Operations >::m_Points [private]

template<class Operations>
int Basics3D::T_MistakeFunc< Operations >::m_M [private]

Объявления и описания членов класса находятся в файле:
  • MistakeFunc.h


Pipe Line Filters: Шаблон класса Basics3D::T_Model< Operations >

Basics3D::T_Model

Шаблон класса Basics3D::T_Model< Operations >

#include <Model.h>

Полный список членов класса

Открытые члены

T_Model ()
T_Model (T_Points2DSet< C_Point2D > in_PointsSet)
void | Transform (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > &out_Point, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_Matrix, const int i)
void | Transform (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > &out_Point, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_Matrix, const C_Point2D &in_point)
void | GetSample (T_Points2DSet< C_Point2D > &out_sample)
void | ComputeMatrices (std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out_Matrices, T_Points2DSet< C_Point2D > &in_sample, const double in_sigma)
int | IsInlier (const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_Matrix, const int i, const double in_sigma)
void | CountInliers (T_Points2DSet< C_Point2D > &out_inl, const C_Points2DParamSet &in_points1, const C_Points2DParamSet &in_points2, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_matrix, const double in_sigma, const double in_t)

Закрытые члены

void | Denormalize (std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out_Matrices, const double in_err)

Закрытые данные

Vtl::NumAlg::Lin::ublas::c_matrix<
double, 3, 3 > 		m_T
Vtl::NumAlg::Lin::ublas::c_matrix<
double, 3, 3 > 		m_T1_1
T_Points2DSet< C_Point2D > m_PointsSet

template<class Operations>
class Basics3D::T_Model< Operations >

Конструктор(ы)

template<class Operations>
Basics3D::T_Model< Operations >::T_Model ( ) [inline]

template<class Operations>
Basics3D::T_Model< Operations >::T_Model ( T_Points2DSet< C_Point2D > in_PointsSet ) [inline]

Методы

template<class Operations>
void Basics3D::T_Model< Operations >::Denormalize | ( | std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> & | out_Matrices,
 |  | const double | in_err |
 | ) |  |  | [inline, private]

template<class Operations>
void Basics3D::T_Model< Operations >::Transform | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > & | out_Point,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_Matrix,
 |  | const int | i |
 | ) |  |  | [inline]

template<class Operations>
void Basics3D::T_Model< Operations >::Transform | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > & | out_Point,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_Matrix,
 |  | const C_Point2D & | in_point |
 | ) |  |  | [inline]

template<class Operations>
void Basics3D::T_Model< Operations >::GetSample ( T_Points2DSet< C_Point2D > & out_sample ) [inline]

template<class Operations>
void Basics3D::T_Model< Operations >::ComputeMatrices | ( | std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> & | out_Matrices,
 |  | T_Points2DSet< C_Point2D > & | in_sample,
 |  | const double | in_sigma |
 | ) |  |  | [inline]

template<class Operations>
int Basics3D::T_Model< Operations >::IsInlier | ( | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_Matrix,
 |  | const int | i,
 |  | const double | in_sigma |
 | ) |  |  | [inline]

template<class Operations>
void Basics3D::T_Model< Operations >::CountInliers | ( | T_Points2DSet< C_Point2D > & | out_inl,
 |  | const C_Points2DParamSet & | in_points1,
 |  | const C_Points2DParamSet & | in_points2,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_matrix,
 |  | const double | in_sigma,
 |  | const double | in_t |
 | ) |  |  | [inline]

Данные класса

template<class Operations>
Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> Basics3D::T_Model< Operations >::m_T [private]

template<class Operations>
Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> Basics3D::T_Model< Operations >::m_T1_1 [private]

template<class Operations>
T_Points2DSet<C_Point2D> Basics3D::T_Model< Operations >::m_PointsSet [private]

Объявления и описания членов класса находятся в файле:
  • Model.h


Pipe Line Filters: Шаблон класса Basics3D::T_Points2DSet< Point >

Basics3D::T_Points2DSet

Шаблон класса Basics3D::T_Points2DSet< Point >

#include <Points2DSet.h>

Граф наследования:Basics3D::T_Points2DSet< Point >:

[см. легенду]
Полный список членов класса

Открытые члены

double | MeanX (int i)
double | MeanY (int i)
double | MeanDev (int i)
T_Points2DSet (int in_groupSize=1)
T_Points2DSet< Point > | operator= (const T_Points2DSet< C_Point2D > &in_Set)
int | GroupSize () const
void | InitGroupSize (int i)
int | Size () const
void | Clear ()
void | Add (std::vector< Point > &in_p)
void | Disable (T_Points2DSet< Point > &in_Set)
void | EnableAll ()
void | RemoveGroup (int in_i)
Point | operator[] (int i) const
void | Load (const char *in_filename, const double in_t, const int in_imHeight)
void | Save (char *in_filenameX, char *in_filenameY, int in_n)
double | Normalize (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_T, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_T1, const double in_sigma)
double | Normalize (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_T, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_T1, int in_width, int in_height, const double in_sigma)
void | RetPoints (T_Points2DSet< Point > &out_P, int in_c) const
void | Print () const

Открытые статические члены

static void | Combine (T_Points2DSet< Point > &out, const T_Points2DSet< Point > &in_groups, const T_Points2DSet< Point > &in_pairs, int n)

Закрытые члены

void | ClearMeans ()

Закрытые данные

std::vector< Point > | m_Points
int | m_groupSize
std::vector< double > | m_MeanX
std::vector< double > | m_MeanY
std::vector< double > | m_MeanDev

template<class Point>
class Basics3D::T_Points2DSet< Point >

Конструктор(ы)

template<class Point>
Basics3D::T_Points2DSet< Point >::T_Points2DSet ( int in_groupSize = 1 ) [inline]

Методы

template<class Point>
void Basics3D::T_Points2DSet< Point >::ClearMeans ( ) [inline, private]

template<class Point>
double Basics3D::T_Points2DSet< Point >::MeanX ( int i ) [inline]

template<class Point>
double Basics3D::T_Points2DSet< Point >::MeanY ( int i ) [inline]

template<class Point>
double Basics3D::T_Points2DSet< Point >::MeanDev ( int i ) [inline]

template<class Point>
T_Points2DSet<Point> Basics3D::T_Points2DSet< Point >::operator= ( const T_Points2DSet< C_Point2D > & in_Set ) [inline]

template<class Point>
int Basics3D::T_Points2DSet< Point >::GroupSize ( ) const [inline]

template<class Point>
void Basics3D::T_Points2DSet< Point >::InitGroupSize ( int i ) [inline]

template<class Point>
int Basics3D::T_Points2DSet< Point >::Size ( ) const [inline]

template<class Point>
void Basics3D::T_Points2DSet< Point >::Clear ( ) [inline]

template<class Point>
void Basics3D::T_Points2DSet< Point >::Add ( std::vector< Point > & in_p ) [inline]

template<class Point>
void Basics3D::T_Points2DSet< Point >::Disable ( T_Points2DSet< Point > & in_Set ) [inline]

template<class Point>
void Basics3D::T_Points2DSet< Point >::EnableAll ( ) [inline]

template<class Point>
void Basics3D::T_Points2DSet< Point >::RemoveGroup ( int in_i ) [inline]

template<class Point>
Point Basics3D::T_Points2DSet< Point >::operator[] ( int i ) const [inline]

template<class Point>
void Basics3D::T_Points2DSet< Point >::Load | ( | const char * | in_filename,
 |  | const double | in_t,
 |  | const int | in_imHeight |
 | ) |  |  | [inline]

template<class Point>
void Basics3D::T_Points2DSet< Point >::Save | ( | char * | in_filenameX,
 |  | char * | in_filenameY,
 |  | int | in_n |
 | ) |  |  | [inline]

template<class Point>
double Basics3D::T_Points2DSet< Point >::Normalize | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_T,
 |  | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_T1,
 |  | const double | in_sigma |
 | ) |  |  | [inline]

template<class Point>
double Basics3D::T_Points2DSet< Point >::Normalize | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_T,
 |  | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_T1,
 |  | int | in_width,
 |  | int | in_height,
 |  | const double | in_sigma |
 | ) |  |  | [inline]

template<class Point>
void Basics3D::T_Points2DSet< Point >::RetPoints | ( | T_Points2DSet< Point > & | out_P,
 |  | int | in_c |
 | ) |  |  | const [inline]

template<class Point>
static void Basics3D::T_Points2DSet< Point >::Combine | ( | T_Points2DSet< Point > & | out,
 |  | const T_Points2DSet< Point > & | in_groups,
 |  | const T_Points2DSet< Point > & | in_pairs,
 |  | int | n |
 | ) |  |  | [inline, static]

template<class Point>
void Basics3D::T_Points2DSet< Point >::Print ( ) const [inline]

Данные класса

template<class Point>
std::vector<Point> Basics3D::T_Points2DSet< Point >::m_Points [private]

template<class Point>
int Basics3D::T_Points2DSet< Point >::m_groupSize [private]

template<class Point>
std::vector<double> Basics3D::T_Points2DSet< Point >::m_MeanX [private]

template<class Point>
std::vector<double> Basics3D::T_Points2DSet< Point >::m_MeanY [private]

template<class Point>
std::vector<double> Basics3D::T_Points2DSet< Point >::m_MeanDev [private]

Объявления и описания членов класса находятся в файле:
  • Points2DSet.h


Pipe Line Filters: Шаблон класса Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >

Vtl::Plf::Kernel::Table

Шаблон класса Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >

Ядро, задаваемое таблично. Подробнее...

#include <plf_kernels_1d.h>

Граф наследования:Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >:

[см. легенду]
Граф связей класса Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >:

[см. легенду]
Полный список членов класса

Открытые члены

Table (const char *name)
Table (const char *name, const T *ker, int size, int left)
virtual | ~Table ()
void | Init (const T *ker, int size, int left)
Используется только для ядер свертки и кросскорреляции, иначе генерирует ошибку времени компиляции.

Подробное описание

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
class Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >

Ядро, задаваемое таблично.

Конструктор(ы)

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >::Table ( const char * name ) [inline]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >::Table | ( | const char * | name,
 |  | const T * | ker,
 |  | int | size,
 |  | int | left |
 | ) |  |  | [inline]

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
virtual Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >::~Table ( ) [inline, virtual]

Методы

template<typename T, Kernel::Type kernel_type_ = KT_Conv, bool double_kernel_ = false>
void Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >::Init | ( | const T * | ker,
 |  | int | size,
 |  | int | left |
 | ) |  |  | [inline]

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

Аргументы:
ker | - ядро свертки, заданное в виде таблицы (массива).
size | - длина массива
left | - расстояние от начала массива до элемента, считаемого центральным, например ядре -1 0 1 с центральным элементом "0" size=3, left =1.

Объявления и описания членов класса находятся в файле:
  • plf_kernels_1d.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail

Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >

#include <convolve.h>

Полный список членов класса

Открытые члены

Tail (T a1_, T a2_, T a3_)
T | operator() ()
void | operator() (T v)

Закрытые данные

const T | a1
const T | a2
const T | a3
T | s1
T | s2
T | s3

template<typename T>
class Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >

Конструктор(ы)

template<typename T>
Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >::Tail | ( | T | a1_,
 |  | T | a2_,
 |  | T | a3_ |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >::operator() ( ) [inline]

Реализует прямую и обратную рекурсии (одинаковы в терминах следующий-предыдущий элемент) без опроса соседей. Оператор получает текущее значение, выполняет необходимые вычисления и сохраняет внутри себя требуемые величины. Возвращает - новое значение для текущего элемента. Прямая/обратная рекурсия по массиву определяется только тем, в каком порядке закладываются значения. Помнит состояние на три элемента включительно до текущего. Эквивалентно функциям: T fr(T* w) {return a1 * w[1] + a2 * w[-2] + a3 * w[-3];} T rr(T* out) { return a1 * out[1] + a2 * out[2] + a3 * out[3]; }

template<typename T>
void Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >::operator() ( T v ) [inline]

Данные класса

template<typename T>
const T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >::a1 [private]

template<typename T>
const T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >::a2 [private]

template<typename T>
const T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >::a3 [private]

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >::s1 [private]

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >::s2 [private]

template<typename T>
T Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >::s3 [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Класс Basics3D::test

Basics3D::test

Класс Basics3D::test

#include <Func.h>

Граф наследования:Basics3D::test:

[см. легенду]
Граф связей класса Basics3D::test:

[см. легенду]
Полный список членов класса

Открытые члены

test (const double in_a, const double in_b)
double | Func (const double in_t) const
double | Deriv (const double in_t) const

Закрытые данные

const double | a
const double | b

Конструктор(ы)

Basics3D::test::test | ( | const double | in_a,
 |  | const double | in_b
 | ) |  |

Методы

double Basics3D::test::Func ( const double in_t ) const [virtual]

Замещает Basics3D::IFunc.

double Basics3D::test::Deriv ( const double in_t ) const [virtual]

Замещает Basics3D::IFuncWithDer.

Данные класса

const double Basics3D::test::a [private]

const double Basics3D::test::b [private]

Объявления и описания членов классов находятся в файлах:
  • Func.h
  • Func.cpp


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Utils::F::Test< T >

Vtl::NumAlg::IntTransf::Utils::F::Test

Шаблон класса Vtl::NumAlg::IntTransf::Utils::F::Test< T >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Тестовый пример. Подробнее...

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

Test (T data[])
template<bool upper_half, typename I>
void | operator() (I plus_k, I minus_k, Loki::Int2Type< upper_half >)
template<typename I>
void | operator() (I k, Loki::Int2Type< true >)
template<typename I>
void | operator() (I k, Loki::Int2Type< false >)

Закрытые данные

T * | data_

Подробное описание

template<typename T>
class Vtl::NumAlg::IntTransf::Utils::F::Test< T >

Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Тестовый пример.
Примеры:

test_Integral_Transforms.cpp.

Конструктор(ы)

template<typename T>
Vtl::NumAlg::IntTransf::Utils::F::Test< T >::Test ( T data[] ) [inline]

Методы

template<typename T>
template<bool upper_half, typename I>
void Vtl::NumAlg::IntTransf::Utils::F::Test< T >::operator() | ( | I | plus_k,
 |  | I | minus_k,
 |  | Loki::Int2Type< upper_half > |  |
 | ) |  |  | [inline]

template<typename T>
template<typename I>
void Vtl::NumAlg::IntTransf::Utils::F::Test< T >::operator() | ( | I | k,
 |  | Loki::Int2Type< true > |  |
 | ) |  |  | [inline]

template<typename T>
template<typename I>
void Vtl::NumAlg::IntTransf::Utils::F::Test< T >::operator() | ( | I | k,
 |  | Loki::Int2Type< false > |  |
 | ) |  |  | [inline]

Данные класса

template<typename T>
T* Vtl::NumAlg::IntTransf::Utils::F::Test< T >::data_ [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F11::Threshold< T, Comp >

Vtl::Plf::F11::Threshold

Шаблон класса Vtl::Plf::F11::Threshold< T, Comp >

functor Threshold Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

Threshold (T threshold=128, Comp comp=std::less< T >(), T replace=T(0))
T | operator() (T val)

Закрытые данные

T | tr
Comp | c
T | r

Подробное описание

template<typename T, typename Comp>
class Vtl::Plf::F11::Threshold< T, Comp >

functor Threshold

Функтор для FilterLevels и постобработок во всех вильтрах. Каждый выход любого фильтра должен представляться, классом OutPort, его второй шаблонный параметр - функтор, который задает обработку пиксель в пиксель, которая будет проведена после того, как фильтр отработал и записал строку, но до того как будет проведены отражения буфера отнгосительно краев и данные станут доступны следующему фильтру. По возможности следует избегать использовать класс FilterLevels и по возможности пользоваться постобработками из за соображений эффективности. do nothing

Конструктор(ы)

template<typename T, typename Comp>
Vtl::Plf::F11::Threshold< T, Comp >::Threshold | ( | T | threshold = 128,
 |  | Comp | comp = std::less<T>(),
 |  | T | replace = T(0) |
 | ) |  |  | [inline]

Методы

template<typename T, typename Comp>
T Vtl::Plf::F11::Threshold< T, Comp >::operator() ( T val ) [inline]

Данные класса

template<typename T, typename Comp>
T Vtl::Plf::F11::Threshold< T, Comp >::tr [private]

template<typename T, typename Comp>
Comp Vtl::Plf::F11::Threshold< T, Comp >::c [private]

template<typename T, typename Comp>
T Vtl::Plf::F11::Threshold< T, Comp >::r [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Класс IFF::Tiff8Read

IFF::Tiff8Read

Класс IFF::Tiff8Read

#include <tiff.h>

Граф наследования:IFF::Tiff8Read:

[см. легенду]
Граф связей класса IFF::Tiff8Read:

[см. легенду]
Полный список членов класса

Открытые члены

Tiff8Read (const char *filename)
virtual | ~Tiff8Read (void)
int | readStrip (int nStrip, Byte *buf)
int | readImage (Byte *buf)

Закрытые члены

Tiff8Read (const Tiff8Read &)

Закрытые данные

uint32_t * buf_alloc
uint32_t * StripLength
uint32_t * StripOffset

Конструктор(ы)

IFF::Tiff8Read::Tiff8Read ( const Tiff8Read & ) [private]

Tiff8Read::Tiff8Read ( const char * filename )

Tiff8Read::~Tiff8Read ( void ) [virtual]

Методы

int Tiff8Read::readStrip | ( | int | nStrip,
 |  | Byte * | buf
 | ) |  |

int Tiff8Read::readImage ( Byte * buf )

Данные класса

uint32_t* IFF::Tiff8Read::buf_alloc [private]

uint32_t* IFF::Tiff8Read::StripLength [private]

uint32_t* IFF::Tiff8Read::StripOffset [private]

Объявления и описания членов классов находятся в файлах:
  • tiff.h
  • tiff.cpp


Pipe Line Filters: Класс IFF::Tiff8Write

IFF::Tiff8Write

Класс IFF::Tiff8Write

#include <tiff.h>

Граф наследования:IFF::Tiff8Write:

[см. легенду]
Граф связей класса IFF::Tiff8Write:

[см. легенду]
Полный список членов класса

Открытые члены

Tiff8Write (const char *filename, int wid, int len, int bits_ps, uint32_t *paletta)
virtual | ~Tiff8Write (void)
int | writeStrip (int nStrip, Byte *buf)
int | writeImage (Byte *buf)

Закрытые члены

Tiff8Write (const Tiff8Write &)

Конструктор(ы)

IFF::Tiff8Write::Tiff8Write ( const Tiff8Write & ) [private]

Tiff8Write::Tiff8Write | ( | const char * | filename,
 |  | int | wid,
 |  | int | len,
 |  | int | bits_ps,
 |  | uint32_t * | paletta
 | ) |  |

virtual IFF::Tiff8Write::~Tiff8Write ( void ) [inline, virtual]

Методы

int Tiff8Write::writeStrip | ( | int | nStrip,
 |  | Byte * | buf
 | ) |  |

int Tiff8Write::writeImage ( Byte * buf )

Объявления и описания членов классов находятся в файлах:
  • tiff.h
  • tiff.cpp


Pipe Line Filters: Структура IFF::TIFF_Header

IFF::TIFF_Header

Структура IFF::TIFF_Header

#include <tiff.h>

Полный список членов класса

Открытые атрибуты

uint16_t byte_order
uint16_t version
uint32_t IFD0_offset

Данные класса

uint16_t IFF::TIFF_Header::byte_order

uint16_t IFF::TIFF_Header::version

uint32_t IFF::TIFF_Header::IFD0_offset

Объявления и описания членов структуры находятся в файле:
  • tiff.h


Pipe Line Filters: Структура IFF::TIFF_IFD

IFF::TIFF_IFD

Структура IFF::TIFF_IFD

#include <tiff.h>

Граф связей класса IFF::TIFF_IFD:

[см. легенду]
Полный список членов класса

Открытые атрибуты

uint16_t entry_count
TIFF_IFDentry * Entry0
uint32_t next_IFD_offset

Данные класса

uint16_t IFF::TIFF_IFD::entry_count

struct TIFF_IFDentry* IFF::TIFF_IFD::Entry0

uint32_t IFF::TIFF_IFD::next_IFD_offset

Объявления и описания членов структуры находятся в файле:
  • tiff.h


Pipe Line Filters: Структура IFF::TIFF_IFDentry

IFF::TIFF_IFDentry

Структура IFF::TIFF_IFDentry

#include <tiff.h>

Полный список членов класса

Открытые атрибуты

uint16_t tag
uint16_t type
uint32_t length
uint32_t value_or_offset

Данные класса

uint16_t IFF::TIFF_IFDentry::tag

uint16_t IFF::TIFF_IFDentry::type

uint32_t IFF::TIFF_IFDentry::length

uint32_t IFF::TIFF_IFDentry::value_or_offset

Объявления и описания членов структуры находятся в файле:
  • tiff.h


Pipe Line Filters: Структура IFF::TIFF_ImageParms

IFF::TIFF_ImageParms

Структура IFF::TIFF_ImageParms

#include <tiff.h>

Полный список членов класса

Открытые атрибуты

uint32_t StripLengthOffset
uint32_t StripOffset
uint16_t StripsPerImage
uint16_t width
uint16_t length

Данные класса

uint32_t IFF::TIFF_ImageParms::StripLengthOffset

uint32_t IFF::TIFF_ImageParms::StripOffset

uint16_t IFF::TIFF_ImageParms::StripsPerImage

uint16_t IFF::TIFF_ImageParms::width

uint16_t IFF::TIFF_ImageParms::length

Объявления и описания членов структуры находятся в файле:
  • tiff.h


Pipe Line Filters: Класс IFF::TiffReadIFD

IFF::TiffReadIFD

Класс IFF::TiffReadIFD

#include <tiff.h>

Граф наследования:IFF::TiffReadIFD:

[см. легенду]
Граф связей класса IFF::TiffReadIFD:

[см. легенду]
Полный список членов класса

Открытые члены

TiffReadIFD (const char *filename)
virtual | ~TiffReadIFD (void)
int | Width (void)
int | Length (void)
int | Bits (void)
int | StripsPerImage (void)
int | RowsPerStrip (void)
int | GetPalette (uint32_t *palette)
int | GetPaletteLength () const

Защищенные данные

uint32_t str_offset
uint32_t str_length
uint32_t pal_offset
uint16_t pal_length

Закрытые члены

void | readIFD ()

Закрытые данные

uint16_t entries
TiffTag | ifd [40]
uint16_t width
uint16_t length
uint16_t bits
uint16_t spi
uint16_t rowsPS

Конструктор(ы)

TiffReadIFD::TiffReadIFD ( const char * filename )

virtual IFF::TiffReadIFD::~TiffReadIFD ( void ) [inline, virtual]

Методы

void TiffReadIFD::readIFD ( ) [private]

int IFF::TiffReadIFD::Width ( void ) [inline]

int IFF::TiffReadIFD::Length ( void ) [inline]

int IFF::TiffReadIFD::Bits ( void ) [inline]

int IFF::TiffReadIFD::StripsPerImage ( void ) [inline]

int IFF::TiffReadIFD::RowsPerStrip ( void ) [inline]

int TiffReadIFD::GetPalette ( uint32_t * palette )

int IFF::TiffReadIFD::GetPaletteLength ( ) const [inline]

Данные класса

uint16_t IFF::TiffReadIFD::entries [private]

TiffTag IFF::TiffReadIFD::ifd[40] [private]

uint16_t IFF::TiffReadIFD::width [private]

uint16_t IFF::TiffReadIFD::length [private]

uint16_t IFF::TiffReadIFD::bits [private]

uint16_t IFF::TiffReadIFD::spi [private]

uint16_t IFF::TiffReadIFD::rowsPS [private]

uint32_t IFF::TiffReadIFD::str_offset [protected]

uint32_t IFF::TiffReadIFD::str_length [protected]

uint32_t IFF::TiffReadIFD::pal_offset [protected]

uint16_t IFF::TiffReadIFD::pal_length [protected]

Объявления и описания членов классов находятся в файлах:
  • tiff.h
  • tiff.cpp


Pipe Line Filters: Структура IFF::TiffTag

IFF::TiffTag

Структура IFF::TiffTag

#include <tiff.h>

Полный список членов класса

Открытые атрибуты

uint16_t tag
uint16_t type
uint32_t length
uint32_t value_or_offset

Данные класса

uint16_t IFF::TiffTag::tag

uint16_t IFF::TiffTag::type

uint32_t IFF::TiffTag::length

uint32_t IFF::TiffTag::value_or_offset

Объявления и описания членов структуры находятся в файле:
  • tiff.h


Pipe Line Filters: Класс IFF::TiffWriteIFD

IFF::TiffWriteIFD

Класс IFF::TiffWriteIFD

#include <tiff.h>

Граф наследования:IFF::TiffWriteIFD:

[см. легенду]
Граф связей класса IFF::TiffWriteIFD:

[см. легенду]
Полный список членов класса

Открытые члены

TiffWriteIFD (const char *filename, int wid, int len, int bits_ps, uint32_t *palette=0)
virtual | ~TiffWriteIFD (void)
int | Width (void)
int | Length (void)
int | StripsPerImage (void)
int | RowsPerStrip (void)
int | PutPalette (uint32_t *palette=0)

Защищенные данные

uint32_t str_offset
uint32_t str_length
uint32_t pal_offset
uint16_t pal_length

Закрытые члены

void | writeIFD (void)
uint16_t | fillIFD (void)

Закрытые данные

uint16_t entries
TiffTag | ifd [40]
uint16_t width
uint16_t length
uint16_t bits
uint16_t spi
uint16_t rowsPS

Конструктор(ы)

TiffWriteIFD::TiffWriteIFD | ( | const char * | filename,
 |  | int | wid,
 |  | int | len,
 |  | int | bits_ps,
 |  | uint32_t * | palette = 0
 | ) |  |

virtual IFF::TiffWriteIFD::~TiffWriteIFD ( void ) [inline, virtual]

Методы

void TiffWriteIFD::writeIFD ( void ) [private]

uint16_t TiffWriteIFD::fillIFD ( void ) [private]

int IFF::TiffWriteIFD::Width ( void ) [inline]

int IFF::TiffWriteIFD::Length ( void ) [inline]

int IFF::TiffWriteIFD::StripsPerImage ( void ) [inline]

int IFF::TiffWriteIFD::RowsPerStrip ( void ) [inline]

int TiffWriteIFD::PutPalette ( uint32_t * palette = 0 )

Данные класса

uint16_t IFF::TiffWriteIFD::entries [private]

TiffTag IFF::TiffWriteIFD::ifd[40] [private]

uint16_t IFF::TiffWriteIFD::width [private]

uint16_t IFF::TiffWriteIFD::length [private]

uint16_t IFF::TiffWriteIFD::bits [private]

uint16_t IFF::TiffWriteIFD::spi [private]

uint16_t IFF::TiffWriteIFD::rowsPS [private]

uint32_t IFF::TiffWriteIFD::str_offset [protected]

uint32_t IFF::TiffWriteIFD::str_length [protected]

uint32_t IFF::TiffWriteIFD::pal_offset [protected]

uint16_t IFF::TiffWriteIFD::pal_length [protected]

Объявления и описания членов классов находятся в файлах:
  • tiff.h
  • tiff.cpp


Pipe Line Filters: Класс Vtl::Dbg::TimeElapsed

Vtl::Dbg::TimeElapsed

Класс Vtl::Dbg::TimeElapsed

#include <debug_test.h>

Полный список членов класса

Открытые члены

TimeElapsed ()
void | start ()
void | finish ()
double | Get ()
std::string | GetString ()

Закрытые данные

clock_t | _st
clock_t | _fin

Подробное описание

Примеры:

test_Integral_Transforms.cpp.

Конструктор(ы)

Vtl::Dbg::TimeElapsed::TimeElapsed ( ) [inline]

Методы

void Vtl::Dbg::TimeElapsed::start ( ) [inline]

Примеры:
test_Integral_Transforms.cpp.

void Vtl::Dbg::TimeElapsed::finish ( ) [inline]

Примеры:
test_Integral_Transforms.cpp.

double Vtl::Dbg::TimeElapsed::Get ( ) [inline]

Примеры:
test_Integral_Transforms.cpp.

std::string Vtl::Dbg::TimeElapsed::GetString ( ) [inline]

Данные класса

clock_t Vtl::Dbg::TimeElapsed::_st [private]

clock_t Vtl::Dbg::TimeElapsed::_fin [private]

Объявления и описания членов класса находятся в файле:
  • debug_test.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F11::ToBounds< T >

Vtl::Plf::F11::ToBounds

Шаблон класса Vtl::Plf::F11::ToBounds< T >

functor Bounds - ограничивает выходные значения к диапазону min_val -:- max_val. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

ToBounds (T min_val=0, T max_val=255)
T | operator() (T val) const

Закрытые данные

T | n
T | x

Подробное описание

template<typename T>
class Vtl::Plf::F11::ToBounds< T >

functor Bounds - ограничивает выходные значения к диапазону min_val -:- max_val.

Функтор для FilterLevels и постобработок во всех вильтрах. Каждый выход любого фильтра должен представляться, классом OutPort, его второй шаблонный параметр - функтор, который задает обработку пиксель в пиксель, которая будет проведена после того, как фильтр отработал и записал строку, но до того как будет проведены отражения буфера отнгосительно краев и данные станут доступны следующему фильтру. По возможности следует избегать использовать класс FilterLevels и по возможности пользоваться постобработками из за соображений эффективности. do nothing

Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T>
Vtl::Plf::F11::ToBounds< T >::ToBounds | ( | T | min_val = 0,
 |  | T | max_val = 255 |
 | ) |  |  | [inline]

Методы

template<typename T>
T Vtl::Plf::F11::ToBounds< T >::operator() ( T val ) const [inline]

Данные класса

template<typename T>
T Vtl::Plf::F11::ToBounds< T >::n [private]

template<typename T>
T Vtl::Plf::F11::ToBounds< T >::x [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Шаблон класса tplAImageFragment< ImgT >

Шаблон класса tplAImageFragment< ImgT >
[Handling with images]

#include <aimage.h>

Граф наследования:tplAImageFragment< ImgT >:

[см. легенду]
Граф связей класса tplAImageFragment< ImgT >:

[см. легенду]
Полный список членов класса

Открытые члены

tplAImageFragment ()
virtual | ~tplAImageFragment ()
virtual void | Init (ImgT *_img)
virtual void | Init (int x, int y, int width, int height)
virtual void | Init (ImgT *_img, int x, int y, int width, int height)
virtual int | Width () const
virtual int | Height () const
virtual int | Bits () const
virtual int | NextLineShift () const

Защищенные члены

void | _Init (const AImage *img)
void | _Init (const AImage *img, int x, int y, int width, int height)

Защищенные данные

int | fx
int | fy
int | fwidth
int | fheight

Подробное описание

template<class ImgT>
class tplAImageFragment< ImgT >

working with image fragment, use ONLY as base class

Конструктор(ы)

template<class ImgT>
tplAImageFragment< ImgT >::tplAImageFragment ( ) [inline]

template<class ImgT>
virtual tplAImageFragment< ImgT >::~tplAImageFragment ( ) [inline, virtual]

Методы

template<class ImgT>
virtual void tplAImageFragment< ImgT >::Init ( ImgT * _img ) [inline, virtual]

Переопределяет метод предка tplAImageReference< ImgT >.

Переопределяется в ImageFragmentRgb8.

template<class ImgT>
virtual void tplAImageFragment< ImgT >::Init | ( | int | x,
 |  | int | y,
 |  | int | width,
 |  | int | height |
 | ) |  |  | [inline, virtual]

Переопределяется в ImageFragmentRgb8.

template<class ImgT>
virtual void tplAImageFragment< ImgT >::Init | ( | ImgT * | _img,
 |  | int | x,
 |  | int | y,
 |  | int | width,
 |  | int | height |
 | ) |  |  | [inline, virtual]

template<class ImgT>
virtual int tplAImageFragment< ImgT >::Width ( ) const [inline, virtual]

Переопределяет метод предка tplAImageReference< ImgT >.

template<class ImgT>
virtual int tplAImageFragment< ImgT >::Height ( ) const [inline, virtual]

Переопределяет метод предка tplAImageReference< ImgT >.

template<class ImgT>
virtual int tplAImageFragment< ImgT >::Bits ( ) const [inline, virtual]

Переопределяет метод предка tplAImageReference< ImgT >.

template<class ImgT>
virtual int tplAImageFragment< ImgT >::NextLineShift ( ) const [inline, virtual]

Переопределяет метод предка tplAImageReference< ImgT >.

template<class ImgT>
void tplAImageFragment< ImgT >::_Init ( const AImage * img ) [inline, protected]

template<class ImgT>
void tplAImageFragment< ImgT >::_Init | ( | const AImage * | img,
 |  | int | x,
 |  | int | y,
 |  | int | width,
 |  | int | height |
 | ) |  |  | [inline, protected]

Данные класса

template<class ImgT>
int tplAImageFragment< ImgT >::fx [protected]

template<class ImgT>
int tplAImageFragment< ImgT >::fy [protected]

template<class ImgT>
int tplAImageFragment< ImgT >::fwidth [protected]

template<class ImgT>
int tplAImageFragment< ImgT >::fheight [protected]

Объявления и описания членов класса находятся в файле:
  • aimage.h


Pipe Line Filters: Шаблон класса tplAImageReference< ImgT >

Шаблон класса tplAImageReference< ImgT >
[Handling with images]

#include <aimage.h>

Граф наследования:tplAImageReference< ImgT >:

[см. легенду]
Полный список членов класса

Открытые члены

virtual AImage * | GetFullImage () const
virtual const char * | ClassName () const
virtual AImage::YImageStore | GetImageStore () const
tplAImageReference ()
virtual | ~tplAImageReference ()
virtual void | Init (ImgT *_img)
virtual bool | IsOk () const
virtual void | Load (const char *filename, ProgressCounter *indicator=0)
virtual void | Save (const char *filename, ProgressCounter *indicator=0) const
virtual bool | Create (short width, short height, short bitsPerPix, bool hasPalette=false)
virtual void | Clear ()
virtual int | Width () const
virtual int | Height () const
virtual int | Bits () const
virtual int | NextLineShift () const
virtual int | NumPlanes () const
virtual AImage::YImageClass | ImageClass () const
virtual int | GetPaletteEntries () const
virtual AImage::Rgb * | Palette () const

Защищенные данные

ImgT * | img

Закрытые члены

virtual void | ChangeHeight (short new_height)
virtual void | read (int x, int y, Pixel16 *data, int len) const

Подробное описание

template<class ImgT>
class tplAImageReference< ImgT >

Working with image references, use ONLY as base class

Конструктор(ы)

template<class ImgT>
tplAImageReference< ImgT >::tplAImageReference ( ) [inline]

template<class ImgT>
virtual tplAImageReference< ImgT >::~tplAImageReference ( ) [inline, virtual]

Методы

template<class ImgT>
virtual AImage* tplAImageReference< ImgT >::GetFullImage ( ) const [inline, virtual]

template<class ImgT>
virtual const char* tplAImageReference< ImgT >::ClassName ( ) const [inline, virtual]

Переопределяется в ImageFragment8, ImageFragment16 и ImageFragmentRgb8.

template<class ImgT>
virtual AImage::YImageStore tplAImageReference< ImgT >::GetImageStore ( ) const [inline, virtual]

template<class ImgT>
virtual void tplAImageReference< ImgT >::Init ( ImgT * _img ) [inline, virtual]

Переопределяется в tplAImageFragment< ImgT >, ImageFragmentRgb8, tplAImageFragment< AImageMemRgb8 >, tplAImageFragment< AImageMem16 > и tplAImageFragment< AImageMem8 >.

template<class ImgT>
virtual bool tplAImageReference< ImgT >::IsOk ( ) const [inline, virtual]

template<class ImgT>
virtual void tplAImageReference< ImgT >::Load | ( | const char * | filename,
 |  | ProgressCounter * | indicator = 0 |
 | ) |  |  | [inline, virtual]

template<class ImgT>
virtual void tplAImageReference< ImgT >::Save | ( | const char * | filename,
 |  | ProgressCounter * | indicator = 0 |
 | ) |  |  | const [inline, virtual]

template<class ImgT>
virtual bool tplAImageReference< ImgT >::Create | ( | short | width,
 |  | short | height,
 |  | short | bitsPerPix,
 |  | bool | hasPalette = false |
 | ) |  |  | [inline, virtual]

template<class ImgT>
virtual void tplAImageReference< ImgT >::Clear ( ) [inline, virtual]

template<class ImgT>
virtual int tplAImageReference< ImgT >::Width ( ) const [inline, virtual]

Переопределяется в tplAImageFragment< ImgT >, tplAImageFragment< AImageMemRgb8 >, tplAImageFragment< AImageMem16 > и tplAImageFragment< AImageMem8 >.

template<class ImgT>
virtual int tplAImageReference< ImgT >::Height ( ) const [inline, virtual]

Переопределяется в tplAImageFragment< ImgT >, tplAImageFragment< AImageMemRgb8 >, tplAImageFragment< AImageMem16 > и tplAImageFragment< AImageMem8 >.

template<class ImgT>
virtual int tplAImageReference< ImgT >::Bits ( ) const [inline, virtual]

Переопределяется в tplAImageFragment< ImgT >, tplAImageFragment< AImageMemRgb8 >, tplAImageFragment< AImageMem16 > и tplAImageFragment< AImageMem8 >.

template<class ImgT>
virtual int tplAImageReference< ImgT >::NextLineShift ( ) const [inline, virtual]

Переопределяется в tplAImageFragment< ImgT >, tplAImageFragment< AImageMemRgb8 >, tplAImageFragment< AImageMem16 > и tplAImageFragment< AImageMem8 >.

template<class ImgT>
virtual int tplAImageReference< ImgT >::NumPlanes ( ) const [inline, virtual]

template<class ImgT>
virtual AImage::YImageClass tplAImageReference< ImgT >::ImageClass ( ) const [inline, virtual]

template<class ImgT>
virtual int tplAImageReference< ImgT >::GetPaletteEntries ( ) const [inline, virtual]

template<class ImgT>
virtual AImage::Rgb* tplAImageReference< ImgT >::Palette ( ) const [inline, virtual]

template<class ImgT>
virtual void tplAImageReference< ImgT >::ChangeHeight ( short new_height ) [inline, private, virtual]

template<class ImgT>
virtual void tplAImageReference< ImgT >::read | ( | int | x,
 |  | int | y,
 |  | Pixel16 * | data,
 |  | int | len |
 | ) |  |  | const [inline, private, virtual]

Переопределяется в ImageFragment8, ImageFragment16 и ImageFragmentRgb8.

Данные класса

template<class ImgT>
ImgT* tplAImageReference< ImgT >::img [protected]

Объявления и описания членов класса находятся в файле:
  • aimage.h


Pipe Line Filters: Шаблон класса Vtl::Plf::F31::Trace< T >

Vtl::Plf::F31::Trace

Шаблон класса Vtl::Plf::F31::Trace< T >

Функтор Trace для PixByPix3to1. Только та часть, которая вычитается в детекторе Харриса. Подробнее...

#include <plf_functors.h>

Полный список членов класса

Открытые члены

Trace (T sigma=1.0f)
T | operator() (T v11, T v12, T v22) const

Закрытые данные

T | mult

Подробное описание

template<typename T>
class Vtl::Plf::F31::Trace< T >

Функтор Trace для PixByPix3to1. Только та часть, которая вычитается в детекторе Харриса.

См. также:
Vtl::Plf::F::Harris
Примеры:

test_plf_filters.cpp.

Конструктор(ы)

template<typename T>
Vtl::Plf::F31::Trace< T >::Trace ( T sigma = 1.0f ) [inline]

Методы

template<typename T>
T Vtl::Plf::F31::Trace< T >::operator() | ( | T | v11,
 |  | T | v12,
 |  | T | v22 |
 | ) |  |  | const [inline]

Данные класса

template<typename T>
T Vtl::Plf::F31::Trace< T >::mult [private]

Объявления и описания членов класса находятся в файле:
  • plf_functors.h


Pipe Line Filters: Класс Traits

Класс Traits

Граф наследования:Traits:

[см. легенду]

Подробное описание

Примеры:

test_plf_kernels.cpp.

Объявления и описания членов класса находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон класса Vtl::Types::Traits< T >

Vtl::Types::Traits

Шаблон класса Vtl::Types::Traits< T >

#include <alexandresku.h>

Полный список членов класса

Открытые типы

enum | { isPointer = PointerTraits<T>::Result }
True, если тип T - указатель, иначе False. Подробнее...
enum | { isReference = ReferenceTraits<T>::Result }
True, если тип T - ссылочный тип, иначе False. Подробнее...
enum | { isMemberPointer = PToMTraits<T>::Result }
True, если тип T - указатель на функцию-член класса. Подробнее...
enum | { isConst = UnConst<T>::isConst }
True, если тип T - константный тип. Например:. Подробнее...
enum | { isVolatile = UnVolatile<T>::isVolatile }
См. Traits<T>::isConst. Подробнее...
enum | { isQualifiedType = isVolatile||isConst }
enum | { isStdSignedInt = TL::isIn<SignedIntegerTypes, Result }
True, если T - один из знаковых целочисленных типов, например int, signed char. Подробнее...
enum | { isStdUnsignedInt = TL::isIn<UnsignedIntegerTypes, Result }
True, если T - один из беззнаковых целочисленных типов, например unsigned long, unsigned char. Подробнее...
enum | { isStdInteger = isStdUnsignedInt||isStdSignedInt }
True, если T - один из целочисленных типов, например int, unsigned long, unsigned char. Подробнее...
enum | { isStdReal = TL::isIn<RealTypes, Result }
True, если T - один из типов с плавающей точкой, например float, long double. Подробнее...
enum | { isStdArith = isStdInteger||isStdReal }
True, если T - один из целочисленных типов или типов с плавающей точкой, например float, short. Подробнее...
enum | { isStdOtherInt = TL::isIn<OtherIntegerTypes, Result }
True, если T - если один из целочисленных типов, не являющихся ни знаковыми, ни беззнаковыми. Например char,wchar_t,bool. Подробнее...
enum | { isStdIntegerAll = isStdInteger||isStdOtherInt }
True, если T один из целочисленных типов включая определенные в isStdOtherInt. Подробнее...
enum | { isStdArithAll = isStdArith||isStdOtherInt }
True, если T один из встроенных арифметических типов: isStdInteger isStdReal isStdOtherInt. Подробнее...
enum | { isStdFundamental = isStdArithAll||Conversion<T, sameType }
то же , что и isStdArithAll с включением void. Подробнее...
typedef PointerTraits< T
>::PointeeType 		PointeeType
Если тип T - указатель, то PointeeType тип на который указывает указатель. В противном случае PointeeType имеет тип NullType.
typedef ReferenceTraits< T
>::ReferredType 		ReferredType
Тип T - с удаленным модификатором const. Если тип T - ссылка, то ReferredType - тип на который ссылается T. В противном случае ReferredType имеет тот же самый тип T.
typedef UnConst< T >::Result | NonConstType
Тип T - с удаленным модификатором const.
typedef UnVolatile< T >::Result | NonVolatileType
См. Traits<T>::UnConst.
typedef UnVolatile< typename
UnConst< T >::Result >::Result 		UnqualifiedType
Тип T не имеет квалификаторов ни const ни volatile.

Подробное описание

template<typename T>
class Vtl::Types::Traits< T >

Свойства типов

Определения типов

template<typename T>
typedef PointerTraits<T>::PointeeType Vtl::Types::Traits< T >::PointeeType

Если тип T - указатель, то PointeeType тип на который указывает указатель. В противном случае PointeeType имеет тип NullType.

template<typename T>
typedef ReferenceTraits<T>::ReferredType Vtl::Types::Traits< T >::ReferredType

Тип T - с удаленным модификатором const. Если тип T - ссылка, то ReferredType - тип на который ссылается T. В противном случае ReferredType имеет тот же самый тип T.

template<typename T>
typedef UnConst<T>::Result Vtl::Types::Traits< T >::NonConstType

Тип T - с удаленным модификатором const.

Например:

                template<typename T> T fun(T a)
                {
                    typedef Vtl::Types::Traits<T>::UnConst MyType;
                    MyType b=a;
                    b+=5; //если бы b была константная
                          //переменная, то здесь была бы ошибка.
                    return b; //Если T - константный тип,
                              //то преобразование по умолчанию к нему.
                }
                const float f=3.2;
                const float f2=fun(f);

template<typename T>
typedef UnVolatile<T>::Result Vtl::Types::Traits< T >::NonVolatileType

См. Traits<T>::UnConst.

template<typename T>
typedef UnVolatile<typename UnConst<T>::Result>::Result Vtl::Types::Traits< T >::UnqualifiedType

Тип T не имеет квалификаторов ни const ни volatile.

Перечисления

template<typename T>
anonymous enum

True, если тип T - указатель, иначе False.

Элементы перечислений:
isPointer

template<typename T>
anonymous enum

True, если тип T - ссылочный тип, иначе False.

Элементы перечислений:
isReference

template<typename T>
anonymous enum

True, если тип T - указатель на функцию-член класса.

Элементы перечислений:
isMemberPointer

template<typename T>
anonymous enum

True, если тип T - константный тип. Например:.

                template<typename T> void foo(T var)
                {
                    bool c=Vtl::Types::Traits<T>::isConst;
                    std::cout << "Type of 'var'" is " << c?"true":"false" <<std::endl;
                }
                const char* name="asd";
                foo(asd);
Элементы перечислений:
isConst

template<typename T>
anonymous enum

См. Traits<T>::isConst.

Элементы перечислений:
isVolatile

template<typename T>
anonymous enum

Элементы перечислений:
isQualifiedType

template<typename T>
anonymous enum

True, если T - один из знаковых целочисленных типов, например int, signed char.

Элементы перечислений:
isStdSignedInt
Result

template<typename T>
anonymous enum

True, если T - один из беззнаковых целочисленных типов, например unsigned long, unsigned char.

Элементы перечислений:
isStdUnsignedInt
Result

template<typename T>
anonymous enum

True, если T - один из целочисленных типов, например int, unsigned long, unsigned char.

Элементы перечислений:
isStdInteger

template<typename T>
anonymous enum

True, если T - один из типов с плавающей точкой, например float, long double.

Элементы перечислений:
isStdReal
Result

template<typename T>
anonymous enum

True, если T - один из целочисленных типов или типов с плавающей точкой, например float, short.

Элементы перечислений:
isStdArith

template<typename T>
anonymous enum

True, если T - если один из целочисленных типов, не являющихся ни знаковыми, ни беззнаковыми. Например char,wchar_t,bool.

Элементы перечислений:
isStdOtherInt
Result

template<typename T>
anonymous enum

True, если T один из целочисленных типов включая определенные в isStdOtherInt.

Элементы перечислений:
isStdIntegerAll

template<typename T>
anonymous enum

True, если T один из встроенных арифметических типов: isStdInteger isStdReal isStdOtherInt.

Элементы перечислений:
isStdArithAll

template<typename T>
anonymous enum

то же , что и isStdArithAll с включением void.

Элементы перечислений:
isStdFundamental
sameType

Объявления и описания членов класса находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D >

Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D >

Шаблон структуры Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D >

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D >:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D >:

[см. легенду]
Полный список членов класса

Открытые члены

Traits (T half_size_, T n_half_width_, T center_at)

Защищенные члены

~Traits ()

Закрытые члены

Traits ()

template<typename T, unsigned NAC, unsigned D>
struct Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D >

Конструктор(ы)

template<typename T, unsigned NAC, unsigned D>
Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D >::Traits | ( | T | half_size_,
 |  | T | n_half_width_,
 |  | T | center_at |
 | ) |  |  | [inline]

template<typename T, unsigned NAC, unsigned D>
Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D >::~Traits ( ) [inline, protected]

template<typename T, unsigned NAC, unsigned D>
Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D >::Traits ( ) [private]

Объявления и описания членов структуры находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D >

Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D >

Шаблон структуры Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D >

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D >:

[см. легенду]
Граф связей класса Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D >:

[см. легенду]
Полный список членов класса

Открытые члены

Traits (T size_, T center_)

Защищенные члены

~Traits ()

Закрытые члены

Traits ()

template<typename T, unsigned NAC, unsigned D>
struct Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D >

Конструктор(ы)

template<typename T, unsigned NAC, unsigned D>
Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D >::Traits | ( | T | size_,
 |  | T | center_ |
 | ) |  |  | [inline]

template<typename T, unsigned NAC, unsigned D>
Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D >::~Traits ( ) [inline, protected]

template<typename T, unsigned NAC, unsigned D>
Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D >::Traits ( ) [private]

Объявления и описания членов структуры находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >

Vtl::ImAlg::WndFun::Traits_common

Шаблон структуры Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >

#include <windowing_fun.h>

Граф наследования:Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >:

[см. легенду]
Полный список членов класса

Открытые типы

enum | { finit_support = FSL }
enum | { finit_support_left = FSL }
enum | { finit_support_right = FSR }
enum | { conv_norm_alg = NAC }
enum | { Deriv = D }
typedef T | value_type

Открытые статические члены

template<class Functor>
static std::string | FullName ()
template<class Functor>
static std::string | Properties ()

Защищенные члены

~Traits_common ()

Закрытые статические члены

template<class Functor>
static void | Properties (std::ostringstream &os, Loki::Int2Type< 0 >)
template<class Functor>
static void | Properties (std::ostringstream &os, Loki::Int2Type< 1 >)

Подробное описание

template<typename T, bool FSL, bool FSR, unsigned NAC, unsigned D>
struct Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >

Класс Traits_common - свойства функторов для 1D окон и сверток.
  • FS = 1, если носитель функции финитный, 0 - если инфинитный, другие значения недопустимы.
  • FSL = true, если носитель функции финитный влево от центра, false - если инфинитный.
  • FSR = true, если носитель функции финитный вправо от центра, false - если инфинитный.
  • NAC алгоритм нормировки, используемый при построении ядра свертки (массива) в классе Vtl::Plf::Kernel::Base и его производных, обычно NAC=D
  • D=0 , если не сама функция окна, а ее производная - то номер производной.

Определения типов

template<typename T, bool FSL, bool FSR, unsigned NAC, unsigned D>
typedef T Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >::value_type

Перечисления

template<typename T, bool FSL, bool FSR, unsigned NAC, unsigned D>
anonymous enum

Элементы перечислений:
finit_support

template<typename T, bool FSL, bool FSR, unsigned NAC, unsigned D>
anonymous enum

Элементы перечислений:
finit_support_left

template<typename T, bool FSL, bool FSR, unsigned NAC, unsigned D>
anonymous enum

Элементы перечислений:
finit_support_right

template<typename T, bool FSL, bool FSR, unsigned NAC, unsigned D>
anonymous enum

Элементы перечислений:
conv_norm_alg

template<typename T, bool FSL, bool FSR, unsigned NAC, unsigned D>
anonymous enum

Элементы перечислений:
Deriv

Конструктор(ы)

template<typename T, bool FSL, bool FSR, unsigned NAC, unsigned D>
Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >::~Traits_common ( ) [inline, protected]

Методы

template<typename T, bool FSL, bool FSR, unsigned NAC, unsigned D>
template<class Functor>
static std::string Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >::FullName ( ) [inline, static]

template<typename T, bool FSL, bool FSR, unsigned NAC, unsigned D>
template<class Functor>
static std::string Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >::Properties ( ) [inline, static]

template<typename T, bool FSL, bool FSR, unsigned NAC, unsigned D>
template<class Functor>
static void Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >::Properties | ( | std::ostringstream & | os,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static, private]

template<typename T, bool FSL, bool FSR, unsigned NAC, unsigned D>
template<class Functor>
static void Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >::Properties | ( | std::ostringstream & | os,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static, private]

Объявления и описания членов структуры находятся в файле:
  • windowing_fun.h


Pipe Line Filters: Класс TransformCell

Класс TransformCell

#include <_imtransf.h>

Граф связей класса TransformCell:

[см. легенду]
Полный список членов класса

Открытые члены

TransformCell (ImageTransformCellImpl &transform, int x, int y)
const YPoint< double > * | getCellPICS () const
const YPoint< double > * | getCellICS () const
const YPoint< double > * | getCellRCS () const
const YPoint< double > * | getCellPRCS () const

Закрытые члены

void | fill (int x, int y)

Закрытые данные

ImageTransformCellImpl & transform_
YPoint< double > | pics_ [4]
YPoint< double > | ics_ [4]
YPoint< double > | rcs_ [4]
YPoint< double > | prcs_ [4]

Конструктор(ы)

TransformCell::TransformCell | ( | ImageTransformCellImpl & | transform,
 |  | int | x,
 |  | int | y
 | ) |  |

Методы

const YPoint< double > * TransformCell::getCellPICS ( ) const

const YPoint< double > * TransformCell::getCellICS ( ) const

const YPoint< double > * TransformCell::getCellRCS ( ) const

const YPoint< double > * TransformCell::getCellPRCS ( ) const

void TransformCell::fill | ( | int | x,
 |  | int | y |
 | ) |  |  | [private]

Данные класса

ImageTransformCellImpl& TransformCell::transform_ [private]

YPoint<double> TransformCell::pics_[4] [private]

YPoint<double> TransformCell::ics_[4] [private]

YPoint<double> TransformCell::rcs_[4] [private]

YPoint<double> TransformCell::prcs_[4] [private]

Объявления и описания членов классов находятся в файлах:
  • _imtransf.h
  • imtransf.cpp


Pipe Line Filters: Структура triangulateio

Структура triangulateio

#include <sfm_mesh_triangle.h>

Полный список членов класса

Открытые атрибуты

REAL * | pointlist
REAL * | pointattributelist
int * | pointmarkerlist
int | numberofpoints
int | numberofpointattributes
int * | trianglelist
REAL * | triangleattributelist
REAL * | trianglearealist
int * | neighborlist
int | numberoftriangles
int | numberofcorners
int | numberoftriangleattributes
int * | segmentlist
int * | segmentmarkerlist
int | numberofsegments
REAL * | holelist
int | numberofholes
REAL * | regionlist
int | numberofregions
int * | edgelist
int * | edgemarkerlist
REAL * | normlist
int | numberofedges

Данные класса

REAL* triangulateio::pointlist

REAL* triangulateio::pointattributelist

int* triangulateio::pointmarkerlist

int triangulateio::numberofpoints

int triangulateio::numberofpointattributes

int* triangulateio::trianglelist

REAL* triangulateio::triangleattributelist

REAL* triangulateio::trianglearealist

int* triangulateio::neighborlist

int triangulateio::numberoftriangles

int triangulateio::numberofcorners

int triangulateio::numberoftriangleattributes

int* triangulateio::segmentlist

int* triangulateio::segmentmarkerlist

int triangulateio::numberofsegments

REAL* triangulateio::holelist

int triangulateio::numberofholes

REAL* triangulateio::regionlist

int triangulateio::numberofregions

int* triangulateio::edgelist

int* triangulateio::edgemarkerlist

REAL* triangulateio::normlist

int triangulateio::numberofedges

Объявления и описания членов структуры находятся в файле:
  • sfm_mesh_triangle.h


Pipe Line Filters: Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >

Шаблон класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >

#include <convolve.h>

Полный список членов класса

Открытые члены

Triggs (double B, double b1, double b2, double b3)
void | operator() (double iplus, double &p1, double &p2, double &p3)

Открытые статические члены

static void | TriggsM (double a1, double a2, double a3, double *M)

Закрытые данные

double | M [9]
double | den
double | sum

template<>
class Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >

Конструктор(ы)

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >::Triggs | ( | double | B,
 |  | double | b1,
 |  | double | b2,
 |  | double | b3 |
 | ) |  |  | [inline]

Методы

void Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >::operator() | ( | double | iplus,
 |  | double & | p1,
 |  | double & | p2,
 |  | double & | p3 |
 | ) |  |  | [inline]

static void Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >::TriggsM | ( | double | a1,
 |  | double | a2,
 |  | double | a3,
 |  | double * | M |
 | ) |  |  | [inline, static]

Данные класса

double Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >::M[9] [private]

double Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >::den [private]

double Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >::sum [private]

Объявления и описания членов класса находятся в файле:
  • convolve.h


Pipe Line Filters: Шаблон класса Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >

Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence

Шаблон класса Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >

#include <integral_transforms.h>

Полный список членов класса

Открытые члены

TrigRecurrence (bool reverse, I mmax)
Initialize the trigonometric recurrence.
~TrigRecurrence ()
R | MultR (R re, R im) const
R | MultI (R re, R im) const
void | next ()
Reccurence step.
void | butterfly_fft (R *re, R *im, I i, I j)
void | butterfly_Hartley (R *even, R *odd, I i, I j)

Закрытые данные

const T | theta
const T | wpr
const T | wpi
T | wr
T | wi

Подробное описание

template<typename R, typename T, typename I>
class Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >

Implements trigonometric recurrence. Вычисляет [image] , [image] , где $ k=0,1..N-1 $. Переменные wr и wi соответственно хранят вещественную и мнимую часть W_k. Начальное значение после инициализации - W=1 (соответствует k=0). После каждого вызова функции next() выполняется $ W_{k+1}=W_k*W $ , в этой формуле величны являются комплексными числами. Функции MultR(R re,R im) и MultI(R re,R im) выполняют умножение комплексного числа C=(re,im) на комплексное число $ W_k=(wr,wi) $ , и возвращают соответственно вещественную и мнимую часть произведения: , [image].

Используется в преобразованиях Фурье и Хартли.

Конструктор(ы)

template<typename R, typename T, typename I>
Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >::TrigRecurrence | ( | bool | reverse,
 |  | I | mmax |
 | ) |  |  | [inline]

Initialize the trigonometric recurrence.

template<typename R, typename T, typename I>
Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >::~TrigRecurrence ( ) [inline]

Методы

template<typename R, typename T, typename I>
R Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >::MultR | ( | R | re,
 |  | R | im |
 | ) |  |  | const [inline]

template<typename R, typename T, typename I>
R Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >::MultI | ( | R | re,
 |  | R | im |
 | ) |  |  | const [inline]

template<typename R, typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >::next ( ) [inline]

Reccurence step.

template<typename R, typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >::butterfly_fft | ( | R * | re,
 |  | R * | im,
 |  | I | i,
 |  | I | j |
 | ) |  |  | [inline]

template<typename R, typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >::butterfly_Hartley | ( | R * | even,
 |  | R * | odd,
 |  | I | i,
 |  | I | j |
 | ) |  |  | [inline]

Данные класса

template<typename R, typename T, typename I>
const T Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >::theta [private]

template<typename R, typename T, typename I>
const T Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >::wpr [private]

template<typename R, typename T, typename I>
const T Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >::wpi [private]

template<typename R, typename T, typename I>
T Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >::wr [private]

template<typename R, typename T, typename I>
T Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >::wi [private]

Объявления и описания членов класса находятся в файле:
  • integral_transforms.h


Pipe Line Filters: Класс TriResult

Класс TriResult

#include <sfm_mesh_TriResult.h>

Граф связей класса TriResult:

[см. легенду]
Полный список членов класса

Открытые члены

void | RunTri (Matrix &W)
void | Build_texture (const Matrix &W, int numpic, Matrix &W_tex)
void | BuildVRML (const char *fname, const Matrix &X, const Matrix &R, const Matrix &t, const char *texfile, const Matrix &W_tex, const Matrix &g)

Закрытые типы

typedef boost::numeric::ublas::matrix<
double > 		Matrix

Закрытые члены

void | report (struct triangulateio *io)
void | ExeTri ()

Закрытые данные

int | F
int | P
int | nTri
int | nCorn
Matrix uv
Matrix tri
triangulateio in mid out | vorout

Подробное описание

Класс реализует ...

Определения типов

typedef boost::numeric::ublas::matrix<double> TriResult::Matrix [private]

Методы

void TriResult::report ( struct triangulateio * io ) [private]

void TriResult::ExeTri ( ) [private]

void TriResult::RunTri ( Matrix & W )

void TriResult::Build_texture | ( | const Matrix & | W,
 |  | int | numpic,
 |  | Matrix & | W_tex
 | ) |  |

void TriResult::BuildVRML | ( | const char * | fname,
 |  | const Matrix & | X,
 |  | const Matrix & | R,
 |  | const Matrix & | t,
 |  | const char * | texfile,
 |  | const Matrix & | W_tex,
 |  | const Matrix & | g
 | ) |  |

Данные класса

int TriResult::F [private]

int TriResult::P [private]

int TriResult::nTri [private]

int TriResult::nCorn [private]

Matrix TriResult::uv [private]

Matrix TriResult::tri [private]

struct triangulateio in mid out TriResult::vorout [private]

Объявления и описания членов классов находятся в файлах:
  • sfm_mesh_TriResult.h
  • sfm_mesh_TriResult.cpp


Pipe Line Filters: Шаблон структуры Vtl::Types::Type2Type< T >

Vtl::Types::Type2Type

Шаблон структуры Vtl::Types::Type2Type< T >

#include <alexandresku.h>

Полный список членов класса

Открытые типы

typedef T OriginalType

Подробное описание

template<typename T>
struct Vtl::Types::Type2Type< T >

Используется для выполнения перегрузки функции по типу возвращаемого значения за счет передачи пустого аргумента например String* s=Create(Type2Type<String>());

Определения типов

template<typename T>
typedef T Vtl::Types::Type2Type< T >::OriginalType

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Класс Vtl::Types::TL::TypeAt

Vtl::Types::TL::TypeAt

Класс Vtl::Types::TL::TypeAt

Индексированный доступ к списку типов. Подробнее...

#include <alexandresku.h>

Подробное описание

Индексированный доступ к списку типов.

Шаблона имеет два параметра.

    Vtl::Types::TL::TypeAt<class TList, unsigned int index>
Первый должен быть списком типов Vtl::Types::Typelist или Vtl::Types::NullType . Второй - целое число, индекс, начинающийся от 0 и указывающий номер элемента в списке типов. Шаюлон имееет единственный член - typedef Result, где оказывается указанный тип из списка типов. Значение (т.е. тип) доступно уже во время компиляции! Использование в качестве аргумента шаблона иного типа или недопустимого значения индекса приводит к ошибке времени компиляции - "не найдена специализация..." Например:
    //Какой-то класс
    template<class T> class Test {};
    //Некоторый список типов
    typedef TYPELIST_5(int,float,char,Test<float>,double) MyTList;
    //Во время компиляции создать объект класса Test<T>
    //где T - третий элемент списка типов MyTList
    Test<Vtl::Types::TL::TypeAt<MyTList,2>::Result > temp;

Объявления и описания членов класса находятся в файле:
  • alexandresku.h


Pipe Line Filters: Класс Vtl::Types::TL::TypeLargerThen

Vtl::Types::TL::TypeLargerThen

Класс Vtl::Types::TL::TypeLargerThen

Поиск в списке типов типа с sizeof больше, чем у указанного вторым параметром шаблона. Подробнее...

#include <alexandresku.h>

Подробное описание

Поиск в списке типов типа с sizeof больше, чем у указанного вторым параметром шаблона.

Шаблона имеет два параметра.

    Vtl::Types::TL::TypeLargerThen<class TList,unsigned size>
Например:

Объявления и описания членов класса находятся в файле:

  • alexandresku.h

 Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008
Author: Dmitry V. Yurin
  [image]
 http://imaging.cs.msu.su/index.html


Pipe Line Filters: Шаблон класса Vtl::Types::Typelist< T, U >

Vtl::Types::Typelist

Шаблон класса Vtl::Types::Typelist< T, U >

Списки типов. см. также Макросы для линеаризованного создания списка типов и namespace Vtl::Types::TL. Подробнее...

#include <alexandresku.h>

Полный список членов класса

Открытые типы

typedef T | Head
typedef U | Tail

Подробное описание

template<class T, class U>
class Vtl::Types::Typelist< T, U >

Списки типов. см. также Макросы для линеаризованного создания списка типов и namespace Vtl::Types::TL.

Определения типов

template<class T, class U>
typedef T Vtl::Types::Typelist< T, U >::Head

template<class T, class U>
typedef U Vtl::Types::Typelist< T, U >::Tail

Объявления и описания членов класса находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Basics3D::Types< T >

Basics3D::Types

Шаблон структуры Basics3D::Types< T >

Типы для использования в задачах восстановления 3D по изображениям. Использовать при определении типов во всех классахъ и функциях. Подробнее...

#include <sfm_types.h>

Граф наследования:Basics3D::Types< T >:

[см. легенду]
Полный список членов класса

Открытые типы

typedef T value_type
typedef boost::numeric::ublas::c_vector<
value_type, 2 > 		Vector_2
typedef boost::numeric::ublas::c_vector<
value_type, 3 > 		Vector_3
typedef boost::numeric::ublas::c_vector<
value_type, 4 > 		Vector_4
typedef boost::numeric::ublas::c_matrix<
value_type, 3, 3 > 		Matrix_3x3
typedef boost::numeric::ublas::c_matrix<
value_type, 3, 4 > 		Matrix_3x4
typedef boost::numeric::ublas::c_matrix<
value_type, 4, 4 > 		Matrix_4x4

Подробное описание

template<typename T>
struct Basics3D::Types< T >

Типы для использования в задачах восстановления 3D по изображениям. Использовать при определении типов во всех классахъ и функциях.

Определения типов

template<typename T>
typedef T Basics3D::Types< T >::value_type

template<typename T>
typedef boost::numeric::ublas::c_vector<value_type, 2> Basics3D::Types< T >::Vector_2

template<typename T>
typedef boost::numeric::ublas::c_vector<value_type, 3> Basics3D::Types< T >::Vector_3

template<typename T>
typedef boost::numeric::ublas::c_vector<value_type, 4> Basics3D::Types< T >::Vector_4

template<typename T>
typedef boost::numeric::ublas::c_matrix<value_type,3,3> Basics3D::Types< T >::Matrix_3x3

template<typename T>
typedef boost::numeric::ublas::c_matrix<value_type,3,4> Basics3D::Types< T >::Matrix_3x4

template<typename T>
typedef boost::numeric::ublas::c_matrix<value_type,4,4> Basics3D::Types< T >::Matrix_4x4

Объявления и описания членов структуры находятся в файле:
  • sfm_types.h


Pipe Line Filters: Класс VirtDib

Класс VirtDib

#include <virtdib.h>

Граф связей класса VirtDib:

[см. легенду]
Полный список членов класса

Открытые члены

VirtDib ()
~VirtDib ()
short | Width ()
short | Height ()
BYTE * | operator[] (int y)
int | GetPaletteEntries () const
RGBQUAD * | GetPalette ()
void | SetGrayPalette ()
void | SetImagePalette (const AImageMem8 *img8)
void | Build (const AImageMem8 &img, const RECT &portion, const ZoomFactor2D zoom, const BYTE *map_table)
void | BuildViaDecimation (const AImageMem8 &img, const RECT &portion, const ZoomFactor2D zoom, const BYTE *map_table)
void | Build (const AImageMem16 &img, const RECT &portion, const ZoomFactor2D zoom, const BYTE *map_table)
void | Build (const AImageMemRgb8 &img, const RECT &portion, const ZoomFactor2D zoom, const BYTE *map_table)
void | Paint (HDC hdc, const RECT &rect)
void | DefaultPaint (HWND hWnd, HDC hdc, HBRUSH hBrush, const AImage *img, const ZoomFactor2D &zoom, const BYTE *map_table=0)

Закрытые типы

enum | Type { BMT_GRAY8, BMT_PAL8, BMT_RGB8 }

Закрытые члены

long | BytesPerRow (short width, short bits)
void | bmiHeaderInit (const Inf &param)

Закрытые данные

BYTE * | data
BITMAPINFO * | info
short | pal_entries
int | bytes_per_row
long * | line_buffer
unsigned | data_sz
unsigned | line_buffer_sz
Inf inf8pal
Inf inf8rgb
Type last_type

Классы

struct | Inf

Перечисления

enum VirtDib::Type [private]

Элементы перечислений:
BMT_GRAY8
BMT_PAL8
BMT_RGB8

Конструктор(ы)

VirtDib::VirtDib ( )

VirtDib::~VirtDib ( )

Методы

long VirtDib::BytesPerRow | ( | short | width,
 |  | short | bits |
 | ) |  |  | [private]

void VirtDib::bmiHeaderInit ( const Inf & param ) [private]

short VirtDib::Width ( void ) [inline]

short VirtDib::Height ( ) [inline]

BYTE* VirtDib::operator[] ( int y ) [inline]

int VirtDib::GetPaletteEntries ( ) const [inline]

RGBQUAD* VirtDib::GetPalette ( ) [inline]

void VirtDib::SetGrayPalette ( )

void VirtDib::SetImagePalette ( const AImageMem8 * img8 )

void VirtDib::Build | ( | const AImageMem8 & | img,
 |  | const RECT & | portion,
 |  | const ZoomFactor2D | zoom,
 |  | const BYTE * | map_table
 | ) |  |

void VirtDib::BuildViaDecimation | ( | const AImageMem8 & | img,
 |  | const RECT & | portion,
 |  | const ZoomFactor2D | zoom,
 |  | const BYTE * | map_table
 | ) |  |

void VirtDib::Build | ( | const AImageMem16 & | img,
 |  | const RECT & | portion,
 |  | const ZoomFactor2D | zoom,
 |  | const BYTE * | map_table
 | ) |  |

void VirtDib::Build | ( | const AImageMemRgb8 & | img,
 |  | const RECT & | portion,
 |  | const ZoomFactor2D | zoom,
 |  | const BYTE * | map_table
 | ) |  |

void VirtDib::Paint | ( | HDC | hdc,
 |  | const RECT & | rect
 | ) |  |

void VirtDib::DefaultPaint | ( | HWND | hWnd,
 |  | HDC | hdc,
 |  | HBRUSH | hBrush,
 |  | const AImage * | img,
 |  | const ZoomFactor2D & | zoom,
 |  | const BYTE * | map_table = 0
 | ) |  |

Данные класса

BYTE* VirtDib::data [private]

BITMAPINFO* VirtDib::info [private]

short VirtDib::pal_entries [private]

int VirtDib::bytes_per_row [private]

long* VirtDib::line_buffer [private]

unsigned VirtDib::data_sz [private]

unsigned VirtDib::line_buffer_sz [private]

Inf VirtDib::inf8pal [private]

Inf VirtDib::inf8rgb [private]

Type VirtDib::last_type [private]

Объявления и описания членов классов находятся в файлах:
  • virtdib.h
  • virtdib.cpp


Pipe Line Filters: Структура VirtDib::Inf

VirtDib::Inf

Структура VirtDib::Inf

Полный список членов класса

Открытые атрибуты

short | width
short | height
short | bits
short | pal_entries
int | bytes_per_row

Данные класса

short VirtDib::Inf::width

short VirtDib::Inf::height

short VirtDib::Inf::bits

short VirtDib::Inf::pal_entries

int VirtDib::Inf::bytes_per_row

Объявления и описания членов структуры находятся в файле:
  • virtdib.h


Pipe Line Filters: Класс WinIniFile

Класс WinIniFile
[Работа с XML и INI файлами и структурами данных]

#include <ywinini.h>

Полный список членов класса

Открытые члены

WinIniFile ()
WinIniFile (std::string filename)
void | Load (std::string filename)
std::string | GetFName () const
WiNode | Root () const

Закрытые данные

std::string | fname

Подробное описание

Примеры:

test_yxml_ini.cpp.

Конструктор(ы)

WinIniFile::WinIniFile ( ) [inline]

WinIniFile::WinIniFile ( std::string filename )

Методы

void WinIniFile::Load ( std::string filename )

std::string WinIniFile::GetFName ( ) const [inline]

WiNode WinIniFile::Root ( ) const

Примеры:
test_yxml_ini.cpp.

Данные класса

std::string WinIniFile::fname [private]

Объявления и описания членов классов находятся в файлах:
  • ywinini.h
  • ywinini.cpp


Pipe Line Filters: Класс WiNode

Класс WiNode
[Работа с XML и INI файлами и структурами данных]

#include <ywinini.h>

Полный список членов класса

Открытые члены

WiNode ()
WiNode (const WiNode &n)
WiNode & | operator= (const WiNode &n)
bool | IsNode () const
Аналог проверки указателя на NULL.
WiNode | GetNode (const std::string node_name)
const WiNode | GetNode (const std::string node_name) const
void | SetValue (const DataString data)
DataString | GetValue () const
void | SetAttr (const std::string attr_name, const DataString attr_value)
DataString | GetAttr (const std::string attr_name) const
WiNode | operator() (const std::string node_name)
const WiNode | operator() (const std::string node_name) const
AttrRef | operator[] (const std::string &attr)
const AttrRef | operator[] (const std::string &attr) const
WiNode & | operator= (const DataString data)
operator DataString () const

Закрытые члены

WiNode (const std::string filename, const std::string node)

Закрытые данные

std::string | fname
std::string | name

Друзья

class | WinIniFile
std::ostream & | operator<< (std::ostream &s, WiNode &in)

Классы

class | AttrRef

Подробное описание

Примеры:

test_yxml_ini.cpp.

Конструктор(ы)

WiNode::WiNode | ( | const std::string | filename,
 |  | const std::string | node |
 | ) |  |  | [inline, private]

WiNode::WiNode ( ) [inline]

WiNode::WiNode ( const WiNode & n ) [inline]

Методы

WiNode& WiNode::operator= ( const WiNode & n ) [inline]

Документация по друзьям класса и функциям, отноносящимся к классу

friend class WinIniFile [friend]

std::ostream& operator<< | ( | std::ostream & | s,
 |  | WiNode & | in |
 | ) |  |  | [friend]

Данные класса

std::string WiNode::fname [private]

std::string WiNode::name [private]

Объявления и описания членов классов находятся в файлах:
  • ywinini.h
  • ywinini.cpp


Pipe Line Filters: Класс WiNode::AttrRef

WiNode::AttrRef

Класс WiNode::AttrRef
[Работа с XML и INI файлами и структурами данных]

#include <ywinini.h>

Граф связей класса WiNode::AttrRef:

[см. легенду]
Полный список членов класса

Открытые члены

operator DataString () const
void | operator= (const DataString &s)

Закрытые члены

AttrRef ()
AttrRef (const AttrRef &ar)
AttrRef | operator= (const AttrRef &)
AttrRef (WiNode node, const std::string &attr)

Закрытые данные

WiNode n
std::string | attrib

Друзья

class | WiNode
std::ostream & | operator<< (std::ostream &s, WiNode::AttrRef &ir)

Конструктор(ы)

WiNode::AttrRef::AttrRef ( ) [inline, private]

WiNode::AttrRef::AttrRef ( const AttrRef & ar ) [inline, private]

WiNode::AttrRef::AttrRef | ( | WiNode | node,
 |  | const std::string & | attr |
 | ) |  |  | [inline, private]

Методы

AttrRef WiNode::AttrRef::operator= ( const AttrRef & ) [private]

WiNode::AttrRef::operator DataString ( ) const [inline]

void WiNode::AttrRef::operator= ( const DataString & s ) [inline]

Документация по друзьям класса и функциям, отноносящимся к классу

friend class WiNode [friend]

std::ostream& operator<< | ( | std::ostream & | s,
 |  | WiNode::AttrRef & | ir |
 | ) |  |  | [friend]

Данные класса

WiNode WiNode::AttrRef::n [private]

std::string WiNode::AttrRef::attrib [private]

Объявления и описания членов класса находятся в файле:
  • ywinini.h


Pipe Line Filters: Класс WritePipe

Класс WritePipe

#include <apipe.h>

Полный список членов класса

Открытые члены

~WritePipe ()
bool | isEof () const
void | close ()
unsigned | writeNoWait (const char *data, unsigned len)
unsigned | writeWait (const char *data, unsigned len)

Закрытые члены

WritePipe ()
WritePipe (HANDLE handle)
WritePipe (const WritePipe &)
WritePipe & | operator= (const WritePipe &)
void | open (HANDLE handle)

Закрытые данные

HANDLE | handle_

Друзья

class | childPipe

Конструктор(ы)

WritePipe::WritePipe ( ) [inline, private]

WritePipe::WritePipe ( HANDLE handle ) [inline, private]

WritePipe::WritePipe ( const WritePipe & ) [private]

WritePipe::~WritePipe ( ) [inline]

Методы

WritePipe& WritePipe::operator= ( const WritePipe & ) [private]

void WritePipe::open ( HANDLE handle ) [inline, private]

bool WritePipe::isEof ( ) const [inline]

void WritePipe::close ( )

unsigned WritePipe::writeNoWait | ( | const char * | data,
 |  | unsigned | len
 | ) |  |

unsigned WritePipe::writeWait | ( | const char * | data,
 |  | unsigned | len
 | ) |  |

Документация по друзьям класса и функциям, отноносящимся к классу

friend class childPipe [friend]

Данные класса

HANDLE WritePipe::handle_ [private]

Объявления и описания членов классов находятся в файлах:
  • apipe.h
  • apipe.cpp


Pipe Line Filters: Шаблон структуры Vtl::Alg::x_to_N< N >

Vtl::Alg::x_to_N

Шаблон структуры Vtl::Alg::x_to_N< N >

Вычисляет x^N, т.е. pow(x,N). N - целое известное на момент компиляции. Подробнее...

#include <alexandresku.h>

Полный список членов класса

Открытые статические члены

template<typename T>
static T | value (T x)

Классы

struct | x_to_N__< 0, 0 >
struct | x_to_N__< 1, 1 >
struct | x_to_N__< K, 0 >
struct | x_to_N__< K, 1 >

Подробное описание

template<unsigned N>
struct Vtl::Alg::x_to_N< N >

Вычисляет x^N, т.е. pow(x,N). N - целое известное на момент компиляции.
Примеры:

test_plf_kernels.cpp.

Методы

template<unsigned N>
template<typename T>
static T Vtl::Alg::x_to_N< N >::value ( T x ) [inline, static]

Примеры:
test_alexandresku.cpp.

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Alg::x_to_N< N >::x_to_N__< 0, 0 >

Vtl::Alg::x_to_N::x_to_N__< 0, 0 >

Шаблон структуры Vtl::Alg::x_to_N< N >::x_to_N__< 0, 0 >

Полный список членов класса

Открытые статические члены

template<typename T>
static T v (T x)

template<unsigned N>
template<>
struct Vtl::Alg::x_to_N< N >::x_to_N__< 0, 0 >

Методы

template<unsigned N>
template<typename T>
static T Vtl::Alg::x_to_N< N >::x_to_N__< 0, 0 >::v ( T x ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Alg::x_to_N< N >::x_to_N__< 1, 1 >

Vtl::Alg::x_to_N::x_to_N__< 1, 1 >

Шаблон структуры Vtl::Alg::x_to_N< N >::x_to_N__< 1, 1 >

Полный список членов класса

Открытые статические члены

template<typename T>
static T v (T x)

template<unsigned N>
template<>
struct Vtl::Alg::x_to_N< N >::x_to_N__< 1, 1 >

Методы

template<unsigned N>
template<typename T>
static T Vtl::Alg::x_to_N< N >::x_to_N__< 1, 1 >::v ( T x ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 >

Vtl::Alg::x_to_N::x_to_N__< K, 0 >

Шаблон структуры Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 >

Полный список членов класса

Открытые статические члены

template<typename T>
static T | sqr (T x)
template<typename T>
static T | v (T x)

template<unsigned N>
template<unsigned K>
struct Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 >

Методы

template<unsigned N>
template<unsigned K>
template<typename T>
static T Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 >::sqr ( T x ) [inline, static]

template<unsigned N>
template<unsigned K>
template<typename T>
static T Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 >::v ( T x ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Шаблон структуры Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 >

Vtl::Alg::x_to_N::x_to_N__< K, 1 >

Шаблон структуры Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 >

Полный список членов класса

Открытые статические члены

template<typename T>
static T | sqr (T x)
template<typename T>
static T | v (T x)

template<unsigned N>
template<unsigned K>
struct Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 >

Методы

template<unsigned N>
template<unsigned K>
template<typename T>
static T Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 >::sqr ( T x ) [inline, static]

template<unsigned N>
template<unsigned K>
template<typename T>
static T Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 >::v ( T x ) [inline, static]

Объявления и описания членов структуры находятся в файле:
  • alexandresku.h


Pipe Line Filters: Класс YXML::Xercesc

YXML::Xercesc

Класс YXML::Xercesc
[Работа с XML и INI файлами и структурами данных, Работа с XML и INI файлами и структурами данных]

#include <xml_interface.h>

Граф наследования:YXML::Xercesc:

[см. легенду]
Полный список членов класса

Открытые члены

Xercesc ()
virtual | ~Xercesc ()

Закрытые статические данные

static int | reference_counter

Подробное описание

Для внутреннего использования. Выполняет необходимые действия по инициализации и освобождению библиотеки XERCESC/ICU (xml4c)

Конструктор(ы)

Xercesc::Xercesc ( )

Xercesc::~Xercesc ( ) [virtual]

Данные класса

int Xercesc::reference_counter [static, private]

Объявления и описания членов классов находятся в файлах:
  • xml_interface.h
  • xml_interface.cpp


Pipe Line Filters: Класс YXML::XMLdoc

YXML::XMLdoc

Класс YXML::XMLdoc
[Работа с XML и INI файлами и структурами данных]

#include <xml_interface.h>

Граф наследования:YXML::XMLdoc:

[см. легенду]
Граф связей класса YXML::XMLdoc:

[см. легенду]
Полный список членов класса

Открытые члены

XMLdoc ()
XMLdoc (const char *fname, const char *docname, bool autosave)
~XMLdoc ()
std::string | FName () const
void | Create (const char *fname, const char *docname)
void | Load (const char *fname, bool condenseWS=true)
void | Save (const char *fname, bool formatted=false) const
DNode Root ()

Открытые статические члены

static bool | IsFileExist (const char *fname)

Закрытые данные

YXML_DRV_DocHandle handle
std::string | filename
bool | _autosave

Подробное описание

Примеры:

test_yxml_ini.cpp, test_yxml_learn.cpp и test_yxml_xml.cpp.

Конструктор(ы)

XMLdoc::XMLdoc ( )

XMLdoc::XMLdoc | ( | const char * | fname,
 |  | const char * | docname,
 |  | bool | autosave
 | ) |  |

XMLdoc::~XMLdoc ( )

Методы

bool XMLdoc::IsFileExist ( const char * fname ) [static]

std::string YXML::XMLdoc::FName ( ) const [inline]

void XMLdoc::Create | ( | const char * | fname,
 |  | const char * | docname
 | ) |  |

Примеры:
test_yxml_learn.cpp и test_yxml_xml.cpp.

void XMLdoc::Load | ( | const char * | fname,
 |  | bool | condenseWS = true
 | ) |  |

Примеры:
test_yxml_learn.cpp и test_yxml_xml.cpp.

void XMLdoc::Save | ( | const char * | fname,
 |  | bool | formatted = false |
 | ) |  |  | const

Примеры:
test_yxml_learn.cpp и test_yxml_xml.cpp.

DNode XMLdoc::Root ( )

Примеры:
test_yxml_learn.cpp и test_yxml_xml.cpp.

Данные класса

YXML_DRV_DocHandle YXML::XMLdoc::handle [private]

std::string YXML::XMLdoc::filename [mutable, private]

bool YXML::XMLdoc::_autosave [private]

Объявления и описания членов классов находятся в файлах:
  • xml_interface.h
  • xml_interface.cpp


Pipe Line Filters: Структура Vtl::ImAlg::C::XYZ

Vtl::ImAlg::C::XYZ

Структура Vtl::ImAlg::C::XYZ

converts RGB709 to CIE XYZ color coordinates. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

enum | { n_components = 3 }
enum | { is_metric = 1 }
enum | { is_system = sys_other }

Открытые статические члены

template<int n>
static const char * | sample_name ()
static std::string | name ()
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 0 >)
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 1 >)
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 2 >)
template<typename T>
static T | rgb (T x, T y, T z, Loki::Int2Type< 0 >)
template<typename T>
static T | rgb (T x, T y, T z, Loki::Int2Type< 1 >)
template<typename T>
static T | rgb (T x, T y, T z, Loki::Int2Type< 2 >)
template<int n, typename T>
static T | sample (T r, T g, T b)
template<int n, typename T>
static T | rgb (T x, T y, T z)
template<int n, typename T>
static T | sample_min (T MaxColor)
template<int n, typename T>
static T | sample_max (T MaxColor)
template<int n, typename T>
static T | sample_maxabs (T MaxColor)
template<int n>
static bool | is_sample_sign_alternating ()
template<int n>
static bool | is_sample_cyclic_var ()
template<typename T>
static T | X_f (T r, T g, T b)
template<typename T>
static T | Y_f (T r, T g, T b)
template<typename T>
static T | Z_f (T r, T g, T b)
template<typename T>
static T | R_f (T x, T y, T z)
template<typename T>
static T | G_f (T x, T y, T z)
template<typename T>
static T | B_f (T x, T y, T z)

Классы

struct | B
Функтор XYZ: XYZ -> B для PixByPix3to1. Подробнее...
struct | fromRGB
Функтор для PixByPix3to3. Подробнее...
struct | G
Функтор XYZ: XYZ -> G для PixByPix3to1. Подробнее...
struct | R
Функтор XYZ: XYZ -> R для PixByPix3to1. Подробнее...
struct | toRGB
Функтор для PixByPix3to3. Подробнее...
struct | X
Функтор XYZ: RGB -> X для PixByPix3to1. Подробнее...
struct | Y
Функтор XYZ: RGB -> Y для PixByPix3to1. Подробнее...
struct | Z
Функтор XYZ: RGB -> Z для PixByPix3to1. Подробнее...

Подробное описание

converts RGB709 to CIE XYZ color coordinates.

The CIE XYZ color system describes a color in terms of its components of X, Y and Z primaries. In ordinary circumstances, all three of these components must be nonnegative.

RGB values in a particular set of primaries can be transformed to and from CIE XYZ via a 3x3 matrix transform. These transforms involve tristimulus values, that is a set of three linear-light components that conform to the CIE color-matching functions. CIE XYZ is a special set of tristimulus values. In XYZ, any color is represented as a set of positive values.

To transform from XYZ to RGB (with D65 white point), the matrix transform used is:

    [ R ]   [  3.240479 -1.537150 -0.498535 ]   [ X ]
    [ G ] = [ -0.969256  1.875992  0.041556 ] * [ Y ]
    [ B ]   [  0.055648 -0.204043  1.057311 ]   [ Z ]

The range for valid R, G, B values is [0,1]. Note, this matrix has negative coefficients. Some XYZ color may be transformed to RGB values that are negative or greater than one. This means that not all visible colors can be produced using the RGB system.

The inverse transformation matrix is as follows:

    [ X ]   [  0.412453  0.357580  0.180423 ]   [ R ]
    [ Y ] = [  0.212671  0.715160  0.072169 ] * [ G ]
    [ Z ]   [  0.019334  0.119193  0.950227 ]   [ B ]

По Прэтту, 2-е изд. (стр.68): [X]= [ 0.49018626 0.30987954 0.19993420 ] [Rc] [Y]= [ 0.17701522 0.81232418 0.01066060 ] * [Gc] [Z]= [ 0.00000000 0.01007720 0.98992280 ] [Bc] ---------------------------------------------- [Rc] [ 2.36353918 -0.89582361 –0.46771557 ] [X] [Gc] = [-0.51511248 1.42643694 0.08867553 ] * [Y] [Bc] [ 0.00524373 -0.01452082 1.00927709 ] [Z]

Перечисления

anonymous enum

Элементы перечислений:
n_components

anonymous enum

Элементы перечислений:
is_metric

anonymous enum

Элементы перечислений:
is_system

Методы

template<int n>
static const char* Vtl::ImAlg::C::XYZ::sample_name ( ) [inline, static]

static std::string Vtl::ImAlg::C::XYZ::name ( ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::XYZ::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::XYZ::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::XYZ::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 2 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::XYZ::rgb | ( | T | x,
 |  | T | y,
 |  | T | z,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::XYZ::rgb | ( | T | x,
 |  | T | y,
 |  | T | z,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::XYZ::rgb | ( | T | x,
 |  | T | y,
 |  | T | z,
 |  | Loki::Int2Type< 2 > |  |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::XYZ::sample | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::XYZ::rgb | ( | T | x,
 |  | T | y,
 |  | T | z |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::XYZ::sample_min ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::XYZ::sample_max ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::XYZ::sample_maxabs ( T MaxColor ) [inline, static]

template<int n>
static bool Vtl::ImAlg::C::XYZ::is_sample_sign_alternating ( ) [inline, static]

template<int n>
static bool Vtl::ImAlg::C::XYZ::is_sample_cyclic_var ( ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::XYZ::X_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::XYZ::Y_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::XYZ::Z_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::XYZ::R_f | ( | T | x,
 |  | T | y,
 |  | T | z |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::XYZ::G_f | ( | T | x,
 |  | T | y,
 |  | T | z |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::XYZ::B_f | ( | T | x,
 |  | T | y,
 |  | T | z |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::XYZ::B< T >

Vtl::ImAlg::C::XYZ::B

Шаблон структуры Vtl::ImAlg::C::XYZ::B< T >

Функтор XYZ: XYZ -> B для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef XYZ | ColorSystem

Открытые члены

T | operator() (T x, T y, T z) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::XYZ::B< T >

Функтор XYZ: XYZ -> B для PixByPix3to1.

Определения типов

template<typename T>
typedef XYZ Vtl::ImAlg::C::XYZ::B< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::XYZ::B< T >::operator() | ( | T | x,
 |  | T | y,
 |  | T | z |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >

Vtl::ImAlg::C::XYZ::fromRGB

Шаблон структуры Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef XYZ | ColorSystem

Открытые члены

fromRGB (NormType normalizer=Normalizer< T, XYZ, nDefault >(255, 0, 128))
void | operator() (T r, T g, T b, Iter x, Iter y, Iter z) const

Открытые атрибуты

NormType | norm

Подробное описание

template<typename T, class NormType = Normalizer<T,XYZ,nDefault>, typename Iter = T&>
struct Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3.

Определения типов

template<typename T, class NormType = Normalizer<T,XYZ,nDefault>, typename Iter = T&>
typedef XYZ Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,XYZ,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >::fromRGB ( NormType normalizer = Normalizer<T,XYZ,nDefault>(255,0,128) ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,XYZ,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Iter | x,
 |  | Iter | y,
 |  | Iter | z |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,XYZ,nDefault>, typename Iter = T&>
NormType Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >::norm

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::XYZ::G< T >

Vtl::ImAlg::C::XYZ::G

Шаблон структуры Vtl::ImAlg::C::XYZ::G< T >

Функтор XYZ: XYZ -> G для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef XYZ | ColorSystem

Открытые члены

T | operator() (T x, T y, T z) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::XYZ::G< T >

Функтор XYZ: XYZ -> G для PixByPix3to1.

Определения типов

template<typename T>
typedef XYZ Vtl::ImAlg::C::XYZ::G< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::XYZ::G< T >::operator() | ( | T | x,
 |  | T | y,
 |  | T | z |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::XYZ::R< T >

Vtl::ImAlg::C::XYZ::R

Шаблон структуры Vtl::ImAlg::C::XYZ::R< T >

Функтор XYZ: XYZ -> R для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef XYZ | ColorSystem

Открытые члены

T | operator() (T x, T y, T z) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::XYZ::R< T >

Функтор XYZ: XYZ -> R для PixByPix3to1.

Определения типов

template<typename T>
typedef XYZ Vtl::ImAlg::C::XYZ::R< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::XYZ::R< T >::operator() | ( | T | x,
 |  | T | y,
 |  | T | z |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >

Vtl::ImAlg::C::XYZ::toRGB

Шаблон структуры Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef XYZ | ColorSystem

Открытые члены

toRGB (NormType normalizer=Normalizer< T, XYZ, nDefault >(255, 0, 128))
void | operator() (T x, T y, T z, Iter r, Iter g, Iter b) const

Открытые атрибуты

NormType | norm

Подробное описание

template<typename T, class NormType = Normalizer<T,XYZ,nDefault>, typename Iter = T&>
struct Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3.

Определения типов

template<typename T, class NormType = Normalizer<T,XYZ,nDefault>, typename Iter = T&>
typedef XYZ Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,XYZ,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >::toRGB ( NormType normalizer = Normalizer<T,XYZ,nDefault>(255,0,128) ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,XYZ,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >::operator() | ( | T | x,
 |  | T | y,
 |  | T | z,
 |  | Iter | r,
 |  | Iter | g,
 |  | Iter | b |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,XYZ,nDefault>, typename Iter = T&>
NormType Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >::norm

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::XYZ::X< T >

Vtl::ImAlg::C::XYZ::X

Шаблон структуры Vtl::ImAlg::C::XYZ::X< T >

Функтор XYZ: RGB -> X для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef XYZ | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::XYZ::X< T >

Функтор XYZ: RGB -> X для PixByPix3to1.

Определения типов

template<typename T>
typedef XYZ Vtl::ImAlg::C::XYZ::X< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::XYZ::X< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::XYZ::Y< T >

Vtl::ImAlg::C::XYZ::Y

Шаблон структуры Vtl::ImAlg::C::XYZ::Y< T >

Функтор XYZ: RGB -> Y для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef XYZ | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::XYZ::Y< T >

Функтор XYZ: RGB -> Y для PixByPix3to1.

Определения типов

template<typename T>
typedef XYZ Vtl::ImAlg::C::XYZ::Y< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::XYZ::Y< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::XYZ::Z< T >

Vtl::ImAlg::C::XYZ::Z

Шаблон структуры Vtl::ImAlg::C::XYZ::Z< T >

Функтор XYZ: RGB -> Z для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef XYZ | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::XYZ::Z< T >

Функтор XYZ: RGB -> Z для PixByPix3to1.

Определения типов

template<typename T>
typedef XYZ Vtl::ImAlg::C::XYZ::Z< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::XYZ::Z< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Структура Vtl::ImAlg::C::YCbCr

Vtl::ImAlg::C::YCbCr

Структура Vtl::ImAlg::C::YCbCr

Цветовое пространство YCbCr. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

enum | { n_components = 3 }
enum | { is_metric = 0 }
enum | { is_system = sys_chrom }

Открытые статические члены

template<int n>
static const char * | sample_name ()
static std::string | name ()
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 0 >)
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 1 >)
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 2 >)
template<typename T>
static T | rgb (T y, T cb, T cr, Loki::Int2Type< 0 >)
template<typename T>
static T | rgb (T y, T cb, T cr, Loki::Int2Type< 1 >)
template<typename T>
static T | rgb (T y, T cb, T cr, Loki::Int2Type< 2 >)
template<int n, typename T>
static T | sample (T r, T g, T b)
template<int n, typename T>
static T | rgb (T y, T cb, T cr)
template<int n, typename T>
static T | sample_min (T MaxColor)
template<int n, typename T>
static T | sample_max (T MaxColor)
template<int n, typename T>
static T | sample_maxabs (T MaxColor)
template<typename T>
static T | sample_max_saturation ()
specific for cromatic-like color systems, =sqrt(c1^2+c2^2)
template<int n>
static bool | is_sample_sign_alternating ()
template<int n>
static bool | is_sample_cyclic_var ()
template<typename T>
static T | Y_f (T r, T g, T b)
template<typename T>
static T | Cb_f (T r, T g, T b)
template<typename T>
static T | Cr_f (T r, T g, T b)
template<typename T>
static T | R_f (T y, T cb, T cr)
template<typename T>
static T | G_f (T y, T cb, T cr)
template<typename T>
static T | B_f (T y, T cb, T cr)

Классы

struct | B
Функтор YCbCr -> B для PixByPix3to1. Подробнее...
struct | Cb
Функтор YCbCr: RGB -> Cb для PixByPix3to1. Подробнее...
struct | Cr
Функтор YCbCr: RGB -> Cr для PixByPix3to1. Подробнее...
struct | fromRGB
Функтор для PixByPix3to3. Подробнее...
struct | G
Функтор YCbCr -> G для PixByPix3to1. Подробнее...
struct | R
Функтор YCbCr -> R для PixByPix3to1. Подробнее...
struct | toRGB
Функтор для PixByPix3to3. Подробнее...
struct | Y
Функтор YCbCr: RGB -> Y для PixByPix3to1. Подробнее...

Подробное описание

Цветовое пространство YCbCr.

    Y  =  0.299   * R + 0.587   * G + 0.114   * B
    Cb = -0.16874 * R - 0.33126 * G + 0.50000 * B
    Cr =  0.50000 * R - 0.41869 * G - 0.08131 * B
    ----------------------------------------------
    R = Y + 0.00000 * Cb + 1.40200 * Cr
    G = Y - 0.34414 * Cb - 0.71414 * Cr
    B = Y + 1.77200 * Cb + 0.00000 * Cr

Перечисления

anonymous enum

Элементы перечислений:
n_components

anonymous enum

Элементы перечислений:
is_metric

anonymous enum

Элементы перечислений:
is_system

Методы

template<int n>
static const char* Vtl::ImAlg::C::YCbCr::sample_name ( ) [inline, static]

static std::string Vtl::ImAlg::C::YCbCr::name ( ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YCbCr::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YCbCr::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YCbCr::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 2 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YCbCr::rgb | ( | T | y,
 |  | T | cb,
 |  | T | cr,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YCbCr::rgb | ( | T | y,
 |  | T | cb,
 |  | T | cr,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YCbCr::rgb | ( | T | y,
 |  | T | cb,
 |  | T | cr,
 |  | Loki::Int2Type< 2 > |  |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YCbCr::sample | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YCbCr::rgb | ( | T | y,
 |  | T | cb,
 |  | T | cr |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YCbCr::sample_min ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YCbCr::sample_max ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YCbCr::sample_maxabs ( T MaxColor ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YCbCr::sample_max_saturation ( ) [inline, static]

specific for cromatic-like color systems, =sqrt(c1^2+c2^2)

template<int n>
static bool Vtl::ImAlg::C::YCbCr::is_sample_sign_alternating ( ) [inline, static]

template<int n>
static bool Vtl::ImAlg::C::YCbCr::is_sample_cyclic_var ( ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YCbCr::Y_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YCbCr::Cb_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YCbCr::Cr_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YCbCr::R_f | ( | T | y,
 |  | T | cb,
 |  | T | cr |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YCbCr::G_f | ( | T | y,
 |  | T | cb,
 |  | T | cr |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YCbCr::B_f | ( | T | y,
 |  | T | cb,
 |  | T | cr |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YCbCr::B< T >

Vtl::ImAlg::C::YCbCr::B

Шаблон структуры Vtl::ImAlg::C::YCbCr::B< T >

Функтор YCbCr -> B для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YCbCr | ColorSystem

Открытые члены

T | operator() (T y, T cb, T cr) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YCbCr::B< T >

Функтор YCbCr -> B для PixByPix3to1.

Определения типов

template<typename T>
typedef YCbCr Vtl::ImAlg::C::YCbCr::B< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YCbCr::B< T >::operator() | ( | T | y,
 |  | T | cb,
 |  | T | cr |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YCbCr::Cb< T >

Vtl::ImAlg::C::YCbCr::Cb

Шаблон структуры Vtl::ImAlg::C::YCbCr::Cb< T >

Функтор YCbCr: RGB -> Cb для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YCbCr | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YCbCr::Cb< T >

Функтор YCbCr: RGB -> Cb для PixByPix3to1.

Определения типов

template<typename T>
typedef YCbCr Vtl::ImAlg::C::YCbCr::Cb< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YCbCr::Cb< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YCbCr::Cr< T >

Vtl::ImAlg::C::YCbCr::Cr

Шаблон структуры Vtl::ImAlg::C::YCbCr::Cr< T >

Функтор YCbCr: RGB -> Cr для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YCbCr | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YCbCr::Cr< T >

Функтор YCbCr: RGB -> Cr для PixByPix3to1.

Определения типов

template<typename T>
typedef YCbCr Vtl::ImAlg::C::YCbCr::Cr< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YCbCr::Cr< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >

Vtl::ImAlg::C::YCbCr::fromRGB

Шаблон структуры Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YCbCr | ColorSystem

Открытые члены

fromRGB (NormType normalizer=Normalizer< T, YCbCr, nDefault >(255, 0, 128))
void | operator() (T r, T g, T b, Iter y, Iter cb, Iter cr) const

Открытые атрибуты

NormType | norm

Подробное описание

template<typename T, class NormType = Normalizer<T,YCbCr,nDefault>, typename Iter = T&>
struct Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3.

Определения типов

template<typename T, class NormType = Normalizer<T,YCbCr,nDefault>, typename Iter = T&>
typedef YCbCr Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,YCbCr,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >::fromRGB ( NormType normalizer = Normalizer<T,YCbCr,nDefault>(255,0,128) ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,YCbCr,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Iter | y,
 |  | Iter | cb,
 |  | Iter | cr |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,YCbCr,nDefault>, typename Iter = T&>
NormType Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >::norm

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YCbCr::G< T >

Vtl::ImAlg::C::YCbCr::G

Шаблон структуры Vtl::ImAlg::C::YCbCr::G< T >

Функтор YCbCr -> G для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YCbCr | ColorSystem

Открытые члены

T | operator() (T y, T cb, T cr) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YCbCr::G< T >

Функтор YCbCr -> G для PixByPix3to1.

Определения типов

template<typename T>
typedef YCbCr Vtl::ImAlg::C::YCbCr::G< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YCbCr::G< T >::operator() | ( | T | y,
 |  | T | cb,
 |  | T | cr |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YCbCr::R< T >

Vtl::ImAlg::C::YCbCr::R

Шаблон структуры Vtl::ImAlg::C::YCbCr::R< T >

Функтор YCbCr -> R для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YCbCr | ColorSystem

Открытые члены

T | operator() (T y, T cb, T cr) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YCbCr::R< T >

Функтор YCbCr -> R для PixByPix3to1.

Определения типов

template<typename T>
typedef YCbCr Vtl::ImAlg::C::YCbCr::R< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YCbCr::R< T >::operator() | ( | T | y,
 |  | T | cb,
 |  | T | cr |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >

Vtl::ImAlg::C::YCbCr::toRGB

Шаблон структуры Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YCbCr | ColorSystem

Открытые члены

toRGB (NormType normalizer=Normalizer< T, YCbCr, nDefault >())
void | operator() (T y, T cb, T cr, Iter r, Iter g, Iter b) const

Открытые атрибуты

const NormType | norm

Подробное описание

template<typename T, class NormType = Normalizer<T,YCbCr,nDefault>, typename Iter = T&>
struct Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3.

Определения типов

template<typename T, class NormType = Normalizer<T,YCbCr,nDefault>, typename Iter = T&>
typedef YCbCr Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,YCbCr,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >::toRGB ( NormType normalizer = Normalizer<T,YCbCr,nDefault>() ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,YCbCr,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >::operator() | ( | T | y,
 |  | T | cb,
 |  | T | cr,
 |  | Iter | r,
 |  | Iter | g,
 |  | Iter | b |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,YCbCr,nDefault>, typename Iter = T&>
const NormType Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >::norm

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YCbCr::Y< T >

Vtl::ImAlg::C::YCbCr::Y

Шаблон структуры Vtl::ImAlg::C::YCbCr::Y< T >

Функтор YCbCr: RGB -> Y для PixByPix3to1. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YCbCr | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YCbCr::Y< T >

Функтор YCbCr: RGB -> Y для PixByPix3to1.

Определения типов

template<typename T>
typedef YCbCr Vtl::ImAlg::C::YCbCr::Y< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YCbCr::Y< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Класс YDataTime

Класс YDataTime
[Работа со временем.]

#include <ytime.h>

Полный список членов класса

Открытые члены

YDataTime ()
YDataTime (int _year, int _month, int _day, int _hour, int _minutes, double _seconds)
void | Set (int _year, int _month, int _day, int _hour, int _minutes, double _seconds)
void | Get (int &_year, int &_month, int &_day, int &_hour, int &_minutes, double &_seconds) const
bool | IsOk () const
YTimeInterval | operator- (const YDataTime &dt) const
YDataTime & | operator+= (const YTimeInterval &ti)
YDataTime & | operator-= (const YTimeInterval &ti)
YDataTime | operator+ (const YTimeInterval &ti) const
bool | operator< (const YDataTime &dt2) const
bool | operator<= (const YDataTime &dt2) const
bool | operator> (const YDataTime &dt2) const
bool | operator>= (const YDataTime &dt2) const
bool | operator== (const YDataTime &dt2) const
bool | operator!= (const YDataTime &dt2) const
void | Between (const YDataTime &dt1, const YDataTime &dt2, int cnt1, int cnt2, int cnt)
bool | IsLeapYear () const
int | DaysInMonth () const
int | DaysInYear () const
int32_t | SecondsInYear () const
int64_t | MicroSecondsInYear () const
int | Year () const
int | Month () const
int | Day () const
int | Hour () const
int | Minutes () const
double | Seconds () const
int | YearDay () const
double | YearDaySec () const
int | date2BCDdate () const

Открытые статические члены

static int | MonthInYear ()

Закрытые данные

int16_t year
int64_t microsec

Подробное описание

Примеры:

test__datastring.cpp, test_yxml_ini.cpp и test_yxml_learn.cpp.

Конструктор(ы)

YDataTime::YDataTime ( ) [inline]

YDataTime::YDataTime | ( | int | _year,
 |  | int | _month,
 |  | int | _day,
 |  | int | _hour,
 |  | int | _minutes,
 |  | double | _seconds |
 | ) |  |  | [inline]

Методы

void YDataTime::Set | ( | int | _year,
 |  | int | _month,
 |  | int | _day,
 |  | int | _hour,
 |  | int | _minutes,
 |  | double | _seconds
 | ) |  |

Примеры:
test_yxml_ini.cpp.

void YDataTime::Get | ( | int & | _year,
 |  | int & | _month,
 |  | int & | _day,
 |  | int & | _hour,
 |  | int & | _minutes,
 |  | double & | _seconds |
 | ) |  |  | const

bool YDataTime::IsOk ( ) const [inline]

YTimeInterval YDataTime::operator- ( const YDataTime & dt ) const

YDataTime & YDataTime::operator+= ( const YTimeInterval & ti )

YDataTime& YDataTime::operator-= ( const YTimeInterval & ti ) [inline]

YDataTime YDataTime::operator+ ( const YTimeInterval & ti ) const [inline]

bool YDataTime::operator< ( const YDataTime & dt2 ) const

bool YDataTime::operator<= ( const YDataTime & dt2 ) const

bool YDataTime::operator> ( const YDataTime & dt2 ) const [inline]

bool YDataTime::operator>= ( const YDataTime & dt2 ) const [inline]

bool YDataTime::operator== ( const YDataTime & dt2 ) const

bool YDataTime::operator!= ( const YDataTime & dt2 ) const [inline]

void YDataTime::Between | ( | const YDataTime & | dt1,
 |  | const YDataTime & | dt2,
 |  | int | cnt1,
 |  | int | cnt2,
 |  | int | cnt
 | ) |  |

bool YDataTime::IsLeapYear ( ) const

int YDataTime::MonthInYear ( ) [static]

int YDataTime::DaysInMonth ( ) const

int YDataTime::DaysInYear ( ) const

int32_t YDataTime::SecondsInYear ( ) const

int64_t YDataTime::MicroSecondsInYear ( ) const

int YDataTime::Year ( ) const

int YDataTime::Month ( ) const

int YDataTime::Day ( ) const

Примеры:
test_yxml_learn.cpp.

int YDataTime::Hour ( ) const

int YDataTime::Minutes ( ) const

Примеры:
test_yxml_learn.cpp.

double YDataTime::Seconds ( ) const

int YDataTime::YearDay ( ) const

Примеры:
test_yxml_learn.cpp.

double YDataTime::YearDaySec ( ) const

Примеры:
test_yxml_learn.cpp.

int YDataTime::date2BCDdate ( ) const

Данные класса

int16_t YDataTime::year [private]

int64_t YDataTime::microsec [private]

Объявления и описания членов классов находятся в файлах:
  • ytime.h
  • ytime.cpp


Pipe Line Filters: Класс YDataTimeZone

Класс YDataTimeZone
[Работа со временем.]

#include <ytime.h>

Граф связей класса YDataTimeZone:

[см. легенду]
Полный список членов класса

Открытые члены

YDataTimeZone ()
YDataTimeZone (const YDataTime &dt_, const YTimeInterval &zone_)
YDataTimeZone (const YDataTimeZone &val)
void | Set (const YDataTimeZone &val)
void | Set (const YDataTime &dt_, const YTimeInterval &zone_)
YDataTime | DataTime () const
YTimeInterval | Zone () const
YDataTime | Grinvich () const

Закрытые данные

YDataTime dt
YTimeInterval zone

Подробное описание

Примеры:

test_yxml_learn.cpp.

Конструктор(ы)

YDataTimeZone::YDataTimeZone ( ) [inline]

YDataTimeZone::YDataTimeZone | ( | const YDataTime & | dt_,
 |  | const YTimeInterval & | zone_ |
 | ) |  |  | [inline]

YDataTimeZone::YDataTimeZone ( const YDataTimeZone & val ) [inline]

Методы

void YDataTimeZone::Set ( const YDataTimeZone & val ) [inline]

void YDataTimeZone::Set | ( | const YDataTime & | dt_,
 |  | const YTimeInterval & | zone_ |
 | ) |  |  | [inline]

YDataTime YDataTimeZone::DataTime ( ) const [inline]

YTimeInterval YDataTimeZone::Zone ( ) const [inline]

YDataTime YDataTimeZone::Grinvich ( ) const [inline]

Данные класса

YDataTime YDataTimeZone::dt [private]

YTimeInterval YDataTimeZone::zone [private]

Объявления и описания членов класса находятся в файле:
  • ytime.h


Pipe Line Filters: Класс YDtTm

Класс YDtTm
[Работа со временем.]

#include <ytime.h>

Полный список членов класса

Открытые статические члены

static int | MonthInYear ()
static bool | IsLeapYear (int _year)
static int | DaysInYear (int _year)
static int32_t | SecondsInYear (int _year)
static int64_t | MicroSecondsInYear (int _year)
static int | DaysInMonth (int _year, int _month)
static int | YearDay (int _year, int _month, int _day)
static int | YearDayMonth (int _year_day, int _year)
static int | YearDayDay (int _year_day, int _year)
static void | BCDdate2date (int _bcd, int &_year, int &_month, int &_day)
static int | BCDdate2date (int _bcd, int &_year_day)
static int | date2BCDdate (int _year, int _month, int _day)
static int | date2BCDdate (int _year, int _year_day)

Подробное описание

month = 1-12 , day_in_month =1-31 ,year - 0 is forbidden

Методы

int YDtTm::MonthInYear ( ) [static]

bool YDtTm::IsLeapYear ( int _year ) [static]

int YDtTm::DaysInYear ( int _year ) [static]

int32_t YDtTm::SecondsInYear ( int _year ) [static]

int64_t YDtTm::MicroSecondsInYear ( int _year ) [static]

int YDtTm::DaysInMonth | ( | int | _year,
 |  | int | _month |
 | ) |  |  | [static]

int YDtTm::YearDay | ( | int | _year,
 |  | int | _month,
 |  | int | _day |
 | ) |  |  | [static]

int YDtTm::YearDayMonth | ( | int | _year_day,
 |  | int | _year |
 | ) |  |  | [static]

int YDtTm::YearDayDay | ( | int | _year_day,
 |  | int | _year |
 | ) |  |  | [static]

void YDtTm::BCDdate2date | ( | int | _bcd,
 |  | int & | _year,
 |  | int & | _month,
 |  | int & | _day |
 | ) |  |  | [static]

int YDtTm::BCDdate2date | ( | int | _bcd,
 |  | int & | _year_day |
 | ) |  |  | [static]

int YDtTm::date2BCDdate | ( | int | _year,
 |  | int | _month,
 |  | int | _day |
 | ) |  |  | [static]

int YDtTm::date2BCDdate | ( | int | _year,
 |  | int | _year_day |
 | ) |  |  | [static]

Объявления и описания членов классов находятся в файлах:
  • ytime.h
  • ytime.cpp


Pipe Line Filters: Класс YFile

Класс YFile
[Работа с файлами.]

Обеспечивает простой доступ до файлов на бинарное чтение/запись. Наиболее ходовые и понятные опции открытия файла. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы. Подробнее...

#include <yfile.h>

Граф наследования:YFile:

[см. легенду]
Полный список членов класса

Открытые типы

enum OpenMode {
UIO_CREATE, UIO_CREATE_OVERWRITE, UIO_RDONLY, UIO_MODIFY,
UIO_UNKNOWN
}

Открытые члены

YFile ()
virtual | ~YFile ()
int | _open (std::string filename, OpenMode access)
int | _open (const char *filename, OpenMode access)
int | _close ()
int | _read (int64_t pos, void *data, int32_t len)
int | _write (int64_t pos, const void *data, int32_t len)
OpenMode | GetMode () const
virtual bool | IsOk () const

Закрытые данные

char | handle [16]
OpenMode mode

Подробное описание

Обеспечивает простой доступ до файлов на бинарное чтение/запись. Наиболее ходовые и понятные опции открытия файла. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы.

class YFile

Перечисления

enum YFile::OpenMode

Элементы перечислений:
UIO_CREATE
UIO_CREATE_OVERWRITE
UIO_RDONLY
UIO_MODIFY
UIO_UNKNOWN

Конструктор(ы)

YFile::YFile ( )

virtual YFile::~YFile ( ) [virtual]

Методы

int YFile::_open | ( | std::string | filename,
 |  | OpenMode | access |
 | ) |  |  | [inline]

int YFile::_open | ( | const char * | filename,
 |  | OpenMode | access
 | ) |  |

int YFile::_close ( )

int YFile::_read | ( | int64_t | pos,
 |  | void * | data,
 |  | int32_t | len
 | ) |  |

int YFile::_write | ( | int64_t | pos,
 |  | const void * | data,
 |  | int32_t | len
 | ) |  |

OpenMode YFile::GetMode ( ) const [inline]

virtual bool YFile::IsOk ( ) const [virtual]

Переопределяется в IFF::PBMfile.

Данные класса

char YFile::handle[16] [private]

OpenMode YFile::mode [private]

Объявления и описания членов класса находятся в файле:
  • yfile.h


Pipe Line Filters: Класс YFileRead

Класс YFileRead
[Работа с файлами.]

Обеспечивает простой доступ до файлов на бинарное чтение. Файл открывается с наиболее ходовые и правильными опциями. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы. Подробнее...

#include <yfile.h>

Граф наследования:YFileRead:

[см. легенду]
Полный список членов класса

Открытые члены

YFileRead (std::string filename)
YFileRead (const char *filename)
virtual | ~YFileRead ()
void | _close ()
void | SetPosition (int64_t offset)
int | read (void *data, int len)
int | read (int64_t offset, void *data, int len)
int64_t | GetFileSize () const
YDataTime | GetTime () const

Закрытые члены

YFileRead (const YFileRead &)
void | constructor (const char *filename)

Закрытые данные

char | handle [16]

Подробное описание

Обеспечивает простой доступ до файлов на бинарное чтение. Файл открывается с наиболее ходовые и правильными опциями. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы.

class YFileRead

Конструктор(ы)

YFileRead::YFileRead ( const YFileRead & ) [private]

YFileRead::YFileRead ( std::string filename ) [inline]

YFileRead::YFileRead ( const char * filename ) [inline]

virtual YFileRead::~YFileRead ( ) [virtual]

Методы

void YFileRead::constructor ( const char * filename ) [private]

void YFileRead::_close ( )

void YFileRead::SetPosition ( int64_t offset )

int YFileRead::read | ( | void * | data,
 |  | int | len
 | ) |  |

int YFileRead::read | ( | int64_t | offset,
 |  | void * | data,
 |  | int | len
 | ) |  |

int64_t YFileRead::GetFileSize ( ) const

YDataTime YFileRead::GetTime ( ) const

Данные класса

char YFileRead::handle[16] [private]

Объявления и описания членов класса находятся в файле:
  • yfile.h


Pipe Line Filters: Класс YFileWrite

Класс YFileWrite
[Работа с файлами.]

Обеспечивает простой доступ до файлов на бинарное чтение. Файл открывается с наиболее ходовые и правильными опциями. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы. Подробнее...

#include <yfile.h>

Граф наследования:YFileWrite:

[см. легенду]
Полный список членов класса

Открытые члены

YFileWrite (std::string filename)
YFileWrite (const char *filename)
virtual | ~YFileWrite ()
void | _close ()
void | SetPosition (int64_t offset)
int64_t GetPosition ()
int | write (const void *data, int len)
int | write (int64_t offset, const void *data, int len)

Закрытые члены

YFileWrite (const YFileWrite &)
void | constructor (const char *filename)

Закрытые данные

char | handle [16]

Подробное описание

Обеспечивает простой доступ до файлов на бинарное чтение. Файл открывается с наиболее ходовые и правильными опциями. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы.

class YFileWrite

Конструктор(ы)

YFileWrite::YFileWrite ( const YFileWrite & ) [private]

YFileWrite::YFileWrite ( std::string filename ) [inline]

YFileWrite::YFileWrite ( const char * filename ) [inline]

virtual YFileWrite::~YFileWrite ( ) [virtual]

Методы

void YFileWrite::constructor ( const char * filename ) [private]

void YFileWrite::_close ( )

void YFileWrite::SetPosition ( int64_t offset )

int64_t YFileWrite::GetPosition ( )

int YFileWrite::write | ( | const void * | data,
 |  | int | len
 | ) |  |

int YFileWrite::write | ( | int64_t | offset,
 |  | const void * | data,
 |  | int | len
 | ) |  |

Данные класса

char YFileWrite::handle[16] [private]

Объявления и описания членов класса находятся в файле:
  • yfile.h


Pipe Line Filters: Класс YImageFrame

Класс YImageFrame
[Handling with images]

#include <aimage.h>

Граф связей класса YImageFrame:

[см. легенду]
Полный список членов класса

Открытые типы

typedef uint16_t | Pixel

Открытые члены

YImageFrame ()
YImageFrame (const AImage *image, int size)
~YImageFrame ()
void | Init (const AImage *image, int size)
const Pixel * | getLeftUp () const
const Pixel * | operator[] (int y) const
int | GetFrameSize () const
int | X () const
int | Y () const
void | SetTo (int x, int y)
int | NumberFastMove () const
int | GetLeftRightBorderWidth () const
void | MoveDown ()
void | MoveDownSlow ()
void | readSlow (int x, int y, Pixel16 *buf) const

Закрытые данные

const AImage * | img
Pixel | buf [IMAGE_MAX_FRAME *(IMAGE_MAX_FRAME+1)]
int | sz
int | x_cent
int | y_cent
int | last_line_offset
int | dx
int | dy
int | dx2
int | dy2
int | height
int | width

Определения типов

typedef uint16_t YImageFrame::Pixel

Конструктор(ы)

YImageFrame::YImageFrame ( ) [inline]

YImageFrame::YImageFrame | ( | const AImage * | image,
 |  | int | size |
 | ) |  |  | [inline]

YImageFrame::~YImageFrame ( ) [inline]

Методы

void YImageFrame::Init | ( | const AImage * | image,
 |  | int | size |
 | ) |  |  | [inline]

const Pixel* YImageFrame::getLeftUp ( ) const [inline]

const Pixel* YImageFrame::operator[] ( int y ) const [inline]

int YImageFrame::GetFrameSize ( ) const [inline]

int YImageFrame::X ( ) const [inline]

int YImageFrame::Y ( ) const [inline]

void YImageFrame::SetTo | ( | int | x,
 |  | int | y |
 | ) |  |  | [inline]

int YImageFrame::NumberFastMove ( ) const [inline]

int YImageFrame::GetLeftRightBorderWidth ( ) const [inline]

void YImageFrame::MoveDown ( ) [inline]

void YImageFrame::MoveDownSlow ( ) [inline]

void YImageFrame::readSlow | ( | int | x,
 |  | int | y,
 |  | Pixel16 * | buf |
 | ) |  |  | const [inline]

Данные класса

const AImage* YImageFrame::img [private]

Pixel YImageFrame::buf[IMAGE_MAX_FRAME *(IMAGE_MAX_FRAME+1)] [private]

int YImageFrame::sz [private]

int YImageFrame::x_cent [private]

int YImageFrame::y_cent [private]

int YImageFrame::last_line_offset [private]

int YImageFrame::dx [private]

int YImageFrame::dy [private]

int YImageFrame::dx2 [private]

int YImageFrame::dy2 [private]

int YImageFrame::height [private]

int YImageFrame::width [private]

Объявления и описания членов класса находятся в файле:
  • aimage.h


Pipe Line Filters: Структура Vtl::ImAlg::C::YIQ

Vtl::ImAlg::C::YIQ

Структура Vtl::ImAlg::C::YIQ

Цветовое пространство YIQ. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

enum | { n_components = 3 }
enum | { is_metric = 0 }
enum | { is_system = sys_chrom }

Открытые статические члены

template<int n>
static const char * | sample_name ()
static std::string | name ()
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 0 >)
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 1 >)
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 2 >)
template<typename T>
static T | rgb (T y, T i, T q, Loki::Int2Type< 0 >)
template<typename T>
static T | rgb (T y, T i, T q, Loki::Int2Type< 1 >)
template<typename T>
static T | rgb (T y, T i, T q, Loki::Int2Type< 2 >)
template<int n, typename T>
static T | sample (T r, T g, T b)
template<int n, typename T>
static T | rgb (T y, T i, T q)
template<int n, typename T>
static T | sample_min (T MaxColor)
template<int n, typename T>
static T | sample_max (T MaxColor)
template<int n, typename T>
static T | sample_maxabs (T MaxColor)
template<typename T>
static T | sample_max_saturation (T MaxColor)
specific for cromatic-like color systems, =sqrt(c1^2+c2^2)
template<int n>
static bool | is_sample_sign_alternating ()
template<int n>
static bool | is_sample_cyclic_var ()
template<typename T>
static T | Y_f (T r, T g, T b)
template<typename T>
static T | I_f (T r, T g, T b)
template<typename T>
static T | Q_f (T r, T g, T b)
template<typename T>
static T | R_f (T y, T i, T q)
template<typename T>
static T | G_f (T y, T i, T q)
template<typename T>
static T | B_f (T y, T i, T q)

Классы

struct | B
Функтор YIQ -> B . Подробнее...
struct | fromRGB
Функтор для PixByPix3to3, преобразование RGB -> YIQ. Подробнее...
struct | G
Функтор YIQ -> G . Подробнее...
struct | I
Функтор YIQ: RGB -> I . Подробнее...
struct | Q
Функтор YIQ: RGB -> Q . Подробнее...
struct | R
Функтор YIQ -> R . Подробнее...
struct | toRGB
Функтор для PixByPix3to3, преобразование YIQ -> RGB. Подробнее...
struct | Y
Функтор YIQ: RGB -> Y . Подробнее...

Подробное описание

Цветовое пространство YIQ.

The YIQ system is the color primary system adopted by National Television System Committee (NTSC) for color TV broadcasting. The YIQ color solid is made by a linear transformation of the RGB cube. Its purpose is to exploit certain characteristics of the human eye to maximize the utilization of a fixed bandwidth. The human visual system is more sensitive to changes in luminance than to changes in hue or saturation, and thus a wider bandwidth should be dedicated to luminance than to color information. Y is similar to perceived luminance, I and Q carry color information and some luminance information. The Y signal usually has 4.2 MHz bandwidth in a 525 line system. Originally, the I and Q had different bandwidths (1.5 and 0.6 MHz), but now they commonly have the same bandwidth of 1 MHz.

    Y = 0.299 * R + 0.587 * G + 0.114 * B
    I = 0.596 * R - 0.275 * G - 0.321 * B
    Q = 0.212 * R - 0.523 * G + 0.311 * B
    ----------------------------------------------
    R = Y + 0.956 * I + 0.621 * Q
    G = Y - 0.272 * I - 0.647 * Q
    B = Y - 1.105 * I + 1.702 * Q

Перечисления

anonymous enum

Элементы перечислений:
n_components

anonymous enum

Элементы перечислений:
is_metric

anonymous enum

Элементы перечислений:
is_system

Методы

template<int n>
static const char* Vtl::ImAlg::C::YIQ::sample_name ( ) [inline, static]

static std::string Vtl::ImAlg::C::YIQ::name ( ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YIQ::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YIQ::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YIQ::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 2 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YIQ::rgb | ( | T | y,
 |  | T | i,
 |  | T | q,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YIQ::rgb | ( | T | y,
 |  | T | i,
 |  | T | q,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YIQ::rgb | ( | T | y,
 |  | T | i,
 |  | T | q,
 |  | Loki::Int2Type< 2 > |  |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YIQ::sample | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YIQ::rgb | ( | T | y,
 |  | T | i,
 |  | T | q |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YIQ::sample_min ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YIQ::sample_max ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YIQ::sample_maxabs ( T MaxColor ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YIQ::sample_max_saturation ( T MaxColor ) [inline, static]

specific for cromatic-like color systems, =sqrt(c1^2+c2^2)

template<int n>
static bool Vtl::ImAlg::C::YIQ::is_sample_sign_alternating ( ) [inline, static]

template<int n>
static bool Vtl::ImAlg::C::YIQ::is_sample_cyclic_var ( ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YIQ::Y_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YIQ::I_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YIQ::Q_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YIQ::R_f | ( | T | y,
 |  | T | i,
 |  | T | q |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YIQ::G_f | ( | T | y,
 |  | T | i,
 |  | T | q |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YIQ::B_f | ( | T | y,
 |  | T | i,
 |  | T | q |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YIQ::B< T >

Vtl::ImAlg::C::YIQ::B

Шаблон структуры Vtl::ImAlg::C::YIQ::B< T >

Функтор YIQ -> B . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YIQ | ColorSystem

Открытые члены

T | operator() (T y, T i, T q) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YIQ::B< T >

Функтор YIQ -> B .

Определения типов

template<typename T>
typedef YIQ Vtl::ImAlg::C::YIQ::B< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YIQ::B< T >::operator() | ( | T | y,
 |  | T | i,
 |  | T | q |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >

Vtl::ImAlg::C::YIQ::fromRGB

Шаблон структуры Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3, преобразование RGB -> YIQ. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YIQ | ColorSystem

Открытые члены

fromRGB (NormType normalizer=Normalizer< T, YIQ, nDefault >(255, 0, 128))
void | operator() (T r, T g, T b, Iter y, Iter i, Iter q) const

Открытые атрибуты

NormType | norm

Подробное описание

template<typename T, class NormType = Normalizer<T,YIQ,nDefault>, typename Iter = T&>
struct Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3, преобразование RGB -> YIQ.

Определения типов

template<typename T, class NormType = Normalizer<T,YIQ,nDefault>, typename Iter = T&>
typedef YIQ Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,YIQ,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >::fromRGB ( NormType normalizer = Normalizer<T,YIQ,nDefault>(255,0,128) ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,YIQ,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Iter | y,
 |  | Iter | i,
 |  | Iter | q |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,YIQ,nDefault>, typename Iter = T&>
NormType Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >::norm

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YIQ::G< T >

Vtl::ImAlg::C::YIQ::G

Шаблон структуры Vtl::ImAlg::C::YIQ::G< T >

Функтор YIQ -> G . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YIQ | ColorSystem

Открытые члены

T | operator() (T y, T i, T q) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YIQ::G< T >

Функтор YIQ -> G .

Определения типов

template<typename T>
typedef YIQ Vtl::ImAlg::C::YIQ::G< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YIQ::G< T >::operator() | ( | T | y,
 |  | T | i,
 |  | T | q |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YIQ::I< T >

Vtl::ImAlg::C::YIQ::I

Шаблон структуры Vtl::ImAlg::C::YIQ::I< T >

Функтор YIQ: RGB -> I . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YIQ | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YIQ::I< T >

Функтор YIQ: RGB -> I .

Определения типов

template<typename T>
typedef YIQ Vtl::ImAlg::C::YIQ::I< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YIQ::I< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YIQ::Q< T >

Vtl::ImAlg::C::YIQ::Q

Шаблон структуры Vtl::ImAlg::C::YIQ::Q< T >

Функтор YIQ: RGB -> Q . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YIQ | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YIQ::Q< T >

Функтор YIQ: RGB -> Q .

Определения типов

template<typename T>
typedef YIQ Vtl::ImAlg::C::YIQ::Q< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YIQ::Q< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YIQ::R< T >

Vtl::ImAlg::C::YIQ::R

Шаблон структуры Vtl::ImAlg::C::YIQ::R< T >

Функтор YIQ -> R . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YIQ | ColorSystem

Открытые члены

T | operator() (T y, T i, T q) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YIQ::R< T >

Функтор YIQ -> R .

Определения типов

template<typename T>
typedef YIQ Vtl::ImAlg::C::YIQ::R< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YIQ::R< T >::operator() | ( | T | y,
 |  | T | i,
 |  | T | q |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >

Vtl::ImAlg::C::YIQ::toRGB

Шаблон структуры Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3, преобразование YIQ -> RGB. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YIQ | ColorSystem

Открытые члены

toRGB (NormType normalizer=Normalizer< T, YIQ, nDefault >(255, 0, 128))
void | operator() (T y, T i, T q, Iter r, Iter g, Iter b) const

Открытые атрибуты

NormType | norm

Подробное описание

template<typename T, class NormType = Normalizer<T,YIQ,nDefault>, typename Iter = T&>
struct Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3, преобразование YIQ -> RGB.

Определения типов

template<typename T, class NormType = Normalizer<T,YIQ,nDefault>, typename Iter = T&>
typedef YIQ Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,YIQ,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >::toRGB ( NormType normalizer = Normalizer<T,YIQ,nDefault>(255,0,128) ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,YIQ,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >::operator() | ( | T | y,
 |  | T | i,
 |  | T | q,
 |  | Iter | r,
 |  | Iter | g,
 |  | Iter | b |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,YIQ,nDefault>, typename Iter = T&>
NormType Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >::norm

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YIQ::Y< T >

Vtl::ImAlg::C::YIQ::Y

Шаблон структуры Vtl::ImAlg::C::YIQ::Y< T >

Функтор YIQ: RGB -> Y . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YIQ | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YIQ::Y< T >

Функтор YIQ: RGB -> Y .

Определения типов

template<typename T>
typedef YIQ Vtl::ImAlg::C::YIQ::Y< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YIQ::Y< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон класса YPoint< T >

Шаблон класса YPoint< T >

#include <ygeometr.h>

Граф наследования:YPoint< T >:

[см. легенду]
Полный список членов класса

Открытые члены

YPoint (T _x=T(0), T _y=T(0))
bool | operator== (const YPoint &p) const
bool | operator!= (const YPoint &p) const
void | operator= (const YPoint &p)
double | distance (const YPoint &to) const
YPoint | nearest (const YPoint &first, const YPoint &second) const

Открытые атрибуты

T | x
T | y

template<class T>
class YPoint< T >

Конструктор(ы)

template<class T>
YPoint< T >::YPoint | ( | T | _x = T(0),
 |  | T | _y = T(0) |
 | ) |  |  | [inline]

Методы

template<class T>
bool YPoint< T >::operator== ( const YPoint< T > & p ) const [inline]

template<class T>
bool YPoint< T >::operator!= ( const YPoint< T > & p ) const [inline]

template<class T>
void YPoint< T >::operator= ( const YPoint< T > & p ) [inline]

template<class T>
double YPoint< T >::distance ( const YPoint< T > & to ) const [inline]

template<class T>
YPoint YPoint< T >::nearest | ( | const YPoint< T > & | first,
 |  | const YPoint< T > & | second |
 | ) |  |  | const [inline]

Данные класса

template<class T>
T YPoint< T >::x

template<class T>
T YPoint< T >::y

Объявления и описания членов класса находятся в файле:
  • ygeometr.h


Pipe Line Filters: Шаблон класса YRect< T >

Шаблон класса YRect< T >

#include <ygeometr.h>

Граф наследования:YRect< T >:

[см. легенду]
Полный список членов класса

Открытые члены

YRect (T l=T(0), T t=T(0), T r=T(0), T b=T(0))
YRect (YPoint< T > top_left, YPoint< T > bottom_right)
bool | operator== (const YRect< T > &r) const
bool | operator!= (const YRect< T > &r) const
bool | isIn (const YPoint< T > &p) const
T & | top ()
T & | bottom ()
T & | left ()
T & | right ()
const T & | top () const
const T & | bottom () const
const T & | left () const
const T & | right () const
T | width () const
T | height () const
bool | intersects (const YRect< T > &rect) const
YRect< T > | intersection (const YRect< T > &rect) const
void | expand (const YPoint< T > &p)
void | expand (const YRect< T > &rect)
void | init (T l, T t, T r, T b)
bool | empty ()

Открытые атрибуты

YPoint< T > | TopLeft
YPoint< T > | BottomRight

template<class T>
class YRect< T >

Конструктор(ы)

template<class T>
YRect< T >::YRect | ( | T | l = T(0),
 |  | T | t = T(0),
 |  | T | r = T(0),
 |  | T | b = T(0) |
 | ) |  |  | [inline]

template<class T>
YRect< T >::YRect | ( | YPoint< T > | top_left,
 |  | YPoint< T > | bottom_right |
 | ) |  |  | [inline]

Методы

template<class T>
bool YRect< T >::operator== ( const YRect< T > & r ) const [inline]

template<class T>
bool YRect< T >::operator!= ( const YRect< T > & r ) const [inline]

template<class T>
bool YRect< T >::isIn ( const YPoint< T > & p ) const [inline]

template<class T>
T& YRect< T >::top ( ) [inline]

template<class T>
T& YRect< T >::bottom ( ) [inline]

template<class T>
T& YRect< T >::left ( ) [inline]

template<class T>
T& YRect< T >::right ( ) [inline]

template<class T>
const T& YRect< T >::top ( ) const [inline]

template<class T>
const T& YRect< T >::bottom ( ) const [inline]

template<class T>
const T& YRect< T >::left ( ) const [inline]

template<class T>
const T& YRect< T >::right ( ) const [inline]

template<class T>
T YRect< T >::width ( ) const [inline]

template<class T>
T YRect< T >::height ( ) const [inline]

template<class T>
bool YRect< T >::intersects ( const YRect< T > & rect ) const [inline]

template<class T>
YRect<T> YRect< T >::intersection ( const YRect< T > & rect ) const [inline]

template<class T>
void YRect< T >::expand ( const YPoint< T > & p ) [inline]

template<class T>
void YRect< T >::expand ( const YRect< T > & rect ) [inline]

template<class T>
void YRect< T >::init | ( | T | l,
 |  | T | t,
 |  | T | r,
 |  | T | b |
 | ) |  |  | [inline]

template<class T>
bool YRect< T >::empty ( ) [inline]

Данные класса

template<class T>
YPoint<T> YRect< T >::TopLeft

template<class T>
YPoint<T> YRect< T >::BottomRight

Объявления и описания членов класса находятся в файле:
  • ygeometr.h


Pipe Line Filters: Класс YSmallAllocLtd

Класс YSmallAllocLtd
[Работа с памятью.]

#include <ymem.h>

Полный список членов класса

Открытые члены

YSmallAllocLtd ()
YSmallAllocLtd (unsigned size_of_object, unsigned maximal_number_of_objects, unsigned max_tail=0)
virtual | ~YSmallAllocLtd ()
void | Init (unsigned size_of_object, unsigned maximal_number_of_objects, unsigned max_tail=0)
void | DeInit ()
void * | malloc ()
void | free (void *ptr)
void | erase_all ()
unsigned | NumberUsed () const
unsigned | NumberFree () const
unsigned | NumberMax () const
unsigned | SizeOfObject () const
bool | IsOk () const

Закрытые типы

typedef uint8_t * | BytePtr

Закрытые члены

void | nullify ()

Закрытые данные

uint8_t * data
uint8_t * f
unsigned | objsz
unsigned | num
unsigned | count
unsigned | memsz

Определения типов

typedef uint8_t* YSmallAllocLtd::BytePtr [private]

Конструктор(ы)

YSmallAllocLtd::YSmallAllocLtd ( )

YSmallAllocLtd::YSmallAllocLtd | ( | unsigned | size_of_object,
 |  | unsigned | maximal_number_of_objects,
 |  | unsigned | max_tail = 0
 | ) |  |

YSmallAllocLtd::~YSmallAllocLtd ( ) [virtual]

Методы

void YSmallAllocLtd::nullify ( ) [private]

void YSmallAllocLtd::Init | ( | unsigned | size_of_object,
 |  | unsigned | maximal_number_of_objects,
 |  | unsigned | max_tail = 0
 | ) |  |

void YSmallAllocLtd::DeInit ( )

void * YSmallAllocLtd::malloc ( )

void YSmallAllocLtd::free ( void * ptr )

void YSmallAllocLtd::erase_all ( )

unsigned YSmallAllocLtd::NumberUsed ( ) const [inline]

unsigned YSmallAllocLtd::NumberFree ( ) const [inline]

unsigned YSmallAllocLtd::NumberMax ( ) const [inline]

unsigned YSmallAllocLtd::SizeOfObject ( ) const [inline]

bool YSmallAllocLtd::IsOk ( ) const [inline]

Данные класса

uint8_t* YSmallAllocLtd::data [private]

uint8_t* YSmallAllocLtd::f [private]

unsigned YSmallAllocLtd::objsz [private]

unsigned YSmallAllocLtd::num [private]

unsigned YSmallAllocLtd::count [private]

unsigned YSmallAllocLtd::memsz [private]

Объявления и описания членов классов находятся в файлах:
  • ymem.h
  • ymem.cpp


Pipe Line Filters: Шаблон класса YTArray< T >

Шаблон класса YTArray< T >
[Работа с памятью.]

#include <ymem.h>

Граф наследования:YTArray< T >:

[см. легенду]
Полный список членов класса

Открытые члены

YTArray (int grow_step=128)
YTArray (const YTArray &ar)
YTArray & | operator= (const YTArray &ar)
virtual | ~YTArray ()
void | SetGrowStep (int grow_step=128)
int | GetGrowStep () const
int | GetBlockSize () const
void | SetSize (int sz)
int | Size () const
T * | Get_Ptr ()
const T * | Get_Ptr () const
virtual T & | operator[] (int i)
virtual const T & | operator[] (int i) const
virtual T & | Insert (const T &elem, int pos)
virtual void | Remove (int pos)
virtual void | SetAll (const T *values, int num)

Защищенные данные

T * | data

Закрытые члены

int | calc_blk_size (int sz) const

Закрытые данные

int | block_size
int | step
int | size

template<class T>
class YTArray< T >

Конструктор(ы)

template<class T>
YTArray< T >::YTArray ( int grow_step = 128 ) [inline]

template<class T>
YTArray< T >::YTArray ( const YTArray< T > & ar ) [inline]

template<class T>
virtual YTArray< T >::~YTArray ( ) [inline, virtual]

Методы

template<class T>
int YTArray< T >::calc_blk_size ( int sz ) const [inline, private]

template<class T>
YTArray& YTArray< T >::operator= ( const YTArray< T > & ar ) [inline]

Переопределяется в YTDynArray< T >.

template<class T>
void YTArray< T >::SetGrowStep ( int grow_step = 128 ) [inline]

template<class T>
int YTArray< T >::GetGrowStep ( ) const [inline]

template<class T>
int YTArray< T >::GetBlockSize ( ) const [inline]

template<class T>
void YTArray< T >::SetSize ( int sz ) [inline]

template<class T>
int YTArray< T >::Size ( ) const [inline]

template<class T>
T* YTArray< T >::Get_Ptr ( ) [inline]

template<class T>
const T* YTArray< T >::Get_Ptr ( ) const [inline]

template<class T>
virtual T& YTArray< T >::operator[] ( int i ) [inline, virtual]

Переопределяется в YTDynArray< T > и YTDynArray< YTHistListTagTHistListTag< T > >.

template<class T>
virtual const T& YTArray< T >::operator[] ( int i ) const [inline, virtual]

Переопределяется в YTDynArray< T > и YTDynArray< YTHistListTagTHistListTag< T > >.

template<class T>
virtual T& YTArray< T >::Insert | ( | const T & | elem,
 |  | int | pos |
 | ) |  |  | [inline, virtual]

Переопределяется в YTDynArray< T > и YTDynArray< YTHistListTagTHistListTag< T > >.

template<class T>
virtual void YTArray< T >::Remove ( int pos ) [inline, virtual]

Переопределяется в YTDynArray< T > и YTDynArray< YTHistListTagTHistListTag< T > >.

template<class T>
virtual void YTArray< T >::SetAll | ( | const T * | values,
 |  | int | num |
 | ) |  |  | [inline, virtual]

Данные класса

template<class T>
int YTArray< T >::block_size [private]

template<class T>
int YTArray< T >::step [private]

template<class T>
int YTArray< T >::size [private]

template<class T>
T* YTArray< T >::data [protected]

Объявления и описания членов класса находятся в файле:
  • ymem.h


Pipe Line Filters: Шаблон класса YTDynArray< T >

Шаблон класса YTDynArray< T >
[Работа с памятью.]

#include <ymem.h>

Граф наследования:YTDynArray< T >:

[см. легенду]
Граф связей класса YTDynArray< T >:

[см. легенду]
Полный список членов класса

Открытые члены

YTDynArray (int grow_step=100)
YTDynArray (const YTDynArray &ar)
virtual | ~YTDynArray ()
YTDynArray & | operator= (const YTArray< T > &ar)
virtual T & | operator[] (int i)
virtual const T & | operator[] (int i) const
virtual T & | Append (const T &elem)
virtual T & | Insert (const T &elem, int pos)
virtual void | Remove (int pos)

template<class T>
class YTDynArray< T >

Конструктор(ы)

template<class T>
YTDynArray< T >::YTDynArray ( int grow_step = 100 ) [inline]

template<class T>
YTDynArray< T >::YTDynArray ( const YTDynArray< T > & ar ) [inline]

template<class T>
virtual YTDynArray< T >::~YTDynArray ( ) [inline, virtual]

Методы

template<class T>
YTDynArray& YTDynArray< T >::operator= ( const YTArray< T > & ar ) [inline]

Переопределяет метод предка YTArray< T >.

template<class T>
virtual T& YTDynArray< T >::operator[] ( int i ) [inline, virtual]

Переопределяет метод предка YTArray< T >.

template<class T>
virtual const T& YTDynArray< T >::operator[] ( int i ) const [inline, virtual]

Переопределяет метод предка YTArray< T >.

template<class T>
virtual T& YTDynArray< T >::Append ( const T & elem ) [inline, virtual]

template<class T>
virtual T& YTDynArray< T >::Insert | ( | const T & | elem,
 |  | int | pos |
 | ) |  |  | [inline, virtual]

Переопределяет метод предка YTArray< T >.

template<class T>
virtual void YTDynArray< T >::Remove ( int pos ) [inline, virtual]

Переопределяет метод предка YTArray< T >.

Объявления и описания членов класса находятся в файле:
  • ymem.h


Pipe Line Filters: Шаблон класса YTHistList< T >

Шаблон класса YTHistList< T >
[Работа с памятью.]

#include <ymem.h>

Полный список членов класса

Открытые типы

typedef YTHistListTag< T > | Tag

Открытые члены

void | Add (const T &val)
int | Count () const
void | Sort ()
Tag & | operator[] (int i)

Открытые атрибуты

YTDynArray< Tag > array

template<class T>
class YTHistList< T >

Определения типов

template<class T>
typedef YTHistListTag<T> YTHistList< T >::Tag

Методы

template<class T>
int YTHistList< T >::Count ( ) const [inline]

template<class T>
void YTHistList< T >::Sort ( ) [inline]

template<class T>
Tag& YTHistList< T >::operator[] ( int i ) [inline]

Данные класса

template<class T>
YTDynArray<Tag> YTHistList< T >::array

Объявления и описания членов класса находятся в файле:
  • ymem.h


Pipe Line Filters: Шаблон класса YTHistListTag< T >

Шаблон класса YTHistListTag< T >
[Работа с памятью.]

#include <ymem.h>

Полный список членов класса

Открытые члены

YTHistListTag ()
virtual | ~YTHistListTag ()
bool | operator== (const YTHistListTag &t2) const
bool | operator< (const YTHistListTag &t2) const

Открытые атрибуты

unsigned | count
T | value

template<class T>
class YTHistListTag< T >

Конструктор(ы)

template<class T>
YTHistListTag< T >::YTHistListTag ( ) [inline]

template<class T>
virtual YTHistListTag< T >::~YTHistListTag ( ) [inline, virtual]

Методы

template<class T>
bool YTHistListTag< T >::operator== ( const YTHistListTag< T > & t2 ) const [inline]

template<class T>
bool YTHistListTag< T >::operator< ( const YTHistListTag< T > & t2 ) const [inline]

Данные класса

template<class T>
unsigned YTHistListTag< T >::count

template<class T>
T YTHistListTag< T >::value

Объявления и описания членов класса находятся в файле:
  • ymem.h


Pipe Line Filters: Класс YTimeInterval

Класс YTimeInterval
[Работа со временем.]

#include <ytime.h>

Полный список членов класса

Открытые члены

YTimeInterval ()
YTimeInterval (int32_t mks)
YTimeInterval (int64_t mks)
YTimeInterval (int days, int hour, int minutes, double seconds)
YTimeInterval & | Set (int32_t mks)
YTimeInterval & | Set (int64_t mks)
YTimeInterval & | Set (int days, int hour, int minutes, double seconds)
const YTimeInterval & | Get (int &days, int &hour, int &minutes, double &seconds) const
void | Get (double &seconds) const
YTimeInterval | operator- () const
YTimeInterval & | operator= (const YTimeInterval &val)
YTimeInterval & | operator+= (const YTimeInterval &val)
YTimeInterval & | operator-= (const YTimeInterval &val)
YTimeInterval & | operator *= (const YTimeInterval &val)
YTimeInterval & | operator/= (const YTimeInterval &val)
YTimeInterval | operator+ (const YTimeInterval &val) const
YTimeInterval | operator- (const YTimeInterval &val) const
YTimeInterval | operator * (const YTimeInterval &val) const
YTimeInterval | operator/ (const YTimeInterval &val) const
bool | operator< (const YTimeInterval &ti) const
bool | operator> (const YTimeInterval &ti) const
bool | operator<= (const YTimeInterval &ti) const
bool | operator>= (const YTimeInterval &ti) const
bool | operator== (const YTimeInterval &ti) const
bool | operator!= (const YTimeInterval &ti) const

Закрытые данные

int64_t microsec

Друзья

class | YDataTime

Подробное описание

Примеры:

test_yxml_ini.cpp и test_yxml_learn.cpp.

Конструктор(ы)

YTimeInterval::YTimeInterval ( ) [inline]

YTimeInterval::YTimeInterval ( int32_t mks ) [inline]

YTimeInterval::YTimeInterval ( int64_t mks ) [inline]

YTimeInterval::YTimeInterval | ( | int | days,
 |  | int | hour,
 |  | int | minutes,
 |  | double | seconds |
 | ) |  |  | [inline]

Методы

YTimeInterval& YTimeInterval::Set ( int32_t mks ) [inline]

Примеры:
test_yxml_ini.cpp.

YTimeInterval& YTimeInterval::Set ( int64_t mks ) [inline]

YTimeInterval & YTimeInterval::Set | ( | int | days,
 |  | int | hour,
 |  | int | minutes,
 |  | double | seconds
 | ) |  |

const YTimeInterval & YTimeInterval::Get | ( | int & | days,
 |  | int & | hour,
 |  | int & | minutes,
 |  | double & | seconds |
 | ) |  |  | const

void YTimeInterval::Get ( double & seconds ) const

YTimeInterval YTimeInterval::operator- ( ) const [inline]

YTimeInterval& YTimeInterval::operator= ( const YTimeInterval & val ) [inline]

YTimeInterval& YTimeInterval::operator+= ( const YTimeInterval & val ) [inline]

YTimeInterval& YTimeInterval::operator-= ( const YTimeInterval & val ) [inline]

YTimeInterval& YTimeInterval::operator *= ( const YTimeInterval & val ) [inline]

YTimeInterval& YTimeInterval::operator/= ( const YTimeInterval & val ) [inline]

YTimeInterval YTimeInterval::operator+ ( const YTimeInterval & val ) const [inline]

YTimeInterval YTimeInterval::operator- ( const YTimeInterval & val ) const [inline]

YTimeInterval YTimeInterval::operator * ( const YTimeInterval & val ) const [inline]

YTimeInterval YTimeInterval::operator/ ( const YTimeInterval & val ) const [inline]

bool YTimeInterval::operator< ( const YTimeInterval & ti ) const [inline]

bool YTimeInterval::operator> ( const YTimeInterval & ti ) const [inline]

bool YTimeInterval::operator<= ( const YTimeInterval & ti ) const [inline]

bool YTimeInterval::operator>= ( const YTimeInterval & ti ) const [inline]

bool YTimeInterval::operator== ( const YTimeInterval & ti ) const [inline]

bool YTimeInterval::operator!= ( const YTimeInterval & ti ) const [inline]

Документация по друзьям класса и функциям, отноносящимся к классу

friend class YDataTime [friend]

Данные класса

int64_t YTimeInterval::microsec [private]

Объявления и описания членов классов находятся в файлах:
  • ytime.h
  • ytime.cpp


Pipe Line Filters: Структура Vtl::ImAlg::C::YUV

Vtl::ImAlg::C::YUV

Структура Vtl::ImAlg::C::YUV

Цветовое пространство YUV. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

enum | { n_components = 3 }
enum | { is_metric = 0 }
enum | { is_system = sys_chrom }

Открытые статические члены

template<int n>
static const char * | sample_name ()
static std::string | name ()
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 0 >)
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 1 >)
template<typename T>
static T | sample (T r, T g, T b, Loki::Int2Type< 2 >)
template<typename T>
static T | rgb (T y, T u, T v, Loki::Int2Type< 0 >)
template<typename T>
static T | rgb (T y, T u, T v, Loki::Int2Type< 1 >)
template<typename T>
static T | rgb (T y, T u, T v, Loki::Int2Type< 2 >)
template<int n, typename T>
static T | sample (T r, T g, T b)
template<int n, typename T>
static T | rgb (T y, T u, T v)
template<int n, typename T>
static T | sample_min (T MaxColor)
template<int n, typename T>
static T | sample_max (T MaxColor)
template<int n, typename T>
static T | sample_maxabs (T MaxColor)
template<typename T>
static T | sample_max_saturation (T MaxColor)
specific for cromatic-like color systems
template<int n>
static bool | is_sample_sign_alternating ()
template<int n>
static bool | is_sample_cyclic_var ()
template<typename T>
static T | Y_f (T r, T g, T b)
template<typename T>
static T | U_f (T r, T g, T b)
template<typename T>
static T | V_f (T r, T g, T b)
template<typename T>
static T | R_f (T y, T u, T v)
template<typename T>
static T | G_f (T y, T u, T v)
template<typename T>
static T | B_f (T y, T u, T v)

Классы

struct | B
Функтор YUV -> B . Подробнее...
struct | fromRGB
Функтор для PixByPix3to3, преобразование RGB -> YUV. Подробнее...
struct | G
Функтор YUV -> G . Подробнее...
struct | R
Функтор YUV -> R . Подробнее...
struct | toRGB
Функтор для PixByPix3to3, преобразование YUV -> RGB. Подробнее...
struct | U
Функтор YUV: RGB -> U . Подробнее...
struct | V
Функтор YUV: RGB -> V . Подробнее...
struct | Y
Функтор YUV: RGB -> Y . Подробнее...

Подробное описание

Цветовое пространство YUV.

    Y =   0.299 * R + 0.587 * G + 0.114 * B
    U = - 0.147 * R - 0.289 * G + 0.437 * B
    V =   0.615 * R - 0.515 * G - 0.100 * B
    ----------------------------------------------
    R = Y + 0.000 * U + 1.140 * V
    G = Y - 0.396 * U - 0.581 * V
    B = Y + 2.029 * U + 0.000 * V

Перечисления

anonymous enum

Элементы перечислений:
n_components

anonymous enum

Элементы перечислений:
is_metric

anonymous enum

Элементы перечислений:
is_system

Методы

template<int n>
static const char* Vtl::ImAlg::C::YUV::sample_name ( ) [inline, static]

static std::string Vtl::ImAlg::C::YUV::name ( ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YUV::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YUV::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YUV::sample | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Loki::Int2Type< 2 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YUV::rgb | ( | T | y,
 |  | T | u,
 |  | T | v,
 |  | Loki::Int2Type< 0 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YUV::rgb | ( | T | y,
 |  | T | u,
 |  | T | v,
 |  | Loki::Int2Type< 1 > |  |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YUV::rgb | ( | T | y,
 |  | T | u,
 |  | T | v,
 |  | Loki::Int2Type< 2 > |  |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YUV::sample | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YUV::rgb | ( | T | y,
 |  | T | u,
 |  | T | v |
 | ) |  |  | [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YUV::sample_min ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YUV::sample_max ( T MaxColor ) [inline, static]

template<int n, typename T>
static T Vtl::ImAlg::C::YUV::sample_maxabs ( T MaxColor ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YUV::sample_max_saturation ( T MaxColor ) [inline, static]

specific for cromatic-like color systems

template<int n>
static bool Vtl::ImAlg::C::YUV::is_sample_sign_alternating ( ) [inline, static]

template<int n>
static bool Vtl::ImAlg::C::YUV::is_sample_cyclic_var ( ) [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YUV::Y_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YUV::U_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YUV::V_f | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YUV::R_f | ( | T | y,
 |  | T | u,
 |  | T | v |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YUV::G_f | ( | T | y,
 |  | T | u,
 |  | T | v |
 | ) |  |  | [inline, static]

template<typename T>
static T Vtl::ImAlg::C::YUV::B_f | ( | T | y,
 |  | T | u,
 |  | T | v |
 | ) |  |  | [inline, static]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YUV::B< T >

Vtl::ImAlg::C::YUV::B

Шаблон структуры Vtl::ImAlg::C::YUV::B< T >

Функтор YUV -> B . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YUV | ColorSystem

Открытые члены

T | operator() (T y, T u, T v) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YUV::B< T >

Функтор YUV -> B .

Определения типов

template<typename T>
typedef YUV Vtl::ImAlg::C::YUV::B< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YUV::B< T >::operator() | ( | T | y,
 |  | T | u,
 |  | T | v |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >

Vtl::ImAlg::C::YUV::fromRGB

Шаблон структуры Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3, преобразование RGB -> YUV. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YUV | ColorSystem

Открытые члены

fromRGB (NormType normalizer=Normalizer< T, YUV, nDefault >(255, 0, 128))
void | operator() (T r, T g, T b, Iter y, Iter u, Iter v) const

Открытые атрибуты

NormType | norm

Подробное описание

template<typename T, class NormType = Normalizer<T,YUV,nDefault>, typename Iter = T&>
struct Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >

Функтор для PixByPix3to3, преобразование RGB -> YUV.

Определения типов

template<typename T, class NormType = Normalizer<T,YUV,nDefault>, typename Iter = T&>
typedef YUV Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,YUV,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >::fromRGB ( NormType normalizer = Normalizer<T,YUV,nDefault>(255,0,128) ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,YUV,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b,
 |  | Iter | y,
 |  | Iter | u,
 |  | Iter | v |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,YUV,nDefault>, typename Iter = T&>
NormType Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >::norm

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YUV::G< T >

Vtl::ImAlg::C::YUV::G

Шаблон структуры Vtl::ImAlg::C::YUV::G< T >

Функтор YUV -> G . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YUV | ColorSystem

Открытые члены

T | operator() (T y, T u, T v) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YUV::G< T >

Функтор YUV -> G .

Определения типов

template<typename T>
typedef YUV Vtl::ImAlg::C::YUV::G< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YUV::G< T >::operator() | ( | T | y,
 |  | T | u,
 |  | T | v |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YUV::R< T >

Vtl::ImAlg::C::YUV::R

Шаблон структуры Vtl::ImAlg::C::YUV::R< T >

Функтор YUV -> R . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YUV | ColorSystem

Открытые члены

T | operator() (T y, T u, T v) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YUV::R< T >

Функтор YUV -> R .

Определения типов

template<typename T>
typedef YUV Vtl::ImAlg::C::YUV::R< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YUV::R< T >::operator() | ( | T | y,
 |  | T | u,
 |  | T | v |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >

Vtl::ImAlg::C::YUV::toRGB

Шаблон структуры Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3, преобразование YUV -> RGB. Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YUV | ColorSystem

Открытые члены

toRGB (NormType normalizer=Normalizer< T, YUV, nDefault >(255, 0, 128))
void | operator() (T y, T u, T v, Iter r, Iter g, Iter b) const

Открытые атрибуты

NormType | norm

Подробное описание

template<typename T, class NormType = Normalizer<T,YUV,nDefault>, typename Iter = T&>
struct Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >

Функтор для PixByPix3to3, преобразование YUV -> RGB.

Определения типов

template<typename T, class NormType = Normalizer<T,YUV,nDefault>, typename Iter = T&>
typedef YUV Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >::ColorSystem

Конструктор(ы)

template<typename T, class NormType = Normalizer<T,YUV,nDefault>, typename Iter = T&>
Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >::toRGB ( NormType normalizer = Normalizer<T,YUV,nDefault>(255,0,128) ) [inline]

Методы

template<typename T, class NormType = Normalizer<T,YUV,nDefault>, typename Iter = T&>
void Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >::operator() | ( | T | y,
 |  | T | u,
 |  | T | v,
 |  | Iter | r,
 |  | Iter | g,
 |  | Iter | b |
 | ) |  |  | const [inline]

Данные класса

template<typename T, class NormType = Normalizer<T,YUV,nDefault>, typename Iter = T&>
NormType Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >::norm

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YUV::U< T >

Vtl::ImAlg::C::YUV::U

Шаблон структуры Vtl::ImAlg::C::YUV::U< T >

Функтор YUV: RGB -> U . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YUV | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YUV::U< T >

Функтор YUV: RGB -> U .

Определения типов

template<typename T>
typedef YUV Vtl::ImAlg::C::YUV::U< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YUV::U< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YUV::V< T >

Vtl::ImAlg::C::YUV::V

Шаблон структуры Vtl::ImAlg::C::YUV::V< T >

Функтор YUV: RGB -> V . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YUV | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YUV::V< T >

Функтор YUV: RGB -> V .

Определения типов

template<typename T>
typedef YUV Vtl::ImAlg::C::YUV::V< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YUV::V< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон структуры Vtl::ImAlg::C::YUV::Y< T >

Vtl::ImAlg::C::YUV::Y

Шаблон структуры Vtl::ImAlg::C::YUV::Y< T >

Функтор YUV: RGB -> Y . Подробнее...

#include <color_spaces.h>

Полный список членов класса

Открытые типы

typedef YUV | ColorSystem

Открытые члены

T | operator() (T r, T g, T b) const

Подробное описание

template<typename T>
struct Vtl::ImAlg::C::YUV::Y< T >

Функтор YUV: RGB -> Y .

Определения типов

template<typename T>
typedef YUV Vtl::ImAlg::C::YUV::Y< T >::ColorSystem

Методы

template<typename T>
T Vtl::ImAlg::C::YUV::Y< T >::operator() | ( | T | r,
 |  | T | g,
 |  | T | b |
 | ) |  |  | const [inline]

Объявления и описания членов структуры находятся в файле:
  • color_spaces.h


Pipe Line Filters: Шаблон класса Hanina::ZeroCross< T >

Hanina::ZeroCross

Шаблон класса Hanina::ZeroCross< T >

#include <ss_ridge_functors_2.h>

Полный список членов класса

Открытые члены

void | set_IterNextLineShift (int modul_nls)
Vtl::Plf::Extent | ext () const
ZeroCross (T threshold=0)
T | operator() (const T *value)

Закрытые статические члены

static void | check (T value, int &pos, int &neg)

Закрытые данные

T | thr
int | nls
int | pos
int | neg

template<typename T>
class Hanina::ZeroCross< T >

Конструктор(ы)

template<typename T>
Hanina::ZeroCross< T >::ZeroCross ( T threshold = 0 ) [inline]

Методы

template<typename T>
void Hanina::ZeroCross< T >::set_IterNextLineShift ( int modul_nls ) [inline]

!!! MUST be called by filter BEFORE using 'operator()', by default next line shist parameter set to value which probably most quick lead a 'Invalid memory access' error (for bug search convenience).

template<typename T>
Vtl::Plf::Extent Hanina::ZeroCross< T >::ext ( ) const [inline]

template<typename T>
T Hanina::ZeroCross< T >::operator() ( const T * value ) [inline]

template<typename T>
static void Hanina::ZeroCross< T >::check | ( | T | value,
 |  | int & | pos,
 |  | int & | neg |
 | ) |  |  | [inline, static, private]

Данные класса

template<typename T>
T Hanina::ZeroCross< T >::thr [private]

template<typename T>
int Hanina::ZeroCross< T >::nls [private]

template<typename T>
int Hanina::ZeroCross< T >::pos [private]

template<typename T>
int Hanina::ZeroCross< T >::neg [private]

Объявления и описания членов класса находятся в файле:
  • ss_ridge_functors_2.h


Pipe Line Filters: Шаблон класса Hanina::ZeroCrossVisualization< T >

Hanina::ZeroCrossVisualization

Шаблон класса Hanina::ZeroCrossVisualization< T >

#include <ss_ridge_functors_2.h>

Полный список членов класса

Открытые члены

ZeroCrossVisualization (T max_value=255, T slope=1)
T | operator() (T val) const

Закрытые данные

T | maxval
T | k

template<typename T>
class Hanina::ZeroCrossVisualization< T >

Конструктор(ы)

template<typename T>
Hanina::ZeroCrossVisualization< T >::ZeroCrossVisualization | ( | T | max_value = 255,
 |  | T | slope = 1 |
 | ) |  |  | [inline]

Методы

template<typename T>
T Hanina::ZeroCrossVisualization< T >::operator() ( T val ) const [inline]

Данные класса

template<typename T>
T Hanina::ZeroCrossVisualization< T >::maxval [private]

template<typename T>
T Hanina::ZeroCrossVisualization< T >::k [private]

Объявления и описания членов класса находятся в файле:
  • ss_ridge_functors_2.h


Pipe Line Filters: Класс ZoomFactor

Класс ZoomFactor

#include <zoomfact.h>

Полный список членов класса

Открытые члены

ZoomFactor (int _zoom=1)
~ZoomFactor ()
int | ZoomValue (int value, bool reverse=false) const
int | ZoomValueNR (int value, bool reverse=false) const
ZoomFactor & | operator= (int _zoom)
ZoomFactor & | operator+= (int dx)
ZoomFactor & | operator-= (int dx)
operator int () const

Закрытые статические члены

static int | _ZoomValue (int value, int zm)
static int | _ZoomValueNR (int value, int zm)

Закрытые данные

int | zoom

Конструктор(ы)

ZoomFactor::ZoomFactor ( int _zoom = 1 ) [inline]

ZoomFactor::~ZoomFactor ( ) [inline]

Методы

int ZoomFactor::ZoomValue | ( | int | value,
 |  | bool | reverse = false |
 | ) |  |  | const [inline]

int ZoomFactor::ZoomValueNR | ( | int | value,
 |  | bool | reverse = false |
 | ) |  |  | const [inline]

ZoomFactor& ZoomFactor::operator= ( int _zoom ) [inline]

ZoomFactor& ZoomFactor::operator+= ( int dx ) [inline]

ZoomFactor& ZoomFactor::operator-= ( int dx ) [inline]

ZoomFactor::operator int ( ) const [inline]

static int ZoomFactor::_ZoomValue | ( | int | value,
 |  | int | zm |
 | ) |  |  | [inline, static, private]

static int ZoomFactor::_ZoomValueNR | ( | int | value,
 |  | int | zm |
 | ) |  |  | [inline, static, private]

Данные класса

int ZoomFactor::zoom [private]

Объявления и описания членов класса находятся в файле:
  • zoomfact.h


Pipe Line Filters: Класс ZoomFactor2D

Класс ZoomFactor2D

#include <zoomfact.h>

Граф связей класса ZoomFactor2D:

[см. легенду]
Полный список членов класса

Открытые члены

ZoomFactor2D (int zoom_x=1, int zoom_y=1)
ZoomFactor2D (const SIZE &zoom)
SIZE | ZoomValue (const SIZE &val, bool reverse=false) const
POINT | ZoomValue (const POINT &val, bool reverse=false) const
SIZE | ZoomValueNR (const SIZE &val, bool reverse=false) const
bool | operator== (const ZoomFactor2D &z2) const
bool | operator!= (const ZoomFactor2D &z2) const
bool | operator== (int z2) const
bool | operator!= (int z2) const
ZoomFactor2D & | operator= (int _zoom)
ZoomFactor2D & | operator= (const ZoomFactor2D &_zoom)

Открытые атрибуты

ZoomFactor X
ZoomFactor Y

Конструктор(ы)

ZoomFactor2D::ZoomFactor2D | ( | int | zoom_x = 1,
 |  | int | zoom_y = 1 |
 | ) |  |  | [inline]

ZoomFactor2D::ZoomFactor2D ( const SIZE & zoom ) [inline]

Методы

SIZE ZoomFactor2D::ZoomValue | ( | const SIZE & | val,
 |  | bool | reverse = false |
 | ) |  |  | const [inline]

POINT ZoomFactor2D::ZoomValue | ( | const POINT & | val,
 |  | bool | reverse = false |
 | ) |  |  | const [inline]

SIZE ZoomFactor2D::ZoomValueNR | ( | const SIZE & | val,
 |  | bool | reverse = false |
 | ) |  |  | const [inline]

bool ZoomFactor2D::operator== ( const ZoomFactor2D & z2 ) const [inline]

bool ZoomFactor2D::operator!= ( const ZoomFactor2D & z2 ) const [inline]

bool ZoomFactor2D::operator== ( int z2 ) const [inline]

bool ZoomFactor2D::operator!= ( int z2 ) const [inline]

ZoomFactor2D& ZoomFactor2D::operator= ( int _zoom ) [inline]

ZoomFactor2D& ZoomFactor2D::operator= ( const ZoomFactor2D & _zoom ) [inline]

Данные класса

ZoomFactor ZoomFactor2D::X

ZoomFactor ZoomFactor2D::Y

Объявления и описания членов класса находятся в файле:
  • zoomfact.h


Pipe Line Filters: Иерархический список классов

Pipe Line Filters Иерархия классов

см. графический вид.

Иерархия классов.

  • Vtl::Plf::F11::Abs< T >
  • Vtl::Plf::F21::AbsDif< T >
  • Basics3D::AbsoluteDualQuadric
  • AErrorStatusBase
    • ErrorStatusBase
      • AImage::Error
      • ImageMem16Stuff::Error
  • Vtl::ImAlg::Transf::Affine< T >
  • AImage
    • AImageMem16
      • ImageMem16
      • ImageMem16Stuff
      • tplAImageReference< AImageMem16 >
        • tplAImageFragment< AImageMem16 >
          • ImageFragment16
    • AImageMem8
      • ImageMem8
      • tplAImageReference< AImageMem8 >
        • tplAImageFragment< AImageMem8 >
          • ImageFragment8
    • AImageMemFloat
      • ImageMemFloat
    • AImageMemRgb16
    • AImageMemRgb8
      • ImageMemRgb8
      • tplAImageReference< AImageMemRgb8 >
        • tplAImageFragment< AImageMemRgb8 >
          • ImageFragmentRgb8
  • AImage::Bgr
  • AImage::Info
  • AImage::Rgb
  • AImageProxy
    • ImageProxy< ImageT >
    • ImageProxyConst< ImageT >
  • Vtl::Meta::Align< T, sz, align_to >
  • Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >
  • Vtl::Meta::Align< T, sz, align_to >::Align_< 0, size >
  • Vtl::Types::TL::Append
  • Vtl::Types::TL::AppendIf< TList, U, append >
  • Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, ndim >
  • Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, 0 >
  • ATransformFunction
  • Vtl::ImAlg::WndFun::Bartlett< T, D >
  • Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
    • Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
    • Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >
  • Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >
  • Vtl::ImAlg::Model::Base< T >
    • Vtl::ImAlg::Model::BaseAffine< T >
      • Vtl::ImAlg::Model::Affine< T >
      • Vtl::ImAlg::Model::Similarity< T >
      • Vtl::ImAlg::Model::SkewXOffset< T >
      • Vtl::ImAlg::Model::SkewYOffset< T >
    • Vtl::ImAlg::Model::Homography< T >
    • Vtl::ImAlg::Model::Offset< T >
  • Vtl::ImAlg::Registration::Base< Real_t, 3 >
    • Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >
  • Vtl::ImAlg::Registration::Base< Real_t, 5 >
    • Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • Vtl::ImAlg::Registration::Base< Real_t, 6 >
    • Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >
  • std::basic_string< char >
    • std::string
      • DataString
  • Vtl::NumAlg::Spf::bess
  • Vtl::Plf::F11::Bias< T >
  • Vtl::Plf::Fpie::BiLateralSmooth< T >
  • Vtl::Meta::BitsIn< n >
  • Vtl::Meta::BitsIn< 0 >
  • IFF::BMP_BitMapFileHeader
  • IFF::BMP_BitMapInfoHeader
  • Loki::Bool2Type< v >
  • Vtl::ImAlg::Conv::Impl::Buffer< T, K >
  • Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >
  • Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >
  • Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >
  • Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 >
  • Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I >
  • Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >
  • Vtl::ImAlg::Registration::Impl::OFlow::BuildG< n >
  • Vtl::ImAlg::Registration::Impl::OFlow::BuildG< 0 >
  • Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >
  • Vtl::Img::BuildIter1DList< T_Layout >
  • Vtl::Img::BuildIter1DList< T_Layout >::build< i >
  • Vtl::Img::BuildIter1DList< T_Layout >::build< ND >
  • Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, i >
  • Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, 1 >
  • Basics3D::C_AbsDifference
  • Basics3D::C_AutoCalibration
  • Basics3D::C_Combination
  • Basics3D::C_DrawEpipolarLines
  • Basics3D::C_Epipole
  • Basics3D::C_FundamentalMatrix
  • Basics3D::C_HomographyMatrix
  • Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, m >
  • Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, n >
  • Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n,-1 >
  • Basics3D::C_Point2D
    • Basics3D::C_Point2DParam
  • Basics3D::C_Points2DParamSet
  • Basics3D::C_ProjectiveMatrix
  • Basics3D::C_StructureComputation
  • Basics3D::C_Transform
  • Basics3D::C_TransformMatrices
  • Basics3D::C_Triangulation
  • Basics3D::Structure::CameraPos< T >
  • Basics3D::Fm2Essential::CameraPoseFromEssential< T >
  • Vtl::Plf::Fpie::CannyNMS< T >
  • Vtl::Plf::Fpie::CannyNMS_2< T >
  • Hanina::Check_4_grad_sign_change< T >
  • childPipe
  • Vtl::NumAlg::Lin::cholesky
  • Vtl::ImAlg::Bres::Circle< T >
  • Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T >
  • Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >
  • Cluster1D< T, DatumType >
  • Cluster2D< T, DatumType >
  • Vtl::Plf::ColumnIteratorFast< T >
  • Vtl::Plf::F11::Comb< T, F1, F2 >
  • Hanina::Comb_ridge< T1, T2 >
  • Vtl::ImAlg::WndFun::common_Trig< T, D, K >
  • Basics3D::Structure::Comp3D< T >
  • Vtl::Img::complex_type< double >
  • Vtl::Img::complex_type< float >
  • Vtl::Meta::IL::ConCat< Head, IndexList< i, Tail > >
  • Vtl::Meta::IL::ConCat< Head, Loki::NullType >
  • Vtl::ImAlg::Registration::Container< Real_t >
  • Vtl::ImAlg::Registration::Container< Real_t >::Point
  • Vtl::ImAlg::Conv::Conv< T, K >
    • Vtl::ImAlg::Conv::ConvInplace< T, K >
  • Vtl::ImAlg::Conv::Conv2D
  • Vtl::Types::Conversion< T, U >
  • Vtl::Plf::F11::Convert< T >
  • Vtl::Plf::F11::Convert2ByteBounded
  • Vtl::Plf::F11::ConvertMult< T >
  • CoordArray2D
  • Vtl::Plf::F23::CorrMatrix< T, Iter >
  • Vtl::Plf::F23::CorrMatrixAdd< T, Iter >
  • Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I >
    • Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I >
    • Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, 1 >
  • Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, K >
    • Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K >
  • Vtl::Meta::IL::Count< v, IndexList< i, Tail > >
  • Vtl::Meta::IL::Count< v, Loki::NullType >
  • CoverageMatrix
  • Vtl::ImAlg::Conv::CyclicConv< T, K >
  • Vtl::ImAlg::Conv::CyclicConvInplace< T, K >
  • Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
    • Vtl::Img::DataType< ST_c32f >
    • Vtl::Img::DataType< ST_c64f >
    • Vtl::Img::DataType< ST_f32 >
    • Vtl::Img::DataType< ST_f64 >
    • Vtl::Img::DataType< ST_s16 >
    • Vtl::Img::DataType< ST_s32 >
    • Vtl::Img::DataType< ST_s64 >
    • Vtl::Img::DataType< ST_s8 >
    • Vtl::Img::DataType< ST_u16 >
    • Vtl::Img::DataType< ST_u32 >
    • Vtl::Img::DataType< ST_u64 >
    • Vtl::Img::DataType< ST_u8 >
  • Vtl::Img::Impl::DataType< __int64, ST_s64, true, false, false >
  • Vtl::Img::Impl::DataType< double, ST_f64, true, true, false >
  • Vtl::Img::Impl::DataType< float, ST_f32, true, true, false >
  • Vtl::Img::Impl::DataType< int, ST_s32, true, false, false >
  • Vtl::Img::Impl::DataType< short, ST_s16, true, false, false >
  • Vtl::Img::Impl::DataType< signed char, ST_s8, true, false, false >
  • Vtl::Img::Impl::DataType< unsigned __int64, ST_u64, false, false, false >
  • Vtl::Img::Impl::DataType< unsigned char, ST_u8, false, false, false >
  • Vtl::Img::Impl::DataType< unsigned int, ST_u32, false, false, false >
  • Vtl::Img::Impl::DataType< unsigned short, ST_u16, false, false, false >
  • Vtl::Img::Impl::DataType< Vtl::Img::complex_type< double >, ST_c64f, true, true, true >
  • Vtl::Img::Impl::DataType< Vtl::Img::complex_type< float >, ST_c32f, true, true, true >
  • Vtl::Img::DataTypeId< T >
  • Vtl::Img::DataTypeId< T >::Comp< T1, T2 >
  • Vtl::Img::DataTypeList2TypeList< T >
  • Vtl::Img::DataTypeList2TypeList< Types::Typelist< T1, T2 > >
  • DatumR< T >
  • DatumXY< T >
  • Vtl::Meta::IL::Debug< IndexList< i, Loki::NullType > >
  • Vtl::Meta::IL::Debug< IndexList< i, Tail > >
  • Vtl::Meta::IL::Debug< Loki::NullType >
  • DebugBase
    • DebugToFile
  • Vtl::Plf::Impl::DelayAdjuster
  • Vtl::Plf::F31::DeNoise< T >
  • Vtl::Meta::det< Matrix >
  • Vtl::Meta::det_poly_coef< Matrix, N >
  • Vtl::Meta::Impl::determinant< N, Il1, Il2, j >
  • Vtl::Meta::Impl::determinant< 1, Il1, Il2, 0 >
  • Vtl::Meta::Impl::determinant< N, Il1, Il2, N >
  • Vtl::Plf::F21::Dif< T >
  • Vtl::Plf::F31::DiffEigenVal< T >
  • Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • Vtl::Plf::F21::Disp< T >
  • DistributionMatrix
  • Vtl::Plf::F33::DiZenzo< T, Iter >
  • DllModule
  • Basics3D::Structure::Dlt< T >
  • DMatrixElem
  • YXML::DNode
  • YXML::DNode::AttrRef
  • YXML::DNode::Is
    • YXML::DNode::IsAND
    • YXML::DNode::IsCond
    • YXML::DNode::IsOR
    • YXML::IsAttr< T, Cmp >
    • YXML::IsAttrIn< T >
    • YXML::IsElem
      • YXML::IsName< Cmp >
  • Vtl::ImAlg::WndFun::DoG< T, D >
  • Vtl::Plf::F11::DoNothing< T >
  • Vtl::ImAlg::Bres::Draw< Pixel >
  • Vtl::ImAlg::Bres::DrawDotted< Pixel >
  • Vtl::ImAlg::Bres::DrawGradient< Pixel >
  • Vtl::Plf::Impl::Edge
  • Students::Curve::EdgeDetect< T >
  • Vtl::ImAlg::Edt::EdtEdgeCoord
  • Vtl::ImAlg::C::EElEll
  • Vtl::ImAlg::C::EElEll::B< T >
  • Vtl::ImAlg::C::EElEll::E< T >
  • Vtl::ImAlg::C::EElEll::El< T >
  • Vtl::ImAlg::C::EElEll::Ell< T >
  • Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >
  • Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter >
  • Vtl::ImAlg::C::EElEll::G< T >
  • Vtl::ImAlg::C::EElEll::R< T >
  • Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >
  • Vtl::NumAlg::Lin::eigen
  • Vtl::Meta::IL::Elem< 0, IndexList< j, T > >
  • Vtl::Meta::IL::Elem< i, IndexList< j, T > >
  • Vtl::Meta::IL::Elem< i, Loki::NullType >
  • Vtl::ImAlg::Bres::Ellipse< T >
  • Vtl::ImAlg::Bres::EllipseH< F >
  • Vtl::Types::EmptyType
  • Vtl::Meta::EnumTraits
  • Vtl::Meta::EnumTraits::Bits< mask >
  • Vtl::Meta::EnumTraits::Bits< 0 >
  • Vtl::Meta::EnumTraits::IsEnum
  • Vtl::Meta::EnumTraits::MaxEnum< false, i >
  • Vtl::Meta::EnumTraits::MaxEnum< true, i >
  • Vtl::Types::TL::EQ< s1, s2 >
  • Vtl::Types::TL::Erase
  • Vtl::Meta::IL::Erase< i, IndexList< i, T > >
  • Vtl::Meta::IL::Erase< i, IndexList< j, T > >
  • Vtl::Meta::IL::Erase< i, Loki::NullType >
  • Vtl::Types::TL::EraseAll
  • Vtl::Meta::IL::EraseAt< 0, IndexList< j, T > >
  • Vtl::Meta::IL::EraseAt< i, IndexList< j, T > >
  • Vtl::Meta::IL::EraseAt< i, Loki::NullType >
  • Vtl::Meta::IL::ERROR__Index_out_of_IndexList_range< j >
  • Vtl::Plf::Extent
  • Dbg::Format::F
  • Vtl::Alg::Factorial< N >
  • Vtl::Alg::Factorial< 0 >
  • Vtl::ImAlg::Conv::FastGaussConvolve< T, D >
  • FFT_2D
  • Vtl::Plf::Fifo< T >
  • Vtl::ImAlg::Bres::Fill< T >
  • Hanina::FillingHessianMatrix3x3
  • Vtl::Plf::FilterBase
    • Vtl::Plf::FilterComplex
      • Vtl::Plf::Average< T, P >
      • Vtl::Plf::AverageGauss< T, P >
      • Vtl::Plf::BiLateral< T, P >
      • Vtl::Plf::Canny< T, P >
      • Vtl::Plf::DeNoise< T, P >
      • Vtl::Plf::Detect< T, Func, P >
      • Vtl::Plf::DiZenzo< T, P >
      • Vtl::Plf::GradientCorr< T, P >
      • Vtl::Plf::GradientModul< T, P >
      • Vtl::Plf::HarrisLaplace< T, Func, P >
      • Vtl::Plf::HImage< T, P >
      • Vtl::Plf::HImageEdge< T, P >
      • Vtl::Plf::MeanAndDisp< T, P >
      • Vtl::Plf::Resample< T, P >
      • Vtl::Plf::SeparableConv2D< T, P >
      • Vtl::Plf::Sharpen< T, P >
      • Vtl::Plf::StatDiff< T, P >
    • Vtl::Plf::FilterElementary
      • Vtl::Plf::ConvolveHorz< T, P >
      • Vtl::Plf::ConvolveVert< T, P >
      • Vtl::Plf::DstArray< T, Pixel >
      • Vtl::Plf::DstArray< T, I::Pixel >
        • Vtl::Plf::DstAImage< T, I >
      • Vtl::Plf::DstContainer< T, C, P >
      • Vtl::Plf::EnvProc1to1< T, Func, P >
      • Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
      • Vtl::Plf::EnvProc3to1< T, Func, P >
      • Vtl::Plf::FilterResampleHorz< T, P >
      • Vtl::Plf::FilterResampleVert< T, P >
      • Vtl::Plf::Levels< T, P >
      • Vtl::Plf::medianFilter< T, P >
      • Vtl::Plf::medianFilter2< T, P >
      • Vtl::Plf::PixByPix2to1< T, F, P >
      • Vtl::Plf::PixByPix2to3< T, P >
      • Vtl::Plf::PixByPix3to1< T, Func, P >
      • Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
      • Vtl::Plf::PixByPix4to1< T, Func, P >
      • Vtl::Plf::PixByPix5to1< T, Func, P >
      • Vtl::Plf::SrcAImageRgb< T, I, P >
      • Vtl::Plf::SrcArray< T, I, P >
      • Vtl::Plf::SrcArray< T, I::Pixel, P >
        • Vtl::Plf::SrcAImage< T, I, P >
  • Vtl::Plf::FiltersSystem
  • Vtl::Plf::FiltersSystem::EdgeLabel_DelayB
  • Vtl::Plf::FiltersSystem::EdgeLabel_Unknown
  • Vtl::Types::TL::FindIf
  • IFF::FloatImageFile::Header
  • Dbg::Fmt< T, format_type >
  • Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >
  • Basics3D::FmTools< T >
  • Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >
  • Vtl::NumAlg::Spf::Gamma
  • Vtl::Plf::F11::GammaCor< T >
  • Vtl::Plf::F11::GammaCorMult< T >
  • Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >
  • Vtl::Types::TL::GE< s1, s2 >
  • Vtl::Plf::OLSI::Gistogramm< T >
    • Vtl::Plf::OLSI::Gistogramm2< T >
  • Vtl::Plf::Impl::GraphBuilder
  • Vtl::Types::TL::GT< s1, s2 >
  • Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
  • Vtl::Plf::F31::Harris< T >
  • Vtl::Plf::F51::HarrisLaplace< T >
  • Vtl::Plf::Fpie::HarrisNMS< T >
  • Vtl::Plf::Fpie::HarrisNMS_Smooth< T >
  • Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >
  • Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >
  • Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >
  • Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T >
  • Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >
  • Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >
  • Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >
  • Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T >
  • Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 >
  • Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >
  • Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >
  • Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >
  • Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >
  • Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >
  • Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >
  • Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >
  • Hanina::Hessian3D< T >
  • Vtl::Plf::F31::HessianDet< T >
  • Vtl::Plf::F31::HessianDetSqrt< T >
  • Hanina::HessianDetSqrt< T >
  • Hanina::HessianEigenDiff< T >
  • Hanina::HessianEigenDiffAndMaxCurvatureDirection
  • Vtl::Plf::Fpie::Himg< T >
  • Vtl::Plf::Fpie::Himg2< T >
  • Vtl::ImAlg::Transf::Homography< T >
  • Vtl::ImAlg::C::HSI< LinSys >
  • Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter >
  • Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter >
  • Vtl::ImAlg::C::HSL
  • Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >
  • Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >
  • Vtl::ImAlg::C::HSV
  • Vtl::ImAlg::C::HSV::fromRGB< T, Iter >
  • Vtl::ImAlg::C::HSV::toRGB< T, Iter >
  • Vtl::Meta::IL::ICount< v, 0, IndexList< j, T > >
  • Vtl::Meta::IL::ICount< v, i, IndexList< j, T > >
  • Vtl::Meta::IL::ICount< v, i, Loki::NullType >
  • Basics3D::IFunc
    • Basics3D::IFuncWithDer
      • Basics3D::Eq4Degree
      • Basics3D::g
      • Basics3D::test
  • Vtl::Img::ImageBase< P, planes, interleave >
    • Vtl::Img::Image< P, planes, interleave >
  • Vtl::Img::ImageBase< P, planes, BIP >
    • Vtl::Img::Image< P, planes, BIP >
  • Vtl::Img::ImageBase< P, planes, SEP >
    • Vtl::Img::Image< P, planes, SEP >
  • ImageContainer< ImgType >
  • Vtl::Img::ImageDataLayout
  • Vtl::Img::ImageDataLayoutHolder
  • Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >
  • Vtl::Img::ImageInfo
  • Vtl::Img::ImageNDref< T_SList, T_Layout >
  • Vtl::Img::ImageNDref< T_SList, T_Layout >::Iter1D< i >
  • Vtl::Img::ImageNDref< T_SList, T_Layout >::IterBands
  • ImageProxyVector
  • Vtl::Plf::ImageRef< T >
  • ImageResample
    • ImageResize
    • ImageRotate
  • ImageResample::ImageResampleParams
  • Vtl::Img::ImageStorageStrategyNew< T >
  • ImageTransform
  • ImageTransformImpl
    • ImageTransformCellImpl
    • ImageTransformMatrixImpl
      • ImageTransformMatrixFastImpl
  • ImageVectorT< Base, Bit8, Bit16 >
  • Vtl::Plf::Kernel::ImageWin< T >
  • Vtl::Plf::ImgSize
  • Vtl::Meta::IndexList< i, T >
  • Vtl::Types::TL::IndexOf
  • Vtl::Meta::IL::IndexOf< i, IndexList< i, T > >
  • Vtl::Meta::IL::IndexOf< i, IndexList< j, T > >
  • Vtl::Meta::IL::IndexOf< i, Loki::NullType >
  • Vtl::Plf::InPortComb< T >
  • Vtl::Types::Int2Type< v >
  • Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >
  • Vtl::Types::IntOrReal
  • Vtl::ImAlg::Tools::findMax::is_center_max_in3x3< num_equal_neihbours >
  • Vtl::ImAlg::Edt::isEdge< T >
  • Vtl::Types::TL::isIn< TList, T >
  • Vtl::Types::isIntOrReal< T >
  • Vtl::Alg::isOdd< N >
  • Vtl::Types::isSameType< T1, T2 >
  • Vtl::Types::isSUIntOrReal< T >
  • Vtl::Img::Iterator_1D< T, T_stride >
  • Vtl::Img::Iterator_1D< T, 0 >
  • Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
    • Vtl::Img::Iterator_ND_spec< T_Layout, bool(T_Layout::isGray!=0), false >
      • Vtl::Img::Iterator_ND< T_Layout >
  • Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList
  • Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< i >
  • Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< ND >
  • Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::MoveX_selector< i >
  • Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >
  • Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >
  • Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::IterBands
  • Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::IterBands
  • Vtl::ImAlg::C::IV1V2
  • Vtl::ImAlg::C::IV1V2::B< T >
  • Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >
  • Vtl::ImAlg::C::IV1V2::G< T >
  • Vtl::ImAlg::C::IV1V2::I< T >
  • Vtl::ImAlg::C::IV1V2::R< T >
  • Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >
  • Vtl::ImAlg::C::IV1V2::V1< T >
  • Vtl::ImAlg::C::IV1V2::V2< T >
  • Vtl::ImAlg::WndFun::Kaiser< T, D >
  • Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • Vtl::ImAlg::C::Lab
  • Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >
  • Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
  • Vtl::ImAlg::WndFun::Laws5< T >
  • Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
  • Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
  • Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >
  • Vtl::Types::TL::LE< s1, s2 >
  • Vtl::Types::TL::Length
  • Vtl::Meta::IL::Length< IndexList< i, T > >
  • Vtl::Meta::IL::Length< Loki::NullType >
  • Vtl::Plf::F11::Lin< T >
  • Vtl::ImAlg::Bres::Line< F >
  • LineFun
  • Vtl::Plf::LineIterator< T >
  • Vtl::ImAlg::Resamp::LinGrid< T >
  • Vtl::Plf::F11::Log< T >
  • Vtl::ImAlg::Resamp::LogGrid< T >
  • Vtl::Types::TL::LT< s1, s2 >
  • Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
  • Hanina::Luv_from_xy_derivatives< T >
  • Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >
  • Vtl::Meta::IL::Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >
  • Vtl::Meta::IL::MakeInRange< i, n >
  • Vtl::Meta::IL::MakeInRange< n, n >
  • Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >
  • Vtl::Types::TL::MakeTypelist<>
  • Vtl::Plf::F31::MaxEigenVal< T >
  • Vtl::Plf::OLSI::mediana< T >
  • Vtl::ImAlg::Edt::Meijster
  • MImages2Gray
  • Vtl::Plf::F31::MinEigenVal< T >
  • MSlidingEqualization
  • Vtl::Plf::F11::Mult< T >
  • Vtl::Types::TL::NE< s1, s2 >
  • Vtl::Plf::F11::Negative< T >
  • Vtl::Plf::Impl::Node
  • Vtl::Types::TL::NoDuplicates
  • Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
  • Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
  • Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
  • Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< n, TT >
  • Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< 0, TT >
  • Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< n, TT >
  • Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< 0, TT >
  • Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
  • Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< n, TT >
  • Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< 0, TT >
  • Vtl::Types::NullType
  • Vtl::ImAlg::Transf::Offset< T >
  • Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >
  • Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size
  • Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >
  • Vtl::Plf::OutPortBase::Connection
  • IFF::OzFile::Header
  • Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, m >
  • Hanina::p33< T, 0, 1 >
  • Hanina::p33< T, 0, 2 >
  • Hanina::p33< T, 1, 2 >
  • Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, n >
  • Vtl::Img::PaletteAccess
  • Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >
  • Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, k >
  • Vtl::Meta::Impl::permut< IList1, Loki::NullType, isOdd, 0, 0 >
  • Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >
  • Vtl::ImAlg::Resamp::PhiGrid< T >
  • Vtl::Img::pic_plane< pel, stride >
  • Vtl::Types::PixelTraits< T >
  • Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::Real >
  • Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::SInt >
  • Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::UInt >
  • Hanina::Planes3< T >
  • Basics3D::PointStatus
  • PolyFun
  • Vtl::Plf::Port
    • Vtl::Plf::InPortBase
      • Vtl::Plf::InPort< T >
    • Vtl::Plf::OutPortBase
      • Vtl::Plf::OutPortNoPostProc< T >
        • Vtl::Plf::OutPort< T, P >
  • Vtl::Types::TL::Print< TList >
  • Vtl::Meta::printPermutations
  • Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >
  • Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >
  • ProcessMatrix
  • Vtl::Plf::F21::Prod< T >
  • ProgressCounter
  • Basics3D::Structure::ProjectiveToMetric< T >
  • Vtl::NumAlg::Lin::PseudoInverseElem< T >
  • Vtl::NumAlg::Lin::PseudoInverseElemPositive< T >
  • Basics3D::Structure::Pt< T >
  • PtrArrayDel< T >
  • PtrDelete< T >
  • Vtl::Meta::IL::PushBack< i, IndexList< j, Tail > >
  • Vtl::Meta::IL::PushBack< i, Loki::NullType >
  • Vtl::Meta::IL::PushFront< i, IList >
  • Vtl::NumAlg::Lin::QR
  • Quaternion< T >
  • ReadPipe
  • ReadString
  • Vtl::ImAlg::WndFun::Rect< T, D >
  • Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >
  • Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D >
  • Vtl::Img::Rgb< T >
  • IFF::RgbQuad
  • Vtl::Img::SampleAccess
  • Gen::Data::SaveFormat
  • Hanina::ScaleScan3x3< T >
  • Vtl::Types::Select< flag, Type1, Type2 >
  • Vtl::ImAlg::Tools::findMax::SetPixel< T, stride >
  • Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >
  • Vtl::Plf::F21::Sharpen< T >
  • Vtl::ImAlg::WndFun::Sinc< T, 0 >
  • Vtl::Meta::Impl::SizeList_base_0< IList, sz >
    • Vtl::Meta::SizeList_base< IList >
      • Vtl::Meta::Layout< T, IList >
    • Vtl::Meta::SizeList_base< Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >::Result >
  • Vtl::Meta::Impl::SizeList_base_0< IList, 0 >
  • Vtl::Meta::Impl::SizeList_base_0< IList, IL::Count< 0, IList >::value >
  • Vtl::Meta::Impl::SizeList_base_0< T_IList, IL::Count< 0, T_IList >::value >
    • Vtl::Meta::SizeList_base< T_IList >
      • Vtl::Meta::SizeList< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >
  • Vtl::Meta::Impl::SizeList_base_0< Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >::Result, IL::Count< 0, Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >::Result >::value >
  • Vtl::ImAlg::Conv::SliceIter< T, stride >
  • Vtl::ImAlg::Conv::SliceIter< T, 0 >
  • Vtl::ImAlg::Conv::SliceIterConst< T, stride >
  • Vtl::ImAlg::Conv::SliceIterConst< T, 0 >
  • Vtl::Types::TL::SmallestType
  • Basics3D::SolveEq
  • Vtl::NumAlg::Implicit::Sort_base< N_ >
    • Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >
  • Vtl::NumAlg::Implicit::Vtl::NumAlg::Implicit::Sort_base< ((N_ >30)?0:N_)>
  • Vtl::NumAlg::Implicit::Sort_base< 0 >
  • Basics3D::SortS< T >
  • Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • Vtl::Plf::F11::Sqr< T >
  • Vtl::Plf::F11::Sqrt< T >
  • Vtl::Plf::F21::SqrtOfSumSqr< T >
  • Vtl::Plf::F31::StatDiff< T >
  • Vtl::Plf::F31::StatDiffThresh< T >
  • Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >
  • Vtl::Plf::Strip
  • Vtl::Plf::StripBuffer< T >
  • Vtl::Types::SUIntOrReal
  • Vtl::Plf::F21::Sum< T >
  • Vtl::Plf::F31::Sum3< T >
  • Vtl::NumAlg::Lin::svd
  • Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, nd >
  • Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, 1 >
  • Vtl::Img::T2DataType< T >
  • Basics3D::T_ImagesSet< Image >
  • T_Layout
    • Vtl::Img::Iterator_ND_base< T_Layout, false >
      • Vtl::Img::Iterator_ND_spec< T_Layout, false, false >
      • Vtl::Img::Iterator_ND_spec< T_Layout, false, true >
    • Vtl::Img::Iterator_ND_base< T_Layout, isGray >
      • Vtl::Img::Iterator_ND_spec< T_Layout, isGray, isSubSpace >
    • Vtl::Img::Iterator_ND_base< T_Layout, true >
      • Vtl::Img::Iterator_ND_spec< T_Layout, true, false >
      • Vtl::Img::Iterator_ND_spec< T_Layout, true, true >
  • Basics3D::T_MatrixOperations
  • Basics3D::T_MistakeFunc< Operations >
  • Basics3D::T_Model< Operations >
  • Basics3D::T_Points2DSet< Point >
  • Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >
  • Vtl::NumAlg::IntTransf::Utils::F::Test< T >
  • Vtl::Plf::F11::Threshold< T, Comp >
  • IFF::TIFF_Header
  • IFF::TIFF_IFD
  • IFF::TIFF_IFDentry
  • IFF::TIFF_ImageParms
  • IFF::TiffTag
  • Vtl::Dbg::TimeElapsed
  • Vtl::Plf::F11::ToBounds< T >
  • tplAImageReference< ImgT >
    • tplAImageFragment< ImgT >
  • Vtl::Plf::F31::Trace< T >
  • Traits
    • Vtl::ImAlg::WndFun::common_Trig< T, D, 1 >
      • Vtl::ImAlg::WndFun::Hamming< T, D >
      • Vtl::ImAlg::WndFun::Hann< T, D >
    • Vtl::ImAlg::WndFun::common_Trig< T, D, 2 >
      • Vtl::ImAlg::WndFun::Blackman< T, D >
    • Vtl::ImAlg::WndFun::common_Trig< T, D, 3 >
      • Vtl::ImAlg::WndFun::BlackmanHarris< T, D >
      • Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >
      • Vtl::ImAlg::WndFun::Nuttall< T, D >
    • Vtl::ImAlg::WndFun::common_Trig< T, D, 4 >
      • Vtl::ImAlg::WndFun::FlatTop< T, D >
    • Vtl::ImAlg::WndFun::Direct_Ref< T, int, 0, 0 >
      • Vtl::ImAlg::WndFun::Laws5< T >::L5
    • Vtl::ImAlg::WndFun::Direct_Ref< T, int, 1, 1 >
      • Vtl::ImAlg::WndFun::Laws5< T >::E5
    • Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 >
      • Vtl::ImAlg::WndFun::Laws5< T >::R5
      • Vtl::ImAlg::WndFun::Laws5< T >::S5
  • Vtl::Types::Traits< T >
  • Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >
  • Vtl::ImAlg::WndFun::Traits_common< T, false, false, NAC, D >
    • Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D >
  • Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D >
    • Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D >
      • Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >
      • Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >
  • TransformCell
  • triangulateio
  • Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >
  • Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >
  • TriResult
  • Vtl::Types::Type2Type< T >
  • Vtl::Types::TL::TypeAt
  • Vtl::Types::TL::TypeLargerThen
  • Vtl::Types::Typelist< T, U >
  • Basics3D::Types< T >
  • VirtDib
  • VirtDib::Inf
  • WinIniFile
  • WiNode
  • WiNode::AttrRef
  • WritePipe
  • Vtl::Alg::x_to_N< N >
  • Vtl::Alg::x_to_N< N >::x_to_N__< 0, 0 >
  • Vtl::Alg::x_to_N< N >::x_to_N__< 1, 1 >
  • Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 >
  • Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 >
  • YXML::Xercesc
    • YXML::XMLdoc
  • Vtl::ImAlg::C::XYZ
  • Vtl::ImAlg::C::XYZ::B< T >
  • Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >
  • Vtl::ImAlg::C::XYZ::G< T >
  • Vtl::ImAlg::C::XYZ::R< T >
  • Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >
  • Vtl::ImAlg::C::XYZ::X< T >
  • Vtl::ImAlg::C::XYZ::Y< T >
  • Vtl::ImAlg::C::XYZ::Z< T >
  • Vtl::ImAlg::C::YCbCr
  • Vtl::ImAlg::C::YCbCr::B< T >
  • Vtl::ImAlg::C::YCbCr::Cb< T >
  • Vtl::ImAlg::C::YCbCr::Cr< T >
  • Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >
  • Vtl::ImAlg::C::YCbCr::G< T >
  • Vtl::ImAlg::C::YCbCr::R< T >
  • Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >
  • Vtl::ImAlg::C::YCbCr::Y< T >
  • YDataTime
  • YDataTimeZone
  • YDtTm
  • YFile
    • IFF::FloatImageFile
    • IFF::OzFile
    • IFF::PBMfile
  • YFileRead
    • IFF::BmpRead
    • IFF::TiffReadIFD
      • IFF::Tiff8Read
  • YFileWrite
    • IFF::BmpWrite
    • IFF::TiffWriteIFD
      • IFF::Tiff8Write
  • YImageFrame
  • Vtl::ImAlg::C::YIQ
  • Vtl::ImAlg::C::YIQ::B< T >
  • Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >
  • Vtl::ImAlg::C::YIQ::G< T >
  • Vtl::ImAlg::C::YIQ::I< T >
  • Vtl::ImAlg::C::YIQ::Q< T >
  • Vtl::ImAlg::C::YIQ::R< T >
  • Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >
  • Vtl::ImAlg::C::YIQ::Y< T >
  • YPoint< T >
  • YRect< T >
  • YSmallAllocLtd
  • YTArray< T >
    • YTDynArray< T >
  • YTHistList< T >
  • YTHistListTag< T >
  • YTimeInterval
  • Vtl::ImAlg::C::YUV
  • Vtl::ImAlg::C::YUV::B< T >
  • Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >
  • Vtl::ImAlg::C::YUV::G< T >
  • Vtl::ImAlg::C::YUV::R< T >
  • Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >
  • Vtl::ImAlg::C::YUV::U< T >
  • Vtl::ImAlg::C::YUV::V< T >
  • Vtl::ImAlg::C::YUV::Y< T >
  • Hanina::ZeroCross< T >
  • Hanina::ZeroCrossVisualization< T >
  • ZoomFactor
  • ZoomFactor2D


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- _ -

  • _a : Vtl::Plf::F11::Lin< T > , Convert< uint8_t > , Lin< float > lin_1mod , Convert< uint8_t > , Lin< float > lin_2 , Convert< uint8_t >
  • _autosave : YXML::XMLdoc
  • _b : Convert< uint8_t > , Lin< float > lin_1mod , Convert< uint8_t > , Lin< float > lin_2 , Convert< uint8_t > , Vtl::Plf::F11::Lin< T >
  • _bits : Vtl::Plf::medianFilter2< T, P > , Vtl::Plf::medianFilter< T, P >
  • _buildMatrix() : Vtl::ImAlg::Model::Similarity< T >
  • _central() : ConvInplace< float, K0 > , Vtl::ImAlg::Conv::CyclicConv< T, K > , Vtl::ImAlg::Conv::CyclicConvInplace< T, K > , CyclicConv< T, K1 > , CyclicConv< T, K2 > , CyclicConv< T, K > , Vtl::ImAlg::Conv::Conv< T, K > , CyclicConvInplace< T, K1 > , CyclicConvInplace< T, K2 > , CyclicConvInplace< T, K > , Conv< T, K1 > , Conv< T, K2 > , Conv< T, K > , ConvInplace< T, K1 > , ConvInplace< T, K2 > , ConvInplace< T, K > , CyclicConvInplace< float, K > , ConvInplace< float, K0 > , ConvInplace< float, K1 > , Conv< float, K > , ConvInplace< float, K2 > , ConvInplace< float, K3 > , ConvInplace< float, K > , ConvInplace< float, K4 >
  • _central_2() : ConvInplace< float, K0 > , Vtl::ImAlg::Conv::ConvInplace< T, K > , ConvInplace< T, K1 > , ConvInplace< T, K2 > , ConvInplace< T, K > , ConvInplace< float, K0 > , ConvInplace< float, K1 > , ConvInplace< float, K2 > , ConvInplace< float, K > , ConvInplace< float, K3 > , ConvInplace< float, K4 >
  • _close() : YFile , YFileRead , YFileWrite
  • _color : Vtl::ImAlg::Bres::Draw< Pixel >
  • _color1 : Vtl::ImAlg::Bres::DrawDotted< Pixel > , Vtl::ImAlg::Bres::DrawGradient< Pixel >
  • _color2 : Vtl::ImAlg::Bres::DrawDotted< Pixel > , Vtl::ImAlg::Bres::DrawGradient< Pixel >
  • _D()
: Vtl::ImAlg::Model::Affine< T >
, Vtl::ImAlg::Model::Homography< T >
  • _D3x() : Vtl::ImAlg::Model::Homography< T >
  • _D3y() : Vtl::ImAlg::Model::Homography< T >
  • _data : Hanina::Hessian3D< T > , ImageRef< int > , ImageRef< T > , Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > , Vtl::Plf::ImageRef< T >
  • _double_ker()
: Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Base< T, Kernel::KT_Conv >
  • _draw : Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >
  • _eig_curr : Hanina::Planes3< T >
  • _eig_next : Hanina::Planes3< T >
  • _eig_prev : Hanina::Planes3< T >
  • _ex : Vtl::Plf::ImageRef< T > , ImageRef< int > , ImageRef< T >
  • _fillVec() : Vtl::Plf::FiltersSystem
  • _fin : Vtl::Dbg::TimeElapsed
  • _GetYXML_NodeHandle() : YXML::DNode
  • _grad_x_curr : Hanina::Planes3< T >
  • _grad_x_next : Hanina::Planes3< T >
  • _grad_y_curr : Hanina::Planes3< T >
  • _grad_y_next : Hanina::Planes3< T >
  • _Gxx : Hanina::Hessian3D< T >
  • _Gxxx : Hanina::Hessian3D< T >
  • _Gxxxx : Hanina::Hessian3D< T >
  • _Gxxyy : Hanina::Hessian3D< T >
  • _Gxy : Hanina::Hessian3D< T >
  • _Gxyy : Hanina::Hessian3D< T >
  • _Gyxx : Hanina::Hessian3D< T >
  • _Gyy : Hanina::Hessian3D< T >
  • _Gyyy : Hanina::Hessian3D< T >
  • _Gyyyy : Hanina::Hessian3D< T >
  • _h2_x_curr : Hanina::Planes3< T >
  • _h2_x_next : Hanina::Planes3< T >
  • _h2_y_curr : Hanina::Planes3< T >
  • _h2_y_next : Hanina::Planes3< T >
  • _h2_z_curr : Hanina::Planes3< T >
  • _h2_z_next : Hanina::Planes3< T >
  • _h3_x_curr : Hanina::Planes3< T >
  • _h3_x_next : Hanina::Planes3< T >
  • _h3_y_curr : Hanina::Planes3< T >
  • _h3_y_next : Hanina::Planes3< T >
  • _h3_z_curr : Hanina::Planes3< T >
  • _h3_z_next : Hanina::Planes3< T >
  • _hFlipLeft() : Vtl::Plf::StripBuffer< T >
  • _hFlipRight() : Vtl::Plf::StripBuffer< T >
  • _image : Hanina::Planes3< T >
  • _img() : Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >
  • _img_width : Vtl::Plf::OLSI::Gistogramm< T >
  • _Init() : FKern< float, Vtl::Plf::Kernel::KT_Conv > , FKern< float > , tplAImageFragment< ImgT > , FKern< float, Vtl::Plf::Kernel::KT_Corr > , tplAImageFragment< ImgT > , FKern< float, Vtl::Plf::Kernel::KT_Win > , FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • _init() : OutPortNoPostProc< Real_t >
  • _Init()
: Base< T, Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • _init()
: Vtl::Plf::Port
, Vtl::Plf::InPortBase
, InPort< T >
, Iter_Line
  • _Init_conv()
: FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • _Init_Last_step()
: FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, Base< T, Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
  • _Init_win()
: FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • _Insert() : Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >
  • _left() : ConvInplace< T, K > , ConvInplace< float, K4 > , ConvInplace< float, K0 > , Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , ConvInplace< float, K > , Vtl::ImAlg::Conv::CyclicConvInplace< T, K > , ConvInplace< float, K3 > , ConvInplace< float, K2 > , CyclicConvInplace< T, K1 > , Vtl::ImAlg::Conv::Conv< T, K > , CyclicConvInplace< T, K2 > , CyclicConvInplace< T, K > , Conv< T, K1 > , Conv< T, K2 > , ConvInplace< float, K1 > , Conv< T, K > , ConvInplace< T, K1 > , ConvInplace< T, K2 > , Base< T, Kernel::KT_Conv > , CyclicConvInplace< float, K > , ConvInplace< float, K0 > , Conv< float, K >
  • _left_2() : ConvInplace< float, K > , Vtl::ImAlg::Conv::ConvInplace< T, K > , ConvInplace< float, K1 > , ConvInplace< T, K1 > , ConvInplace< float, K3 > , ConvInplace< float, K0 > , ConvInplace< float, K4 > , ConvInplace< T, K > , ConvInplace< T, K2 > , ConvInplace< float, K0 > , ConvInplace< float, K2 >
  • _mask : Vtl::ImAlg::Bres::DrawDotted< Pixel >
  • _mirrorLineRelCenter() : Vtl::Plf::StripBuffer< T >
  • _name : YXML::IsName< Cmp > , Vtl::Plf::FilterBase
  • _nls : ImageRef< int > , Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > , Vtl::Plf::ImageRef< T > , ImageRef< T >
  • _open() : YFile
  • _pal : IFF::BmpRead
  • _pl : ImageFragmentRgb8
  • _read() : YFile
  • _right() : ConvInplace< float, K3 > , Conv< T, K > , ConvInplace< float, K4 > , CyclicConvInplace< T, K1 > , CyclicConvInplace< T, K2 > , Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , ConvInplace< T, K > , Vtl::ImAlg::Conv::CyclicConvInplace< T, K > , CyclicConvInplace< float, K > , CyclicConvInplace< T, K > , Base< T, Kernel::KT_Conv > , ConvInplace< float, K1 > , ConvInplace< T, K1 > , ConvInplace< T, K2 > , Conv< T, K1 > , Conv< T, K2 > , Vtl::ImAlg::Conv::Conv< T, K > , ConvInplace< float, K > , ConvInplace< float, K2 > , ConvInplace< float, K0 > , Conv< float, K > , ConvInplace< float, K0 >
  • _right_2() : ConvInplace< float, K4 > , ConvInplace< float, K0 > , ConvInplace< T, K > , ConvInplace< float, K2 > , ConvInplace< float, K1 > , ConvInplace< float, K0 > , ConvInplace< float, K > , ConvInplace< float, K3 > , ConvInplace< T, K1 > , ConvInplace< T, K2 > , Vtl::ImAlg::Conv::ConvInplace< T, K >
  • _right_end_left() : CyclicConv< T, K > , Vtl::ImAlg::Conv::CyclicConv< T, K > , CyclicConv< T, K2 > , CyclicConv< T, K1 >
  • _RotScaleOffset_1() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • _SaveGraphAsDot() : Vtl::Plf::FiltersSystem
  • _setIdentity() : Vtl::ImAlg::Model::BaseAffine< T >
  • _size : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , Base< T, Kernel::KT_Conv >
  • _size_ : Vtl::ImAlg::WndFun::Bartlett< T, D > , Vtl::ImAlg::WndFun::common_Trig< T, D, K > , Vtl::ImAlg::WndFun::Kaiser< T, D > , Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > , Direct_Ref< float, int >
  • _size_of_ramka : Vtl::Plf::OLSI::Gistogramm< T >
  • _SkewOffset_2() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >
  • _st : Vtl::Dbg::TimeElapsed
  • _start() : CyclicConv< T, K > , Vtl::ImAlg::Conv::CyclicConv< T, K > , CyclicConv< T, K1 > , CyclicConv< T, K2 >
  • _step : Vtl::ImAlg::Bres::DrawGradient< Pixel >
  • _width : Vtl::Plf::ImageRef< T > , ImageRef< T > , ImageRef< int >
  • _write() : YFile
  • _x : Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >
  • _y : Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >
  • _ZoomValue() : ZoomFactor
  • _ZoomValueNR() : ZoomFactor


Pipe Line Filters: Иерархия классов. Графический вид.

Pipe Line Filters Иерархия классов. Графический вид.

см. текстовый вид.


Pipe Line Filters: Алфавитный указатель пространств имен

  • Пространства имен
  • Члены пространств имен

Pipe Line Filters Пространства имен

Полный список пространств имен.
Basics3D |
Basics3D::Fm2Essential | Автокалибровка: поиск по ФМ существенной и калибровочных матриц
Basics3D::Structure |
Dbg | Средств для отладки
Dbg::Format |
Gen | Классы общего назначения
Gen::Data | Общие классы и функции для манипулирования данными, вводом-выводомю
Gen::Data::Impl |
Hanina |
IFF | Image File Formats, ONLY intrinsic used by library, DO NOT use directly!
Loki |
Students |
Students::Curve |
Students::Enhancement |
Tests |
Vtl | Computer Vision Template Library - С++ библиотека для разработки приложений в области компьютерного зрения и обработки изображений
Vtl::Alg |
Vtl::Alg::Impl |
Vtl::Dbg |
Vtl::ImAlg | Содержит алгоритмы по обработке изображений
Vtl::ImAlg::Bres | Алгоритмы Брезенхэма рисования линий, окружностей, эллипсов, заполнения области. Как 'рисовать' - задается функтором, поэтому можно не только рисовать, но и использовать в вычислениях
Vtl::ImAlg::C | Цветовые системы координат, цветовые пространства. Функторы для конвертации из одной системы координат в другую. Функторы для классов PixByPix3to1 и PixByPix3to3 : работа с цветовыми системами координат. НЕДОДЕЛАНО! Проверено только YCbCr
Vtl::ImAlg::Conv |
Vtl::ImAlg::Conv::Impl | Детали реализации, не использовать напрямую!
Vtl::ImAlg::Conv::Impl::FastGaussConvolve |
Vtl::ImAlg::Edt |
Vtl::ImAlg::Model | Содержит классы - модели искомого преобразования при совмещении изображений. Используются классом Vtl::ImAlg::Registration::OFlow
Vtl::ImAlg::Registration | Алгоритмы совмещения изображений
Vtl::ImAlg::Registration::Impl | Детали реализации, не использовать напрямую!
Vtl::ImAlg::Registration::Impl::OFlow | Детали реализации, не использовать напрямую!
Vtl::ImAlg::Resamp | Cодержит функции и классы, которые выполняют разноображные преобразования изображения, используя интерполяцию (например билинейную)
Vtl::ImAlg::Tools | Cодержит функции и классы, которые выполняют преобразования изображения, общего назначения. Копирование, копирование с преобразованием типа, по-пиксельные операции типа сложения умножения вычисления функции и.т.д
Vtl::ImAlg::Tools::findMax |
Vtl::ImAlg::Tools::findMax::Impl |
Vtl::ImAlg::Transf | объекты для преобразования координат. ИСпользуются в частности в пространстве имен Model. В отличие от объектов пространства имен Model и Resamp не умеют ничего кроме как по заданным координатам вычислить преобразованные
Vtl::ImAlg::WndFun | Функторы, используемые в ядрах сверток и ограничении окном. Все функции не нормированы в смысле интеграла, но нормированы так, чтобы (нулевая производная, т.е. сама функция) максимум функции был равен единице, т.е так, как должно быть при ограничении окном
Vtl::ImAlg::WndFun::Impl |
Vtl::ImAlg::WndFun::Impl::common_Trig |
Vtl::ImAlg::WndFun::Impl::Gauss |
Vtl::Img |
Vtl::Img::Impl |
Vtl::Img::Impl::Layout |
Vtl::Meta |
Vtl::Meta::IL | Алгоритмы для работы с IndexList
Vtl::Meta::Impl |
Vtl::NumAlg | Методы и функции вычислительной математики
Vtl::NumAlg::Implicit | Алгоритмы неявной работы с контейнерами произвольного доступа. Сортировки и проч. выполняются н над контейнером, а над массивом индексов, указывающих на положение элементов в контейнере
Vtl::NumAlg::Implicit::Pred |
Vtl::NumAlg::IntTransf | Одномерные и многомерные интегральные преобразования
Vtl::NumAlg::IntTransf::Fourier | Быстрое преобразование Фурье. Основано на коде из [NRC2] , функция four1
Vtl::NumAlg::IntTransf::Fourier::F | Функторы для static void Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq(I n[],ProcPair pp);
Vtl::NumAlg::IntTransf::Fourier::F::Impl |
Vtl::NumAlg::IntTransf::Hartley | Быстрое преобразование Хартли [Brace90]
Vtl::NumAlg::IntTransf::Hartley::F | Функторы для static void Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq(I n[],ProcPair pp);
Vtl::NumAlg::IntTransf::Hartley::Impl |
Vtl::NumAlg::IntTransf::Utils | Утилиты, общие для быстрого преобразование Фурье и Хартли
Vtl::NumAlg::IntTransf::Utils::F | Функторы для static void Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq(I n[],ProcPair pp);
Vtl::NumAlg::IntTransf::Utils::Impl |
Vtl::NumAlg::Lin | Алгоритмы линейной алгебры, alias для пространства имен boost::numeric::ublas содержащего объекты матриц и векторов и набора элементарных операций BLAS - Basic Linear Algebra Subprograms http://www.netlib.org/blas/
Vtl::NumAlg::Opt |
Vtl::NumAlg::Spf | Специальные функции математической физики
Vtl::Plf | Pipe Line Filtering (of images) library
Vtl::Plf::F11 | Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value)
Vtl::Plf::F21 | Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2)
Vtl::Plf::F23 | Функторы с сигнатурой template<typename T,typename Iterator> void operator()(T v1,T v2,Iterator o11,Iterator o12,Iterator o22) const;
Vtl::Plf::F31 | Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2,T1 value3)
Vtl::Plf::F33 | Функторы с сигнатурой template<typename T,typename Iterator> void operator()(T v11,T v12,T v22,Iterator out_1,Iterator out_2,Iterator out_3) const;
Vtl::Plf::F51 | Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2,T1 value3,T1 value4,T1 value5)
Vtl::Plf::Fpie | Функторы, получающие указатель на пиксели изображения и работающие по локальной окрестности ((F)unctor receiving (P)ointer to (I)mage data and using local (E)nvironment data). Как правило только специфическое использование в рамках потоковой библиотеки обработки изображений (Plf)
Vtl::Plf::Impl | Детали реализации. Пользователям библиотеки не следует использовать отсюда ничего. Никаких гарантий поддержки совместимости с предыдущими версиями не дается. Все может измениться внезапно и полностью
Vtl::Plf::Kernel | Ядра для сверток, кросскорреляции и оконых функций и необходимый инструментарий для вычисления сверток/кроскорреляции/домножения на функцию окна
Vtl::Plf::OLSI | Вспомагательные средства для классов Vtl::Plf::medianFilter, Vtl::Plf::medianFilter2 . Автор - Сидоркина О
Vtl::Types | Пространство имен Vtl::Types содержит ряд шаблонных определений для работы с типами:
Vtl::Types::TL | Пространство имен Vtl::Types::TL содержит алгоритмы для работы со списками типов, определенными Vtl::Types::Typelist
YFileSys | Работа с файловой системой. Существует ли файл, какой его размер, создать директорию и прочее
YXML | Поддержка формата XML. Внимание! Требует установки (копирования) на машину ряда DLL, и прописывания их в PATH. НЕ ЛИНКОВАТЬ ИХ К СВОЕМУ ПРОЕКТУ!!! Все и так будет работать!


Pipe Line Filters: Пространство имен Basics3D

  • Пространства имен
  • Члены пространств имен

Пространство имен Basics3D

Классы

class | C_AbsDifference
class | AbsoluteDualQuadric
class | C_AutoCalibration
class | C_Combination
class | C_DrawEpipolarLines
class | C_Epipole
class | IFunc
class | IFuncWithDer
class | g
class | test
class | Eq4Degree
class | C_FundamentalMatrix
class | C_HomographyMatrix
class | T_ImagesSet
class | T_MatrixOperations
class | T_MistakeFunc
class | T_Model
class | C_Point2D
class | C_Point2DParam
class | C_Points2DParamSet
class | T_Points2DSet
class | C_ProjectiveMatrix
struct | FmTools
struct | PointStatus
Define struct to clear namespace from personal enum names. Подробнее...
struct | Types
Типы для использования в задачах восстановления 3D по изображениям. Использовать при определении типов во всех классахъ и функциях. Подробнее...
class | SolveEq
struct | SortS
class | C_StructureComputation
class | C_Transform
class | C_TransformMatrices
class | C_Triangulation

Пространства имен

namespace | Fm2Essential
Автокалибровка: поиск по ФМ существенной и калибровочных матриц.
namespace | Structure

Определения типов

typedef Vtl::NumAlg::Lin::ublas::c_matrix<
double, 3, 3 > 		matrix_3_3

Функции

int | zbrac (const IFunc *g, double *x1, double *x2)
template<class type, class MatrixType>
void | lnsrch (int n, Vtl::NumAlg::Lin::ublas::vector< type > *xold, type fold, Vtl::NumAlg::Lin::ublas::vector< type > *g, Vtl::NumAlg::Lin::ublas::vector< type > *p, Vtl::NumAlg::Lin::ublas::vector< type > *x, type *f, type stpmax, int *check, T_MistakeFunc< MatrixType > *Mist)
template<class type, class MatrixType>
void | _dfpmin (Vtl::NumAlg::Lin::ublas::vector< type > *p, int n, type gtol, int *iter, type *fret, T_MistakeFunc< MatrixType > *Mist)
template<class MatrixType>
void | jacobi (MatrixType &in_a, std::vector< double > &out_d, MatrixType &out_v, int *out_nrot)
void | EssentialMatrix (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_E, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_K, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_K1)
void | EssentialMatrix (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_R, const Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &in_t)
void | SingularValues (double out_sv[2], const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in)
void | PrintAndSave (const char *in_name, const std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &in_Matrix, const int i, const int j)
void | DrawEpipolarLines (const T_ImagesSet< AImageMem8 > &in_img, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_Matrix, const std::vector< T_Points2DSet< C_Point2D >> &in_PointsSet, const int i, const int n)
void | MarkCorrespondences (const char *in_name, const int j, const T_ImagesSet< AImageMem8 > &in_img, const std::vector< T_Points2DSet< C_Point2D >> &in_PointsSet, const int i)
void | MakeDifferenceImage (const T_ImagesSet< AImageMem8 > &in_img, const std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &in_Matrix, const int i, const int j, const int k)
void | LoadPoints (std::vector< C_Points2DParamSet > &out_PointsParamSet, std::vector< T_Points2DSet< C_Point2D >> &out_PointsSet, char *in_argv[], const int in_N, const double in_T, const int in_imHeight)
void | MarkCorrespondences (const char *in_name, const T_ImagesSet< AImageMem8 > &in_img, const T_Points2DSet< C_Point2D > &in_PointsSet, const int N, const int i)
void | MakeDifferenceImage (const T_ImagesSet< AImageMem8 > &in_img, const std::vector< matrix_3_3 > &in_Matrix, const int i, const int j, const int k)
void | FindCommonFeaturePoints (T_Points2DSet< C_Point2D > &out_commonPoints, const std::vector< T_Points2DSet< C_Point2D >> &in_Inliers, const int N)
int | Test (int argc, char *argv[])
double | rtnewt (const IFuncWithDer *g, double x1, double x2, double xacc)
double | rtsafe (const IFuncWithDer *g, double x1, double x2, double xacc)
template<class Operations>
void | Ransac (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, T_Points2DSet< C_Point2D > &out_Inliers, T_Model< Operations > &in_Model, T_Points2DSet< C_Point2D > &in_PointsSet, int in_size, double in_sigma, double in_p=0.99)
template<class Operations>
void | RecompMatrix (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, T_Points2DSet< C_Point2D > &outInliers, T_Model< Operations > &in_Model, C_Points2DParamSet &in_PointsParamSet1, C_Points2DParamSet &in_PointsParamSet2, double in_sigma, double in_t2)
void | RQDecomposition (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_R, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_Q, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_M)
template<class SystemType, class SolutionType>
void | SolveSystem (SolutionType &out_Vect, const SystemType &in_System)

Типы

typedef Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> Basics3D::matrix_3_3

Функции

template<class type, class MatrixType>
void Basics3D::_dfpmin | ( | Vtl::NumAlg::Lin::ublas::vector< type > * | p,
 |  | int | n,
 |  | type | gtol,
 |  | int * | iter,
 |  | type * | fret,
 |  | T_MistakeFunc< MatrixType > * | Mist
 | ) |  |

void Basics3D::DrawEpipolarLines | ( | const T_ImagesSet< AImageMem8 > & | in_img,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_Matrix,
 |  | const std::vector< T_Points2DSet< C_Point2D >> & | in_PointsSet,
 |  | const int | i,
 |  | const int | n
 | ) |  |

void Basics3D::EssentialMatrix | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_R,
 |  | const Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > & | in_t
 | ) |  |

void Basics3D::EssentialMatrix | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_E,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_F,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_K,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_K1
 | ) |  |

void Basics3D::FindCommonFeaturePoints | ( | T_Points2DSet< C_Point2D > & | out_commonPoints,
 |  | const std::vector< T_Points2DSet< C_Point2D >> & | in_Inliers,
 |  | const int | N
 | ) |  |

template<class MatrixType>
void Basics3D::jacobi | ( | MatrixType & | in_a,
 |  | std::vector< double > & | out_d,
 |  | MatrixType & | out_v,
 |  | int * | out_nrot
 | ) |  |

template<class type, class MatrixType>
void Basics3D::lnsrch | ( | int | n,
 |  | Vtl::NumAlg::Lin::ublas::vector< type > * | xold,
 |  | type | fold,
 |  | Vtl::NumAlg::Lin::ublas::vector< type > * | g,
 |  | Vtl::NumAlg::Lin::ublas::vector< type > * | p,
 |  | Vtl::NumAlg::Lin::ublas::vector< type > * | x,
 |  | type * | f,
 |  | type | stpmax,
 |  | int * | check,
 |  | T_MistakeFunc< MatrixType > * | Mist
 | ) |  |

void Basics3D::LoadPoints | ( | std::vector< C_Points2DParamSet > & | out_PointsParamSet,
 |  | std::vector< T_Points2DSet< C_Point2D >> & | out_PointsSet,
 |  | char * | in_argv[],
 |  | const int | in_N,
 |  | const double | in_T,
 |  | const int | in_imHeight
 | ) |  |

void Basics3D::MakeDifferenceImage | ( | const T_ImagesSet< AImageMem8 > & | in_img,
 |  | const std::vector< matrix_3_3 > & | in_Matrix,
 |  | const int | i,
 |  | const int | j,
 |  | const int | k
 | ) |  |

void Basics3D::MakeDifferenceImage | ( | const T_ImagesSet< AImageMem8 > & | in_img,
 |  | const std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> & | in_Matrix,
 |  | const int | i,
 |  | const int | j,
 |  | const int | k
 | ) |  |

void Basics3D::MarkCorrespondences | ( | const char * | in_name,
 |  | const T_ImagesSet< AImageMem8 > & | in_img,
 |  | const T_Points2DSet< C_Point2D > & | in_PointsSet,
 |  | const int | N,
 |  | const int | i
 | ) |  |

void Basics3D::MarkCorrespondences | ( | const char * | in_name,
 |  | const int | j,
 |  | const T_ImagesSet< AImageMem8 > & | in_img,
 |  | const std::vector< T_Points2DSet< C_Point2D >> & | in_PointsSet,
 |  | const int | i
 | ) |  |

void Basics3D::PrintAndSave | ( | const char * | in_name,
 |  | const std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> & | in_Matrix,
 |  | const int | i,
 |  | const int | j
 | ) |  |

template<class Operations>
void Basics3D::Ransac | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out,
 |  | T_Points2DSet< C_Point2D > & | out_Inliers,
 |  | T_Model< Operations > & | in_Model,
 |  | T_Points2DSet< C_Point2D > & | in_PointsSet,
 |  | int | in_size,
 |  | double | in_sigma,
 |  | double | in_p = 0.99
 | ) |  |

template<class Operations>
void Basics3D::RecompMatrix | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out,
 |  | T_Points2DSet< C_Point2D > & | outInliers,
 |  | T_Model< Operations > & | in_Model,
 |  | C_Points2DParamSet & | in_PointsParamSet1,
 |  | C_Points2DParamSet & | in_PointsParamSet2,
 |  | double | in_sigma,
 |  | double | in_t2
 | ) |  |

void Basics3D::RQDecomposition | ( | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_R,
 |  | Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | out_Q,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in_M
 | ) |  |

double Basics3D::rtnewt | ( | const IFuncWithDer * | g,
 |  | double | x1,
 |  | double | x2,
 |  | double | xacc
 | ) |  |

double Basics3D::rtsafe | ( | const IFuncWithDer * | g,
 |  | double | x1,
 |  | double | x2,
 |  | double | xacc
 | ) |  |

void Basics3D::SingularValues | ( | double | out_sv[2],
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > & | in
 | ) |  |

template<class SystemType, class SolutionType>
void Basics3D::SolveSystem | ( | SolutionType & | out_Vect,
 |  | const SystemType & | in_System
 | ) |  |

int Basics3D::Test | ( | int | argc,
 |  | char * | argv[]
 | ) |  |

int Basics3D::zbrac | ( | const IFunc * | g,
 |  | double * | x1,
 |  | double * | x2
 | ) |  |


Pipe Line Filters: Пространство имен Basics3D::Fm2Essential

  • Пространства имен
  • Члены пространств имен
Basics3D::Fm2Essential

Пространство имен Basics3D::Fm2Essential

Автокалибровка: поиск по ФМ существенной и калибровочных матриц. Подробнее...

Классы

class | CameraPoseFromEssential
struct | DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
class | KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >

Подробное описание

Автокалибровка: поиск по ФМ существенной и калибровочных матриц.


Pipe Line Filters: Пространство имен Basics3D::Structure

  • Пространства имен
  • Члены пространств имен
Basics3D::Structure

Пространство имен Basics3D::Structure

Классы

struct | Pt
struct | CameraPos
class | Comp3D
class | ProjectiveToMetric
struct | Dlt

Функции

template<typename T>
static Types< T >::Vector_3 | FindTranslationToObjectCenterOfMass (const std::vector< Pt< T > > &points)
template<typename T>
static T | FindCameraQuaternion (const typename Types< T >::Matrix_3x3 &R, typename Types< T >::Vector_3 &direction)
template<typename T>
static void | SaveVRML_AsPointsSet (const char *filename, const std::vector< Pt< T > > &points, const std::vector< CameraPos< T > > &cam)
template<typename value_type, int N3_>
void | FromFM (const T_Points2DSet< C_Point2D > &in_points2D, const Vtl::NumAlg::Lin::ublas::c_matrix< value_type, N3_, N3_ > &F, const value_type in_sigma)

Функции

template<typename T>
static T Basics3D::Structure::FindCameraQuaternion | ( | const typename Types< T >::Matrix_3x3 & | R,
 |  | typename Types< T >::Vector_3 & | direction |
 | ) |  |  | [static]

Найти смещение в центр масс 3D модели. Для VRML нельзя помещать начало координат в положение камеры, так как направление камер задается относительно направления от камеры на начало СК.

template<typename T>
static Types<T>::Vector_3 Basics3D::Structure::FindTranslationToObjectCenterOfMass ( const std::vector< Pt< T > > & points ) [static]

Найти смещение в центр масс 3D модели. Для VRML нельзя помещать начало координат в положение камеры, так как направление камер задается относительно направления от камеры на начало СК.

template<typename value_type, int N3_>
void Basics3D::Structure::FromFM | ( | const T_Points2DSet< C_Point2D > & | in_points2D,
 |  | const Vtl::NumAlg::Lin::ublas::c_matrix< value_type, N3_, N3_ > & | F,
 |  | const value_type | in_sigma
 | ) |  |

Algorithm: 1) Build calibration matrices K and Essential matrix 2) Build camera matrices P=K(R|t), few hypothesis 3) Preliminary hypothesis check 4) For each reasonable hypothesis reconstruct via DLT and calc percent of points in from of cameras 5) Select best hypothesis 6) refine hypothesis 7) build mesh 8) Save VRML

template<typename T>
static void Basics3D::Structure::SaveVRML_AsPointsSet | ( | const char * | filename,
 |  | const std::vector< Pt< T > > & | points,
 |  | const std::vector< CameraPos< T > > & | cam |
 | ) |  |  | [static]


Pipe Line Filters: Пространство имен Dbg

  • Пространства имен
  • Члены пространств имен

Пространство имен Dbg

Средств для отладки. Подробнее...

Классы

struct | Fmt
struct | Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >

Пространства имен

namespace | Format

Подробное описание

Средств для отладки.


Pipe Line Filters: Пространство имен Dbg::Format

  • Пространства имен
  • Члены пространств имен
Dbg::Format

Пространство имен Dbg::Format

Классы

struct F


Pipe Line Filters: Пространство имен Gen

  • Пространства имен
  • Члены пространств имен

Пространство имен Gen
[Преобразование строк в данные и наоборот.]

Классы общего назначения. Подробнее...

Пространства имен

namespace Data
Общие классы и функции для манипулирования данными, вводом-выводомю.

Подробное описание

Классы общего назначения.


Pipe Line Filters: Пространство имен Gen::Data

  • Пространства имен
  • Члены пространств имен
Gen::Data

Пространство имен Gen::Data

Общие классы и функции для манипулирования данными, вводом-выводомю. Подробнее...

Классы

class | SaveFormat

Пространства имен

namespace | Impl

Функции

template<typename T1>
int | Sscanf (std::istream &is, T1 &v1)
Через потоки ввода-вывода STL (std::istream, std::isringstream, ...) выполняет действия аналогичные функции sscanf(). Строки формата нет. type-safe. Возвращает количество успешно сосканированных полей. Пример:
template<typename T1, typename T2>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2)
template<typename T1, typename T2, typename T3>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3)
template<typename T1, typename T2, typename T3, typename T4>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4)
template<typename T1, typename T2, typename T3, typename T4, typename T5>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13, T14 &v14)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13, T14 &v14, T15 &v15)
template<typename T1>
int | Sscanf (const char *str, T1 &v1)
template<typename T1>
int | Sscanf (std::string str, T1 &v1)
template<typename T1, typename T2>
int | Sscanf (const char *str, T1 &v1, T2 &v2)
template<typename T1, typename T2>
int | Sscanf (std::string str, T1 &v1, T2 &v2)
template<typename T1, typename T2, typename T3>
int | Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3)
template<typename T1, typename T2, typename T3>
int | Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3)
template<typename T1, typename T2, typename T3, typename T4>
int | Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4)
template<typename T1, typename T2, typename T3, typename T4>
int | Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4)
template<typename T1, typename T2, typename T3, typename T4, typename T5>
int | Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5)
template<typename T1, typename T2, typename T3, typename T4, typename T5>
int | Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
int | Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
int | Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
int | Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
int | Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
int | Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
int | Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
int | Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
int | Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
int | Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
int | Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
int | Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
int | Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
int | Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
int | Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
int | Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
int | Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
int | Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13, T14 &v14)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
int | Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13, T14 &v14)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
int | Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13, T14 &v14, T15 &v15)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
int | Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13, T14 &v14, T15 &v15)

Подробное описание

Общие классы и функции для манипулирования данными, вводом-выводомю.

Функции

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11,
 |  | T12 & | v12,
 |  | T13 & | v13,
 |  | T14 & | v14,
 |  | T15 & | v15
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11,
 |  | T12 & | v12,
 |  | T13 & | v13,
 |  | T14 & | v14,
 |  | T15 & | v15
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11,
 |  | T12 & | v12,
 |  | T13 & | v13,
 |  | T14 & | v14
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11,
 |  | T12 & | v12,
 |  | T13 & | v13,
 |  | T14 & | v14
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11,
 |  | T12 & | v12,
 |  | T13 & | v13
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11,
 |  | T12 & | v12,
 |  | T13 & | v13
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11,
 |  | T12 & | v12
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11,
 |  | T12 & | v12
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4
 | ) |  |

template<typename T1, typename T2, typename T3>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3
 | ) |  |

template<typename T1, typename T2, typename T3>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3
 | ) |  |

template<typename T1, typename T2>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1,
 |  | T2 & | v2
 | ) |  |

template<typename T1, typename T2>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1,
 |  | T2 & | v2
 | ) |  |

template<typename T1>
int Gen::Data::Sscanf | ( | std::string | str,
 |  | T1 & | v1
 | ) |  |

template<typename T1>
int Gen::Data::Sscanf | ( | const char * | str,
 |  | T1 & | v1
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11,
 |  | T12 & | v12,
 |  | T13 & | v13,
 |  | T14 & | v14,
 |  | T15 & | v15
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11,
 |  | T12 & | v12,
 |  | T13 & | v13,
 |  | T14 & | v14
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11,
 |  | T12 & | v12,
 |  | T13 & | v13
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11,
 |  | T12 & | v12
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4, typename T5>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5
 | ) |  |

template<typename T1, typename T2, typename T3, typename T4>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4
 | ) |  |

template<typename T1, typename T2, typename T3>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3
 | ) |  |

template<typename T1, typename T2>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2
 | ) |  |

template<typename T1>
int Gen::Data::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1
 | ) |  |

Через потоки ввода-вывода STL (std::istream, std::isringstream, ...) выполняет действия аналогичные функции sscanf(). Строки формата нет. type-safe. Возвращает количество успешно сосканированных полей. Пример:

        float v1;
        int v2;
        int v3;
        double v4;
        int n=Gen::Data::Sscanf("12.34 13",v1);
        std::cout << n << "  " << v1 << "  " << v2 << "  " << v3 << "  " << v4 <<std::endl;
        n=Gen::Data::Sscanf("12.34 13",v1,v2);
        std::cout << n << "  " << v1 << "  " << v2 << "  " << v3 << "  " << v4 <<std::endl;
        n=Gen::Data::Sscanf("12.34 13 33",v1,v2,v3,v4);
        std::cout << n << "  " << v1 << "  " << v2 << "  " << v3 << "  " << v4 <<std::endl;
        n=Gen::Data::Sscanf("12.34 13 33 4.0e-14",v1,v2,v3,v4);
        std::cout << n << "  " << v1 << "  " << v2 << "  " << v3 << "  " << v4 <<std::endl;
   /// результат n=4. Теперь все хорошо, считаны вск 4 значения.

Если один из аргументов тип, для которого определен operator>>(std::istream, Tx& ),то в том случае, если оператор генерирует исключение (throw) , оно будет перехвачено, а это поле и все последующие аргументы будут считаться не считанными, возвращаемое значение будет верно отражать эту ситуацию. Если произошла ошибка, но оператор не сгенерировал исключение, то решение будет принято на основе проверке значения is.fail().


Pipe Line Filters: Пространство имен Gen::Data::Impl

  • Пространства имен
  • Члены пространств имен
Gen::Data::Impl

Пространство имен Gen::Data::Impl

Функции

int | Sscanf (std::istream &is, Loki::EmptyType v1, Loki::EmptyType v2, Loki::EmptyType v3, Loki::EmptyType v4, Loki::EmptyType v5, Loki::EmptyType v6, Loki::EmptyType v7, Loki::EmptyType v8, Loki::EmptyType v9, Loki::EmptyType v10, Loki::EmptyType v11, Loki::EmptyType v12, Loki::EmptyType v13, Loki::EmptyType v14, Loki::EmptyType v15, Loki::EmptyType v16)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16>
int | Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13, T14 &v14, T15 &v15, T16 &v16)

Функции

template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16>
int Gen::Data::Impl::Sscanf | ( | std::istream & | is,
 |  | T1 & | v1,
 |  | T2 & | v2,
 |  | T3 & | v3,
 |  | T4 & | v4,
 |  | T5 & | v5,
 |  | T6 & | v6,
 |  | T7 & | v7,
 |  | T8 & | v8,
 |  | T9 & | v9,
 |  | T10 & | v10,
 |  | T11 & | v11,
 |  | T12 & | v12,
 |  | T13 & | v13,
 |  | T14 & | v14,
 |  | T15 & | v15,
 |  | T16 & | v16
 | ) |  |

int Gen::Data::Impl::Sscanf | ( | std::istream & | is,
 |  | Loki::EmptyType | v1,
 |  | Loki::EmptyType | v2,
 |  | Loki::EmptyType | v3,
 |  | Loki::EmptyType | v4,
 |  | Loki::EmptyType | v5,
 |  | Loki::EmptyType | v6,
 |  | Loki::EmptyType | v7,
 |  | Loki::EmptyType | v8,
 |  | Loki::EmptyType | v9,
 |  | Loki::EmptyType | v10,
 |  | Loki::EmptyType | v11,
 |  | Loki::EmptyType | v12,
 |  | Loki::EmptyType | v13,
 |  | Loki::EmptyType | v14,
 |  | Loki::EmptyType | v15,
 |  | Loki::EmptyType | v16 |
 | ) |  |  | [inline]


Pipe Line Filters: Пространство имен Hanina

  • Пространства имен
  • Члены пространств имен

Пространство имен Hanina

Классы

class | Hessian3D
class | Planes3
class | Comb_ridge
class | Check_4_grad_sign_change
class | FillingHessianMatrix3x3
class | p33< T, 0, 1 >
class | p33< T, 1, 2 >
class | p33< T, 0, 2 >
class | ScaleScan3x3
struct | HessianDetSqrt
struct | HessianEigenDiff
struct | HessianEigenDiffAndMaxCurvatureDirection
struct | Luv_from_xy_derivatives
class | ZeroCrossVisualization
class | ZeroCross

Функции

template<int d_a, int d_b, typename T, class F>
void | v12_bilin (T alpha, T beta, T &v1, T &v2, F p)
template<typename T, class F>
void | v12_bilinear (T alpha, T beta, T &v1, T &v2, F p)

Функции

template<int d_a, int d_b, typename T, class F>
void Hanina::v12_bilin | ( | T | alpha,
 |  | T | beta,
 |  | T & | v1,
 |  | T & | v2,
 |  | F | p
 | ) |  |

template<typename T, class F>
void Hanina::v12_bilinear | ( | T | alpha,
 |  | T | beta,
 |  | T & | v1,
 |  | T & | v2,
 |  | F | p
 | ) |  |


Pipe Line Filters: Пространство имен IFF

  • Пространства имен
  • Члены пространств имен

Пространство имен IFF

Image File Formats, ONLY intrinsic used by library, DO NOT use directly! Подробнее...

Классы

struct | BMP_BitMapFileHeader
struct | BMP_BitMapInfoHeader
struct | RgbQuad
class | BmpRead
class | BmpWrite
class | FloatImageFile
class | OzFile
class | PBMfile
struct | TIFF_IFDentry
struct | TIFF_IFD
struct | TIFF_Header
struct | TIFF_ImageParms
struct | TiffTag
class | TiffWriteIFD
class | Tiff8Write
class | TiffReadIFD
class | Tiff8Read

Определения типов

typedef uint16_t | OzWord

Подробное описание

Image File Formats, ONLY intrinsic used by library, DO NOT use directly!

Типы

typedef uint16_t IFF::OzWord


Pipe Line Filters: Пространство имен Loki

  • Пространства имен
  • Члены пространств имен

Пространство имен Loki

Классы

struct Bool2Type
Analogous to Loki::Int2Type but for boolean type. Used to simplify code: instead using Loki::Int2Type<((a>b)?1:0)>() now use Loki::Bool2Type<(a>b)>(). Подробнее...


Pipe Line Filters: Пространство имен Students

  • Пространства имен
  • Члены пространств имен

Пространство имен Students

Пространства имен

namespace | Curve
namespace | Enhancement


Pipe Line Filters: Пространство имен Students::Curve

  • Пространства имен
  • Члены пространств имен
Students::Curve

Пространство имен Students::Curve

Классы

class EdgeDetect


Pipe Line Filters: Пространство имен Students::Enhancement

  • Пространства имен
  • Члены пространств имен
Students::Enhancement

Пространство имен Students::Enhancement

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Пространство имен Tests

  • Пространства имен
  • Члены пространств имен

Пространство имен Tests

Функции

void | test_save_x (float *block, std::string fname_root, size_t w, size_t h, bool gray)
void | CreateFileName (const char *fname, const char *postfix, const char *ext, std::string &res)
Vtl::Plf::F11::Comb< uint8_t,
Vtl::Plf::F11::GammaCorMult<
float >, Vtl::Plf::F11::Convert2ByteBounded > 		GammaCorFunctor ()
template<typename T>
void | SaveImageArray (const T *data, int w, int h, const char *baseName, const char *postfix)
template<typename T>
void | SaveColourImageArray (const T *dataR, const T *dataG, const T *dataB, int w, int h, const char *baseName, const char *postfix)
template<typename T>
void | NormalizeImage (const T *src, T *dst, int w, int h, T minDes=T(0), T maxDes=T(255))
template<typename T>
void | SaveNormImageArray (const T *data, int w, int h, const char *baseName, const char *postfix)
template<typename T>
void | SaveAbsImageArray (const T *data, int w, int h, const char *baseName, const char *postfix)
template<typename T, class ConvFunctor>
void | SaveImage (AImageMem8 *img, const T *data, int w, int h, int nls, ConvFunctor func, float sigma, const char *base_name, const char *postfix)
void | SaveImage (AImageMem8 *img, float sigma, const char *base_name, const char *postfix)

Функции

void Tests::CreateFileName | ( | const char * | fname,
 |  | const char * | postfix,
 |  | const char * | ext,
 |  | std::string & | res |
 | ) |  |  | [inline]

Vtl::Plf::F11::Comb< uint8_t, Vtl::Plf::F11::GammaCorMult<float>, Vtl::Plf::F11::Convert2ByteBounded > Tests::GammaCorFunctor ( ) [inline]

template<typename T>
void Tests::NormalizeImage | ( | const T * | src,
 |  | T * | dst,
 |  | int | w,
 |  | int | h,
 |  | T | minDes = T(0),
 |  | T | maxDes = T(255)
 | ) |  |

template<typename T>
void Tests::SaveAbsImageArray | ( | const T * | data,
 |  | int | w,
 |  | int | h,
 |  | const char * | baseName,
 |  | const char * | postfix
 | ) |  |

template<typename T>
void Tests::SaveColourImageArray | ( | const T * | dataR,
 |  | const T * | dataG,
 |  | const T * | dataB,
 |  | int | w,
 |  | int | h,
 |  | const char * | baseName,
 |  | const char * | postfix
 | ) |  |

void Tests::SaveImage | ( | AImageMem8 * | img,
 |  | float | sigma,
 |  | const char * | base_name,
 |  | const char * | postfix |
 | ) |  |  | [inline]

Примеры:
test_image_registration_via_fft.cpp и test_image_registration_via_oflow.cpp.

template<typename T, class ConvFunctor>
void Tests::SaveImage | ( | AImageMem8 * | img,
 |  | const T * | data,
 |  | int | w,
 |  | int | h,
 |  | int | nls,
 |  | ConvFunctor | func,
 |  | float | sigma,
 |  | const char * | base_name,
 |  | const char * | postfix |
 | ) |  |  | [inline]

template<typename T>
void Tests::SaveImageArray | ( | const T * | data,
 |  | int | w,
 |  | int | h,
 |  | const char * | baseName,
 |  | const char * | postfix
 | ) |  |

template<typename T>
void Tests::SaveNormImageArray | ( | const T * | data,
 |  | int | w,
 |  | int | h,
 |  | const char * | baseName,
 |  | const char * | postfix
 | ) |  |

void Tests::test_save_x | ( | float * | block,
 |  | std::string | fname_root,
 |  | size_t | w,
 |  | size_t | h,
 |  | bool | gray
 | ) |  |

Примеры:
test_image_registration_via_fft.cpp.


Pipe Line Filters: Пространство имен Vtl

  • Пространства имен
  • Члены пространств имен

Пространство имен Vtl

Computer Vision Template Library - С++ библиотека для разработки приложений в области компьютерного зрения и обработки изображений. Подробнее...

Пространства имен

namespace | Alg
namespace | Dbg
namespace | ImAlg
Содержит алгоритмы по обработке изображений.
namespace | Img
namespace | Meta
namespace | NumAlg
Методы и функции вычислительной математики.
namespace | Plf
Pipe Line Filtering (of images) library.
namespace | Types
Пространство имен Vtl::Types содержит ряд шаблонных определений для работы с типами:.

Функции

template<typename T>
T | sqr (T v)
template<typename T>
T | max (T a, T b, T c)
template<typename T>
T | max (T a, T b, T c, T d)
template<typename T>
T | min (T a, T b, T c)
template<typename T>
T | min (T a, T b, T c, T d)
template<typename T1, typename T2, typename T3>
T1 | ToBounds (T1 var, T2 min, T3 max)

Подробное описание

Computer Vision Template Library - С++ библиотека для разработки приложений в области компьютерного зрения и обработки изображений.


Pipe Line Filters: Пространство имен Vtl::Alg

  • Пространства имен
  • Члены пространств имен
Vtl::Alg

Пространство имен Vtl::Alg

Классы

struct | Factorial
Вычисляет факториал во время компиляции. Подробнее...
struct | Factorial< 0 >
struct | isOdd
Определяет на стадии компиляции нечетное число или нет. Если нечетное, то Vtl::Alg::isOdd::value равно 1, иначе 0. Подробнее...
struct | x_to_N
Вычисляет x^N, т.е. pow(x,N). N - целое известное на момент компиляции. Подробнее...

Пространства имен

namespace | Impl

Функции

template<typename T>
T | n_pow (T x, Vtl::Types::Int2Type< 1 >)
template<typename T, unsigned N>
T | n_pow (T x, Vtl::Types::Int2Type< N >)
template<unsigned N, typename T>
T | minus_if_odd (T x)
minus_if_odd<N>(x) возвращает x, если N четное и -x, если N не четное.
template<unsigned N, typename T, typename TT>
T | mult_if_odd (T x, TT mult)
mult_if_odd<N>(x,mult) возвращает x, если N четное и x*mult, если N не четное.
template<bool do_mult, typename T, typename TT>
T | mult_if (T x, TT mult)
mult_if<do_mult>(x,mult) возвращает x, если do_mult=false и x*mult, если do_mult=true.
template<unsigned N, typename T>
T | sincos (T x)
sincos<N>(x) возвращает sin(x), если N-четное, и cos(x), если N-нечетное. С точностью до знака это соответствует N-ой производной от sin(x).
template<unsigned N, typename T>
T | dsin (T x)
dsin<N>(x) возвращает значение N-ой производной от sin(x) по х. Результат представляется выражением

где $ { [ ... ] } $ обозначает округление до ближайшего целого не превышающего значение аргумента.

template<typename T>
T | Return1stArg (T arg1, T arg2, Loki::Int2Type< true >)
template<typename T>
T | Return1stArg (T arg1, T arg2, Loki::Int2Type< false >)
template<bool first, typename T>
T | Return1stArg (T arg1, T arg2)
Если параметр шаблона first равен true - возвращает первый аргумент, иначе - второй. Остальные аргументы не использует.
template<typename T>
T | ReturnArg_ (T arg1, T arg2, Loki::Int2Type< 0 >)
Возвращает аргумент с номером n. Остальные аргументы не использует. Первый аргумент имеет номер 0 (нуль).
template<typename T>
T | ReturnArg_ (T arg1, T arg2, Loki::Int2Type< 1 >)
template<int n, typename T>
T | ReturnArg (T arg1, T arg2)
template<typename T>
T | ReturnArg_ (T arg1, T arg2, T arg3, Loki::Int2Type< 0 >)
template<typename T>
T | ReturnArg_ (T arg1, T arg2, T arg3, Loki::Int2Type< 1 >)
template<typename T>
T | ReturnArg_ (T arg1, T arg2, T arg3, Loki::Int2Type< 2 >)
template<int n, typename T>
T | ReturnArg (T arg1, T arg2, T arg3)
template<typename T>
T | ReturnArg_ (T arg1, T arg2, T arg3, T arg4, Loki::Int2Type< 0 >)
template<typename T>
T | ReturnArg_ (T arg1, T arg2, T arg3, T arg4, Loki::Int2Type< 1 >)
template<typename T>
T | ReturnArg_ (T arg1, T arg2, T arg3, T arg4, Loki::Int2Type< 2 >)
template<typename T>
T | ReturnArg_ (T arg1, T arg2, T arg3, T arg4, Loki::Int2Type< 3 >)
template<int n, typename T>
T | ReturnArg (T arg1, T arg2, T arg3, T arg4)
template<typename T>
T | ReturnArg_ (T arg1, T arg2, T arg3, T arg4, T arg5, Loki::Int2Type< 0 >)
template<typename T>
T | ReturnArg_ (T arg1, T arg2, T arg3, T arg4, T arg5, Loki::Int2Type< 1 >)
template<typename T>
T | ReturnArg_ (T arg1, T arg2, T arg3, T arg4, T arg5, Loki::Int2Type< 2 >)
template<typename T>
T | ReturnArg_ (T arg1, T arg2, T arg3, T arg4, T arg5, Loki::Int2Type< 3 >)
template<typename T>
T | ReturnArg_ (T arg1, T arg2, T arg3, T arg4, T arg5, Loki::Int2Type< 4 >)
template<int n, typename T>
T | ReturnArg (T arg1, T arg2, T arg3, T arg4, T arg5)

Функции

template<unsigned N, typename T>
T Vtl::Alg::dsin ( T x )

dsin<N>(x) возвращает значение N-ой производной от sin(x) по х. Результат представляется выражением

где $ { [ ... ] } $ обозначает округление до ближайшего целого не превышающего значение аргумента.

template<unsigned N, typename T>
T Vtl::Alg::minus_if_odd ( T x )

minus_if_odd<N>(x) возвращает x, если N четное и -x, если N не четное.

template<bool do_mult, typename T, typename TT>
T Vtl::Alg::mult_if | ( | T | x,
 |  | TT | mult
 | ) |  |

mult_if<do_mult>(x,mult) возвращает x, если do_mult=false и x*mult, если do_mult=true.

template<unsigned N, typename T, typename TT>
T Vtl::Alg::mult_if_odd | ( | T | x,
 |  | TT | mult
 | ) |  |

mult_if_odd<N>(x,mult) возвращает x, если N четное и x*mult, если N не четное.

template<typename T, unsigned N>
T Vtl::Alg::n_pow | ( | T | x,
 |  | Vtl::Types::Int2Type< N > |
 | ) |  |

template<typename T>
T Vtl::Alg::n_pow | ( | T | x,
 |  | Vtl::Types::Int2Type< 1 > |
 | ) |  |

template<bool first, typename T>
T Vtl::Alg::Return1stArg | ( | T | arg1,
 |  | T | arg2
 | ) |  |

Если параметр шаблона first равен true - возвращает первый аргумент, иначе - второй. Остальные аргументы не использует.

template<typename T>
T Vtl::Alg::Return1stArg | ( | T | arg1,
 |  | T | arg2,
 |  | Loki::Int2Type< false > |
 | ) |  |

template<typename T>
T Vtl::Alg::Return1stArg | ( | T | arg1,
 |  | T | arg2,
 |  | Loki::Int2Type< true > |
 | ) |  |

template<int n, typename T>
T Vtl::Alg::ReturnArg | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3,
 |  | T | arg4,
 |  | T | arg5
 | ) |  |

template<int n, typename T>
T Vtl::Alg::ReturnArg | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3,
 |  | T | arg4
 | ) |  |

template<int n, typename T>
T Vtl::Alg::ReturnArg | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3
 | ) |  |

template<int n, typename T>
T Vtl::Alg::ReturnArg | ( | T | arg1,
 |  | T | arg2
 | ) |  |

template<typename T>
T Vtl::Alg::ReturnArg_ | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3,
 |  | T | arg4,
 |  | T | arg5,
 |  | Loki::Int2Type< 4 > |
 | ) |  |

template<typename T>
T Vtl::Alg::ReturnArg_ | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3,
 |  | T | arg4,
 |  | T | arg5,
 |  | Loki::Int2Type< 3 > |
 | ) |  |

template<typename T>
T Vtl::Alg::ReturnArg_ | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3,
 |  | T | arg4,
 |  | T | arg5,
 |  | Loki::Int2Type< 2 > |
 | ) |  |

template<typename T>
T Vtl::Alg::ReturnArg_ | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3,
 |  | T | arg4,
 |  | T | arg5,
 |  | Loki::Int2Type< 1 > |
 | ) |  |

template<typename T>
T Vtl::Alg::ReturnArg_ | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3,
 |  | T | arg4,
 |  | T | arg5,
 |  | Loki::Int2Type< 0 > |
 | ) |  |

template<typename T>
T Vtl::Alg::ReturnArg_ | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3,
 |  | T | arg4,
 |  | Loki::Int2Type< 3 > |
 | ) |  |

template<typename T>
T Vtl::Alg::ReturnArg_ | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3,
 |  | T | arg4,
 |  | Loki::Int2Type< 2 > |
 | ) |  |

template<typename T>
T Vtl::Alg::ReturnArg_ | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3,
 |  | T | arg4,
 |  | Loki::Int2Type< 1 > |
 | ) |  |

template<typename T>
T Vtl::Alg::ReturnArg_ | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3,
 |  | T | arg4,
 |  | Loki::Int2Type< 0 > |
 | ) |  |

template<typename T>
T Vtl::Alg::ReturnArg_ | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3,
 |  | Loki::Int2Type< 2 > |
 | ) |  |

template<typename T>
T Vtl::Alg::ReturnArg_ | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3,
 |  | Loki::Int2Type< 1 > |
 | ) |  |

template<typename T>
T Vtl::Alg::ReturnArg_ | ( | T | arg1,
 |  | T | arg2,
 |  | T | arg3,
 |  | Loki::Int2Type< 0 > |
 | ) |  |

template<typename T>
T Vtl::Alg::ReturnArg_ | ( | T | arg1,
 |  | T | arg2,
 |  | Loki::Int2Type< 1 > |
 | ) |  |

template<typename T>
T Vtl::Alg::ReturnArg_ | ( | T | arg1,
 |  | T | arg2,
 |  | Loki::Int2Type< 0 > |
 | ) |  |

Возвращает аргумент с номером n. Остальные аргументы не использует. Первый аргумент имеет номер 0 (нуль).

template<unsigned N, typename T>
T Vtl::Alg::sincos ( T x )

sincos<N>(x) возвращает sin(x), если N-четное, и cos(x), если N-нечетное. С точностью до знака это соответствует N-ой производной от sin(x).

См. также:
dsin()


Pipe Line Filters: Пространство имен Vtl::Alg::Impl

  • Пространства имен
  • Члены пространств имен
Vtl::Alg::Impl

Пространство имен Vtl::Alg::Impl

Функции

template<typename T>
T | minus_if_odd (T x, Loki::Int2Type< isOdd< 0 >::value >)
template<typename T>
T | minus_if_odd (T x, Loki::Int2Type< isOdd< 1 >::value >)
template<typename T, typename TT>
T | mult_if (T x, TT mult, Loki::Int2Type< false >)
template<typename T, typename TT>
T | mult_if (T x, TT mult, Loki::Int2Type< true >)
template<typename T>
T | sincos (T x, Loki::Int2Type< isOdd< 0 >::value >)
template<typename T>
T | sincos (T x, Loki::Int2Type< isOdd< 1 >::value >)

Функции

template<typename T>
T Vtl::Alg::Impl::minus_if_odd | ( | T | x,
 |  | Loki::Int2Type< isOdd< 1 >::value > |
 | ) |  |

template<typename T>
T Vtl::Alg::Impl::minus_if_odd | ( | T | x,
 |  | Loki::Int2Type< isOdd< 0 >::value > |
 | ) |  |

template<typename T, typename TT>
T Vtl::Alg::Impl::mult_if | ( | T | x,
 |  | TT | mult,
 |  | Loki::Int2Type< true > |
 | ) |  |

template<typename T, typename TT>
T Vtl::Alg::Impl::mult_if | ( | T | x,
 |  | TT | mult,
 |  | Loki::Int2Type< false > |
 | ) |  |

template<typename T>
T Vtl::Alg::Impl::sincos | ( | T | x,
 |  | Loki::Int2Type< isOdd< 1 >::value > |
 | ) |  |

template<typename T>
T Vtl::Alg::Impl::sincos | ( | T | x,
 |  | Loki::Int2Type< isOdd< 0 >::value > |
 | ) |  |


Pipe Line Filters: Пространство имен Vtl::Dbg

  • Пространства имен
  • Члены пространств имен
Vtl::Dbg

Пространство имен Vtl::Dbg

Классы

class TimeElapsed


Pipe Line Filters: Пространство имен Vtl::ImAlg

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg

Пространство имен Vtl::ImAlg

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

Пространства имен

namespace | Bres
Алгоритмы Брезенхэма рисования линий, окружностей, эллипсов, заполнения области. Как 'рисовать' - задается функтором, поэтому можно не только рисовать, но и использовать в вычислениях.
namespace | C
Цветовые системы координат, цветовые пространства. Функторы для конвертации из одной системы координат в другую. Функторы для классов PixByPix3to1 и PixByPix3to3 : работа с цветовыми системами координат. НЕДОДЕЛАНО! Проверено только YCbCr.
namespace | Conv
namespace | Edt
namespace | Model
Содержит классы - модели искомого преобразования при совмещении изображений. Используются классом Vtl::ImAlg::Registration::OFlow.
namespace | Registration
Алгоритмы совмещения изображений.
namespace | Resamp
Cодержит функции и классы, которые выполняют разноображные преобразования изображения, используя интерполяцию (например билинейную).
namespace | Tools
Cодержит функции и классы, которые выполняют преобразования изображения, общего назначения. Копирование, копирование с преобразованием типа, по-пиксельные операции типа сложения умножения вычисления функции и.т.д.
namespace | Transf
объекты для преобразования координат. ИСпользуются в частности в пространстве имен Model. В отличие от объектов пространства имен Model и Resamp не умеют ничего кроме как по заданным координатам вычислить преобразованные.
namespace | WndFun
Функторы, используемые в ядрах сверток и ограничении окном. Все функции не нормированы в смысле интеграла, но нормированы так, чтобы (нулевая производная, т.е. сама функция) максимум функции был равен единице, т.е так, как должно быть при ограничении окном.

Подробное описание

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


Pipe Line Filters: Пространство имен Vtl::ImAlg::Bres

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::Bres

Пространство имен Vtl::ImAlg::Bres

Алгоритмы Брезенхэма рисования линий, окружностей, эллипсов, заполнения области. Как 'рисовать' - задается функтором, поэтому можно не только рисовать, но и использовать в вычислениях. Подробнее...

Классы

class | Draw
class | DrawDotted
class | DrawGradient
class | SetPixelGray
Алгоритм перемещения по пикселям, в предположении, что пиксели расположены в памяти в виде одномерного массива, строка за строкой. Смещение к пикселю с тем же X на следующей строке может быть отрицательным и может превышать по модулю количество пикселей в строке изображения. Способ отрисовки пиксекля задается функтором D, в качестве образца такого функтора см. классы Vtl::Alg::Bres::Draw, Vtl::Alg::Bres::DrawDotted . Подробнее...
class | Line
Алгоритм Брезенхэма 'рисования' линии. Написан по мотивам [Wilton] , Listing 6-2 . В отличие от книги не используется операция перестановки концов отрезка (Swap), чтобы движение вдоль линии всегда шло в направлении возрастания координаты, так как при желании рисовать например ломаные пунктирные линии это будет приводить к нарушению шаблона (маски) пунктира. Поэтому обработка различных направлений движения сделана отдельно. Класс реализован так, что он не занимается собственно рисованием, а вызывает для этой цели функтор (параметр шаблона), который умеет выполнять следующие действия:. Подробнее...
class | Circle
Алгоритм 'рисования' окружности. Подробнее...
class | EllipseH
Алгоритм 'рисования' эллипса с полуосями в горизонтальном и вертикальном направлении. // Listing 7-2. Подробнее...
class | Ellipse
Алгоритм 'рисования' эллипса с произвольно ориентированной большой осью. Подробнее...
class | Fill
Алгоритм заполнения области. Подробнее...

Подробное описание

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


Pipe Line Filters: Пространство имен Vtl::ImAlg::C

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::C

Пространство имен Vtl::ImAlg::C
[Elementary filters]

Цветовые системы координат, цветовые пространства. Функторы для конвертации из одной системы координат в другую. Функторы для классов PixByPix3to1 и PixByPix3to3 : работа с цветовыми системами координат. НЕДОДЕЛАНО! Проверено только YCbCr. Подробнее...

Классы

class | Normalizer< T, ColorSystem, nNoScale >
class | Normalizer< T, ColorSystem, nStretch >
class | Normalizer< T, ColorSystem, nSaveRatio >
class | Normalizer< T, ColorSystem, nSaveChrom >
struct | XYZ
converts RGB709 to CIE XYZ color coordinates. Подробнее...
struct | YCbCr
Цветовое пространство YCbCr. Подробнее...
struct | EElEll
Цветовое пространство, введенное в работе [Geusebroek 2001 Color Invariance] . Обладает свойствами инвариантности к теням, бликам и.т.д (shading, highlighting). Подробнее...
struct | YIQ
Цветовое пространство YIQ. Подробнее...
struct | YUV
Цветовое пространство YUV. Подробнее...
struct | IV1V2
Специально цветовое пространство, используется struct HSI. Подробнее...
struct | HSV
Цветовое пространство HSV . The Hue/Saturation/Value model was created by A. R. Smith in 1978. It is based on such intuitive color characteristics as tint, shade and tone (or family, purety and intensity). The coordinate system is cylindrical, and the colors are defined inside a hexcone. The hue value H runs from 0 to 360?. The saturation S is the degree of strength or purity and is from 0 to 1. Purity is how much white is added to the color, so S=1 makes the purest color (no white). Brightness V also ranges from 0 to 1, where 0 is the black. Подробнее...
struct | HSL
Цветовое пространство HSL . The Hue/Saturation/Value. Подробнее...
struct | HSI
Цветовое пространство HSI (or may be refered as IHS). The Hue/Saturation/Intensity. Подробнее...
struct | Lab
Цветовое пространство L*a*b*. Подробнее...

Перечисления

enum NormalizationType {
nNoScale = 0, nStretch = 1, nSaveRatio = 2, nSaveChrom = 3,
nDefault = nStretch
}
enum | SystemType { sys_other = 0, sys_chrom = 1, sys_hue = 2 }

Функции

double | HSV_HSL_hue (double max, double r, double g, double b, double delta)

Подробное описание

Цветовые системы координат, цветовые пространства. Функторы для конвертации из одной системы координат в другую. Функторы для классов PixByPix3to1 и PixByPix3to3 : работа с цветовыми системами координат. НЕДОДЕЛАНО! Проверено только YCbCr.

Перечисления

enum Vtl::ImAlg::C::NormalizationType

Элементы перечислений:
nNoScale
nStretch
nSaveRatio
nSaveChrom
nDefault

enum Vtl::ImAlg::C::SystemType

Элементы перечислений:
sys_other
sys_chrom
sys_hue

Функции

double Vtl::ImAlg::C::HSV_HSL_hue | ( | double | max,
 |  | double | r,
 |  | double | g,
 |  | double | b,
 |  | double | delta |
 | ) |  |  | [inline]

HSV and HSL systems use the same definition of Hue, here delta=max(r,g,b)-min(r,g,b) Returns value in bounds 0..6.


Pipe Line Filters: Пространство имен Vtl::ImAlg::Conv

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::Conv

Пространство имен Vtl::ImAlg::Conv

Классы

class | SliceIter
Итератор по массиву, шаг известен на момент компиляции. Подробнее...
class | SliceIter< T, 0 >
Итератор по массиву, шаг НЕ известен на момент компиляции и становится известным только в runtime. Подробнее...
class | SliceIterConst
Итератор по массиву, шаг известен на момент компиляции. Подробнее...
class | SliceIterConst< T, 0 >
Итератор по массиву, шаг НЕ известен на момент компиляции и становится известным только в runtime. Подробнее...
class | CyclicConv
Вычисление циклической свертки. Подробнее...
class | CyclicConvInplace
Вычисление циклической свертки inplace. Подробнее...
class | Conv
Вычисление свертки, края массива дополняются отражением. Подробнее...
class | ConvInplace
Вычисление свертки, края массива дополняются отражением. Подробнее...
class | Conv2D
Выполняет свертку/кросскорреляцию циклическую или с дополнением за края методом отражения двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data,width,height, nls (Next line shift, величина, которую надо прибавить к указателю, чтобы он указывал на пиксель следующей строки строго под текущим) с двумерным сепарабельным ядром, заданным ОДНОМЕРНЫМ ядром/ядрами. K, K1, K2 - тип ядра свертки(кросскорреляции) Ядро должно быть класса Kernel::Base или производным от него, созданным с параметрами kernel_type_=KT_Conv или KT_Corr (в зввисимости от того требуется вычислить свертку или кросскорреляцию) , параметр шаблона Base double_kernel_ ДОЛЖЕН БЫТЬ true. Подробнее...
class | FastGaussConvolve
Быстрая рекурсивная реализация свертки с гауссом и его первыми 3 производными. По статье [Young_Vliet_1995]. Подробнее...

Пространства имен

namespace | Impl
Детали реализации, не использовать напрямую!

Функции

template<typename T, typename iterator_in, typename iterator_ker>
T | Conv1pt (iterator_in in, iterator_ker begin, iterator_ker end)
Вычисление свертки в одной точке.
template<typename iterator_in, typename iterator_out, typename Kernel>
void | ConvolveNoExt (iterator_in begin, iterator_in end, iterator_out out, const Kernel &ker)
Вычисление 1D свертки по 2D массиву, без обработки концов. Эта перегруженная функция предполагает, что
входные итераторы являются объектом, который при разименовании дает итератор на начало последовательности, по которой собственно вычисляется свертка(кросскорреляция) с ядром в точке.
Выходной итератор является объектом, который содержит определение типа value_type.
Типовое применение: Дан двумерный массив, для каждого элемента строки надо вычислить результат, равный кросскорреляции этого элемента и его соседей из соседних строк с ядром. Чтобы правильно обработать концы последовательности, ее следует дополнить желаемым образом, влево - на Kernel.left() точек и справа на Kernel.right() точек.
template<typename iterator_in, typename iterator_out, typename Kernel>
void | ConvolveNoExt (iterator_in begin, iterator_in end, iterator_out *out, const Kernel &ker)
Вычисление 1D свертки по 2D массиву, без обработки концов. Эта перегруженная функция предполагает, что
входные итераторы являются объектом, который при разименовании дает итератор на начало последовательности, по которой собственно вычисляется свертка(кросскорреляция) с ядром в точке.
Выходной итератор является обычным указателем .
Типовое применение: Дан двумерный массив, для каждого элемента строки надо вычислить результат, равный кросскорреляции этого элемента и его соседей из соседних строк с ядром.
Чтобы правильно обработать концы последовательности, ее следует дополнить желаемым образом, влево - на Kernel.left() точек и справа на Kernel.right() точек.
template<typename iterator_in, typename iterator_out, typename Kernel>
void | ConvolveNoExt (iterator_in *begin, iterator_in *end, iterator_out out, const Kernel &ker)
Вычисление 1D свертки, без обработки концов. Эта перегруженная функция предполагает, что
входные итераторы являются обычными указателями, begin при разименовании дает значение в точке.
Вычисляется свертка(кросскорреляция) последовательности с ядром в классическом понимании.
Выходной итератор является объектом, который содержит определение типа value_type.
Типовое применение: Вычисляется свертка(кросскорреляция) последовательности с ядром в классическом понимании.
Чтобы правильно обработать концы последовательности, ее следует дополнить желаемым образом, влево - на Kernel.left() точек и справа на Kernel.right() точек.
template<typename iterator_in, typename iterator_out, typename Kernel>
void | ConvolveNoExt (iterator_in *begin, iterator_in *end, iterator_out *out, const Kernel &ker)
Вычисление 1D свертки, без обработки концов. Эта перегруженная функция предполагает, что входные итераторы являются обычными указателями, begin при разименовании дает значение в точке.
Выходной итератор является обычным указателем .
Типовое применение: Вычисляется свертка(кросскорреляция) последовательности с ядром в классическом понимании.
Чтобы правильно обработать концы последовательности, ее следует дополнить желаемым образом, влево - на Kernel.left() точек и справа на Kernel.right() точек.

Функции

template<typename T, typename iterator_in, typename iterator_ker>
T Vtl::ImAlg::Conv::Conv1pt | ( | iterator_in | in,
 |  | iterator_ker | begin,
 |  | iterator_ker | end
 | ) |  |

Вычисление свертки в одной точке.

template<typename iterator_in, typename iterator_out, typename Kernel>
void Vtl::ImAlg::Conv::ConvolveNoExt | ( | iterator_in * | begin,
 |  | iterator_in * | end,
 |  | iterator_out * | out,
 |  | const Kernel & | ker
 | ) |  |

Вычисление 1D свертки, без обработки концов. Эта перегруженная функция предполагает, что входные итераторы являются обычными указателями, begin при разименовании дает значение в точке.
Выходной итератор является обычным указателем .
Типовое применение: Вычисляется свертка(кросскорреляция) последовательности с ядром в классическом понимании.
Чтобы правильно обработать концы последовательности, ее следует дополнить желаемым образом, влево - на Kernel.left() точек и справа на Kernel.right() точек.

См. также:
Base

template<typename iterator_in, typename iterator_out, typename Kernel>
void Vtl::ImAlg::Conv::ConvolveNoExt | ( | iterator_in * | begin,
 |  | iterator_in * | end,
 |  | iterator_out | out,
 |  | const Kernel & | ker
 | ) |  |

Вычисление 1D свертки, без обработки концов. Эта перегруженная функция предполагает, что
входные итераторы являются обычными указателями, begin при разименовании дает значение в точке.
Вычисляется свертка(кросскорреляция) последовательности с ядром в классическом понимании.
Выходной итератор является объектом, который содержит определение типа value_type.
Типовое применение: Вычисляется свертка(кросскорреляция) последовательности с ядром в классическом понимании.
Чтобы правильно обработать концы последовательности, ее следует дополнить желаемым образом, влево - на Kernel.left() точек и справа на Kernel.right() точек.

См. также:
Base

template<typename iterator_in, typename iterator_out, typename Kernel>
void Vtl::ImAlg::Conv::ConvolveNoExt | ( | iterator_in | begin,
 |  | iterator_in | end,
 |  | iterator_out * | out,
 |  | const Kernel & | ker
 | ) |  |

Вычисление 1D свертки по 2D массиву, без обработки концов. Эта перегруженная функция предполагает, что
входные итераторы являются объектом, который при разименовании дает итератор на начало последовательности, по которой собственно вычисляется свертка(кросскорреляция) с ядром в точке.
Выходной итератор является обычным указателем .
Типовое применение: Дан двумерный массив, для каждого элемента строки надо вычислить результат, равный кросскорреляции этого элемента и его соседей из соседних строк с ядром.
Чтобы правильно обработать концы последовательности, ее следует дополнить желаемым образом, влево - на Kernel.left() точек и справа на Kernel.right() точек.

См. также:
Base

template<typename iterator_in, typename iterator_out, typename Kernel>
void Vtl::ImAlg::Conv::ConvolveNoExt | ( | iterator_in | begin,
 |  | iterator_in | end,
 |  | iterator_out | out,
 |  | const Kernel & | ker
 | ) |  |

Вычисление 1D свертки по 2D массиву, без обработки концов. Эта перегруженная функция предполагает, что
входные итераторы являются объектом, который при разименовании дает итератор на начало последовательности, по которой собственно вычисляется свертка(кросскорреляция) с ядром в точке.
Выходной итератор является объектом, который содержит определение типа value_type.
Типовое применение: Дан двумерный массив, для каждого элемента строки надо вычислить результат, равный кросскорреляции этого элемента и его соседей из соседних строк с ядром. Чтобы правильно обработать концы последовательности, ее следует дополнить желаемым образом, влево - на Kernel.left() точек и справа на Kernel.right() точек.

См. также:
Base
Примеры:
test_plf_kernels.cpp.


Pipe Line Filters: Пространство имен Vtl::ImAlg::Conv::Impl

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::Conv::Impl

Пространство имен Vtl::ImAlg::Conv::Impl

Детали реализации, не использовать напрямую! Подробнее...

Классы

class | Buffer
Буфер для сверток. Подробнее...

Пространства имен

namespace | FastGaussConvolve

Подробное описание

Детали реализации, не использовать напрямую!


Pipe Line Filters: Пространство имен Vtl::ImAlg::Conv::Impl::FastGaussConvolve

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::Conv::Impl::FastGaussConvolve

Пространство имен Vtl::ImAlg::Conv::Impl::FastGaussConvolve

Классы

class | HeadF< T, 0 >
class | HeadR< T, 0 >
class | HeadF< T, 1 >
class | HeadR< T, 1 >
class | HeadF< T, 2 >
class | HeadR< T, 2 >
class | HeadF< T, 3 >
class | HeadR< T, 3 >
class | Tail
class | Forward
class | Reverse
class | Triggs< 3 >

Функции

template<typename T>
void | border (const T *src, T *dest, int sx)

Функции

template<typename T>
void Vtl::ImAlg::Conv::Impl::FastGaussConvolve::border | ( | const T * | src,
 |  | T * | dest,
 |  | int | sx
 | ) |  |


Pipe Line Filters: Пространство имен Vtl::ImAlg::Edt

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::Edt

Пространство имен Vtl::ImAlg::Edt

Классы

struct | isEdge
class | Meijster
class | EdtEdgeCoord


Pipe Line Filters: Пространство имен Vtl::ImAlg::Model

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::Model

Пространство имен Vtl::ImAlg::Model

Содержит классы - модели искомого преобразования при совмещении изображений. Используются классом Vtl::ImAlg::Registration::OFlow. Подробнее...

Классы

class | Base
Класс - используется только в качестве базового класса для моделей. Закрыт для прямого использования. Нужен только для определения и реализации общих для этих классов действий в одном месте (для избежания copy-pase). Подробнее...
class | Offset
Класс - модель преобразования, соответствует поиску чистого сдвига, (Kanade-Lukas [KLT_TK]). Подробнее...
class | BaseAffine
Класс - используется только в качестве базового класса для моделей укладывающихся в рамки афинной. Закрыт для прямого использования. Нужен только для определения и реализации общих для этих классов действий в одном месте (для избежания copy-pase). Подробнее...
class | SkewYOffset
Класс - модель преобразования, соответствует поиску перекоса по y (Shi-Tomasi [Yurin_RegBushBroom2008] ). Подробнее...
class | SkewXOffset
Класс - модель преобразования, соответствует поиску перекоса по x (Shi-Tomasi [Yurin_RegBushBroom2008] ). Подробнее...
class | Similarity
Класс - модель преобразования, соответствует поиску полного афинного преобразования (Shi-Tomasi [KLT_ST] ). Подробнее...
class | Affine
Класс - модель преобразования, соответствует поиску полного афинного преобразования (Shi-Tomasi [KLT_ST] ). Подробнее...
class | Homography
Класс - модель преобразования, соответствует поиску проективного преобразования ( [Zokai_Wolberg_2005] ). Подробнее...

Функции

template<typename T>
std::ostream & | operator<< (std::ostream &os, const Offset< T > &model)
template<typename T>
std::ostream & | operator<< (std::ostream &os, const BaseAffine< T > &model)
template<typename T>
std::ostream & | operator<< (std::ostream &os, const Homography< T > &model)

Подробное описание

Содержит классы - модели искомого преобразования при совмещении изображений. Используются классом Vtl::ImAlg::Registration::OFlow.

Класс модели должен быть шаблоном, тип параметра определяет тип данных, с которыми идет работа. например

    template<typename T>
    class Affine
    {
    ...
    };

Класс должен определять три перечисления и ряд методов, например:

  template<typename T>
  class X
  {
  public:
      enum { N=6}; // количество параметров, определяющих модель преобразования, именно они будут искаться.
      enum { isLinear=1};// линейная модель или нет (1 или 0). Для динейной модели решение задачи оптического
                         // потока будет искаться как решение линейной задачи \ref Lit_KLT_ST, для нелинейной
                         // будет использован модифицированный алгоритм Левенберга-Маркварта \ref Lit_Zokai .
      enum { isStrightLineSaving=1}; // Сохраняет ли преобразование прямые линии прямыми, важно при определении
                                     // области, куда трансформируется изображение и при определении области,
                                     // по которой собственно ведутся вычисления.
  public:
        //Класс должен определять следующие открытые методы:
     void setIdentity();
     void Inverse();
     void UpdateByNewAfterThis(Affine& model_new);
     template<class VectorP> void set(VectorP theta_);
     void Interp(T* in,int w, int h,int nls,T* out) const;
     T max_err_at_rect(Affine& model_2,T x1,T y1,T x2,T y2) const;

  //шаблонные методы вычисления производных
        template<unsigned n> T Dx(T x,T y) const;
        template<unsigned n> T Dy(T x,T y) const;
  //или
        template<unsigned n> static T Dx(T x,T y);
        template<unsigned n> static T Dy(T x,T y);
  //эти функции должны быть максимально оптимизированы, подробности см. ниже.

    };

  ostream& operator<<(ostream& os,const X& model); //!< Следует определить способ печати модели, хотя бы для нужд отладки.
кроме того, класс должен допускать копирование и присваивание. Если это неверно работает по умолчанию (бинарное копирование), то должны быть определены соответствующие конструктор копирования и оператор присваивания.

Метод

     void setIdentity();
задает параметры модели такими, чтобы она соответствовала тождественному преобразованию.

Метод

     void Inverse();
изменяет модель на обратное преобразование.

Метод

     void UpdateByNewAfterThis(Affine& model_new);
Выполняет суперпозицию двух преобразований (моделей). Точнее пусть заданы две модели:
   Model A;
   Model B;
которые соответствуют операторам преобразования $T_A , T_B $ соответственно. Действуя на координаты [image] в плоскости изображения эти операторы дают координаты в плоскости преобразованного изображения [image] . Вызов функции
   A.UpdateByNewAfterThis(B);
должен заменять модель A на модель С такую, что $ T_С = T_B T_A $ , т.е. на координаты сначала действует преобразование A, затем преобразование B.

Из сказанного здесь следует, что модель (преобразование) должна образовывать группу

Метод

     template<class VectorP> void set(VectorP theta_);
вызывается классом Vtl::ImAlg::Registration::OFlow для обновления параметров модели. VectorP - это вектор длины N типа boost::numeric::ublas::c_vector (имеется синоним (alias) Vtl::NumAlg::Lin::ublas::c_vector ), где N - определенное выше перечисление.
Класс OFlow создает такой вектор, вычисляет его значение в ходе итераций и в процессе итераций обновляет модель.
Важно понимать, что параметр theta_ - это поправка к модели, а не сама модель. Т.е. модель должна быть параметризована параметрами theta_ так, чтобы если все компоненты theta_ равны нулю, получалось тождественное преобразование. Например, если преобразование - гомография, то оно определяется матрицей гомографии

черекз параметры theta_ это преобразование следует параметризовать следующим образом:

Метод

     void Interp(T* in,int w, int h,int nls,T* out) const;
преобразует серое изображение in, с шириной w, высотой h и количеством пикселей типа T в строке nls в выходное изображение out такого же типа и размера (и пикселей в сроке!), отличающееся от исходного обратным преобразованием, заданным моделью. Т.е. формально можно сказать, что модель является преобразованием выходного изображения во входное. Это сделано потому, что в случае необходимости модель всегда можно скопировать и инвертировать, а интерполяция изображения выполняется путем просмотра выходного изображения пиксель за пикселем, проецирования этих пикселей на входное изображение и вычисление яркости в этой точке с помощью интерполяции. Таким образом в начале функции Interp() пришлось бы сначала создавать и инвертировать копию модели, а потом проводить интерполяцию. Чтобы избежать таких "скрытых" от пользователя инверсий, функция просто определена как обратная, а пользователь может в случае необходимости явно выразить свое намерение.

Метод

     T max_err_at_rect(Affine& model_2,T x1,T y1,T x2,T y2) const;
вычисляет разницу интерполяции пикселей двумя моделями. x1,y1,x2,y2 задают прямоугольник (двумя углами) любой пиксель с координатами (x,y), лежащими в пределах этого прямоугольника моделью *this и model_2 будет отображен в какие то новые, но вероятно различные координаты. Функция должна вернуть максимальное по абсолютной величине различие таких координат по x и по y и максимальное по всем пикселям заданного квадрата.

Методы

    template<unsigned n> T Dx(T x,T y) const ;
    template<unsigned n> T Dy(T x,T y) const ;
возвращают значение производных модели по ее параметрам. Модель, определяемая оператором [image] . можно иначе представить как
тогда:
Dx<n> =
Dy<n> =

следует иметь ввиду, что эти функции вызываются на каждой итерации для каждого пикселя изображения, поэтому их следует максимально оптимизовать, так, чтобы при развертке шаблонов получался максимально эффективный код. Для этого, в случае, если значение производных зависит от текущих параметров модели - это должны быть константные функции, если не зависит - статические. В том случае, когда соответствующая производная константа (особенно 0 или 1), то явно должна возвращаться константа, а не переменная, которой присвоено константное значение. Всевозможные выборы (особенно связанные с параметром модели n, должны при малейшей возможности реализовываться так, чтобы вычисление производилось в момент компиляции, а не в runtime.

Функции

template<typename T>
std::ostream& Vtl::ImAlg::Model::operator<< | ( | std::ostream & | os,
 |  | const Homography< T > & | model
 | ) |  |

template<typename T>
std::ostream& Vtl::ImAlg::Model::operator<< | ( | std::ostream & | os,
 |  | const BaseAffine< T > & | model
 | ) |  |

template<typename T>
std::ostream& Vtl::ImAlg::Model::operator<< | ( | std::ostream & | os,
 |  | const Offset< T > & | model
 | ) |  |


Pipe Line Filters: Пространство имен Vtl::ImAlg::Registration

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::Registration

Пространство имен Vtl::ImAlg::Registration

Алгоритмы совмещения изображений. Подробнее...

Классы

class | Container
Контейнер для работы с системой Vtl::Plf. После обнаружения характеристических точек не рисует их на изображение, а помещает их координаты и значение в список. Сохраняет только max_size_ точек, для которых отклик фильтра был максимален. Число max_size_ не должно быть слишком большим, иначе работает не эффективно, типично max_size_ ~ 8. Подробнее...
class | Base
class | OFlowAllocStrategy
Класс отвечает за выделение памяти для работы совмещения по оптическому потоку (Kanade-Lukas [KLT_TK] , Shi-Tomasi [KLT_ST], Projective transform [Zokai_Wolberg_2005] ). Подробнее...
class | OFlow
Совмещение изображений методом оптического потока, см. прострнство имен Vtl::ImAlg::Registration::Model и класс AllocStrategy. Подробнее...
class | Storage
Класс, для выделения нескольких блоков памяти (и их освобождения). Обеспечивает выравнивание блоков, и обеспечивает, чтобы смещение между любой парой блоков не равнялось указанному числу. Подробнее см. описание к макроопределению PROCESSOR_MEMORY_AVOID_PTR_DIFF . Подробнее...
class | Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >
Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ и приводится только для сравнения и полноты. Ищется сдвиг, поворот и масштаб (до 1.8). Подробнее...
class | Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >
Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным [Yurin_RegBushBroom2008] на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ и приводится только для сравнения и полноты. Ищется сдвиг, поворот и масштаб (до 1.8). Подробнее...
class | Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным [Yurin_RegBushBroom2008] на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ. Ищется сдвиг, поворот и масштаб (до 1.8). Подробнее...

Пространства имен

namespace | Impl
Детали реализации, не использовать напрямую!

Подробное описание

Алгоритмы совмещения изображений.


Pipe Line Filters: Пространство имен Vtl::ImAlg::Registration::Impl

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::Registration::Impl

Пространство имен Vtl::ImAlg::Registration::Impl

Детали реализации, не использовать напрямую! Подробнее...

Пространства имен

namespace | OFlow
Детали реализации, не использовать напрямую!

Функции

template<typename Real_t>
void | comp_Phase (Real_t *image_phase, size_t n[], bool windowing)
template<typename Real_t>
void | flip_vert (Real_t *im, size_t n[])
template<typename Real_t>
void | transform_and_zero_freq (Real_t *im, size_t n[])
template<typename Real_t>
static void | window (Real_t *image, int width, int height, int nls, Real_t center_x, Real_t center_y, Real_t fill_by)
template<typename Real_t>
void | comp_AmpToPolar (Real_t *amp, Real_t *polar, size_t n[], Vtl::ImAlg::Resamp::LogGrid< float > &lsg)
template<typename Real_t>
void | comp_Rotate (Real_t *input, Real_t *result, size_t n[], float matrix_2x2[])
template<typename Real_t>
void | find_shift (Container< Real_t > &cont, Real_t *phase_1, Real_t *phase_2, Real_t *delta, size_t n[])
template<typename Real_t>
void | comp_phase_corr (Real_t *phase_1, Real_t *phase_2, Real_t *corr, size_t n[])
template<typename Real_t>
void | highpass_filtering_half (Real_t *im1, size_t n[])
template<typename Real_t>
void | highpass_filtering (Real_t *im1, size_t n[])
template<typename Real_t>
void | delta_correlation (Real_t *im, size_t n[])
template<typename Real_t>
Real_t | calc_total_sum (Real_t *im, size_t sz)
template<class Container_t, typename Real_t>
void | find_offset (Container_t &cont, Real_t *im, size_t n[])

Подробное описание

Детали реализации, не использовать напрямую!

Функции

template<typename Real_t>
Real_t Vtl::ImAlg::Registration::Impl::calc_total_sum | ( | Real_t * | im,
 |  | size_t | sz |
 | ) |  |  | [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Impl::comp_AmpToPolar | ( | Real_t * | amp,
 |  | Real_t * | polar,
 |  | size_t | n[],
 |  | Vtl::ImAlg::Resamp::LogGrid< float > & | lsg |
 | ) |  |  | [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Impl::comp_Phase | ( | Real_t * | image_phase,
 |  | size_t | n[],
 |  | bool | windowing |
 | ) |  |  | [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Impl::comp_phase_corr | ( | Real_t * | phase_1,
 |  | Real_t * | phase_2,
 |  | Real_t * | corr,
 |  | size_t | n[] |
 | ) |  |  | [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Impl::comp_Rotate | ( | Real_t * | input,
 |  | Real_t * | result,
 |  | size_t | n[],
 |  | float | matrix_2x2[] |
 | ) |  |  | [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Impl::delta_correlation | ( | Real_t * | im,
 |  | size_t | n[] |
 | ) |  |  | [inline]

template<class Container_t, typename Real_t>
void Vtl::ImAlg::Registration::Impl::find_offset | ( | Container_t & | cont,
 |  | Real_t * | im,
 |  | size_t | n[] |
 | ) |  |  | [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Impl::find_shift | ( | Container< Real_t > & | cont,
 |  | Real_t * | phase_1,
 |  | Real_t * | phase_2,
 |  | Real_t * | delta,
 |  | size_t | n[] |
 | ) |  |  | [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Impl::flip_vert | ( | Real_t * | im,
 |  | size_t | n[] |
 | ) |  |  | [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Impl::highpass_filtering | ( | Real_t * | im1,
 |  | size_t | n[] |
 | ) |  |  | [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Impl::highpass_filtering_half | ( | Real_t * | im1,
 |  | size_t | n[] |
 | ) |  |  | [inline]

template<typename Real_t>
void Vtl::ImAlg::Registration::Impl::transform_and_zero_freq | ( | Real_t * | im,
 |  | size_t | n[] |
 | ) |  |  | [inline]

template<typename Real_t>
static void Vtl::ImAlg::Registration::Impl::window | ( | Real_t * | image,
 |  | int | width,
 |  | int | height,
 |  | int | nls,
 |  | Real_t | center_x,
 |  | Real_t | center_y,
 |  | Real_t | fill_by |
 | ) |  |  | [static]


Pipe Line Filters: Пространство имен Vtl::ImAlg::Registration::Impl::OFlow

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::Registration::Impl::OFlow

Пространство имен Vtl::ImAlg::Registration::Impl::OFlow

Детали реализации, не использовать напрямую! Подробнее...

Классы

struct | BuildG
struct | BuildG< 0 >
class | BuildHB
class | BuildB
class | OFlowHelper

Функции

template<unsigned n, typename T, class M>
T | G (const M &model, T x, T y, T gx, T gy)

Подробное описание

Детали реализации, не использовать напрямую!

Функции

template<unsigned n, typename T, class M>
T Vtl::ImAlg::Registration::Impl::OFlow::G | ( | const M & | model,
 |  | T | x,
 |  | T | y,
 |  | T | gx,
 |  | T | gy
 | ) |  |


Pipe Line Filters: Пространство имен Vtl::ImAlg::Resamp

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::Resamp

Пространство имен Vtl::ImAlg::Resamp

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

Классы

class | InterpBilinear
Билинейной интерполяцией вычислить интенсивность изображенйи в точке (x,y). Координаты x,y задаются относительно левого верхнего угла изображения. Подробнее...
class | LinGrid
Для диапазона величин value_min , value_max задает РАВНОМЕРНУЮ сетку из N=N_grid_cells узлов. Номеру ячейки 0 соответвтует величина value_min, а номеру (N-1) - величина value_max. Промежуточным ячейкам i сетки соответствуют величины value_min+step*i , где шаг сетки равномерный: step=(value_max-value_min)/(N-1) . Подробнее...
class | LogGrid
Для диапазона величин value_min , value_max задает ЛОГАРИФМИЧЕСКУЮ сетку из N=N_grid_cells узлов. Номеру ячейки 0 соответвтует величина value_min, а номеру (N-1) - величина value_max. Промежуточным ячейкам i сетки соответствуют величины value_min*exp(step*i) , где логарифмический шаг сетки : step=(log(value_max)-log(value_min))/(N-1) . Подробнее...
class | PhiGrid

Функции

template<typename T, class Interpolator, class RadGrid, class PhiGrid>
void | CartToPolar (Interpolator &interp, float x0, float y0, T *polar, int width, int height, int nls, RadGrid &lsg, PhiGrid phiGrid)
template<typename T, class Interpolator>
void | RotateScale (Interpolator &interp, float x0, float y0, float phi, float scale, T *result, int width, int height, int nls)
template<typename T, class Interpolator>
void | Affine (Interpolator &interp, float x0_in, float y0_in, float x0_out, float y0_out, float matrix_2x2[], T *result, int width, int height, int nls)
template<typename T, class Interpolator, class Transformer>
void | Transform (const Interpolator &interp, const Transformer &transf, T *result, int width, int height, int nls)
Выполняет трансформацию (русамплинг) изображения в соответствии с моделью, заданной параметром Transformer (см. пространство имен namespace Vtl::ImAlg::Transf). Часто объект Transformer получается из объектов типа Vtl::ImAlg::Model. Исходное изображение описывается через Interpolator, см. например class InterpBilinear. Выходное изображение описывается параметрами result,width,height,nls.
template<typename T, typename TT, class Interpolator>
void | ProjectiveTransform (Interpolator &interp, TT *projective_mat_3x3, double x0_in, double y0_in, double x0_out, double y0_out, T *trans, int width, int height, int nls)
Подвергнуть изображение проективному преобразованию 'P'.

Подробное описание

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

Преобразования включают в себя: 1) Выполнение над изображением проективного преобразования 2) Развертка изображения на полярную плоскость.

Функции

template<typename T, class Interpolator>
void Vtl::ImAlg::Resamp::Affine | ( | Interpolator & | interp,
 |  | float | x0_in,
 |  | float | y0_in,
 |  | float | x0_out,
 |  | float | y0_out,
 |  | float | matrix_2x2[],
 |  | T * | result,
 |  | int | width,
 |  | int | height,
 |  | int | nls
 | ) |  |

Примеры:
test_color_registration.cpp.

template<typename T, class Interpolator, class RadGrid, class PhiGrid>
void Vtl::ImAlg::Resamp::CartToPolar | ( | Interpolator & | interp,
 |  | float | x0,
 |  | float | y0,
 |  | T * | polar,
 |  | int | width,
 |  | int | height,
 |  | int | nls,
 |  | RadGrid & | lsg,
 |  | PhiGrid | phiGrid
 | ) |  |

Выполняет интерполяцию (преобразование) изображения из декартовой системы координат в полярную (или логарифмически-полярную). Вообще говоря, шкала по оси [image] и по оси [image] задается объектами RadGrid и PhiGrid и не обязана быть линейной. Логарифмическая шкала по радиусу (инстанцирование шаблонного параметра RadGrid классом LogGrid)- только один из возможных вариантов. То же касается и диапазонов изменения параметра по углу и радиусу - они задаются через объекты RadGrid и PhiGrid, в частности не обязательно получать развертку по вем углам 0-2*Pi, можно затребовать развертку только в нужном диапазоне углов. x0, y0 - декартовы координаты точки которая считается центром и относительно которой делается разворот в полярную СК Прарметры polar,width,height,nls - задают выходное (результирующее) серое изображение.

template<typename T, typename TT, class Interpolator>
void Vtl::ImAlg::Resamp::ProjectiveTransform | ( | Interpolator & | interp,
 |  | TT * | projective_mat_3x3,
 |  | double | x0_in,
 |  | double | y0_in,
 |  | double | x0_out,
 |  | double | y0_out,
 |  | T * | trans,
 |  | int | width,
 |  | int | height,
 |  | int | nls
 | ) |  |

Подвергнуть изображение проективному преобразованию 'P'.

template<typename T, class Interpolator>
void Vtl::ImAlg::Resamp::RotateScale | ( | Interpolator & | interp,
 |  | float | x0,
 |  | float | y0,
 |  | float | phi,
 |  | float | scale,
 |  | T * | result,
 |  | int | width,
 |  | int | height,
 |  | int | nls
 | ) |  |

template<typename T, class Interpolator, class Transformer>
void Vtl::ImAlg::Resamp::Transform | ( | const Interpolator & | interp,
 |  | const Transformer & | transf,
 |  | T * | result,
 |  | int | width,
 |  | int | height,
 |  | int | nls
 | ) |  |

Выполняет трансформацию (русамплинг) изображения в соответствии с моделью, заданной параметром Transformer (см. пространство имен namespace Vtl::ImAlg::Transf). Часто объект Transformer получается из объектов типа Vtl::ImAlg::Model. Исходное изображение описывается через Interpolator, см. например class InterpBilinear. Выходное изображение описывается параметрами result,width,height,nls.


Pipe Line Filters: Пространство имен Vtl::ImAlg::Tools

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::Tools

Пространство имен Vtl::ImAlg::Tools

Cодержит функции и классы, которые выполняют преобразования изображения, общего назначения. Копирование, копирование с преобразованием типа, по-пиксельные операции типа сложения умножения вычисления функции и.т.д. Подробнее...

Пространства имен

namespace | findMax

Функции

template<typename T>
void | xchg (T &v1, T &v2)
template<typename RandomIter, class F>
void | copy_1_1 (RandomIter src_dst, size_t width, size_t height, int nls, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | copy_1_1 (ConstRandomIter src, size_t width, size_t height, int nls_s, RandomIter dst, int nls_d, F functor)
template<typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
void | copy_2_1 (ConstRandomIter1 src_1, size_t width, size_t height, int nls_s1, ConstRandomIter2 src_2, int nls_s2, RandomIter dst, int nls_d, F functor)
template<typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
void | copy_2_2 (ConstRandomIter1 src_1, size_t width, size_t height, int nls_s1, ConstRandomIter2 src_2, int nls_s2, RandomIter dst1, int nls_d1, RandomIter dst2, int nls_d2, F functor)
template<typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
void | copy_2_3 (ConstRandomIter1 src_1, size_t width, size_t height, int nls_s1, ConstRandomIter2 src_2, int nls_s2, RandomIter dst1, int nls_d1, RandomIter dst2, int nls_d2, RandomIter dst3, int nls_d3, F functor)
template<typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
void | copy_2_4 (ConstRandomIter1 src_1, size_t width, size_t height, int nls_s1, ConstRandomIter2 src_2, int nls_s2, RandomIter dst1, int nls_d1, RandomIter dst2, int nls_d2, RandomIter dst3, int nls_d3, RandomIter dst4, int nls_d4, F functor)
template<typename ConstRandomIter1, typename ConstRandomIter2, typename ConstRandomIter3, typename RandomIter, class F>
void | copy_3_1 (ConstRandomIter1 src_1, size_t width, size_t height, int nls_s1, ConstRandomIter2 src_2, int nls_s2, ConstRandomIter3 src_3, int nls_s3, RandomIter dst, int nls_d, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | copy_3_2 (ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, RandomIter out2, int nls2o, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | copy_3_3 (ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, RandomIter out2, int nls2o, RandomIter out3, int nls3o, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | copy_3_4 (ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, RandomIter out2, int nls2o, RandomIter out3, int nls3o, RandomIter out4, int nls4o, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | copy_3_5 (ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, RandomIter out2, int nls2o, RandomIter out3, int nls3o, RandomIter out4, int nls4o, RandomIter out5, int nls5o, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | copy_5_1 (ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, ConstRandomIter in4, int nls4, ConstRandomIter in5, int nls5, RandomIter out1, int nls1o, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | copy_6_1 (ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, ConstRandomIter in4, int nls4, ConstRandomIter in5, int nls5, ConstRandomIter in6, int nls6, RandomIter out1, int nls1o, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | envTransf_3e1_1 (Vtl::Plf::Extent ext, ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | envTransf_1_1 (Vtl::Plf::Extent ext, ConstRandomIter in1, int width, int height, int nls1, RandomIter out1, int nls1o, F functor)
template<typename ConstRandomIter, class F>
void | copy_10_7 (ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, ConstRandomIter in4, int nls4, ConstRandomIter in5, int nls5, ConstRandomIter in6, int nls6, ConstRandomIter in7, int nls7, ConstRandomIter in8, int nls8, ConstRandomIter in9, int nls9, ConstRandomIter in10, int nls10, ConstRandomIter out1, int nls1o, ConstRandomIter out2, int nls2o, ConstRandomIter out3, int nls3o, ConstRandomIter out4, int nls4o, ConstRandomIter out5, int nls5o, ConstRandomIter out6, int nls6o, ConstRandomIter out7, int nls7o, F functor)
template<typename c_matrix, typename c_vector, class F>
void | copy_1_2 (c_matrix in1, int width, int height, int nls1, c_vector out1, int nlso1, c_matrix out2, int nlso2, F functor)
template<typename ConstRandomIter, typename RandomIter, typename PtrToArray, class F>
void | envTransf_3D (PtrToArray planes, int width, int height, int nls, ConstRandomIter in1, ConstRandomIter in2, ConstRandomIter in3, ConstRandomIter in4, ConstRandomIter in5, ConstRandomIter in6, RandomIter out, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | envTransf_2Ddircheck (RandomIter image, int width, int height, int nls, ConstRandomIter h_x, ConstRandomIter h_y, ConstRandomIter grad_x, ConstRandomIter grad_y, F functor)

Подробное описание

Cодержит функции и классы, которые выполняют преобразования изображения, общего назначения. Копирование, копирование с преобразованием типа, по-пиксельные операции типа сложения умножения вычисления функции и.т.д.

Функции

template<typename ConstRandomIter, class F>
void Vtl::ImAlg::Tools::copy_10_7 | ( | ConstRandomIter | in1,
 |  | int | width,
 |  | int | height,
 |  | int | nls1,
 |  | ConstRandomIter | in2,
 |  | int | nls2,
 |  | ConstRandomIter | in3,
 |  | int | nls3,
 |  | ConstRandomIter | in4,
 |  | int | nls4,
 |  | ConstRandomIter | in5,
 |  | int | nls5,
 |  | ConstRandomIter | in6,
 |  | int | nls6,
 |  | ConstRandomIter | in7,
 |  | int | nls7,
 |  | ConstRandomIter | in8,
 |  | int | nls8,
 |  | ConstRandomIter | in9,
 |  | int | nls9,
 |  | ConstRandomIter | in10,
 |  | int | nls10,
 |  | ConstRandomIter | out1,
 |  | int | nls1o,
 |  | ConstRandomIter | out2,
 |  | int | nls2o,
 |  | ConstRandomIter | out3,
 |  | int | nls3o,
 |  | ConstRandomIter | out4,
 |  | int | nls4o,
 |  | ConstRandomIter | out5,
 |  | int | nls5o,
 |  | ConstRandomIter | out6,
 |  | int | nls6o,
 |  | ConstRandomIter | out7,
 |  | int | nls7o,
 |  | F | functor
 | ) |  |

template<typename ConstRandomIter, typename RandomIter, class F>
void Vtl::ImAlg::Tools::copy_1_1 | ( | ConstRandomIter | src,
 |  | size_t | width,
 |  | size_t | height,
 |  | int | nls_s,
 |  | RandomIter | dst,
 |  | int | nls_d,
 |  | F | functor
 | ) |  |

template<typename RandomIter, class F>
void Vtl::ImAlg::Tools::copy_1_1 | ( | RandomIter | src_dst,
 |  | size_t | width,
 |  | size_t | height,
 |  | int | nls,
 |  | F | functor
 | ) |  |

Примеры:
test_fast_gauss.cpp.

template<typename c_matrix, typename c_vector, class F>
void Vtl::ImAlg::Tools::copy_1_2 | ( | c_matrix | in1,
 |  | int | width,
 |  | int | height,
 |  | int | nls1,
 |  | c_vector | out1,
 |  | int | nlso1,
 |  | c_matrix | out2,
 |  | int | nlso2,
 |  | F | functor
 | ) |  |

template<typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
void Vtl::ImAlg::Tools::copy_2_1 | ( | ConstRandomIter1 | src_1,
 |  | size_t | width,
 |  | size_t | height,
 |  | int | nls_s1,
 |  | ConstRandomIter2 | src_2,
 |  | int | nls_s2,
 |  | RandomIter | dst,
 |  | int | nls_d,
 |  | F | functor
 | ) |  |

Примеры:
test_fast_gauss.cpp.

template<typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
void Vtl::ImAlg::Tools::copy_2_2 | ( | ConstRandomIter1 | src_1,
 |  | size_t | width,
 |  | size_t | height,
 |  | int | nls_s1,
 |  | ConstRandomIter2 | src_2,
 |  | int | nls_s2,
 |  | RandomIter | dst1,
 |  | int | nls_d1,
 |  | RandomIter | dst2,
 |  | int | nls_d2,
 |  | F | functor
 | ) |  |

template<typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
void Vtl::ImAlg::Tools::copy_2_3 | ( | ConstRandomIter1 | src_1,
 |  | size_t | width,
 |  | size_t | height,
 |  | int | nls_s1,
 |  | ConstRandomIter2 | src_2,
 |  | int | nls_s2,
 |  | RandomIter | dst1,
 |  | int | nls_d1,
 |  | RandomIter | dst2,
 |  | int | nls_d2,
 |  | RandomIter | dst3,
 |  | int | nls_d3,
 |  | F | functor
 | ) |  |

template<typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
void Vtl::ImAlg::Tools::copy_2_4 | ( | ConstRandomIter1 | src_1,
 |  | size_t | width,
 |  | size_t | height,
 |  | int | nls_s1,
 |  | ConstRandomIter2 | src_2,
 |  | int | nls_s2,
 |  | RandomIter | dst1,
 |  | int | nls_d1,
 |  | RandomIter | dst2,
 |  | int | nls_d2,
 |  | RandomIter | dst3,
 |  | int | nls_d3,
 |  | RandomIter | dst4,
 |  | int | nls_d4,
 |  | F | functor
 | ) |  |

template<typename ConstRandomIter1, typename ConstRandomIter2, typename ConstRandomIter3, typename RandomIter, class F>
void Vtl::ImAlg::Tools::copy_3_1 | ( | ConstRandomIter1 | src_1,
 |  | size_t | width,
 |  | size_t | height,
 |  | int | nls_s1,
 |  | ConstRandomIter2 | src_2,
 |  | int | nls_s2,
 |  | ConstRandomIter3 | src_3,
 |  | int | nls_s3,
 |  | RandomIter | dst,
 |  | int | nls_d,
 |  | F | functor
 | ) |  |

Примеры:
test_fast_gauss.cpp.

template<typename ConstRandomIter, typename RandomIter, class F>
void Vtl::ImAlg::Tools::copy_3_2 | ( | ConstRandomIter | in1,
 |  | int | width,
 |  | int | height,
 |  | int | nls1,
 |  | ConstRandomIter | in2,
 |  | int | nls2,
 |  | ConstRandomIter | in3,
 |  | int | nls3,
 |  | RandomIter | out1,
 |  | int | nls1o,
 |  | RandomIter | out2,
 |  | int | nls2o,
 |  | F | functor
 | ) |  |

template<typename ConstRandomIter, typename RandomIter, class F>
void Vtl::ImAlg::Tools::copy_3_3 | ( | ConstRandomIter | in1,
 |  | int | width,
 |  | int | height,
 |  | int | nls1,
 |  | ConstRandomIter | in2,
 |  | int | nls2,
 |  | ConstRandomIter | in3,
 |  | int | nls3,
 |  | RandomIter | out1,
 |  | int | nls1o,
 |  | RandomIter | out2,
 |  | int | nls2o,
 |  | RandomIter | out3,
 |  | int | nls3o,
 |  | F | functor
 | ) |  |

template<typename ConstRandomIter, typename RandomIter, class F>
void Vtl::ImAlg::Tools::copy_3_4 | ( | ConstRandomIter | in1,
 |  | int | width,
 |  | int | height,
 |  | int | nls1,
 |  | ConstRandomIter | in2,
 |  | int | nls2,
 |  | ConstRandomIter | in3,
 |  | int | nls3,
 |  | RandomIter | out1,
 |  | int | nls1o,
 |  | RandomIter | out2,
 |  | int | nls2o,
 |  | RandomIter | out3,
 |  | int | nls3o,
 |  | RandomIter | out4,
 |  | int | nls4o,
 |  | F | functor
 | ) |  |

template<typename ConstRandomIter, typename RandomIter, class F>
void Vtl::ImAlg::Tools::copy_3_5 | ( | ConstRandomIter | in1,
 |  | int | width,
 |  | int | height,
 |  | int | nls1,
 |  | ConstRandomIter | in2,
 |  | int | nls2,
 |  | ConstRandomIter | in3,
 |  | int | nls3,
 |  | RandomIter | out1,
 |  | int | nls1o,
 |  | RandomIter | out2,
 |  | int | nls2o,
 |  | RandomIter | out3,
 |  | int | nls3o,
 |  | RandomIter | out4,
 |  | int | nls4o,
 |  | RandomIter | out5,
 |  | int | nls5o,
 |  | F | functor
 | ) |  |

template<typename ConstRandomIter, typename RandomIter, class F>
void Vtl::ImAlg::Tools::copy_5_1 | ( | ConstRandomIter | in1,
 |  | int | width,
 |  | int | height,
 |  | int | nls1,
 |  | ConstRandomIter | in2,
 |  | int | nls2,
 |  | ConstRandomIter | in3,
 |  | int | nls3,
 |  | ConstRandomIter | in4,
 |  | int | nls4,
 |  | ConstRandomIter | in5,
 |  | int | nls5,
 |  | RandomIter | out1,
 |  | int | nls1o,
 |  | F | functor
 | ) |  |

template<typename ConstRandomIter, typename RandomIter, class F>
void Vtl::ImAlg::Tools::copy_6_1 | ( | ConstRandomIter | in1,
 |  | int | width,
 |  | int | height,
 |  | int | nls1,
 |  | ConstRandomIter | in2,
 |  | int | nls2,
 |  | ConstRandomIter | in3,
 |  | int | nls3,
 |  | ConstRandomIter | in4,
 |  | int | nls4,
 |  | ConstRandomIter | in5,
 |  | int | nls5,
 |  | ConstRandomIter | in6,
 |  | int | nls6,
 |  | RandomIter | out1,
 |  | int | nls1o,
 |  | F | functor
 | ) |  |

template<typename ConstRandomIter, typename RandomIter, class F>
void Vtl::ImAlg::Tools::envTransf_1_1 | ( | Vtl::Plf::Extent | ext,
 |  | ConstRandomIter | in1,
 |  | int | width,
 |  | int | height,
 |  | int | nls1,
 |  | RandomIter | out1,
 |  | int | nls1o,
 |  | F | functor
 | ) |  |

template<typename ConstRandomIter, typename RandomIter, class F>
void Vtl::ImAlg::Tools::envTransf_2Ddircheck | ( | RandomIter | image,
 |  | int | width,
 |  | int | height,
 |  | int | nls,
 |  | ConstRandomIter | h_x,
 |  | ConstRandomIter | h_y,
 |  | ConstRandomIter | grad_x,
 |  | ConstRandomIter | grad_y,
 |  | F | functor
 | ) |  |

template<typename ConstRandomIter, typename RandomIter, typename PtrToArray, class F>
void Vtl::ImAlg::Tools::envTransf_3D | ( | PtrToArray | planes,
 |  | int | width,
 |  | int | height,
 |  | int | nls,
 |  | ConstRandomIter | in1,
 |  | ConstRandomIter | in2,
 |  | ConstRandomIter | in3,
 |  | ConstRandomIter | in4,
 |  | ConstRandomIter | in5,
 |  | ConstRandomIter | in6,
 |  | RandomIter | out,
 |  | F | functor
 | ) |  |

template<typename ConstRandomIter, typename RandomIter, class F>
void Vtl::ImAlg::Tools::envTransf_3e1_1 | ( | Vtl::Plf::Extent | ext,
 |  | ConstRandomIter | in1,
 |  | int | width,
 |  | int | height,
 |  | int | nls1,
 |  | ConstRandomIter | in2,
 |  | int | nls2,
 |  | ConstRandomIter | in3,
 |  | int | nls3,
 |  | RandomIter | out1,
 |  | int | nls1o,
 |  | F | functor
 | ) |  |

template<typename T>
void Vtl::ImAlg::Tools::xchg | ( | T & | v1,
 |  | T & | v2
 | ) |  |


Pipe Line Filters: Пространство имен Vtl::ImAlg::Tools::findMax

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::Tools::findMax

Пространство имен Vtl::ImAlg::Tools::findMax

Классы

struct | is_center_max_in3x3
class | SetPixel

Пространства имен

namespace | Impl

Функции

template<int stride, class ICM, typename T1, class F>
void | BoundsNo (const T1 *src, size_t width, size_t height, int nls, ICM &is_center_max_in3x3_, F functor)
template<int stride, class ICM, typename T1, class F>
void | BoundsCyclic (const T1 *src, size_t width, size_t height, int nls, ICM &is_center_max_in3x3_, F functor)

Функции

template<int stride, class ICM, typename T1, class F>
void Vtl::ImAlg::Tools::findMax::BoundsCyclic | ( | const T1 * | src,
 |  | size_t | width,
 |  | size_t | height,
 |  | int | nls,
 |  | ICM & | is_center_max_in3x3_,
 |  | F | functor
 | ) |  |

template<int stride, class ICM, typename T1, class F>
void Vtl::ImAlg::Tools::findMax::BoundsNo | ( | const T1 * | src,
 |  | size_t | width,
 |  | size_t | height,
 |  | int | nls,
 |  | ICM & | is_center_max_in3x3_,
 |  | F | functor
 | ) |  |


Pipe Line Filters: Пространство имен Vtl::ImAlg::Tools::findMax::Impl

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::Tools::findMax::Impl

Пространство имен Vtl::ImAlg::Tools::findMax::Impl

Функции

template<int stride, class ICM, typename T1, class F>
const T1 * | InRow_BoundsNo (const T1 *src, int y, int width, int up, int down, ICM &is_center_max_in3x3_, F functor)
template<int stride, class ICM, typename T1, class F>
void | InRow_BoundsCyclic (const T1 *src, int y, int width, int up, int down, ICM &is_center_max_in3x3_, F functor)

Функции

template<int stride, class ICM, typename T1, class F>
void Vtl::ImAlg::Tools::findMax::Impl::InRow_BoundsCyclic | ( | const T1 * | src,
 |  | int | y,
 |  | int | width,
 |  | int | up,
 |  | int | down,
 |  | ICM & | is_center_max_in3x3_,
 |  | F | functor
 | ) |  |

template<int stride, class ICM, typename T1, class F>
const T1* Vtl::ImAlg::Tools::findMax::Impl::InRow_BoundsNo | ( | const T1 * | src,
 |  | int | y,
 |  | int | width,
 |  | int | up,
 |  | int | down,
 |  | ICM & | is_center_max_in3x3_,
 |  | F | functor
 | ) |  |


Pipe Line Filters: Пространство имен Vtl::ImAlg::Transf

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::Transf

Пространство имен Vtl::ImAlg::Transf

объекты для преобразования координат. ИСпользуются в частности в пространстве имен Model. В отличие от объектов пространства имен Model и Resamp не умеют ничего кроме как по заданным координатам вычислить преобразованные. Подробнее...

Классы

class | Offset
class | Affine
class | Homography

Функции

template<typename T>
std::ostream & | operator<< (std::ostream &os, const Affine< T > &transf)

Подробное описание

объекты для преобразования координат. ИСпользуются в частности в пространстве имен Model. В отличие от объектов пространства имен Model и Resamp не умеют ничего кроме как по заданным координатам вычислить преобразованные.

Функции

template<typename T>
std::ostream& Vtl::ImAlg::Transf::operator<< | ( | std::ostream & | os,
 |  | const Affine< T > & | transf
 | ) |  |


Pipe Line Filters: Пространство имен Vtl::ImAlg::WndFun

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::WndFun

Пространство имен Vtl::ImAlg::WndFun

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

Классы

struct | Traits_common
struct | Traits< T, false, false, NAC, D >
struct | Traits< T, true, true, NAC, D >
class | Direct_Ref
Функтор - таблица непосредственно заданных значений. Значения не копируются и указатель на них должен оставаться валидным в течении всего времени жизни функтора! Целесообразно использовать в том случае, когда массив значений задается строкой констант, в противном случае следует использовать class Directю. Подробнее...
struct | Laws5
Энергетические текстурные характеристики Лавса. Подробнее...
class | Direct
Функтор - таблица непосредственно заданных значений. Подробнее...
class | Rect
Прямоугольное окно . Определяется формулой. Подробнее...
class | Bartlett
Окно Бартлета (Bartlett - треугольное). Определяется формулой. Подробнее...
class | Gauss
Окно Гаусса (Gauss). Определяется формулой. Подробнее...
class | DoG
Окно в виде разности Гауссианов (обрезанных). Определяется формулой [image] . Подробнее...
class | Sinc< T, 0 >
Окно в виде функции sinc(x) . Определяется формулой [image] . Подробнее...
class | Kaiser
Окно Кайзера (Kaiser). Определяется формулой [image] , где $ I_0( . )$ - модифицированная функция Бесселя. Подробнее...
class | common_Trig
База для тригонометрических окон. Подробнее...
class | Hann
Окно Ханна (Hann). Определяется формулой [image] при 0 <= x <= size-1. Подробнее...
class | Hamming
Окно Хeмминга (Hamming). Определяется формулой [image] при 0 <= x <= size-1. Подробнее...
class | Blackman
Окно Блэкмана (Blackman). Подробнее...
class | BlackmanNuttall
Окно Блэкмана-Нуттол (Blackman-Nuttall). Подробнее...
class | BlackmanHarris
Окно Блэкмана-Харриса (Blackman-Harris). Подробнее...
class | Nuttall
Окно Нуттол (Nuttall), непрерывные первые производные. Подробнее...
class | FlatTop
Окно Плоская-вершина (FlatTop), нормированное. Подробнее...

Пространства имен

namespace | Impl

Подробное описание

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

Нормировка в смысле интеграла (интеграл от функции равен единице) нужна при свертках и вычисляется при построении ядер свертки так, чтобы сумма дискретных компонентов давала 1. Нормировка "по формуле" будет давать погрешность, так как может использоваться усеченное окно и из за неточности дискретного представления непрерывной функции. Результат - анапример при сглаживании изображения усреднением по окну средняя яркость изображения измениться, чего быть не должно.

Каждый функтор имеет свойства (enum), наследуемые из базы Base:
enum { finit_support_left }; означает финитный ли носитель окна влево от центра.
enum { finit_support_right=FSR }; означает финитный ли носитель окна вправо от центра.
enum { Deriv=D }; 0, если само окно, иначе целое число, указывающее номер производной (например 2-вторая производная) от исходной функции окна. Наиболее часто всертка с производными Гауссова окна используется при дифференцировании изображений.
enum { conv_norm_alg=NAC }; Какой алгоритм нормировки использовать при вычислении ядра свертки. Обычно это параметр равен D, а алгоритм вычисления приводится в описании класса Vtl::Plf::Kernel::FKern.

Каждый функтор должен:

  • наследоваться из класса Vtl::Plf::Kernel::F::Traits<T,FS,NAC,D,SpecCentr>
  • иметь статическую функцию Name, например : static const char * Name() { return "Hamming"; }
  • иметь оператор T operator(T x) const; который возвращает значение функтора для значения аргумента x.
  • иметь конструктор копирования с растяжением (см следующий абзац).
  • иметь функции
     T center() const
 T left() const
 T right() const
    которые возвращают значение переменной x, соответствующие левой и правой границе окна, а также центру. Левая и правая граница задают область определения окна. В случае если носитель окна финитный (см. свойства окна), то вычислять значения функтора вне этих пределов нельзя, в случае необходимости следует окно дополнять, обычно нулем. Если же носитель в какую-либо сторону инфинитный, то такое вычисление возможно и в ряде случаев принфципиально верно. Здесь следует отметить, что поскольку практические вычисления всегда выполняются на конечном интервале, для функторов с инфинитным носителем все равно значения left() и right() следует задавать верно, введя ограничение непосредственно в функтор. Например при написании функтора для гауссова окна, его параметрами должны быть не только сигма, но и сколько сигм помещается в пределах окна, где оно обрезается. Это делается для единообразия. Параметры функтора, в том числе и где он обрезается задаются в функторе. Любая функция или объект, получившие функтор могут эти параметры получить из него и, таким образом, эти функции и объекты имеют единую версию как для финитных, так и для инфинитных функторов. Различие заключается в том, что если у такого объекта возникнет необходимость дополнить окно, то проанализировав соответствующее поле свойств, он может либо игнорировать область определения (для инфинитных носителей, либо дополнять предопределенной величиной (например нулем.
    Понятие "центра" окна, связано со свертками и не всегда обозначает точку (right()+left())/2. Центр это то значение х, которое бкдеи соответствовать центральному пикселю при вычислении сверток и кросскорреляций. для ограничения окном - если указывается где точно должен находиться центр окна, именно в ту точку перемещается этот центр.

Рекомендация: Если требуется реализовать ядра сверток/кросскорреляции/оконные функции для некоторой функции и нескольких ее производных, это рекомендутеся делать в одном классе. В качестве примера см. класс Vtl::Plf::Kernel::F::Gauss. Выбор функтора и способа его нормировки осуществляется специализацией шаблона по значению целочисленного параметра - степени производной, самой функции соответствует производная нулевого порядка. Во избежание ошибок, формулы для производных рекомендуется получать с помощью системы аналитических вычислений Maple, версии не младше 9.5. В качестве примера ниже приводится код программы в системе Maple для расчета 5 производной функции Гаусса.

 Почистить состояние внутренних переменных
 > restart;

 Указать, что переменные вещественные
 > assume(x,real,sigma,real,t,real,sigma>0,t>0);

 Задать функцию, которую надо продифференцировать
 > g(x):=exp(-x^2/(2*sigma^2));

 Вычисляем 5 производную по x от функции g(x).
 > res := diff(g(x),x\$5);
 Упрощаем
 > res := simplify(res);

 Предполагаем, что результат зависит только от t=(x/sigma)^2?
 Делаем подстановку и смотрим упростилось ли.
 > res := algsubs( x^2=t*sigma^2,res);

 Упрощаем
 > res := simplify(res);

 Видим, что зависимость от x осталась, т.е. предположение
 было не верно,но формула стала проще, поэтому в программе
 заведем временную переменную t и выразим результат через t и x.
 Уберем ненужную нам константу:
 > res := simplify(res*sigma^7);

Теперь результат можно выделить с перенести в программу с помощью Copy/Paste. Если результат выражается через элементарные функции, как правило он требует минимальной правки: обычно требуется исправить обозначение возведения в степеь в стиле Maple "x^3" на стиль С++ "x*x*x". Результат копирования формулы из Maple, полученный вышеуказанной программой будет выглядеть примерно как:

 res := -exp(-1/2*t)*x*(-10*t+t^2+15)

Другой важной рекомендацией: является максимальное использование методов обобщенного (и функционального) программирования [Loki] с использованием библиотеки Loki.

Хотя при использовании этих функторов в качестве сверток через ядра из Vtl::Plf::Kernels как праило не требует высокой эффективности, следует иметь в виду, что подобно любому базовому понятию, определенные здесь функторы оконных функций могут быть использованы в самых разнообразных контекстах, где вычислительная эффективность может оказаться чрезвычайно важной. Кроме того, для ряда оконных функций полезно иметь также их производные (например производные от функции Гаусса используются для вычисления производных яркости изображений и лучше дать сразу обобщенную формулу, чем выписывать отдельные специализации шаблонов пытаясь решить до какого порядка производной это следует делать. Примеры рекомендуемой техники детально документированы на примере функторов Gauss и семейства тригонометрических окон Hann, Hamming, Blackman, Nuttall ...


Pipe Line Filters: Пространство имен Vtl::ImAlg::WndFun::Impl

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::WndFun::Impl

Пространство имен Vtl::ImAlg::WndFun::Impl

Пространства имен

namespace | common_Trig
namespace | Gauss


Pipe Line Filters: Пространство имен Vtl::ImAlg::WndFun::Impl::common_Trig

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::WndFun::Impl::common_Trig

Пространство имен Vtl::ImAlg::WndFun::Impl::common_Trig

Классы

class | cos_Member_base
class | cos_Member
class | cos_Member< T, D, K, K >


Pipe Line Filters: Пространство имен Vtl::ImAlg::WndFun::Impl::Gauss

  • Пространства имен
  • Члены пространств имен
Vtl::ImAlg::WndFun::Impl::Gauss

Пространство имен Vtl::ImAlg::WndFun::Impl::Gauss

Классы

struct | c_mod
struct | c_mod< n,-1 >
struct | c_mod< n, n >
struct | P
struct | P< T, n, n >

Функции

template<unsigned n, unsigned m>
int | c ()
template<unsigned n, typename T>
T | Q (T x2, T x)

Функции

template<unsigned n, unsigned m>
int Vtl::ImAlg::WndFun::Impl::Gauss::c ( )

Примеры:
invert.cpp, test_Integral_Transforms.cpp и test_plf_kernels.cpp.

template<unsigned n, typename T>
T Vtl::ImAlg::WndFun::Impl::Gauss::Q | ( | T | x2,
 |  | T | x
 | ) |  |

Примеры:
test_boost_mtr.cpp.


Pipe Line Filters: Пространство имен Vtl::Img

  • Пространства имен
  • Члены пространств имен
Vtl::Img

Пространство имен Vtl::Img

Классы

class | Iterator_1D
class | Iterator_1D< T, 0 >
class | BuildIter1DList
class | Iterator_ND_base
class | Iterator_ND_spec
class | Iterator_ND_spec< T_Layout, false, false >
class | Iterator_ND_spec< T_Layout, false, true >
class | Iterator_ND_spec< T_Layout, true, false >
class | Iterator_ND_spec< T_Layout, true, true >
class | Iterator_ND
class | ImageNDref
struct | Layout
Specialization Compile time known Nbands. Подробнее...
struct | Layout< T, T_Ndim, 0, T_Interleave >
Specialization RunTime known Nbands. Подробнее...
struct | complex_type< float >
struct | complex_type< double >
struct | DataType< ST_u8 >
struct | DataType< ST_s8 >
struct | DataType< ST_s16 >
struct | DataType< ST_s32 >
struct | DataType< ST_f32 >
struct | DataType< ST_f64 >
struct | DataType< ST_c32f >
struct | DataType< ST_c64f >
struct | DataType< ST_u16 >
struct | DataType< ST_u32 >
struct | DataType< ST_s64 >
struct | DataType< ST_u64 >
struct | DataTypeId
По типу данных найти идентификатор данных (see SampleType) . Подробнее...
struct | T2DataType
По типу данных найти описатель тьипа DataType<>. Подробнее...
struct | DataTypeList2TypeList
struct | ImageInfo
Общая информация об изображении. Подробнее...
struct | Rgb
struct | SampleAccess
struct | PaletteAccess
struct | ImageDataLayout
class | ImageDataLayoutHolder
class | ImageStorageStrategyNew
class | ImageHolder
class | pic_plane
class | ImageBase
class | Image
class | Image< P, planes, BIP >
class | Image< P, planes, SEP >
struct | DataTypeList2TypeList< Types::Typelist< T1, T2 > >

Пространства имен

namespace | Impl

Определения типов

typedef int | offset_type
typedef int | offset_type
typedef Vtl::Types::TL::NoDuplicates<
TYPELIST_12(DataType< ST_u8 >,
DataType< ST_s8 >, DataType<
ST_s16 >, DataType< ST_s32 >,
DataType< ST_f32 >, DataType<
ST_f64 >, DataType< ST_c32f >,
DataType< ST_c64f >,DataType<
ST_u16 >, DataType< ST_u32 >,
DataType< ST_s64 >, DataType<
ST_u64 >) >::Result 		EnviSample_DataTypesList
typedef DataTypeList2TypeList<
EnviSample_DataTypesList
>::Result 		EnviSampleTypesList

Перечисления

enum ImageClass {
Mask, Palette, Grayscale, TrueColor,
Multichan
}
image classes -------------------- Подробнее...
enum | Interleave { SEP = -1, BIP = 0, BIL = 1, BSQ = 2 }
Image layout in memory/file (type of ordering). Подробнее...
enum SampleType {
ST_Unknown = 255, ST_u8 = 1, ST_s8 = 254, ST_s16 = 2,
ST_s32 = 3, ST_f32 = 4, ST_f64 = 5, ST_c32f = 6,
ST_c64f = 9, ST_u16 = 12, ST_u32 = 13, ST_s64 = 14,
ST_u64 = 15
}

Типы

typedef Vtl::Types::TL::NoDuplicates<TYPELIST_12(DataType<ST_u8>,DataType<ST_s8>,DataType<ST_s16>,DataType<ST_s32> ,DataType<ST_f32>,DataType<ST_f64>,DataType<ST_c32f>,DataType<ST_c64f> ,DataType<ST_u16>,DataType<ST_u32>,DataType<ST_s64>,DataType<ST_u64>) >::Result Vtl::Img::EnviSample_DataTypesList

Список поддерживаемых типов данных (Sample of Pixel). Этот список типов состоит из типов DataType<int TypeId> и необходим для установления связи между типом и его числовым идентификатором. Используется только классом DataTypeId<typename SampleType>. После чего по типу всегда можно найти идентификатор с помощью DataTypeId<typename SampleType>, а по идентификатору - тип с помощью DataType<int TypeId>. В дальнейшем Список поддерживаемых типов преобразуется с помощью класса DataTypeList2TypeList<> в нормальный список типов и вся работа идет с ним.

typedef DataTypeList2TypeList<EnviSample_DataTypesList>::Result Vtl::Img::EnviSampleTypesList

typedef int Vtl::Img::offset_type

typedef int Vtl::Img::offset_type

Перечисления

enum Vtl::Img::ImageClass

image classes --------------------

Элементы перечислений:
Mask
Palette
Grayscale
TrueColor
Multichan

enum Vtl::Img::Interleave

Image layout in memory/file (type of ordering).

Элементы перечислений:
SEP | bands at separated location, NOT COMPATIBLE with ENVI
BIP | band interleaved by pixel
BIL | band interleaved by line
BSQ | band sequential

enum Vtl::Img::SampleType

Pixel sample data types (fully ENVI-compatible, as in IMG/HDR file) Do NOT change numerical values for format support work correctly!

Элементы перечислений:
ST_Unknown | any non standart value, ERROR, Not supported by ENVI
ST_u8 | u 1 = 8 bit byte;
ST_s8 | s 1 = 8 bit signed byte; NOT ENVI COMPATIBLE! Extension due to TIFF!
ST_s16 | s 2 = 16-bit signed integer;
ST_s32 | s 3 = 32-bit signed long integer;
ST_f32 | f 4 = 32-bit floating point;
ST_f64 | f 5 = 64-bit double precision floating point;
ST_c32f | f 6 = 2x32-bit complex, real-imaginary pair of double precision; ??SINGLE PRECISION??
ST_c64f | f 9 = 2x64-bit double precision complex, real-imaginary pair of double precision;
ST_u16 | u 12 = 16-bit unsigned integer;
ST_u32 | u 13 = 32-bit unsigned integer;
ST_s64 | s 14 = 64-bit integer;
ST_u64 | u 15 = 64-bit unsigned integer.


Pipe Line Filters: Пространство имен Vtl::Img::Impl

  • Пространства имен
  • Члены пространств имен
Vtl::Img::Impl

Пространство имен Vtl::Img::Impl

Классы

struct | DataType

Пространства имен

namespace | Layout


Pipe Line Filters: Пространство имен Vtl::Img::Impl::Layout

  • Пространства имен
  • Члены пространств имен
Vtl::Img::Impl::Layout

Пространство имен Vtl::Img::Impl::Layout

Функции

template<typename T>
static int | align (int sz, int align_to)
template<typename T, int N, int Interleave, int stride_0>
offset_type | build_strides (offset_type *strides, const int *sizes, int align_to, int nbands)

Функции

template<typename T>
static int Vtl::Img::Impl::Layout::align | ( | int | sz,
 |  | int | align_to |
 | ) |  |  | [static]

template<typename T, int N, int Interleave, int stride_0>
offset_type Vtl::Img::Impl::Layout::build_strides | ( | offset_type * | strides,
 |  | const int * | sizes,
 |  | int | align_to,
 |  | int | nbands
 | ) |  |


Pipe Line Filters: Пространство имен Vtl::Meta

  • Пространства имен
  • Члены пространств имен
Vtl::Meta

Пространство имен Vtl::Meta

Классы

struct | IndexList
struct | BitsIn
Подсчет числа единичных битов в n . Алгоритм из [Henry S. Warren, Jr. 2002], стр. 76. Подробнее...
struct | BitsIn< 0 >
struct | printPermutations
class | det
class | det_poly_coef
struct | SizeList_base
class | SizeList
class | Layout
class | BuildDefaultLayout
class | LayoutListDefault
struct | LayoutListDirect
class | EnumTraits
Свойства типв enum {} : знаковый или беззнаковый, максимальнрое хранимое значени, минимальное хранимое значение. Подробнее...
class | Align

Пространства имен

namespace | IL
Алгоритмы для работы с IndexList.
namespace | Impl

Функции

template<int N, class Matrix>
Matrix::value_type | determinant (const Matrix &matrix)
template<class IList, class Func>
void | ForEachPermutationOfIndexList (Func &f)
template<int N, class Func>
void | ForEachPermutation (Func &f)
template<int i, class IList>
void | print (std::ostream &os, const SizeList_base< IList > &sl, Loki::Int2Type< i >)
template<class IList>
void | print (std::ostream &os, const SizeList_base< IList > &sl, Loki::Int2Type<-1 >)
template<class IList>
void | print (std::ostream &os, const SizeList_base< IList > &sl)
template<typename T, class IList>
void | print (std::ostream &os, const Layout< T, IList > &lay)
template<typename T>
static int | align (int sz, int align_to)
template<int isSubtract, typename T>
void | AddOrSub (T &result, T value)
Вычисляет result+=value; если isSubtract==0, иначе result-=value;.
template<typename T>
void | AddOrSub (T &result, T value, Loki::Int2Type< 1 >)
template<typename T>
void | AddOrSub (T &result, T value, Loki::Int2Type< 0 >)
template<int N, typename T>
T | MultMinusOnePowerTo (T value)
template<typename T>
T | MultMinusOnePowerTo (T value, Loki::Int2Type< 0 >)
template<typename T>
T | MultMinusOnePowerTo (T value, Loki::Int2Type< 1 >)
template<int N, typename T>
void | copy (T *dst, const T *src)
копирование массива известного на момент компиляции размера (без цикла, прямая его развертка).
template<int N, typename T>
void | copy (T *dst, const T *src, Loki::Int2Type< N >)
template<typename T>
void | copy (T *dst, const T *src, Loki::Int2Type< 1 >)
template<typename T>
void | copy (T *dst, const T *src, Loki::Int2Type< 0 >)
template<int N, typename T, typename TT>
void | set (T *dst, TT value)
Инициализация всех элементов массива известного на момент компиляции размера числом value (без цикла, прямая его развертка).
template<typename T, int N>
void | set (T *dst, T value, Loki::Int2Type< N >)
template<typename T>
void | set (T *dst, T value, Loki::Int2Type< 1 >)
Этот вариант функции не обязателен, но облегчает компилятору работу - на 1 шаг рекурсии.
template<typename T>
void | set (T *dst, T value, Loki::Int2Type< 0 >)
template<int N, typename T, typename TT>
void | set_seq (T *dst, TT value_first=0, TT value_step=1)
template<typename T, int N>
void | set_seq (T *dst, T value, T step, Loki::Int2Type< N >)
template<typename T>
void | set_seq (T *dst, T value, T step, Loki::Int2Type< 1 >)
template<typename T>
void | set_seq (T *dst, T value, T step, Loki::Int2Type< 0 >)
template<int N, typename TT, typename T>
TT | sum (T *dst)
Суммирование всех элементов массива известного на момент компиляции размера числом value (без цикла, прямая его развертка).
template<typename TT, int N, typename T>
TT | sum (T *dst, Loki::Int2Type< N >)
template<typename TT, typename T>
TT | sum (T *dst, Loki::Int2Type< 1 >)
Этот вариант функции не обязателен, но облегчает компилятору работу - на 1 шаг рекурсии.
template<typename TT, typename T>
TT | sum (T *dst, Loki::Int2Type< 0 >)
template<int N, typename T>
void | print_array (const T *src, const char *name, bool inColumn=true)

Функции

template<typename T>
void Vtl::Meta::AddOrSub | ( | T & | result,
 |  | T | value,
 |  | Loki::Int2Type< 0 > |
 | ) |  |

template<typename T>
void Vtl::Meta::AddOrSub | ( | T & | result,
 |  | T | value,
 |  | Loki::Int2Type< 1 > |
 | ) |  |

template<int isSubtract, typename T>
void Vtl::Meta::AddOrSub | ( | T & | result,
 |  | T | value
 | ) |  |

Вычисляет result+=value; если isSubtract==0, иначе result-=value;.

template<typename T>
static int Vtl::Meta::align | ( | int | sz,
 |  | int | align_to |
 | ) |  |  | [static]

Пусть sz- размер массива типа T.

 T array[sz];
Вычислить новый размер массива size2 такой, что size2 >= sz и назмер массива выровнен на align_to байт.

template<typename T>
void Vtl::Meta::copy | ( | T * | dst,
 |  | const T * | src,
 |  | Loki::Int2Type< 0 > |
 | ) |  |

Примеры:
test_fast_gauss.cpp.

template<typename T>
void Vtl::Meta::copy | ( | T * | dst,
 |  | const T * | src,
 |  | Loki::Int2Type< 1 > |
 | ) |  |

template<int N, typename T>
void Vtl::Meta::copy | ( | T * | dst,
 |  | const T * | src,
 |  | Loki::Int2Type< N > |
 | ) |  |

template<int N, typename T>
void Vtl::Meta::copy | ( | T * | dst,
 |  | const T * | src
 | ) |  |

копирование массива известного на момент компиляции размера (без цикла, прямая его развертка).

template<int N, class Matrix>
Matrix::value_type Vtl::Meta::determinant ( const Matrix & matrix )

Вычисляет детерминант матрицы, известного на момент компиляции размера. В момент компиляции путем разложения детерминанта по строке (рекурсивно) строится явная формула. В RUNTIME по этой формуле вычисляется собственно детерминант, т.е. выполняются операции типа считывание числа из i,j -го элемента матрицы, причем здесь i,j КОНСТАНТЫ (например 3,1 , 0,2 и т.д.) и умножение и сложение этих чисел.
В частности, например для матрицы 2х2, лежащей в одномерном массиве строка за строкой, вызов этого шаблона сгенерирует код вид

 result=a[0]*a[3]-a[1]*a[2];
И никаких циклов и поиска элементов матрицы в памяти!
На счет погрешности вычислений надо иметь ввиду, что вычисление детерминанта матрицы NxN по формуле требует N! сложений/вычитаний и если произведения соответствующих элементов сущетсвенно различаются по порядку или набоброт близки, но с разным знаком, то будет сказываться погрешность округления. Каких либо мер по регуляризации не предпринимается - просто вычисление по формуле. См. также функцию ForEachPermutation и функтор для нее det.

template<int N, class Func>
void Vtl::Meta::ForEachPermutation ( Func & f )

Для каждой перестановки последовательности чисел 0,1,...,N-1 ,будет вызван функтор Func. Функтор должен иметь сигнатуру:

 class MyFunctorName
 {
 public:
   template<int isOdd,class IList>
   void f()
   {
     // собственно код, например распечатать четность перестановки и собственно саму перестановку
     std::cout << (isOdd?"- ":"+ ") << IL::type2ostream<IList>() << std::endl;
   }
 };
Задавая соответствующий функтор, можно например вычислить детерминант матрицы известного на момент компиляции размера. см. printPermutations, det , det_poly_coef

template<class IList, class Func>
void Vtl::Meta::ForEachPermutationOfIndexList ( Func & f )

Для каждой перестановки последовательности чисел заданой списком чисел IndexList ,будет вызван функтор Func. Функтор должен иметь сигнатуру:

 class MyFunctorName
 {
 public:
   template<int isOdd,class IList>
   void f()
   {
     // собственно код, например распечатать четность перестановки и собственно саму перестановку
     std::cout << (isOdd?"- ":"+ ") << IL::type2ostream<IList>() << std::endl;
   }
 };
Функция f() функтора получает четность перестановки индексов и маму эту последовательнолсть индексов в виде типа IndexList.
Задавая соответствующий функтор, можно например вычислить детерминант матрицы известного на момент компиляции размера. см. printPermutations, det , det_poly_coef
Упрощенный вариант этой функции для последовательности индексов 0,1,...,N-1 а также синтаксис использования этой функци - см. в коде функции ForEachPermutation

template<typename T>
T Vtl::Meta::MultMinusOnePowerTo | ( | T | value,
 |  | Loki::Int2Type< 1 > |
 | ) |  |

template<typename T>
T Vtl::Meta::MultMinusOnePowerTo | ( | T | value,
 |  | Loki::Int2Type< 0 > |
 | ) |  |

template<int N, typename T>
T Vtl::Meta::MultMinusOnePowerTo ( T value )

Вычисляет (-1):N * value, точнее возврашает value если N четное и -value если N нечетное ;

template<typename T, class IList>
void Vtl::Meta::print | ( | std::ostream & | os,
 |  | const Layout< T, IList > & | lay
 | ) |  |

template<class IList>
void Vtl::Meta::print | ( | std::ostream & | os,
 |  | const SizeList_base< IList > & | sl
 | ) |  |

template<class IList>
void Vtl::Meta::print | ( | std::ostream & | os,
 |  | const SizeList_base< IList > & | sl,
 |  | Loki::Int2Type<-1 > |
 | ) |  |

template<int i, class IList>
void Vtl::Meta::print | ( | std::ostream & | os,
 |  | const SizeList_base< IList > & | sl,
 |  | Loki::Int2Type< i > |
 | ) |  |

template<int N, typename T>
void Vtl::Meta::print_array | ( | const T * | src,
 |  | const char * | name,
 |  | bool | inColumn = true
 | ) |  |

Отладочный инструмент. Распечатать в RUNTIME на стандартное устройство все элементы массива известного на момент компиляции размера.

Аргументы:
src | - указатель на первый элемент,
name | - заголовок, который напечатать до элементов массива.
inColumn | - если true - gечатать элементы массива столбиком, иначе - в одной строке.
N - длина массива, задается через параметр шаблона, например:
 int x[3]={12,33,73};
 print_array<3>(x,"My array 'x' content:");
Можно (и лучше) писать так:
 const int N=3; //или, более корректно, как в следующей строке
 //enum {N=3};

 int x[N];
 //... некоторый код ...
 print_array<N>(x,"My array 'x' content:");

template<typename T>
void Vtl::Meta::set | ( | T * | dst,
 |  | T | value,
 |  | Loki::Int2Type< 0 > |
 | ) |  |

А этот вариант нужен, чтобы ситуация N=0 обрабатывалась верно - ничего не делать, и не получить бесконечную рекурсию компилятора. Если же задан массив длиной 0 - то и сообщение об ошибке должно быть в том месте и с сообщением, что такие массивы не допускаются, а не о переполнении стека компилятора.

template<typename T>
void Vtl::Meta::set | ( | T * | dst,
 |  | T | value,
 |  | Loki::Int2Type< 1 > |
 | ) |  |

Этот вариант функции не обязателен, но облегчает компилятору работу - на 1 шаг рекурсии.

template<typename T, int N>
void Vtl::Meta::set | ( | T * | dst,
 |  | T | value,
 |  | Loki::Int2Type< N > |
 | ) |  |

template<int N, typename T, typename TT>
void Vtl::Meta::set | ( | T * | dst,
 |  | TT | value
 | ) |  |

Инициализация всех элементов массива известного на момент компиляции размера числом value (без цикла, прямая его развертка).

template<typename T>
void Vtl::Meta::set_seq | ( | T * | dst,
 |  | T | value,
 |  | T | step,
 |  | Loki::Int2Type< 0 > |
 | ) |  |

template<typename T>
void Vtl::Meta::set_seq | ( | T * | dst,
 |  | T | value,
 |  | T | step,
 |  | Loki::Int2Type< 1 > |
 | ) |  |

template<typename T, int N>
void Vtl::Meta::set_seq | ( | T * | dst,
 |  | T | value,
 |  | T | step,
 |  | Loki::Int2Type< N > |
 | ) |  |

template<int N, typename T, typename TT>
void Vtl::Meta::set_seq | ( | T * | dst,
 |  | TT | value_first = 0,
 |  | TT | value_step = 1
 | ) |  |

Инициализация всех элементов массива известного на момент компиляции размера последовательнгостью чисел v,v+s,v+s,v+s,... . Полезно в задачах работы с перестановками и сортировок массивов.

template<typename TT, typename T>
TT Vtl::Meta::sum | ( | T * | dst,
 |  | Loki::Int2Type< 0 > |
 | ) |  |

А этот вариант нужен, чтобы ситуация N=0 обрабатывалась верно - ничего не делать, и не получить бесконечную рекурсию компилятора. Если же задан массив длиной 0 - то и сообщение об ошибке должно быть в том месте и с сообщением, что такие массивы не допускаются, а не о переполнении стека компилятора.

Примеры:
test_fast_gauss.cpp и test_Integral_Transforms.cpp.

template<typename TT, typename T>
TT Vtl::Meta::sum | ( | T * | dst,
 |  | Loki::Int2Type< 1 > |
 | ) |  |

Этот вариант функции не обязателен, но облегчает компилятору работу - на 1 шаг рекурсии.

template<typename TT, int N, typename T>
TT Vtl::Meta::sum | ( | T * | dst,
 |  | Loki::Int2Type< N > |
 | ) |  |

template<int N, typename TT, typename T>
TT Vtl::Meta::sum ( T * dst )

Суммирование всех элементов массива известного на момент компиляции размера числом value (без цикла, прямая его развертка).


Pipe Line Filters: Пространство имен Vtl::Meta::IL

  • Пространства имен
  • Члены пространств имен
Vtl::Meta::IL

Пространство имен Vtl::Meta::IL

Алгоритмы для работы с IndexList. Подробнее...

Классы

struct | ERROR__Index_out_of_IndexList_range
Used for error reporting (invalid index in IndexList) during compile. Подробнее...
struct | Make
Создать список из указанных индексов (в указанном порядке, без контроля повторов). В ЭТОМ И ТОЛЬКО ЭТОМ АЛГОРИТМЕ -1 считается недопустимым индексом и используется как указатель конца списка. Подробнее...
struct | Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >
struct | MakeInRange
Создать список из последовательных индексов i, i+1, i+2, ... n-1. Например MakeInRange<12,15>::Result - это списко чисел 12,13,14. Подробнее...
struct | MakeInRange< n, n >
struct | PushFront
Создать новый список состоящий из числа i за которым идут числа из списка IList. Подробнее...
struct | PushBack< i, IndexList< j, Tail > >
struct | ConCat< Head, IndexList< i, Tail > >
struct | Length< IndexList< i, T > >
struct | IndexOf< i, IndexList< i, T > >
struct | IndexOf< i, IndexList< j, T > >
struct | Elem< 0, IndexList< j, T > >
struct | Elem< i, IndexList< j, T > >
struct | Erase< i, IndexList< i, T > >
struct | Erase< i, IndexList< j, T > >
struct | EraseAt< 0, IndexList< j, T > >
struct | EraseAt< i, IndexList< j, T > >
struct | Count< v, IndexList< i, Tail > >
struct | ICount< v, 0, IndexList< j, T > >
struct | ICount< v, i, IndexList< j, T > >
struct | Debug< IndexList< i, Tail > >
struct | PushBack< i, Loki::NullType >
struct | ConCat< Head, Loki::NullType >
struct | Length< Loki::NullType >
struct | IndexOf< i, Loki::NullType >
struct | Elem< i, Loki::NullType >
struct | Erase< i, Loki::NullType >
struct | EraseAt< i, Loki::NullType >
struct | Count< v, Loki::NullType >
struct | ICount< v, i, Loki::NullType >
struct | Debug< IndexList< i, Loki::NullType > >
struct | Debug< Loki::NullType >

Функции

template<class T>
T | type2ostream ()

Подробное описание

Алгоритмы для работы с IndexList.

Функции

template<class T>
T Vtl::Meta::IL::type2ostream ( )


Pipe Line Filters: Пространство имен Vtl::Meta::Impl

  • Пространства имен
  • Члены пространств имен
Vtl::Meta::Impl

Пространство имен Vtl::Meta::Impl

Классы

struct | determinant
struct | determinant< N, Il1, Il2, N >
struct | determinant< 1, Il1, Il2, 0 >
struct | permut
struct | permut< IList1, IList2, isOdd, k, k >
struct | SizeList_base_0
struct | SizeList_base_0< IList, 0 >
struct | permut< IList1, Loki::NullType, isOdd, 0, 0 >


Pipe Line Filters: Пространство имен Vtl::NumAlg

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg

Пространство имен Vtl::NumAlg

Методы и функции вычислительной математики. Подробнее...

Пространства имен

namespace | Implicit
Алгоритмы неявной работы с контейнерами произвольного доступа. Сортировки и проч. выполняются н над контейнером, а над массивом индексов, указывающих на положение элементов в контейнере.
namespace | IntTransf
Одномерные и многомерные интегральные преобразования.
namespace | Lin
Алгоритмы линейной алгебры, alias для пространства имен boost::numeric::ublas содержащего объекты матриц и векторов и набора элементарных операций BLAS - Basic Linear Algebra Subprograms http://www.netlib.org/blas/.
namespace | Opt
namespace | Spf
Специальные функции математической физики.

Функции

template<typename T1, typename T2>
T1 | sign (T1 x1, T2 x2)
template<typename T>
T | RelerrEps ()

Подробное описание

Методы и функции вычислительной математики.

Функции

template<typename T>
T Vtl::NumAlg::RelerrEps ( )

template<typename T1, typename T2>
T1 Vtl::NumAlg::sign | ( | T1 | x1,
 |  | T2 | x2
 | ) |  |

FORTRAN definition: if (x2 >= 0) returns std::abs(x1) else returns -stdabs(x1); Т.е. возвращает число с модулем как у первого аргумента и знаком как у второго аргумента.


Pipe Line Filters: Пространство имен Vtl::NumAlg::Implicit

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::Implicit

Пространство имен Vtl::NumAlg::Implicit

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

Классы

class | Sort_base
class | Sort_base< 0 >
class | Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >
Specialization for boost::ublas::c_vector. Алгоритмы неявной сортировки. Вместо сортировки элементов контейнера, создается массив индексов элементов в контейнере. и сортируюутся эти индексы. С помощью функции operator[] можно получить индекс указанного порядкового элемента в исходном контейнере или с помощью щператора преобразования типа к const int* индексироваться просто как в массиве (константный указатель на такой массив может передаваться функциям, см. напр. функции Implicit::sort).
Пример:
. Подробнее...

Пространства имен

namespace | Pred

Функции

template<typename T, size_t M, size_t N>
void | sort_columns (Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N > &U_sorted, Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N > &U_in, const int *s)
template<typename T>
void | sort_columns (Vtl::NumAlg::Lin::ublas::matrix< T > &U_sorted, const Vtl::NumAlg::Lin::ublas::matrix< T > &U_in, const int *s)
template<typename T, size_t N>
void | sort (Vtl::NumAlg::Lin::ublas::c_vector< T, N > &V_sorted, const Vtl::NumAlg::Lin::ublas::c_vector< T, N > &V_in, const int *s)
template<typename T>
void | sort (Vtl::NumAlg::Lin::ublas::vector< T > &V_sorted, const Vtl::NumAlg::Lin::ublas::vector< T > &V_in, const int *s)

Подробное описание

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

Функции

template<typename T>
void Vtl::NumAlg::Implicit::sort | ( | Vtl::NumAlg::Lin::ublas::vector< T > & | V_sorted,
 |  | const Vtl::NumAlg::Lin::ublas::vector< T > & | V_in,
 |  | const int * | s |
 | ) |  |  | [inline]

Reorder boost::numeric::ublas::vector components in order as indexes in array s Array 's' usually obtained with Vtl::NumAlg::Implicit::Sort specialization derived from Vtl::NumAlg::Implicit::Sort_base

template<typename T, size_t N>
void Vtl::NumAlg::Implicit::sort | ( | Vtl::NumAlg::Lin::ublas::c_vector< T, N > & | V_sorted,
 |  | const Vtl::NumAlg::Lin::ublas::c_vector< T, N > & | V_in,
 |  | const int * | s |
 | ) |  |  | [inline]

Reorder boost::numeric::ublas::c_vector components in order as indexes in array s Array 's' usually obtained with Vtl::NumAlg::Implicit::Sort specialization derived from Vtl::NumAlg::Implicit::Sort_base

template<typename T>
void Vtl::NumAlg::Implicit::sort_columns | ( | Vtl::NumAlg::Lin::ublas::matrix< T > & | U_sorted,
 |  | const Vtl::NumAlg::Lin::ublas::matrix< T > & | U_in,
 |  | const int * | s |
 | ) |  |  | [inline]

Reorder boost::numeric::ublas::matrix columns in order as indexes in array s. Array 's' usually obtained with Vtl::NumAlg::Implicit::Sort specialization derived from Vtl::NumAlg::Implicit::Sort_base

template<typename T, size_t M, size_t N>
void Vtl::NumAlg::Implicit::sort_columns | ( | Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N > & | U_sorted,
 |  | Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N > & | U_in,
 |  | const int * | s |
 | ) |  |  | [inline]

Reorder boost::numeric::ublas::c_matrix columns in order as indexes in array s. Array 's' usually obtained with Vtl::NumAlg::Implicit::Sort specialization derived from Vtl::NumAlg::Implicit::Sort_base


Pipe Line Filters: Пространство имен Vtl::NumAlg::Implicit::Pred

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::Implicit::Pred

Пространство имен Vtl::NumAlg::Implicit::Pred

Классы

struct | gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
Предикат GreaterThan: Specialization for boost::ublas::c_vector. Подробнее...
struct | lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
Предикат LessThan: Specialization for boost::ublas::c_vector. Подробнее...


Pipe Line Filters: Пространство имен Vtl::NumAlg::IntTransf

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::IntTransf

Пространство имен Vtl::NumAlg::IntTransf

Одномерные и многомерные интегральные преобразования. Подробнее...

Пространства имен

namespace | Fourier
Быстрое преобразование Фурье. Основано на коде из [NRC2] , функция four1 .
namespace | Hartley
Быстрое преобразование Хартли [Brace90].
namespace | Utils
Утилиты, общие для быстрого преобразование Фурье и Хартли.

Подробное описание

Одномерные и многомерные интегральные преобразования.


Pipe Line Filters: Пространство имен Vtl::NumAlg::IntTransf::Fourier

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::IntTransf::Fourier

Пространство имен Vtl::NumAlg::IntTransf::Fourier

Быстрое преобразование Фурье. Основано на коде из [NRC2] , функция four1 . Подробнее...

Пространства имен

namespace | F
Функторы для static void Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq(I n[],ProcPair pp);.

Функции

template<typename T, typename I>
void | norm_ifft (T data[], I n, I step=1)
Обратные преобразования Фурье НЕ НОРМИРОВАНЫ, т.е. вычисляются с точностью до множителя. Если это необходимо, эта функция выполняет нормировку.
template<typename T, typename I>
void | fft1D (T re[], T im[], I n)
Одномерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im. n- должно быть степенью 2.
template<typename T, typename I>
void | ifft1D (T re[], T im[], I n)
Одномерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im. n- должно быть степенью 2.
template<typename T, typename I>
void | fft1D (T data[], I n)
Одномерное БПФ, вещественная и мнимая часть размещены в массивe data в виде последовательно расположенных пар (re, im). n- должно быть степенью 2, полная длина массива data = 2*n.
template<typename T, typename I>
void | ifft1D (T data[], I n)
Одномерное обратное БПФ, вещественная и мнимая часть размещены в массивe data в виде последовательно расположенных пар (re, im). n- должно быть степенью 2, полная длина массива data = 2*n.
template<typename T, typename I>
void | fft2D (T re[], T im[], I nn[])
Двумерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
nn - массив из 2 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов), n[1] - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | fft2D (T re[], T im[], I width, I height)
Двумерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
width - размер по первому измерению (строкам, т.е. количество столбцов),
height - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | ifft2D (T re[], T im[], I nn[])
Двумерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
nn - массив из 2 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | ifft2D (T re[], T im[], I width, I height)
Двумерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
width - размер по первому измерению (строкам, т.е. количество столбцов),
height - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | fft2D (T data[], I nn[])
Двумерное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
nn - массив из 2 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | fft2D (T data[], I width, I height)
Двумерное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
width - размер по первому измерению (строкам, т.е. количество столбцов),
height - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | ifft2D (T data[], I nn[])
Двумерное обратное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im). nn - массив из 2 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | ifft2D (T data[], I width, I height)
Двумерное обратное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im). width - размер по первому измерению (строкам, т.е. количество столбцов),
height - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | fft3D (T re[], T im[], I nn[])
Двумерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
nn - массив из 3 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк),
n[2] - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | fft3D (T re[], T im[], I n_x, I n_y, I n_z)
Двумерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
n_x - размер по первому измерению (строкам, т.е. количество столбцов),
n_y - по второму измерению (столбцам, т.е. количество строк),
n_z - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | ifft3D (T re[], T im[], I nn[])
Двумерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
nn - массив из 3 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк),
n[2] - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | ifft3D (T re[], T im[], I n_x, I n_y, I n_z)
Двумерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
n_x - размер по первому измерению (строкам, т.е. количество столбцов),
n_y - по второму измерению (столбцам, т.е. количество строк),
n_z - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | fft3D (T data[], I nn[])
Двумерное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
nn - массив из 3 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк),
n[2] - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | fft3D (T data[], I n_x, I n_y, I n_z)
Двумерное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
n_z - размер по первому измерению (строкам, т.е. количество столбцов),
n_y - по второму измерению (столбцам, т.е. количество строк),
n_z - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | ifft3D (T data[], I nn[])
Двумерное обратное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
nn - массив из 3 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк),
n[2] - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | ifft3D (T data[], I n_x, I n_y, I n_z)
Двумерное обратное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
n_x - размер по первому измерению (строкам, т.е. количество столбцов),
n_y - по второму измерению (столбцам, т.е. количество строк),
n_z - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<bool is_reverse, typename T, typename I>
void | fft1D (T re[], T im[], I n, I step=1)
БПФ одномерного сигнала, размещенного в массивах (re,im) с некоторым шагом step. В случае, когда данные расположены плотно (step=1 для раздельного размещения вещественной/мнимой части и step=2 для совместного размещения) СТРОГО РЕКОМЕНДУЕТСЯ ИСПОЛЬЗОВАТЬ СПЕЦИАЛИЗИРОВАННЫЕ ВЕРСИИ (без параметра step). Это - базовая функция, остальные функции для преобразования Фурье работают через нее.
template<size_t ndim, bool is_reverse, bool re_im_at_sep_loc, typename T, typename I>
void | fftND (T re[], T im[], I nn[])
БПФ ndim-мерных данных, размещенных раздельно в массивах (re,im) если re_im_at_sep_loc=true и в одном масиве в виде пар (тогда im=re+1). Если is_reverse=екгу - вычисляется обратное преобразование, иначе - прямое.

Подробное описание

Быстрое преобразование Фурье. Основано на коде из [NRC2] , функция four1 .

Переделано в шаблонную версию на С++, параметр шаблона - тип данных, допустим любой вещественный тип ( float, double, long double ).
Преобразование Фурье определяется слкдующим образом:

Функции

template<bool is_reverse, typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::fft1D | ( | T | re[],
 |  | T | im[],
 |  | I | n,
 |  | I | step = 1
 | ) |  |

БПФ одномерного сигнала, размещенного в массивах (re,im) с некоторым шагом step. В случае, когда данные расположены плотно (step=1 для раздельного размещения вещественной/мнимой части и step=2 для совместного размещения) СТРОГО РЕКОМЕНДУЕТСЯ ИСПОЛЬЗОВАТЬ СПЕЦИАЛИЗИРОВАННЫЕ ВЕРСИИ (без параметра step). Это - базовая функция, остальные функции для преобразования Фурье работают через нее.

Replaces data[1..2*n] by its discrete Fourier transform, if 'reverse' is false; or replaces data[1..2*n] by n times its inverse discrete Fourier transform, if 'reverse' is true. data is a complex array of length n or, equivalently, a real array of length 2*n. n MUST be an integer power of 2 (this is not checked for!).

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::fft1D | ( | T | data[],
 |  | I | n
 | ) |  |

Одномерное БПФ, вещественная и мнимая часть размещены в массивe data в виде последовательно расположенных пар (re, im). n- должно быть степенью 2, полная длина массива data = 2*n.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::fft1D | ( | T | re[],
 |  | T | im[],
 |  | I | n
 | ) |  |

Одномерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im. n- должно быть степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::fft2D | ( | T | data[],
 |  | I | width,
 |  | I | height
 | ) |  |

Двумерное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
width - размер по первому измерению (строкам, т.е. количество столбцов),
height - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::fft2D | ( | T | data[],
 |  | I | nn[]
 | ) |  |

Двумерное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
nn - массив из 2 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::fft2D | ( | T | re[],
 |  | T | im[],
 |  | I | width,
 |  | I | height
 | ) |  |

Двумерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
width - размер по первому измерению (строкам, т.е. количество столбцов),
height - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::fft2D | ( | T | re[],
 |  | T | im[],
 |  | I | nn[]
 | ) |  |

Двумерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
nn - массив из 2 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов), n[1] - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.

Примеры:
test_Integral_Transforms.cpp.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::fft3D | ( | T | data[],
 |  | I | n_x,
 |  | I | n_y,
 |  | I | n_z
 | ) |  |

Двумерное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
n_z - размер по первому измерению (строкам, т.е. количество столбцов),
n_y - по второму измерению (столбцам, т.е. количество строк),
n_z - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::fft3D | ( | T | data[],
 |  | I | nn[]
 | ) |  |

Двумерное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
nn - массив из 3 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк),
n[2] - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::fft3D | ( | T | re[],
 |  | T | im[],
 |  | I | n_x,
 |  | I | n_y,
 |  | I | n_z
 | ) |  |

Двумерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
n_x - размер по первому измерению (строкам, т.е. количество столбцов),
n_y - по второму измерению (столбцам, т.е. количество строк),
n_z - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::fft3D | ( | T | re[],
 |  | T | im[],
 |  | I | nn[]
 | ) |  |

Двумерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
nn - массив из 3 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк),
n[2] - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.

template<size_t ndim, bool is_reverse, bool re_im_at_sep_loc, typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::fftND | ( | T | re[],
 |  | T | im[],
 |  | I | nn[]
 | ) |  |

БПФ ndim-мерных данных, размещенных раздельно в массивах (re,im) если re_im_at_sep_loc=true и в одном масиве в виде пар (тогда im=re+1). Если is_reverse=екгу - вычисляется обратное преобразование, иначе - прямое.

Replaces data by its ndim-dimensional discrete Fourier transform, if 'reverse' is false. nn[1..ndim] is an integer array containing the lengths of each dimension (number of complex values), which MUST all be powers of 2. data is a real array of length twice the product of these lengths, in which the data are stored as in a multidimensional complex array: real and imaginary parts of each element are in consecutive locations, and the rightmost index of the array increases most rapidly as one proceeds along data. For a two-dimensional array, this is equivalent to storing the array by rows. If 'reverse' is true, data is replaced by its inverse transform times the product of the lengths of all dimensions.

Если re_im_at_sep_loc=true Вешественная и мнимая часть (re,im) находятся в отдельнгых массивах устроенных одинаково, в прротивном случае - вещественная и мнимая часть лежат для каждой точки последовательно, один за другим re=data, im=data+1, весь массив состоит из таких пар и устроен так же как и в первом случае. Устройство массива: Пусть пространство имеет размерность ndim=2. Тогда в масстве лежат строки такой матрицы, строка за строкой. Если ndim=3, то для каждой компоненты третьей размерности в массиве последовательно лежат данные, устроенные как для ndim=2. и.т.д. Индекс j по k-щй размерности 0 <= k < ndim пробегает значения от 0 до nn[k].

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::ifft1D | ( | T | data[],
 |  | I | n
 | ) |  |

Одномерное обратное БПФ, вещественная и мнимая часть размещены в массивe data в виде последовательно расположенных пар (re, im). n- должно быть степенью 2, полная длина массива data = 2*n.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::ifft1D | ( | T | re[],
 |  | T | im[],
 |  | I | n
 | ) |  |

Одномерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im. n- должно быть степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::ifft2D | ( | T | data[],
 |  | I | width,
 |  | I | height
 | ) |  |

Двумерное обратное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im). width - размер по первому измерению (строкам, т.е. количество столбцов),
height - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::ifft2D | ( | T | data[],
 |  | I | nn[]
 | ) |  |

Двумерное обратное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im). nn - массив из 2 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::ifft2D | ( | T | re[],
 |  | T | im[],
 |  | I | width,
 |  | I | height
 | ) |  |

Двумерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
width - размер по первому измерению (строкам, т.е. количество столбцов),
height - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::ifft2D | ( | T | re[],
 |  | T | im[],
 |  | I | nn[]
 | ) |  |

Двумерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
nn - массив из 2 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::ifft3D | ( | T | data[],
 |  | I | n_x,
 |  | I | n_y,
 |  | I | n_z
 | ) |  |

Двумерное обратное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
n_x - размер по первому измерению (строкам, т.е. количество столбцов),
n_y - по второму измерению (столбцам, т.е. количество строк),
n_z - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::ifft3D | ( | T | data[],
 |  | I | nn[]
 | ) |  |

Двумерное обратное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
nn - массив из 3 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк),
n[2] - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::ifft3D | ( | T | re[],
 |  | T | im[],
 |  | I | n_x,
 |  | I | n_y,
 |  | I | n_z
 | ) |  |

Двумерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
n_x - размер по первому измерению (строкам, т.е. количество столбцов),
n_y - по второму измерению (столбцам, т.е. количество строк),
n_z - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::ifft3D | ( | T | re[],
 |  | T | im[],
 |  | I | nn[]
 | ) |  |

Двумерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
nn - массив из 3 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк),
n[2] - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Fourier::norm_ifft | ( | T | data[],
 |  | I | n,
 |  | I | step = 1
 | ) |  |

Обратные преобразования Фурье НЕ НОРМИРОВАНЫ, т.е. вычисляются с точностью до множителя. Если это необходимо, эта функция выполняет нормировку.

Примеры:
test_Integral_Transforms.cpp.


Pipe Line Filters: Пространство имен Vtl::NumAlg::IntTransf::Fourier::F

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::IntTransf::Fourier::F

Пространство имен Vtl::NumAlg::IntTransf::Fourier::F

Функторы для static void Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq(I n[],ProcPair pp);. Подробнее...

Классы

class | ClalcF1F2conj< true, T >
class | ClalcF1F2conj< false, T >
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Если для преобразования Фурье в качестве вещественной части было предъявлени изображение I1, а в качестве мнимой - I2 и было выполнено ПФ, то вызов proc_pos_neg_freq() с этим функтором приводит к вычислению inplace выражения F1.F2* . Подробнее...
class | SplitEvenOdd
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Если для преобразования Фурье в качестве вещественной части было предъявлени изображение I1, а в качестве мнимой - I2 и было выполнено ПФ, то вызов proc_pos_neg_freq() с этим функтором позволяет извлечь преобразования Фурье ОТДЕЛЬНО для I1 и I2. Подробнее...

Пространства имен

namespace | Impl

Подробное описание

Функторы для static void Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq(I n[],ProcPair pp);.


Pipe Line Filters: Пространство имен Vtl::NumAlg::IntTransf::Fourier::F::Impl

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::IntTransf::Fourier::F::Impl

Пространство имен Vtl::NumAlg::IntTransf::Fourier::F::Impl

Функции

template<typename T>
void calc_F1multF2star_from_2_simult_real_fft (T &reQk, T &imQk, T &reQ_k, T &imQ_k)

Функции

template<typename T>
void Vtl::NumAlg::IntTransf::Fourier::F::Impl::calc_F1multF2star_from_2_simult_real_fft | ( | T & | reQk,
 |  | T & | imQk,
 |  | T & | reQ_k,
 |  | T & | imQ_k
 | ) |  |


Pipe Line Filters: Пространство имен Vtl::NumAlg::IntTransf::Hartley

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::IntTransf::Hartley

Пространство имен Vtl::NumAlg::IntTransf::Hartley

Быстрое преобразование Хартли [Brace90]. Подробнее...

Пространства имен

namespace | F
Функторы для static void Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq(I n[],ProcPair pp);.
namespace | Impl

Функции

template<typename T, typename I>
void | fht1D_ (T *data, I n, I step)
Быстрое одномерное преобразование Хартли массива data. Время работы n*log(n).
template<int ndim, typename T, typename I>
void | GetModul (T *hartley, I n[], T *real)
Получить действительную часть преобразования Фурье из преобразования Хартли.
template<int ndim, typename T, typename I>
void | GetReal (T *hartley, I n[], T *real)
Получить действительную часть преобразования Фурье из преобразования Хартли.
template<typename T, typename I>
void | GetReal_1D (T *hartley, I n, T *real, I step=1, I step_real=1)
template<int ndim, typename T, typename I>
void | GetImag (T *hartley, I n[], T *imag)
Получить мнимую часть преобразования Фурье из преобразования Хартли.
template<typename T, typename I>
void | GetImag_1D (T *hartley, I n, T *imag, I step=1, I step_imag=1)
template<typename T, typename I>
void | AddQuadrants2D (T data[], I w, I h)
Сложить квадранты согласно четырехчленной формуле.
template<typename T, typename I>
void | fht2D_square (T data[], I w, I h)
Быстрое двумерное преобразование Хартли матрицы data. Время работы n*log(n).
template<typename T, typename I>
void | quasi_fht2D (T data[], I n)
Быстрое преобразование Хартли строк, а затем столбцов квадратной матрицы data.
template<size_t ndim, typename T, typename I>
void | quasi_fhtND (T data[], I nn[])
template<typename T, typename I>
void | fht1D (T data[], I n)
Быстрое одномерное преобразование Хартли.
template<typename T, typename I>
void | ifht1D (T data[], I n)
template<typename T, typename I>
void | fht2D (T data[], I width, I height)
template<typename T, typename I>
void | ifht2D (T data[], I width, I height)

Подробное описание

Быстрое преобразование Хартли [Brace90].

Параметр шаблона - тип данных, допустим любой вещественный тип ( float, double, long double ).
Преобразование Хартли определяется слкдующим образом:

Таким образом прямое и обратное интегральные преобразования совпадают, [image] В случае дискретного преобразования, обратное преобразование требует деления результата на N, где N -длина выборки данных (должна быть степенью 2), на которых выполняется преобразование.

Если Функция h(x) вещественная , то из определения видно, что в отличие от преобразования Фурье, спектр Хартли тоже вещественный. Существует связь между преобразованиями Фурье и Хартли для вещественных данных:

Внимание! Эти формулы зависят от способа определения преобразования Фурье и соответствуют определению, данному в IntTransf::Fourier

Функции

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Hartley::AddQuadrants2D | ( | T | data[],
 |  | I | w,
 |  | I | h
 | ) |  |

Сложить квадранты согласно четырехчленной формуле.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Hartley::fht1D | ( | T | data[],
 |  | I | n
 | ) |  |

Быстрое одномерное преобразование Хартли.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Hartley::fht1D_ | ( | T * | data,
 |  | I | n,
 |  | I | step
 | ) |  |

Быстрое одномерное преобразование Хартли массива data. Время работы n*log(n).

Примеры:
test_Integral_Transforms.cpp.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Hartley::fht2D | ( | T | data[],
 |  | I | width,
 |  | I | height
 | ) |  |

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Hartley::fht2D_square | ( | T | data[],
 |  | I | w,
 |  | I | h
 | ) |  |

Быстрое двумерное преобразование Хартли матрицы data. Время работы n*log(n).

Примеры:
test_Integral_Transforms.cpp.

template<int ndim, typename T, typename I>
void Vtl::NumAlg::IntTransf::Hartley::GetImag | ( | T * | hartley,
 |  | I | n[],
 |  | T * | imag
 | ) |  |

Получить мнимую часть преобразования Фурье из преобразования Хартли.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Hartley::GetImag_1D | ( | T * | hartley,
 |  | I | n,
 |  | T * | imag,
 |  | I | step = 1,
 |  | I | step_imag = 1
 | ) |  |

Примеры:
test_Integral_Transforms.cpp.

template<int ndim, typename T, typename I>
void Vtl::NumAlg::IntTransf::Hartley::GetModul | ( | T * | hartley,
 |  | I | n[],
 |  | T * | real
 | ) |  |

Получить действительную часть преобразования Фурье из преобразования Хартли.

template<int ndim, typename T, typename I>
void Vtl::NumAlg::IntTransf::Hartley::GetReal | ( | T * | hartley,
 |  | I | n[],
 |  | T * | real
 | ) |  |

Получить действительную часть преобразования Фурье из преобразования Хартли.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Hartley::GetReal_1D | ( | T * | hartley,
 |  | I | n,
 |  | T * | real,
 |  | I | step = 1,
 |  | I | step_real = 1
 | ) |  |

Примеры:
test_Integral_Transforms.cpp.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Hartley::ifht1D | ( | T | data[],
 |  | I | n
 | ) |  |

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Hartley::ifht2D | ( | T | data[],
 |  | I | width,
 |  | I | height
 | ) |  |

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Hartley::quasi_fht2D | ( | T | data[],
 |  | I | n
 | ) |  |

Быстрое преобразование Хартли строк, а затем столбцов квадратной матрицы data.

template<size_t ndim, typename T, typename I>
void Vtl::NumAlg::IntTransf::Hartley::quasi_fhtND | ( | T | data[],
 |  | I | nn[]
 | ) |  |

Вычисляет НЕ многомерное преобразование Хартли, а заготовку для него, сепарабельную часть. Преобразование Хартли получается из этого результата путем применения соответствующей формулы, например для 2D - четырех членной

См. также:
AddQuadrants2D

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Пространство имен Vtl::NumAlg::IntTransf::Hartley::F

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::IntTransf::Hartley::F

Пространство имен Vtl::NumAlg::IntTransf::Hartley::F

Функторы для static void Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq(I n[],ProcPair pp);. Подробнее...

Классы

class | Hartley2Modul
class | Hartley2Re
class | Hartley2Im
class | Hartley2Amp
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье). Подробнее...
class | Hartley2AmpDown
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье). Подробнее...
class | Hartley2PhaseAmp
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье) и фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде. Подробнее...
class | Hartley2PhaseAmpDown
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье) и фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде. Подробнее...
class | Hartley2Phase
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде. Подробнее...
class | PhaseCorr
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Вычисляет выражение для преобразования Хартли аналогичное по свойствам выражению F1.F2* для преобразования Фурье. Результат может быть помещен вместо одного из преобразований Хартли. Функтор применим для любой размерности пространства, в т.ч. ndim>2. Подробнее...

Подробное описание

Функторы для static void Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq(I n[],ProcPair pp);.


Pipe Line Filters: Пространство имен Vtl::NumAlg::IntTransf::Hartley::Impl

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::IntTransf::Hartley::Impl

Пространство имен Vtl::NumAlg::IntTransf::Hartley::Impl

Функции

template<typename T, typename I>
static void dif_sum (T *data, I i, I j)

Функции

template<typename T, typename I>
static void Vtl::NumAlg::IntTransf::Hartley::Impl::dif_sum | ( | T * | data,
 |  | I | i,
 |  | I | j |
 | ) |  |  | [static]


Pipe Line Filters: Пространство имен Vtl::NumAlg::IntTransf::Utils

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::IntTransf::Utils

Пространство имен Vtl::NumAlg::IntTransf::Utils

Утилиты, общие для быстрого преобразование Фурье и Хартли. Подробнее...

Пространства имен

namespace | F
Функторы для static void Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq(I n[],ProcPair pp);.
namespace | Impl

Функции

template<typename T>
T | Sqr (T v)
template<size_t ndim, typename I>
I | ArrayElemProduct (I n[])
Вычисляет произведение елементов массива n длины ndim.
template<typename I>
I | smallest_log2_ge_size (I size)
Вычисляет наименьшее k такое, что 2^k >= size.
template<typename I>
I | CalcSmalestPow2 (I size)
Вычисляет наименьшее число, являющееся степеью 2 большее или равное size.
template<typename I>
I | rev (I index, I log2_size)
Переставляет биты числа \с index в обратном порядке, считая число \с log2_size -разрядным.
template<typename I>
I | rev (I index, I log2_size, I step)
template<typename T, typename I>
void | bit_reversal (T data, I size)
Функция выполняет перестановку элементов массива data. size должен быть степенью 2.
template<typename T, typename I>
void | bit_reversal (T data, I size, I step)
template<typename T, typename I>
void | bit_reversal_complex (T data, I size, I step)
template<typename T, typename I>
void | bit_reversal_complex (T re, T im, I size, I step)
template<typename T, typename I>
void | SwapArrayHalfs (T *re, T *im, I size, I step)
Обменять половинки массивов re и im для перемещения нулевой частоты в центр массивов.
template<bool is_complex, typename T, typename I>
void | SwapArrayHalfs (T *data, I size, I step)
Обменять половинки массива data для перемещения нулевой частоты в центр массиваю.
template<typename T, typename I>
void | swap (T *d1, T *d2, I len)
template<typename T, typename I>
void | mult (T data[], I n, T multiplier, I step=1)
Выполняет умножение n элементов массива data с шагом step.
template<bool is_complex_pairs, typename T, typename I>
void | SwapQuarters (T data[], I w, I h)
template<unsigned ndim, bool is_complex_pairs, typename T, typename I>
void | SwapQuadrants (T data[], I n[])
Выполняет перестановку квадрантов, чтобы перенести нулевую частоту / нуль системы координат в центр. Работает в пространстве любой размерности. data - массив данных, размещенных строка за строкой, плоскость за плоскостью и т.д. Размерность пространства ndim По каждому измерению k, 0 <= k < ndim размер матрицы равен n[k]. В преобразованиях Фурье и Хартли n[k] должны быть степенями 2, однако именно эта функция требует только, чтобы n[k] были четными для всех k=0..ndim-1.
template<unsigned ndim, typename T, typename I>
void | SwapQuadrants (T re[], T im[], I n[])
Выполняет перестановку квадрантов, чтобы перенести нулевую частоту / нуль системы координат в центр. Работает в пространстве любой размерности. data - массив данных, размещенных строка за строкой, плоскость за плоскостью и т.д. Размерность пространства ndim По каждому измерению k, 0 <= k < ndim размер матрицы равен n[k]. В преобразованиях Фурье и Хартли n[k] должны быть степенями 2, однако именно эта функция требует только, чтобы n[k] были четными для всех k=0..ndim-1.
template<typename T, typename I>
void | TransposeSqrMatrix (T data[], I n)
Транспонировать квадратную матрицу, хранится строка за строкой в одномерном массиве data без пустот.
template<size_t ndim, class Functor, typename I>
void | ForEachDimensionDo1D (Functor &func, I nn[])
Используется для "переобразования" одномерного преобразования в многомерные.
template<size_t ndim, bool re_im_at_sep_loc, typename I>
I | offset_to_zero_freq (I nn[])
template<size_t ndim, typename I, class ProcPair>
static void | proc_pos_neg_freq (I n[], ProcPair pp)
Служит для вычислений с преобразованиями Фурье и Хартли, когда требуемая величина определяется парой значений спектра на двух частотах k и -k ,отличающихся знаком (разделение чет-нечет, действия по извлечению из ПХ амплитуды и фазы Фурье и т.п).

Подробное описание

Утилиты, общие для быстрого преобразование Фурье и Хартли.

Основаны на предположении, что данные (для любой размерности) лежат в одномерном массиве, элемент за элементом, сначала по первой размерности, затем для второй, затем по третьей и т.д. Размер данных по каждой размерности - степень двойки. Например, в двумерном случае данные вида
1 2 3
4 5 6
7 8 9
представляются в виде:
1 2 3 4 5 6 7 8 9
В трехмернос случае -данные можно представить как набор таких плоскостей, и в одномерном массиве сначала будет подобная цепочка для первой плоскости, потом для второй, потом для третьей. В многомерных случаях аналогично.
В том случае, если данные комплексные - возможно два подхода, данные могут ледать в таком же порядке, но парами комплексных чисел (т.е. 2 элемента массива), либо в двух отдельных массивах - веществення и мнимая часть, каждая в указанном порядке.

Функции

template<size_t ndim, typename I>
I Vtl::NumAlg::IntTransf::Utils::ArrayElemProduct ( I n[] )

Вычисляет произведение елементов массива n длины ndim.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::bit_reversal | ( | T | data,
 |  | I | size,
 |  | I | step
 | ) |  |

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::bit_reversal | ( | T | data,
 |  | I | size
 | ) |  |

Функция выполняет перестановку элементов массива data. size должен быть степенью 2.

Элемент с идексом i помещается на место элемента с индексом j, причем биты числа i есть биты числа j, записанные в обратном порядке.
Пример: Пусть длина строки (n) равна 8. Рассматриваем только первые 3 (log(n)) битов. Тогда:
i = 0 = 000 <=> j = 0 = 000
i = 1 = 001 <=> j = 4 = 100
i = 2 = 010 <=> j = 2 = 010
i = 3 = 011 <=> j = 6 = 110
i = 4 = 100 <=> j = 1 = 001
i = 5 = 101 <=> j = 5 = 101
i = 6 = 110 <=> j = 3 = 011
i = 7 = 111 <=> j = 7 = 111
T - любой тип (например float*) такой, что определен operator[](I i), значение I лежит в интервале 0 <= i < size ; и функция std::swap() может принять в качестве аргументов data[i], data[j] .

Примеры:
test_Integral_Transforms.cpp.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::bit_reversal_complex | ( | T | re,
 |  | T | im,
 |  | I | size,
 |  | I | step
 | ) |  |

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::bit_reversal_complex | ( | T | data,
 |  | I | size,
 |  | I | step
 | ) |  |

Примеры:
test_Integral_Transforms.cpp.

template<typename I>
I Vtl::NumAlg::IntTransf::Utils::CalcSmalestPow2 ( I size )

Вычисляет наименьшее число, являющееся степеью 2 большее или равное size.

Примеры:
test_color_registration.cpp, test_image_registration_via_fft.cpp и test_Integral_Transforms.cpp.

template<size_t ndim, class Functor, typename I>
void Vtl::NumAlg::IntTransf::Utils::ForEachDimensionDo1D | ( | Functor & | func,
 |  | I | nn[]
 | ) |  |

Используется для "переобразования" одномерного преобразования в многомерные.

Применяет одномерное преобразование последовательно по каждой размерности многомерного массива. массив, преобразование и ряд других павраметров передается через функтор func.
Тип Functor должен иметь структуру:

    class func
    {
        //..
    public:
        void operator()(I j_first,I n,I step) {}
        enum { sm;};
    };
и может быть как обычным, так и шаблонным классом.
Предполагается, что N-мерные данные (dim=N, размер матрицы равен nn[k] по размерности k, 0<=k<ndim) лежат в одномерном массиве строка за строкой, плоскость за плоскостью и.т.д. Данные могут быть в нескольких массивах, организованных идентично, например в случае преобразования Фурье вещественная и мнимая часть могут храниться отдельно. Указатели на эти одномерные массивы должны быть переданы и сохранены в функторе черех конструктор. Если, как например в случае преобразования Фурье, данные представляют собой несколько элементов (вещественная и мнимая часть), хранящихся в виде последовательностей (пар для Фурье) в одном и том же массиве, иными словами многомерное преобразование осуществляется над массивом, "элементом" которого из последовательность элементов длины M, то поле перечисления sm должно быть равно M, в противном случае sm=1. например для Фурье, хранящего вещественную и мнимую часть в отдельных массивах sm=1, а для массива хранящего вещественную и мнимую часть в виде пар элементов массива следующих один за другим sm=2.
Функция
operator()() длолжна выполнять желаемое одномерное преобразование на последовательности элементов данных длиной n, выбирая их из массива с шагом step, начиная с элемента массива с номером j_first. Здесь step и j_first считаются в элементах данных, умножение на sm будет выполнено самой функцией ForEachDimensionDo1D. В качестве примера использхования
См. также:
IntTransf::Fourier::fftND(), IntTransf::Hartley::quasi_fhtND()

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::mult | ( | T | data[],
 |  | I | n,
 |  | T | multiplier,
 |  | I | step = 1
 | ) |  |

Выполняет умножение n элементов массива data с шагом step.

Примеры:
test_spec_functions.cpp.

template<size_t ndim, bool re_im_at_sep_loc, typename I>
I Vtl::NumAlg::IntTransf::Utils::offset_to_zero_freq ( I nn[] )

Смещение относительно начала массива до нулевой (центральной в массиве) частоты.

template<size_t ndim, typename I, class ProcPair>
static void Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq | ( | I | n[],
 |  | ProcPair | pp |
 | ) |  |  | [static]

Служит для вычислений с преобразованиями Фурье и Хартли, когда требуемая величина определяется парой значений спектра на двух частотах k и -k ,отличающихся знаком (разделение чет-нечет, действия по извлечению из ПХ амплитуды и фазы Фурье и т.п).

Действие задается функтором,

См. также:
namespace Vtl::NumAlg::IntTransf::Utils::F

namespace Vtl::NumAlg::IntTransf::Fourier::F

namespace Vtl::NumAlg::IntTransf::Hartley::F

Работает для любой размерности пространства, ndim>=1.

template<typename I>
I Vtl::NumAlg::IntTransf::Utils::rev | ( | I | index,
 |  | I | log2_size,
 |  | I | step
 | ) |  |

Переставляет биты числа \с index в обратном порядке, считая число \с log2_size -разрядным , log2(step) младших битов числа игнорируются и остаются нулевыми, а обращение происходит для log2_size разрядов старше, чем log2(step). Это эквивалентно последовательности вызовов

 I lstep=log2(step);
 index >>= lstep;
 index=bit_reversal(index,log2_size);
 index <<= lstep;
но вероятно эффективнее.
step должен быть степенью двойки, это не проверяется!
Примеры:
test_Integral_Transforms.cpp.

template<typename I>
I Vtl::NumAlg::IntTransf::Utils::rev | ( | I | index,
 |  | I | log2_size
 | ) |  |

Переставляет биты числа \с index в обратном порядке, считая число \с log2_size -разрядным.

Примеры:
test_Integral_Transforms.cpp.

template<typename I>
I Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size ( I size )

Вычисляет наименьшее k такое, что 2^k >= size.

Примеры:
test_Integral_Transforms.cpp.

template<typename T>
T Vtl::NumAlg::IntTransf::Utils::Sqr ( T v )

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::swap | ( | T * | d1,
 |  | T * | d2,
 |  | I | len
 | ) |  |

template<bool is_complex, typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs | ( | T * | data,
 |  | I | size,
 |  | I | step
 | ) |  |

Обменять половинки массива data для перемещения нулевой частоты в центр массиваю.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs | ( | T * | re,
 |  | T * | im,
 |  | I | size,
 |  | I | step
 | ) |  |

Обменять половинки массивов re и im для перемещения нулевой частоты в центр массивов.

Примеры:
test_Integral_Transforms.cpp.

template<unsigned ndim, typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::SwapQuadrants | ( | T | re[],
 |  | T | im[],
 |  | I | n[]
 | ) |  |

Выполняет перестановку квадрантов, чтобы перенести нулевую частоту / нуль системы координат в центр. Работает в пространстве любой размерности. data - массив данных, размещенных строка за строкой, плоскость за плоскостью и т.д. Размерность пространства ndim По каждому измерению k, 0 <= k < ndim размер матрицы равен n[k]. В преобразованиях Фурье и Хартли n[k] должны быть степенями 2, однако именно эта функция требует только, чтобы n[k] были четными для всех k=0..ndim-1.

См. также:
SwapQuadrants(T data[],I n[])

template<unsigned ndim, bool is_complex_pairs, typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::SwapQuadrants | ( | T | data[],
 |  | I | n[]
 | ) |  |

Выполняет перестановку квадрантов, чтобы перенести нулевую частоту / нуль системы координат в центр. Работает в пространстве любой размерности. data - массив данных, размещенных строка за строкой, плоскость за плоскостью и т.д. Размерность пространства ndim По каждому измерению k, 0 <= k < ndim размер матрицы равен n[k]. В преобразованиях Фурье и Хартли n[k] должны быть степенями 2, однако именно эта функция требует только, чтобы n[k] были четными для всех k=0..ndim-1.

Обоснование:
Такое преобразование эквивалентно тому, что фиксируя по очереди каждое измерение k=0..ndim-1, все данные переставляются относительно точки n[k]/2 - центра. Такой подход приведет к перестановке всех данных массива ndim раз. Однако выполняя это по всем k заметим, что если обозначить битом 0 первую половину данных по k измерению, а битом 1 вторую (старшие адреса), то достаточно все данные переставить только один раз, причем обменивая квадрант, определямемый битовой маской xxxxb , содержащей ndim битов с квадрантом определяемым маской, полученной из первой побитным отрицанием. Легко также заметить, что все возможные значения масок лежат в диапазоне от 0 до 11..1b (число единиц равно ndim). Чтобы перебрать все указанные пары достаточно перебрать маски от 0 до 1<<(ndim-1) и обменивать квадранты с полученной маской и ее побитовым дополнением. смещение относительно начала массива data до квадранта с маской mask легко вычислить как

 size_t offset=0;
 for(size_t  k=0, j=1; k<ndim; ++k, mask>>1)
 {
        offset+=(mask&1)? () (n[k]/2)*j : 0;
        j*=n[k];
 }
См. также:
SwapQuadrants(T re[],T im[],I n[])

template<bool is_complex_pairs, typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::SwapQuarters | ( | T | data[],
 |  | I | w,
 |  | I | h
 | ) |  |

Двумерные данные (изображения) лежат в массиве строка за строкой, подряд без дыр и выравниваний. w и h ширина (cols) и высота (rows) изображения, эти величины должны быть как минимум четными, в задачах преобразования Фурье/Хартли - степенями 2.

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::TransposeSqrMatrix | ( | T | data[],
 |  | I | n
 | ) |  |

Транспонировать квадратную матрицу, хранится строка за строкой в одномерном массиве data без пустот.


Pipe Line Filters: Пространство имен Vtl::NumAlg::IntTransf::Utils::F

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::IntTransf::Utils::F

Пространство имен Vtl::NumAlg::IntTransf::Utils::F

Функторы для static void Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq(I n[],ProcPair pp);. Подробнее...

Классы

class | ReflectHalfToOther
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Отражает данные из полуплоскости (верхней или нижней), заданной параметром fromUpToDown в другую. Данные не имеющие пары прописываются нулем. Подробнее...
class | Test
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Тестовый пример. Подробнее...

Подробное описание

Функторы для static void Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq(I n[],ProcPair pp);.


Pipe Line Filters: Пространство имен Vtl::NumAlg::IntTransf::Utils::Impl

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::IntTransf::Utils::Impl

Пространство имен Vtl::NumAlg::IntTransf::Utils::Impl

Классы

struct | ArrayElemProduct
struct | ArrayElemProduct< I, 0 >
class | TrigRecurrence
struct | SwapQuadrants
struct | SwapQuadrants< is_complex_pairs, 1 >
struct | proc_pos_neg_freq_
struct | proc_pos_neg_freq_< 0, upper_half >

Функции

template<typename T, typename I>
void | SwapArrayHalfs (T *data, I size, I step, Loki::Int2Type< false >)
template<typename T, typename I>
void | SwapArrayHalfs (T *data, I size, I step, Loki::Int2Type< true >)
template<unsigned ndim, bool is_complex_pairs, typename I>
size_t | SwapQuadrants_offset (size_t mask, I nn[])
Used ONLY by IntTransf::Utils::SwapQuadrants() function.

Функции

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::Impl::SwapArrayHalfs | ( | T * | data,
 |  | I | size,
 |  | I | step,
 |  | Loki::Int2Type< true > |
 | ) |  |

template<typename T, typename I>
void Vtl::NumAlg::IntTransf::Utils::Impl::SwapArrayHalfs | ( | T * | data,
 |  | I | size,
 |  | I | step,
 |  | Loki::Int2Type< false > |
 | ) |  |

template<unsigned ndim, bool is_complex_pairs, typename I>
size_t Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants_offset | ( | size_t | mask,
 |  | I | nn[]
 | ) |  |

Used ONLY by IntTransf::Utils::SwapQuadrants() function.


Pipe Line Filters: Пространство имен Vtl::NumAlg::Lin

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::Lin

Пространство имен Vtl::NumAlg::Lin

Алгоритмы линейной алгебры, alias для пространства имен boost::numeric::ublas содержащего объекты матриц и векторов и набора элементарных операций BLAS - Basic Linear Algebra Subprograms http://www.netlib.org/blas/. Подробнее...

Классы

class | PseudoInverseElemPositive
class | PseudoInverseElem
class | cholesky
class | eigen
class | QR
class | svd

Функции

template<class Iter>
Iter | max_abs_element (Iter begin, Iter end)
template<class M, class V>
void | prod_diag (ublas::matrix_container< M > &A, const ublas::vector_container< V > &diag_matrix)
template<class V, class M>
void | prod_diag (const ublas::vector_container< V > &diag_matrix, ublas::matrix_container< M > &A)
template<class VectorW>
static void | inverse_diag_matrix_positive (VectorW &W, double relerr)
template<class VectorW>
static void | inverse_diag_matrix (VectorW &W, double relerr)
template<class M>
M::value_type | matrix_max_abs_element (M &A)
template<typename T>
T | hypot (T x, T y)
template<typename T>
T | sing_fortran (T x1, T x2)

Подробное описание

Алгоритмы линейной алгебры, alias для пространства имен boost::numeric::ublas содержащего объекты матриц и векторов и набора элементарных операций BLAS - Basic Linear Algebra Subprograms http://www.netlib.org/blas/.

Функции

template<typename T>
T Vtl::NumAlg::Lin::hypot | ( | T | x,
 |  | T | y
 | ) |  |

Computes eigenvalues and eigenvectors of a real (non-complex) matrix.

If A is symmetric, then A = V*D*V' where the eigenvalue matrix D is diagonal and the eigenvector matrix V is orthogonal. That is, the diagonal values of D are the eigenvalues, and V*V' = I, where I is the identity matrix. The columns of V represent the eigenvectors in the sense that A*V = V*D.

If A is not symmetric, then the eigenvalue matrix D is block diagonal with the real eigenvalues in 1-by-1 blocks and any complex eigenvalues, a + i*b, in 2-by-2 blocks, [a, b; -b, a]. That is, if the complex eigenvalues look like

              u + iv     .        .          .      .    .
                .      u - iv     .          .      .    .
                .        .      a + ib       .      .    .
                .        .        .        a - ib   .    .
                .        .        .          .      x    .
                .        .        .          .      .    y

 then D looks like

                u        v        .          .      .    .
               -v        u        .          .      .    .
                .        .        a          b      .    .
                .        .       -b          a      .    .
                .        .        .          .      x    .
                .        .        .          .      .    y

 This keeps V a real matrix in both symmetric and non-symmetric cases, and A*V = V*D.

The matrix V may be badly conditioned, or even singular, so the validity of the equation A = V*D*inverse(V) depends upon the condition number of V.

(Adapted from JAMA, a Java Matrix Library, developed by jointly by the Mathworks and NIST; see http://math.nist.gov/javanumerics/jama).

template<class VectorW>

static void Vtl::NumAlg::Lin::inverse_diag_matrix | ( | VectorW & | W,
 |  | double | relerr |
 | ) |  |  | [static]

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

return (abs(value)>eps)? 1/value : 0;

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

template<class VectorW>

static void Vtl::NumAlg::Lin::inverse_diag_matrix_positive | ( | VectorW & | W,
 |  | double | relerr |
 | ) |  |  | [static]

Обращает каждый элемент диагональной матрицы в смысле как псевдообратные сингулярных чисел, т.е. return (value>eps)? 1/value : 0;

Предполагается, что все элементы диагональной матрицы >=0

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

template<class M>

          M::value_type Vtl::NumAlg::Lin::matrix_max_abs_element
          (
          M &
           A
           )

Возвращает абсолютное значение максимального по абсолютной величние элемента матрицы. max_{i,j}|Aij| -norm
Примеры:

test_boost_mtr.cpp.

template<class Iter>

Iter Vtl::NumAlg::Lin::max_abs_element | ( | Iter | begin,
 |  | Iter | end
 | ) |  |

Возвращает абсолютное значение максимального по абсолютной величние элемента контейнера, описываемого итераторами начала и конца.

template<class V, class M>

void Vtl::NumAlg::Lin::prod_diag | ( | const ublas::vector_container< V > & | diag_matrix,
 |  | ublas::matrix_container< M > & | A
 | ) |  |

Выполняет умножение диагональной матрицы, представленной вектором diag_matrix, содержащим элементы диагонгали матрицы на матрицу A.

Результат - МОДИФИЦИРОВАННАЯ матрица A (строки A домножены на соответствующие елементы диагональной матрицы).

Матрица и вектор должны быть объектами Boost.
Примеры:

test_boost_mtr.cpp.

template<class M, class V>

void Vtl::NumAlg::Lin::prod_diag | ( | ublas::matrix_container< M > & | A,
 |  | const ublas::vector_container< V > & | diag_matrix
 | ) |  |

Выполняет умножение матрицы A на диагональную матрицу, представленную вектором diag_matrix, содержащим элементы диагонгали матрицы.

Результат - МОДИФИЦИРОВАННАЯ матрица A (столбцы A домножены на соответствующие елементы диагональной матрицы).

Матрица и вектор должны быть объектами Boost.

template<typename T>

T Vtl::NumAlg::Lin::sing_fortran | ( | T | x1,
 |  | T | x2 |
 | ) |  |  | [inline]

 Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008
Author: Dmitry V. Yurin
  [image]
 http://imaging.cs.msu.su/index.html


Pipe Line Filters: Пространство имен Vtl::NumAlg::Opt

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::Opt

Пространство имен Vtl::NumAlg::Opt

Функции

template<typename T, class Functor>
T | Fmin (Functor fun, T A, T B, T tol=T(0))
template<typename T, int n, class Functor>
void | nrc_lnsrch (boost::numeric::ublas::c_vector< T, n > &xold_, T fold, boost::numeric::ublas::c_vector< T, n > &g_, boost::numeric::ublas::c_vector< T, n > &p_, boost::numeric::ublas::c_vector< T, n > &x_, T &f, T stpmax, int &check, Functor func)
template<typename T, int n, class Functor>
T | nrc_dfpmin (boost::numeric::ublas::c_vector< T, n > &p_, T gtol, int &iter, Functor func)

Функции

template<typename T, class Functor>
T Vtl::NumAlg::Opt::Fmin | ( | Functor | fun,
 |  | T | A,
 |  | T | B,
 |  | T | tol = T(0) |
 | ) |  |  | [inline]

Вычисляется приближение X к точке, где fun достигает минимума на интервале [A,B].

Аргументы:
[in] | fun | - функтор, который вычисляет fun(X) для любого X в интервале [A,B].
[in] | A | - левый конец исходного интервала
[in] | B | - правый конец исходного интервала
[in] | tol | - желаемая длина интервала неопределенности конечного результата / tol >= 0. /.
Возвращаемые значения:
Fmin - абсцисса, аппроксимирующая точку, где fun достигает минимума.
Код из книги [Forsythe80] , соответствующим образом переделанный с ФОРТРАНа на C++ в шаблонную функцию. Шаблон - чтобы:
  • работать с любыми типами плавающей точности
  • не иметь проблем как передать функции дополнительные параметры, функтор может быть и классом и иметь внутри себя сколько угодно дополнительных данных.
  • дать компилятору возможность инлайновой подстановки кода функтора.
Метод использует комбинацию поиска золотого сечения и последова- тельной параболической интерполяции. Сходимость никогда не бывает хуже, чем для поиска Фибоначчи. Если fun имеет непрерывную вторую про- изводную,положительную в точке минимума (не совпадающей ни с A, ни с B), то сходимость сверхлинейная и обычно имеет порядок примерно 1.324... Функция fun никогда не вычисляется в двух точках, отстоящиь друг от друга менее чем на eps*abs(X)+tol/3 , где eps приблизительно равно квадратному корню из относительной машинной точности. Если fun - уни- модальная функция и вычисленные значения fun сохраняют унимодальность при соблюдении указанного условия раздельности, то FMIN аппроксими- рует абсциссу глобального минимума fun на интервале (A,B) с ошибкой, меньшей 3*eps*abs(X)+tol. Если fun не является унимодальной, то FMIN может с той же точностью аппроксимировать локальный минимум, возмож- но, не совпадающий с глобальным. Эта подпрограмма-функция является слегка модифиципованной версией АЛГОЛ 60 - процедуры LOCALMIN,приведенной в книге Richard Brent , Algorithms for minimization without derivatives, Prentice-Hall,inc. (1973).

template<typename T, int n, class Functor>
T Vtl::NumAlg::Opt::nrc_dfpmin | ( | boost::numeric::ublas::c_vector< T, n > & | p_,
 |  | T | gtol,
 |  | int & | iter,
 |  | Functor | func |
 | ) |  |  | [inline]

Given a starting point

Аргументы:
p_ | - that is a vector of length n. the Broyden-Fletcher-Goldfarb-Shanno variant of Davidon-Fletcher-Powell minimization is performed on a function
gtol | - The convergence requirement on zeroing the gradient is input as gtol.
func | - functor which specify a function to minimize and a gradient of this function/ Returned quantities are:
p_ | - the location of the minimum,
iter | - the number of iterations that were performed,
Возвращает:
- the minimum value of the function. The routine nrc_lnsrch is called to perform approximate line minimizations.
From Numerical Recipes 2.0 in C 10.7 Variable Metric Methods in Multidimensions, page 428

Functor доджен иметь сигнатуру:

 template<typename T,int n>
 struct Func
 {
    typedef boost::numeric::ublas::c_vector<T,n> Vector;
     // returns function Func value at n-dimentional point v
     T operator(const Vector& v )()
     {
        //some code.
     }
     // if You whant, You can add this operator (but it is not required!)
     T operator(const Vector& v,Loki::Int2type<0> )()
     {
         retunr (*this)(v);
     }
     // returns function Func GRADIENT value (vector with
     // componet i=0..(n-1) wich is 1-st derivative in v[i] ) at n-dimentional point v
     Vector operator(const Vector& v,Loki::Int2type<1> )()
     {
        //Implementation MUST BE such as (for efficiency reasons):
            Vector grad_vector;
            grad(grad_vector,v);
            return grad_vector;
     }
 private:
     // returns function Func GRADIENT value (vector with
     // componet i=0..(n-1) wich is 1-st derivative in v[i] ) at n-dimentional point v
     void grad(Vector& grad_vector,const Vector& v)
     {
        //some code.
     }
 };

template<typename T, int n, class Functor>
void Vtl::NumAlg::Opt::nrc_lnsrch | ( | boost::numeric::ublas::c_vector< T, n > & | xold_,
 |  | T | fold,
 |  | boost::numeric::ublas::c_vector< T, n > & | g_,
 |  | boost::numeric::ublas::c_vector< T, n > & | p_,
 |  | boost::numeric::ublas::c_vector< T, n > & | x_,
 |  | T & | f,
 |  | T | stpmax,
 |  | int & | check,
 |  | Functor | func |
 | ) |  |  | [inline]

Given an n-dimensional point xold_[1..n], the value of the function and gradient there, fold and g_[1..n], and a direction p_[1..n], finds a new point x_[1..n] along the direction p_ from xold_ where the function func has decreased "suffciently." The new function value is returned in f. stpmax is an input quantity that limits the length of the steps so that you do not try to evaluate the function in regions where it is undefined or subject to overflow. p_ is usually the Newton direction. The output quantity check is false (0) on a normal exit. It is true (1) when x_ is too close to xold_. In a minimization algorithm, this usually signals convergence and can be ignored. However, in a zero-finding algorithm the calling program should check whether the convergence is spurious. Some "difficult" problems may require double precision in this routine.

Numerical recipes in C ver 2.0, Page 385 Chapter 9. Root Finding and Nonlinear Sets of Equations


Pipe Line Filters: Пространство имен Vtl::NumAlg::Spf

  • Пространства имен
  • Члены пространств имен
Vtl::NumAlg::Spf

Пространство имен Vtl::NumAlg::Spf

Специальные функции математической физики. Подробнее...

Классы

class | bess
Returns the Bessel functions for any real x. Подробнее...
class | Gamma

Функции

float | erf (float x)
Returns the error function erf(x). Функция ошибок, определяется формулой: .
float | erfc (float x)
Returns the complementary error function erfc(x). Определяется формулой: .
float | erfcc (float x)
Returns the complementary error function erfc(x) with fractional error everywhere less than 1.2e-7. ТО же самое, что и функция erfc(), но, возможно, вычисляется быстрее. Определяется формулой: .

Подробное описание

Специальные функции математической физики.

Функции

float Vtl::NumAlg::Spf::erf ( float x ) [inline]

Returns the error function erf(x). Функция ошибок, определяется формулой: .

Выражаются через неполную гамма-функцию как: ,

Обладают следующими свойствами:
,

float Vtl::NumAlg::Spf::erfc ( float x ) [inline]

Returns the complementary error function erfc(x). Определяется формулой: .

Выражаются через неполную гамма-функцию как: ,

Обладают следующими свойствами:
,

float Vtl::NumAlg::Spf::erfcc ( float x ) [inline]

Returns the complementary error function erfc(x) with fractional error everywhere less than 1.2e-7. ТО же самое, что и функция erfc(), но, возможно, вычисляется быстрее. Определяется формулой: .

Выражаются через неполную гамма-функцию как: ,

Обладают следующими свойствами:
,


Pipe Line Filters: Пространство имен Vtl::Plf

  • Пространства имен
  • Члены пространств имен
Vtl::Plf

Пространство имен Vtl::Plf

Pipe Line Filtering (of images) library. Подробнее...

Классы

class | FilterBase
Базовый класс. Подробнее...
class | FilterComplex
Базовый класс для написания сложных (составных) фильтров, представляющих собой комбинацию элементарных и/или составных фильтров. Элементарные фильтры должны наследоваться из class FilterElementary. Подробнее...
class | FilterElementary
Базовый класс для написания всех элементарных фильтров. Подробнее...
class | Levels
Преобразование значение пикселя по формуле. Класс реализует преобразование яркости по таблице или формуле пиксел в пиксел. По возможности следует избегать применение этого класса, используя вместо него постобработку выходов фильтров с тем же функтором. Оправданное применение этого класса - это когда выход некоторого вильтра надо подать на входы нескольких разных фильтров, причем на часть из них с постобработкой, а на другие без (или с разными постобработками). Точно также бессмыслено соединение фильров Levels в цепочку - пишите сразу функтор, который делает все преобразования за один раз, если требуется скомбинировать несколько постробработок - а написать общий функтор сложно или лень есть функтор для комбинирования Vtl::Plf::F::Comb . Подробнее...
class | PixByPix2to1
Вычисление изображения из двух, значение пикселя вычисляется как некоторая функция из значений пикселей двух исходных изображений, взятых в тех же координатах (x,y). Подробнее...
class | PixByPix3to1
Класс служит для генерации изображения по трем исходным, значение пикселя изображения определяется значением пикселей в тех же координатах на исходных изображениях. Действия определяются вторым шаблонным параметром. Типичные применения:. Подробнее...
class | PixByPix4to1
Класс служит для генерации изображения по четырем исходным,. Подробнее...
class | PixByPix5to1
Класс служит для генерации изображения по пяти исходным,. Подробнее...
class | PixByPix3to3
Класс служит для генерации 3 изображений по 3 исходным, значение пикселя на выходных изображениях определяется значением пикселей в тех же координатах на исходных изображениях. Действия определяются вторым шаблонным параметром. Типичные применения переход к другой системе цветовых координат,. Подробнее...
class | PixByPix2to3
На базе двух изображений [image] и [image] вычисляет 3 новых по формулам:

т.е. компоненты корреляционной матрицы, которая симметричная и положительно определенная. (чтобы эта матрица стала собственно корреляционной, остается еще выполнить усреднение компонент в каком либо смысле, например по локальной окрестности. Подробнее...
class | EnvProc1to1
Имеет 1 вход и 1 выход. Пиксель в координатах (x,y) на выходном изображении принимает значение, которое вычисляется по окрестности на входном изображении. Способ обработки задается функтором - вторым шаблонным параметром. Типичное применение - выполнение процедуры
  • "Non Maximum Supression" в детекторах уголков (Vtl::Plf::F::Harris, Vtl::Plf::F::MinEigenVal)
  • построение контурного препарата H-image и проч. несепарабельные и сложные обработки. Функтор должен соответствовать шаблону:.
Подробнее...
class | EnvProc3to1
Имеет 3 входа и 1 выход. Пиксель в координатах (x,y) на выходном изображении принимает значение, которое вычисляется по окрестности точки (x,y) на входном изображении in_val с учетом значений в точке (x,y) на изображениях in_gx,in_gy. Способ обработки задается функтором - вторым шаблонным параметром. Типичное применение - выполнение процедуры "Non Maximum Supression" в детекторах линий (Vtl::Plf::Canny). Функтор должен соответствовать шаблону:. Подробнее...
class | EnvProc1to2
Имеет 1 вход и 2 выходa. Типовой примекр применения - анализ окрестности точки и выдача двумерного вектора, например какого-то аналога градиента, например H-image [HImg2003],. Подробнее...
class | ConvolveHorz
Класс реализует для каждой строки изображения свертку с указанным ядром. Подробнее...
class | ConvolveVert
Класс реализует для каждой строки изображения свертку по столбцам с указанным ядром (по количеству строк соотв. размеру ядра. Подробнее...
class | FilterResampleHorz
Класс реализует ресамплинг (растяжение/сжатие) каждой строки изображения. Подробнее...
class | FilterResampleVert
Класс реализует ресамплинг (растяжение/сжатие) каждого столбца изображения. Подробнее...
class | SeparableConv2D
Вычисляет сепарабельную двумерную свертку. По соображениям эффективности системы PLF сначала по вертикали, затем по горизонтали:. Подробнее...
class | Average
Вычисляет сепарабельную двумерную свертку c одинаковыми ядрами по X и по Y. Обычно используется для сглаживания (Mean, Average) изображения, в частности Гауссова сглаживания (. Подробнее...
class | Sharpen
Вычисляет <I(x,y)>+amp*(I(x,y-<I(x,y)>). Среднее вычисляется двуерной сверткой с сепарабельным ядром, обычно используется Гауссово ядро. Поднимает на изображении границы и мелкие детали (в т.ч. шумы). Алгоритм Sharpen, описывается классическим выражением [Pratt82] [image] , где $ k $ - коэффициент усиления. При $ k=1 $ результатом является исходное изображение, при $ k=0 $ -сглаженное, при $ 0 < k < 1$ - изображение с ослабленными деталями, при $ 1 < k $ - изображение с усиленными деталями. Подробнее...
class | AverageGauss
Выполняет сглаживание (Mean, Average) изображения по гауссовой окрестности (. Подробнее...
class | HImage
Контурный препарат H-image [HImg2003],. Подробнее...
class | BiLateral
BiLateral фильтрация изображения [Tomasi98bilateral],. Подробнее...
class | GradientModul
Вычисляет модуль градиента для каждой точки изображения по локальной окрестности. Контурный препарат Канни. Подробнее...
class | MeanAndDisp
Вычисляет среднее и дисперсию по окрестности (путем свертки с гауссом). Подробнее...
class | StatDiff
Выполняет статистическое дифференцирование изображения. Среднее и дисперсия вычисляются с помощью свертки с Гауссом. Подробнее...
class | DeNoise
Выполняет подавление импульсного шума. Среднее и дисперсия вычисляются с помощью свертки с Гауссом. Подробнее...
class | Canny
Детектор краев Канни. Подробнее...
class | DiZenzo
Детектор краев DiZenzo. Аналог детектора Канни, но работает с цветными изображениями, находит и те края, которые исчезают при преобразовании изображения в градации серого. [DiZenzo86]. Подробнее...
class | HImageEdge
Детектор краев на основе контурного препарата H-image [HImg2003], \see Vtl::Plf::F::Himg, Vtl::Plf::HImage. Подробнее...
class | GradientCorr
Вычисляет произведения компонент вектора градиента: . Подробнее...
class | Detect
Обнаруживает уголки, линии и т.п. в зависимости от второго шаблонного аргумента в качестве которого могут использоваться:. Подробнее...
class | HarrisLaplace
Обнаруживает. Подробнее...
class | Resample
Выполняет масштабирование (resampling) изображения (билинейная интерполяция). Подробнее...
class | SrcArray
class | SrcAImage
Источник изображений для системы потоковой фильтрации на базе изображений, размещенных в памяти в контейнере типа AImageMem8, AImageMem16, AImageMemFloat. Подробнее...
class | SrcAImageRgb
class | DstArray
Фильтр - приемник серого изображения. Изображение представляется как одномерный массив в котором пиксели лежат слева направо, срока за строкой. Подробнее...
class | DstAImage
Фильтр - приемник серого изображения. Допустимые типы изображения - серые изображения, определенные в aimage.h а именно: AImageMem8, AImageMem16, AImageMemFloat. Подробнее...
class | DstContainer
Фильтр - приемник серого изображения. Помещает в контейнер только отдельные точки, в которых значение изображения больше threshold. Контейнер сам может решать что с таким точками делать - сохранять все или только нгекоторые. Типичное применение - например детектор Харриса. Подробнее...
class | ColumnIteratorFast
Итератор для получения информации из ImageRef. Подробнее...
class | LineIterator
Итератор для получения информации из ImageRef. Подробнее...
class | Port
Базовый класс для понятия "\b порт". Определяет функциональность, необходимую для работы системы фильтров. Подробнее...
class | InPortBase
Базовый класс для понятия "\b входной порт". Определяет функциональность, необходимую для работы системы фильтров. Подробнее...
class | OutPortBase
Базовый класс для понятия "\b выходной порт". Определяет функциональность, необходимую для работы системы фильтров. Подробнее...
class | InPort
Класс реализует функциональность понятия "\с входной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering. Подробнее...
class | InPortComb
class | OutPortNoPostProc
Класс реализует базовую функциональность понятия \с "выходной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering. Подробнее...
class | OutPort
Класс реализует функциональность понятия \с "выходной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering. Добавляет функциональность постобработки к классу OutPortNoPostProc. Подробнее...
class | StripBuffer
Класс полосового буффера. Собственнно хранит полосу виртуального изображения, которое получилось в результате рабюоты фильтра, и которое обрабатывает последующий фильтр. Подробнее...
struct | ImgSize
Структура служит для хранения размеров изображения - ширина и высота. Подробнее...
struct | Extent
Служит для хранения информации о размере дополнения изображения за края (путем зеркального отражения). Подробнее...
class | ImageRef
Класс служит интерфейсом 'только для чтения' к полосе изображения, хранящейся в данный момент в StripBuffer, который в свою очередь находится в OutPortNoPostProc. Подробнее...
class | Strip
Служит для описания полосы изображения, находящейся в class StripBuffer и полосы, которая нужна для обработки class InPort. Подробнее...
class | Fifo
Реализует очередь. Подробнее...
class | FiltersSystem
"Главный класс", обеспечивает функционирование системы потоковой фильтрации Подробнее...
class | medianFilter
Медианная фильтрация изображения. Подробнее...
class | medianFilter2
Быстрая медианная фильтрация изображения, основанная на построении частичных гистограмм. Подробнее...

Пространства имен

namespace | F11
Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value).
namespace | F21
Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2).
namespace | F23
Функторы с сигнатурой template<typename T,typename Iterator> void operator()(T v1,T v2,Iterator o11,Iterator o12,Iterator o22) const;.
namespace | F31
Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2,T1 value3).
namespace | F33
Функторы с сигнатурой template<typename T,typename Iterator> void operator()(T v11,T v12,T v22,Iterator out_1,Iterator out_2,Iterator out_3) const;.
namespace | F51
Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2,T1 value3,T1 value4,T1 value5).
namespace | Fpie
Функторы, получающие указатель на пиксели изображения и работающие по локальной окрестности ((F)unctor receiving (P)ointer to (I)mage data and using local (E)nvironment data). Как правило только специфическое использование в рамках потоковой библиотеки обработки изображений (Plf).
namespace | Impl
Детали реализации. Пользователям библиотеки не следует использовать отсюда ничего. Никаких гарантий поддержки совместимости с предыдущими версиями не дается. Все может измениться внезапно и полностью.
namespace | Kernel
Ядра для сверток, кросскорреляции и оконых функций и необходимый инструментарий для вычисления сверток/кроскорреляции/домножения на функцию окна.
namespace | OLSI
Вспомагательные средства для классов Vtl::Plf::medianFilter, Vtl::Plf::medianFilter2 . Автор - Сидоркина О.

Подробное описание

Pipe Line Filtering (of images) library.


Pipe Line Filters: Пространство имен Vtl::Plf::F11

  • Пространства имен
  • Члены пространств имен
Vtl::Plf::F11

Пространство имен Vtl::Plf::F11
[Elementary filters]

Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value). Подробнее...

Классы

struct | DoNothing
functor DoNothing - заглушка Подробнее...
struct | Convert
functor Sqrt - Преобразует тип аргумента к типу T. Подробнее...
struct | Convert2ByteBounded
functor Sqrt - Преобразует тип аргумента к типу T. Подробнее...
class | Threshold
functor Threshold Подробнее...
struct | Comb
functor Comb - предназначен для комбинирования нескольких функторов в один. Подробнее...
class | Negative
functor Negative - делает негатив изображения, считается что яркость изображения меняется от 0 до maxval, последнюю величина нада задать. Подробнее...
class | Bias
functor Bias - добавляет к значению каждого пикселя константу. Подробнее...
class | Mult
functor Mult - умножавет значение каждого пикселя на константу. Подробнее...
struct | ConvertMult
functor Mult - умножавет значение каждого пикселя на константу и преобразует к типу T. Подробнее...
class | Lin
functor Lin - преобразует значение каждого пикселя по закону a*x+b. Подробнее...
class | ToBounds
functor Bounds - ограничивает выходные значения к диапазону min_val -:- max_val. Подробнее...
struct | Abs
functor Abs - вычисляет абсолютную величину (модуль) вещественного числа. Подробнее...
struct | Sqrt
functor Sqrt - вычисляет квадратный корень. Подробнее...
struct | Sqr
functor Sqr - преобразует значение каждого пикселя $v$ по закону [image]. Подробнее...
class | GammaCor
functor GammaCor - выполняет гамма коррекцию, т.е. преобразует значение каждого пикселя V по закону $ M*(V/M)^(1/gamma) $ , где. M - максимально возможное значение пикселя, например для беззнаковых целых типов изображения M=(1<<bits)-1. Подробнее...
class | Log
functor Log - Вычисляет натуральный логарифм и возвращает максимум из полученной величины и порога. Подробнее...
class | GammaCorMult
functor GammaCorMult - Эквивалентен последовательному применению функторов Mult, затем GammaCor, но более вычислительно эффективен. Подробнее...

Функции

template<typename T>
T | sqr (T v)

Подробное описание

Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value).

Используются классами FilterLevels, всеми фильтрами Vtl::Plf в качестве постобработки, функциями и классами Vtl::ImAlg::Tools и во многих других контекстах.

Функции

template<typename T>
T Vtl::Plf::F11::sqr ( T v )


Pipe Line Filters: Пространство имен Vtl::Plf::F21

  • Пространства имен
  • Члены пространств имен
Vtl::Plf::F21

Пространство имен Vtl::Plf::F21
[Elementary filters]

Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2). Подробнее...

Классы

class | SqrtOfSumSqr
Функтор SqrtOfSumSqr для фильтра PixByPix2to1. Из двух серых изображений вычисляет одно по формуле [image]. Подробнее...
struct | Sum
struct | Dif
struct | AbsDif
struct | Prod
Функтор Prod для фильтра PixByPix2to1. Из двух серых изображений вычисляет одно по формуле $ I_1(x,y)*I_2(x,y) $. Подробнее...
class | Sharpen
Функтор Sharpen для фильтра PixByPix2to1. Из двух серых изображений - среднего и среднего от квадрата яркости вычисляет одно по формуле [image] , т.е. служит для вычисления величины [image]. Подробнее...
class | Disp
Функтор sqrtOfSumSqr для фильтра PixByPix2to1. Из двух серых изображений - среднего и среднего от квадрата яркости вычисляет одно по формуле [image] , т.е. служит для вычисления величины [image]. Подробнее...

Подробное описание

Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2).

Используются классами FilterPixByPix2to1, функциями и классами Vtl::ImAlg::Tools и во многих других контекстах.


Pipe Line Filters: Пространство имен Vtl::Plf::F23

  • Пространства имен
  • Члены пространств имен
Vtl::Plf::F23

Пространство имен Vtl::Plf::F23
[Elementary filters]

Функторы с сигнатурой template<typename T,typename Iterator> void operator()(T v1,T v2,Iterator o11,Iterator o12,Iterator o22) const;. Подробнее...

Классы

class | CorrMatrix
Функтор CorrMatrix для PixByPix2to3. Из двух величин [image] e [image] вычисляет 3 новых по формулам:
. Подробнее...
class | CorrMatrixAdd

Подробное описание

Функторы с сигнатурой template<typename T,typename Iterator> void operator()(T v1,T v2,Iterator o11,Iterator o12,Iterator o22) const;.

Аргументы типа Iterator используются для возврата как Iterator arg; *arg=return_value; Используются классами FilterPixByPix2to3, функциями и классами Vtl::ImAlg::Tools и во многих других контекстах.


Pipe Line Filters: Пространство имен Vtl::Plf::F31

  • Пространства имен
  • Члены пространств имен
Vtl::Plf::F31

Пространство имен Vtl::Plf::F31
[Elementary filters]

Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2,T1 value3). Подробнее...

Классы

class | Sum3
Функтор Sum3 для PixByPix3to1. Вычисляет [image] . Подробнее...
struct | HessianDet
struct | HessianDetSqrt
class | Harris
Функтор Harris для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет величину отклика детектора Харриса-Стефенса: , Обычно k=0.04. Используется свойство независимости следа и детерминанта матрицы от выбора системы координат.
Внимание: этот функтор на выход выдает значение не $ Harris $, а [image] . Корень четвертой степени появляется из соображений, что [image], а множитель [image] из-за того, что производные [image], т.е. обратно пропорциональны приращению координаты на которой в среднем оценивается приращение функции (производные вычисляются с помощью свертки). Множитель 6.3 - эмпирический. Эта модификация выполнена для того, чтобы динамический диапазон получаемого изображения соответствовал динамическомй диапазону фильтруемого изображения (например [0-255] -> [0-255].
Важно: множитель [image] существенен для монгомасштабных (multiscale) детекторов Харриса, впервые введен в статье
Y. Dufournaud, C. Schmid, and R. Horaud, "Matching images with different resolutions", Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR’00), 2000 (Hilton Head Island, SC, USA). V. 1, P. 612-618. ISBN: 0-7695-0662-3. http://citeseer.ist.psu.edu/dufournaud00matching.html
Сам детектор Харриса вводится в статье:
C. G. Harris and M. Stephens, "A combined corner and edge detector," In Proc. 4th Alvey Vision Conf., Manchester, pages 147-151, 1988. Подробнее...
class | Trace
Функтор Trace для PixByPix3to1. Только та часть, которая вычитается в детекторе Харриса. Подробнее...
class | MaxEigenVal
Функтор MaxEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет максимальное собственное значение (детектор краев DiZenzo): ,
где [image], т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $ , и [image] , [image]. Подробнее...
class | MinEigenVal
Функтор MinEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет минимальное собственное значение (детектор уголков Канаде-Лукаса): ,
где [image], т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $, и [image] , [image]. Подробнее...
class | DiffEigenVal
Функтор DiffEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет разность собственных значений (детектор краев исключая двумерные особенности(уголки)): ,
где [image] , т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $ , и [image] , [image]. Подробнее...
class | StatDiff
Функтор StatDiff для PixByPix3to1. Из трех величин [image] представляющих собой яркостьв точке, среднюю яркость и корень из дисперсии, вычисленные по окрестности точки вычисляет выражение для статистического дифференцирования изображения, [Pratt82]. Подробнее...
class | DeNoise
Функтор DeNoise для PixByPix3to1. Из трех величин [image] представляющих собой яркость в точке, среднюю яркость и корень из дисперсии, вычисленные по окрестности точки вычисляет величину:
. Подробнее...
class | StatDiffThresh

Подробное описание

Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2,T1 value3).

Используются классами FilterPixByPix3to1, функциями и классами Vtl::ImAlg::Tools и во многих других контекстах.


Pipe Line Filters: Пространство имен Vtl::Plf::F33

  • Пространства имен
  • Члены пространств имен
Vtl::Plf::F33

Пространство имен Vtl::Plf::F33
[Elementary filters]

Функторы с сигнатурой template<typename T,typename Iterator> void operator()(T v11,T v12,T v22,Iterator out_1,Iterator out_2,Iterator out_3) const;. Подробнее...

Классы

class DiZenzo
Функтор DiZenzo для PixByPix3to3. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет наибольшее собственное значение (детектор краев) и соответствующий собственный вектор (направлен по нормали к краю). По первому выходу выдает с.з, а по 2 и 3 - x и y компоненты нормированного с.в. соответственно. Подробнее...

Подробное описание

Функторы с сигнатурой template<typename T,typename Iterator> void operator()(T v11,T v12,T v22,Iterator out_1,Iterator out_2,Iterator out_3) const;.

Аргументы типа Iterator используются для возврата как Iterator arg; *arg=return_value; Используются классами FilterPixByPix3to3, функциями и классами Vtl::ImAlg::Tools и во многих других контекстах.


Pipe Line Filters: Пространство имен Vtl::Plf::F51

  • Пространства имен
  • Члены пространств имен
Vtl::Plf::F51

Пространство имен Vtl::Plf::F51
[Elementary filters]

Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2,T1 value3,T1 value4,T1 value5). Подробнее...

Классы

class HarrisLaplace
Функтор HarrisLaplace для PixByPix5to1. Подробнее...

Подробное описание

Функторы с сигнатурой template<typename T,typename T1> T operator()(T1 value1,T1 value2,T1 value3,T1 value4,T1 value5).

Используются классами FilterPixByPix5to1, функциями и классами Vtl::ImAlg::Tools и во многих других контекстах.


Pipe Line Filters: Пространство имен Vtl::Plf::Fpie

  • Пространства имен
  • Члены пространств имен
Vtl::Plf::Fpie

Пространство имен Vtl::Plf::Fpie
[Elementary filters]

Функторы, получающие указатель на пиксели изображения и работающие по локальной окрестности ((F)unctor receiving (P)ointer to (I)mage data and using local (E)nvironment data). Как правило только специфическое использование в рамках потоковой библиотеки обработки изображений (Plf). Подробнее...

Классы

class | HarrisNMS
Функтор HarrisNMS для EnvProc1to1. Находит точки максимальной яркости. Проверяет 8 соседних пикселей, если яркость в каждом из них меньше яркости центральной точки пишет на выход значение яркости без изменений, в противном случае - выход равен 0. Подробнее...
class | HarrisNMS_Smooth
Функтор HarrisNMS_Smooth для EnvProc1to1 аналогичен HarrisNMS, но возвращает 1/10 от суммы центрального пикселя и всей окрестности 3х3. Находит точки максимальной яркости. Проверяет 8 соседних пикселей, если яркость в каждом из них меньше яркости центральной точки пишет на выход значение яркости без изменений, в противном случае - выход равен 0. Подробнее...
class | Himg2
Функтор Himg2 для EnvProc1to2. Вычисляет вектор квази-градиента для контурного препарата H-image [HImg2003]. Подробнее...
class | Himg
Функтор Himg для EnvProc1to1. Вычисляет контурный препарат H-image [HImg2003]. Подробнее...
class | BiLateralSmooth
Функтор BiLateralSmooth для EnvProc1to1. BiLateral - фильтрация. НЕ СДЕЛАНО! Подробнее...
class | CannyNMS
Функтор для EnvProc3to1, выполняет процедуру подавления немаксимальных точек в стиле Канни (Non Maximum Suppression). Подробнее...
class | CannyNMS_2
Функтор для EnvProc3to1, выполняет процедуру подавления немаксимальных точек в стиле Канни (Non Maximum Suppression). Подробнее...

Подробное описание

Функторы, получающие указатель на пиксели изображения и работающие по локальной окрестности ((F)unctor receiving (P)ointer to (I)mage data and using local (E)nvironment data). Как правило только специфическое использование в рамках потоковой библиотеки обработки изображений (Plf).


Pipe Line Filters: Пространство имен Vtl::Plf::Impl

  • Пространства имен
  • Члены пространств имен
Vtl::Plf::Impl

Пространство имен Vtl::Plf::Impl
[Pipe Line Filters.]

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

Классы

struct | Edge
Ребро графа, используется в представлении списка смежных вершин в классе Node. Содержит идентификаторы выходного порта и фильтра от которого передается изображение (id_outp, id_of) и идентификаторы входного порта и фильтра к которому передается изображение (id_inp, id_if). Подробнее...
struct | Node
Узел графа, используется в классах FiltersSystem и GraphBuilder. Подробнее...
class | GraphBuilder
Строит граф системы потоковой фильтрации, обеспечивает топологическую сортировку графа, поиск петель и циклов, проверку все ли источники и приемники заданы, отсутствие "висячих" связей. Результат возвращает в std::vector<Node> graph; класса FiltersSystem. Подробнее...
class | DelayAdjuster

Подробное описание

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


Pipe Line Filters: Пространство имен Vtl::Plf::Kernel

  • Пространства имен
  • Члены пространств имен
Vtl::Plf::Kernel

Пространство имен Vtl::Plf::Kernel
[Convolution kernels.]

Ядра для сверток, кросскорреляции и оконых функций и необходимый инструментарий для вычисления сверток/кроскорреляции/домножения на функцию окна. Подробнее...

Классы

class | Base
Базовый класс для написания ядер свертки/кросскорреляции/оконых функций. Тип определяется вторым шаблонным параметром. ВНИМАНИЕ! Ядро для свертки отличается от других ядер тем, что оно хранится в обратном порядке, так, что свертка вычисляется как кросскорреляция. В этой связи когда через функцию void _Init(int left,int right) задается носитель ядра, то в случае, если это ядро свертки - то в этой функции задается именно область, где функция, с которой будет осуществляться свертка отлична от нуля. Класс же Base возвращает в качестве left() b right() левую и правую "полуширину" функции, с которой будет вычисляться кросскорреляция, т.е. для ядра кросскорреляции и окна - те же left и right, а для ядра свертки right и left. Подробнее...
class | Table
Ядро, задаваемое таблично. Подробнее...
class | FKern
class FKern, реализует ядра сверток для любых функторов из Vtl::Plf::Kern::F, (см. там описание требуемого устройства функтора). Подробнее...
class | ImageWin
Ограничение изображения окном. Подробнее...

Перечисления

enum | Type { KT_Conv, KT_Corr, KT_Win }

Функции

template<typename T, typename iterator_in, typename iterator_ker>
void | WindowData (iterator_in in, iterator_ker begin, iterator_ker end, T mult=1.0f, T bias=0.0f)
Ограничивает данные, заданные итератором in окном, выполняет действия "in place", Длина данных полагается равной длине ядра. Перед умножением на функцию окна из данных вычитается константа bias, затем данные умножеются на mult, что позволяет применять эту функцию для многомерных сепарабельных окон.
template<typename T, typename iterator_in, typename iterator_ker>
T | IntegrateWindowedData (iterator_in in, iterator_ker begin, iterator_ker end)
template<typename T, typename iterator_ker>
T | IntegrateKer (iterator_ker begin, iterator_ker end)

Подробное описание

Ядра для сверток, кросскорреляции и оконых функций и необходимый инструментарий для вычисления сверток/кроскорреляции/домножения на функцию окна.

См. также:
Vtl::Plf::Kernel::F
Рекомендация: Ядра реализованные здесь - это ядра (оконные функции) с финитным носителем или с инфинитным носителем но усеченные. Ядра представляются в виде массивов чисел, как правило такой массив вычисляется с помощью функтора
См. также:
Vtl::Plf::Kernel::F и это является лучшим и простейшим способом задания нового ядра за исключением, может быть,тех случаев, когда ядро задается таблицей. В последнем случае также возникает важная особенность - такое ядро не является масштабируемым и не может быть использовано для ограничения окном. Во всяком случае вопрос о его масштабируемости должен решаться в каждом отдельном случае специальным образом (допустимость, способ интерполяции и разумность такого шага). Хотя в принципе в Vtl::Plf::Kernel::F определены функторы, которые позволяют задавать ядра в табличной форме.

Перечисления

enum Vtl::Plf::Kernel::Type

Элементы перечислений:
KT_Conv | Ядро для свертки (на самом деле вычисляется кросскорреляция, а ядро заранее переворачивается).
KT_Corr | Ядро для кросскорреляции, нормировка так, чтобы яркость не менялась, для производных - из соображений взятия интеграла по частям, так, чтобы для оригинального ядра средняя яркость неменялась.
KT_Win | Ядро для функция окна (отличается от KT_Corr нормировкой, обычно 1 в нуле ядра).

Функции

template<typename T, typename iterator_ker>
T Vtl::Plf::Kernel::IntegrateKer | ( | iterator_ker | begin,
 |  | iterator_ker | end
 | ) |  |

Вычисляет интеграл от ядра.

См. также:
WindowData().

template<typename T, typename iterator_in, typename iterator_ker>
T Vtl::Plf::Kernel::IntegrateWindowedData | ( | iterator_in | in,
 |  | iterator_ker | begin,
 |  | iterator_ker | end
 | ) |  |

Вычисляет интеграл от произведения данных на ядро.

См. также:
WindowData().

template<typename T, typename iterator_in, typename iterator_ker>
void Vtl::Plf::Kernel::WindowData | ( | iterator_in | in,
 |  | iterator_ker | begin,
 |  | iterator_ker | end,
 |  | T | mult = 1.0f,
 |  | T | bias = 0.0f
 | ) |  |

Ограничивает данные, заданные итератором in окном, выполняет действия "in place", Длина данных полагается равной длине ядра. Перед умножением на функцию окна из данных вычитается константа bias, затем данные умножеются на mult, что позволяет применять эту функцию для многомерных сепарабельных окон.

См. также:
IntegrateWindowedData(), IntegrateKer().


Pipe Line Filters: Пространство имен Vtl::Plf::OLSI

  • Пространства имен
  • Члены пространств имен
Vtl::Plf::OLSI

Пространство имен Vtl::Plf::OLSI

Вспомагательные средства для классов Vtl::Plf::medianFilter, Vtl::Plf::medianFilter2 . Автор - Сидоркина О. Подробнее...

Классы

class | mediana
Служит для хранение значение медианы в гистограмме. Подробнее...
class | Gistogramm
Служит для .... . Подробнее...
class | Gistogramm2
Служит для .... . Подробнее...

Подробное описание

Вспомагательные средства для классов Vtl::Plf::medianFilter, Vtl::Plf::medianFilter2 . Автор - Сидоркина О.

Описание алгоритма: .................


Pipe Line Filters: Пространство имен Vtl::Types

  • Пространства имен
  • Члены пространств имен
Vtl::Types

Пространство имен Vtl::Types

Пространство имен Vtl::Types содержит ряд шаблонных определений для работы с типами:. Подробнее...

Классы

struct | EmptyType
class | NullType
Нулевой маркер типов. Подробнее...
struct | Int2Type
struct | Type2Type
class | Select
Выбор типа на этапе комспиляции, if flag==true - первый тип, иначе - второй. Подробнее...
class | Conversion
Проверка, существует ли преобразование по умолчанию (cast) из типа T в тип U. Подробнее...
class | isSameType
Проверка, совпадают ли типы. Если оба шаблонных параметра одинакового типа - то поле value=1, иначе value=0. Подробнее...
class | Typelist
Списки типов. см. также Макросы для линеаризованного создания списка типов и namespace Vtl::Types::TL. Подробнее...
class | Traits
struct | IntOrReal
Определение констант для выбора типа. Подробнее...
struct | SUIntOrReal
Определение констант для выбора типа. Подробнее...
class | PixelTraits
struct | isIntOrReal
Проверка на этапе компиляции к какой группе относится тип T Vtl::Types::IntOrReal. Подробнее...
struct | isSUIntOrReal
Проверка на этапе компиляции к какомй группе относится тип T Vtl::Types::SUIntOrReal. Подробнее...

Пространства имен

namespace | TL
Пространство имен Vtl::Types::TL содержит алгоритмы для работы со списками типов, определенными Vtl::Types::Typelist.

Определения типов

typedef TL::NoDuplicates<
TYPELIST_8(signed char, short,
int, long, int8_t, int16_t,
int32_t, int64_t)>::Result 		SignedIntegerTypes
все знаковые встроенные целые типы
typedef TL::NoDuplicates<
TYPELIST_8(unsigned char,
unsigned short, unsigned
int, unsigned long, uint8_t,
uint16_t, uint32_t, uint64_t)>::Result 		UnsignedIntegerTypes
все беззнаковые встроенные целые типы
typedef TL::NoDuplicates<
TYPELIST_3(float, double,
long double)>::Result 		RealTypes
все вещественные встроенные целые типы
typedef TL::NoDuplicates<
TYPELIST_3(bool, char, wchar_t)>::Result 		OtherIntegerTypes
остальные встроенные "целые" типы, такие как bool,char,wchar_t
typedef TL::NoDuplicates<
TL::Append< SignedIntegerTypes,
UnsignedIntegerTypes >::Result
>::Result 		IntegerTypes
все знаковые и беззнаковые встроенные целые типы.
typedef TL::NoDuplicates<
TL::Append< IntegerTypes,
OtherIntegerTypes >::Result
>::Result 		AllIntegerTypes
все знаковые и беззнаковые встроенные целые типы, включая OtherIntegerTypes (такие как 'char').
typedef TL::NoDuplicates<
TL::Append< SignedIntegerTypes,
RealTypes >::Result >::Result 		SignedTypes
все знаковые встроенные типы - целые и с плавающей точкой.
typedef TL::NoDuplicates<
TL::Append< IntegerTypes,
RealTypes >::Result >::Result 		ArithTypes
все численные встроенные типы - целые знаковые и беззнаковые и с плавающей точкой.
typedef TL::NoDuplicates<
TL::Append< ArithTypes, OtherIntegerTypes
>::Result >::Result 		AllArithTypes
все численные встроенные типы - целые знаковые и беззнаковые и с плавающей точкой, включая OtherIntegerTypes (такие как 'char').

Подробное описание

Пространство имен Vtl::Types содержит ряд шаблонных определений для работы с типами:.

  • struct EmptyType; - служит для указания "любой тип".
  • class NullType; - служит для указания "нет типа".
  • template<int v> struct Int2Type; - используется для перегрузки функций.
  • template<typename T> struct Type2Type; - так как частичной специализации для шаблонных функций не существует, единственный вариант - перегрузка. Этот класс служит для передачи информации о типе в качестве фиктивного параметра функции, определеющего какая из перегруженных функций вызывается (в том случае, если из параметров функции невозможно вывести типы шаблонных аргументов, например это тип возврата). Подробнее см. Lit_Alexandresku стр 53-54.
  • template<bool flag,typename Type1,typename Type2> struct Select; -выбор типа на этапе компиляции на основе константного выражения.
  • template<class T,class U> class Conversion; - проверка, существует ли преобразование по умолчанию (cast) из T в U.
  • Списки типов, как общего вида, так и списки встроенных типов.
  • Алгоритмы для работы со списками типов (namespace Vtl::Types::TL).
  • Обобщенные свойства типов (Traits).

Написано с использованием материалоов из книги [Loki] .


Pipe Line Filters: Пространство имен Vtl::Types::TL

  • Пространства имен
  • Члены пространств имен
Vtl::Types::TL

Пространство имен Vtl::Types::TL

Пространство имен Vtl::Types::TL содержит алгоритмы для работы со списками типов, определенными Vtl::Types::Typelist. Подробнее...

Классы

struct | MakeTypelist
struct | MakeTypelist<>
struct | AppendIf
Добавлять к списку типов, если последний шаблонный аргумент - TRUE. Подробнее...
struct | isIn
Проверка в списке ли? Подробнее...
struct | GT
struct | LT
struct | GE
struct | LE
struct | EQ
struct | NE
class | Print
Отладка - печать списка: фактических имен типов и sizeof элементов списка. Подробнее...
class | Length
Определение длины списка типов. Подробнее...
class | TypeAt
Индексированный доступ к списку типов. Подробнее...
class | IndexOf
Поиск заданного элемента в списке типов, если не найден - возвращает -1;. Подробнее...
class | Append
Добавление элемента или списка типов. Подробнее...
class | FindIf
По списку типов составляет новый список типов таких, что проверка типа по условию Comparator выполняется. Подробнее...
class | Erase
Удаление элемента из списка типов. Подробнее...
class | EraseAll
Удаление всех вхождений элемента из списка типов. Подробнее...
class | NoDuplicates
Удаление дубликатов вхождений элементов в список типов. Подробнее...
class | TypeLargerThen
Поиск в списке типов типа с sizeof больше, чем у указанного вторым параметром шаблона. Подробнее...
class | SmallestType
Поиск в списке типов типа с наименьшим sizeof. Подробнее...

Подробное описание

Пространство имен Vtl::Types::TL содержит алгоритмы для работы со списками типов, определенными Vtl::Types::Typelist.

******************************************************************

Пространство имен Vtl::Types::TL содержит алгоритма для работы со списками типов. Все алгоритмы, что естественно для введенных списков типов, выполняются на этапе компиляции и не приводят к генерации исполняемого кода.

Написано с использованием материалоов из книги

А. Александреску Современное проектирование на С++. Серия С++ In-Depth, т.3.:Пер. с англ. -М.:Издательский дом "Вильямс",2002. -336 с. ил. -Парал. тит. англ. ISBN 5-8459-035103 (рус.).

См. [Loki]


Pipe Line Filters: Пространство имен YFileSys

  • Пространства имен
  • Члены пространств имен

Пространство имен YFileSys

Работа с файловой системой. Существует ли файл, какой его размер, создать директорию и прочее. Подробнее...

Функции

std::string | getEnv (const char *var_name)
bool | isFullName (std::string path)
bool | CreateDir (std::string path)
std::string | getExt (std::string path)
std::string | remExt (std::string path)
std::string | getDir (std::string path)
std::string | getName (std::string path)
int | StrCmpI (const std::string &s1, const std::string &s2)
std::string | changeExt (std::string path, std::string ext)
std::string | changeExtIf (std::string path, std::string extToChange, std::string ext)
bool | isExists (std::string path)
bool | isFileExist (std::string path)
bool | isDirExist (std::string path)
bool | isPathExist (std::string path)
size_t | getFileSize (std::string path)
YDataTime | getTime (std::string path)
bool | rm (std::string path)
std::string | cwd ()
void | cwd (std::string path)
std::string | getEnv (std::string var_name)
std::string | getNameWithoutExt (std::string path)

Подробное описание

Работа с файловой системой. Существует ли файл, какой его размер, создать директорию и прочее.


Pipe Line Filters: Пространство имен YXML

  • Пространства имен
  • Члены пространств имен

Пространство имен YXML

Поддержка формата XML. Внимание! Требует установки (копирования) на машину ряда DLL, и прописывания их в PATH. НЕ ЛИНКОВАТЬ ИХ К СВОЕМУ ПРОЕКТУ!!! Все и так будет работать! Подробнее...

Классы

class | Xercesc
class | XMLdoc
class | DNode
struct | IsElem
struct | IsName
struct | IsAttr
struct | IsAttrIn

Определения типов

typedef IsName< std::equal_to<
std::string > > 		IsNameEq
проверяет, что тип ноды есть ELEMENT? а имя совпадает с заданным.
typedef IsAttr< std::string,
std::equal_to< std::string > > 		IsAttrEq
Проверяет, что аттрибут лексикографически равен заданной строке.

Подробное описание

Поддержка формата XML. Внимание! Требует установки (копирования) на машину ряда DLL, и прописывания их в PATH. НЕ ЛИНКОВАТЬ ИХ К СВОЕМУ ПРОЕКТУ!!! Все и так будет работать!

В пути системы должны быть помещены следующие DLL из библиотеки IBM-Xercesc :

  • icudt24l.dll
  • icuuc24.dll
  • xml4c_5_1_0.dll

Дополнительная DLL

  • yxml_drv.dll

и файл XercesMessages_en_US.res , путь на последний должен быть прописан в переменной окружения XERCESC_NLS_HOME, например
set XERCESC_NLS_HOME=d:\dll
В системе Windows-XP это делается через My Computer -> Advanced -> Environment Variables.

Дополнительно в пути должны присутствовать:

  • msvcrt.dll
  • msvcirt.dll
    из комплекта Ms Visual Studio 6.0

НИКОГДА НЕ включать в свой проект файл general/xml_interface_imp.cpp , это собственно исходный код yxml_drv.dll , он не может скомпилироваться и слинковаться с проектом! Эта dll собирается только Ms Visual Studio 6.0, так как библиотеки IBM-Xercesc существуют ТОЛЬКО для этого компилятора. Кроме того тогда надо показать все заголовочные файлы этой библиотеки.

Библиотека IBM-Xercesc - свободно распространяемая. Архив xml.zip . К сожалению проект новых версий не будет. Проект Xercesc успешно продолжается, комплект IBM отличался добавлением библиотек поддержки различных кодировок. Файл yxml_drv.dll - это переходник, который с одной стороны урезает возможности библиотеки IBM-Xercesc, но с другой ИСКЛЮЧАЕТ ЛИНКОВКУ IBM-Xercesc со своей программой и работает при компиляции своей пограммы ЛЮБЫМ компилятором. Для вновь создаваемых XML - файлов и внутри программы кодировка принудительно ограничены windows-1251.


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- _ -

  • _dfpmin() : Basics3D


Pipe Line Filters: Список файлов

  • Файлы
  • Список членов всех файлов

Pipe Line Filters Файлы

Полный список файлов.
_imtransf.h [Исходные тексты]
_num_boost_adds.h [Исходные тексты]
_num_cholesky.h [Исходные тексты]
_num_eigen.h [Исходные тексты]
_num_implicit.h [Исходные тексты]
_num_qr.h [Исходные тексты]
_num_svd.h [Исходные тексты]
AbsDifference.cpp
AbsDifference.h [Исходные тексты]
AbsoluteDualQuadric.cpp
AbsoluteDualQuadric.h [Исходные тексты]
aimage.h [Исходные тексты]
alexandresku.h [Исходные тексты]
alg_bresenham.h [Исходные тексты]
apipe.cpp
apipe.h [Исходные тексты]
AutoCalibration.cpp
AutoCalibration.h [Исходные тексты]
bmp.cpp
bmp.h [Исходные тексты]
Bracketing.cpp
Bracketing.h [Исходные тексты]
C-Sharp_pixel_access.hxx [Исходные тексты]
color_spaces.h [Исходные тексты]
Combination.cpp
Combination.h [Исходные тексты]
consolap.h [Исходные тексты]
convolve.h [Исходные тексты]
CPP_pixel_access_via_file_mapping_to_memory.hxx [Исходные тексты]
datastring.cpp
datastring.h [Исходные тексты]
debug_test.h [Исходные тексты]
DFPMinimization.h [Исходные тексты]
DrawEllipse.h [Исходные тексты]
DrawEpipolarLines.cpp
DrawEpipolarLines.h [Исходные тексты]
edge_det.h [Исходные тексты]
edt_meijster_2000.h [Исходные тексты]
EdtEdgeCoord.h [Исходные тексты]
EigenValueDecomp.h [Исходные тексты]
Epipole.cpp
Epipole.h [Исходные тексты]
EssentialMatrix.cpp
EssentialMatrix.h [Исходные тексты]
fourier.cpp
fourier.h [Исходные тексты]
Func.cpp
Func.h [Исходные тексты]
FundamentalMatrix.cpp
FundamentalMatrix.h [Исходные тексты]
History.hxx [Исходные тексты]
HomographyMatrix.cpp
HomographyMatrix.h [Исходные тексты]
HowTo_MakeDifferentRealizationForIntegersAnsFloats.hxx [Исходные тексты]
HowTo_register_images.hxx [Исходные тексты]
HowTo_some_docs.hxx [Исходные тексты]
HowTo_use_numerical_algorithms.hxx [Исходные тексты]
HowTo_work_with_image.hxx [Исходные тексты]
HowTo_work_with_XML_and_INI.hxx [Исходные тексты]
HowTo_write_PipeLineFilters.hxx [Исходные тексты]
ifloat.cpp
ifloat.h [Исходные тексты]
image_io.cpp
ImageContainer.h [Исходные тексты]
imagemem.cpp
imagemem.h [Исходные тексты]
ImagesSet.h [Исходные тексты]
imalg_resampling.h [Исходные тексты]
imalg_tools.h [Исходные тексты]
imfilter.h [Исходные тексты]
img_enhancement.h [Исходные тексты]
img_registration.h [Исходные тексты]
img_registration_oflow.h [Исходные тексты]
img_trans_models.h [Исходные тексты]
img_utils.h [Исходные тексты]
imgtools.cpp
imgtools.h [Исходные тексты]
imline.cpp
imresamp.cpp
imresamp.h [Исходные тексты]
imtransf.cpp
imtransf.h [Исходные тексты]
imtune.cpp
Includings.h [Исходные тексты]
integral_transforms.h [Исходные тексты]
invert.cpp
KMeans.h [Исходные тексты]
Literature.hxx [Исходные тексты]
LMMinimization.h [Исходные тексты]
MatrixOperations.h [Исходные тексты]
MistakeFunc.h [Исходные тексты]
Model.h [Исходные тексты]
mslieqlz.cpp
mslieqlz.h [Исходные тексты]
Newton-Raphson.cpp
Newton-Raphson.h [Исходные тексты]
num_linalg.h [Исходные тексты]
num_optimization.h [Исходные тексты]
numalg.h [Исходные тексты]
nummet.h [Исходные тексты]
nummet00.cpp
nummet00.h [Исходные тексты]
nummet01.cpp
oz.cpp
oz.h [Исходные тексты]
pbm_file.cpp
pbm_file.h [Исходные тексты]
PipeLineFilters.cpp
plf_filter_elem.h [Исходные тексты]
plf_filters.h [Исходные тексты]
plf_filters_complex.h [Исходные тексты]
plf_functors.h [Исходные тексты]
plf_gistogram.h [Исходные тексты]
plf_io_filter.h [Исходные тексты]
plf_iterators.h [Исходные тексты]
plf_kernels_1d.h [Исходные тексты]
plf_port.h [Исходные тексты]
plf_strip_buffer.h [Исходные тексты]
plf_strip_buffer_support.h [Исходные тексты]
plf_sys.h [Исходные тексты]
plt_filter_image.h [Исходные тексты]
Point2D.cpp
Point2D.h [Исходные тексты]
Point2DParam.cpp
Point2DParam.h [Исходные тексты]
Points2DParamSet.cpp
Points2DParamSet.h [Исходные тексты]
Points2DSet.h [Исходные тексты]
progrcnt.cpp
progrcnt.h [Исходные тексты]
ProjectiveMatrix.cpp
ProjectiveMatrix.h [Исходные тексты]
Ransac.h [Исходные тексты]
ReadMe.hxx [Исходные тексты]
RecompMatrix.h [Исходные тексты]
RQDecomposition.cpp
RQDecomposition.h [Исходные тексты]
SaveImageArray.h [Исходные тексты]
sfm_calibration.h [Исходные тексты]
sfm_dbg.h [Исходные тексты]
sfm_export_3D_model.h [Исходные тексты]
sfm_mesh_triangle.cpp
sfm_mesh_triangle.h [Исходные тексты]
sfm_mesh_TriResult.cpp
sfm_mesh_TriResult.h [Исходные тексты]
sfm_quaternion.h [Исходные тексты]
sfm_reconsruction.h [Исходные тексты]
sfm_reconsruction_dlt.h [Исходные тексты]
sfm_structure_from_2_views.h [Исходные тексты]
sfm_types.h [Исходные тексты]
SolveEq.cpp
SolveEq.h [Исходные тексты]
SolveSystem.h [Исходные тексты]
Sort.h [Исходные тексты]
spec_functions.h [Исходные тексты]
ss_ridge_det.h [Исходные тексты]
ss_ridge_functors.h [Исходные тексты]
ss_ridge_functors_2.h [Исходные тексты]
start_median.h [Исходные тексты]
StatDiff.h [Исходные тексты]
stdint.h [Исходные тексты]
storage.h [Исходные тексты]
StructureComputation.cpp
StructureComputation.h [Исходные тексты]
tiff.cpp
tiff.h [Исходные тексты]
Transform.cpp
Transform.h [Исходные тексты]
TransformMatrices.cpp
TransformMatrices.h [Исходные тексты]
Triangulation.cpp
Triangulation.h [Исходные тексты]
virtdib.cpp
virtdib.h [Исходные тексты]
vtl_image.h [Исходные тексты]
vtl_image_old.h [Исходные тексты]
vtl_image_types.h [Исходные тексты]
vtl_meta_base.h [Исходные тексты]
vtl_meta_IndexList.h [Исходные тексты]
vtl_meta_permutations.h [Исходные тексты]
vtl_meta_SizeList.h [Исходные тексты]
vtl_meta_tools.h [Исходные тексты]
windowing_fun.h [Исходные тексты]
work_with_image.cpp
xml_interface.cpp
xml_interface.h [Исходные тексты]
xml_interface_imp.h [Исходные тексты]
yfile.cpp
yfile.h [Исходные тексты]
yfilesys.cpp
yfilesys.h [Исходные тексты]
ygeometr.cpp
ygeometr.h [Исходные тексты]
ymem.cpp
ymem.h [Исходные тексты]
ytime.cpp
ytime.h [Исходные тексты]
ytypes.h [Исходные тексты]
ywin.cpp
ywin.h [Исходные тексты]
ywinini.cpp
ywinini.h [Исходные тексты]
zoomfact.h [Исходные тексты]


Pipe Line Filters: Файл _imtransf.h

  • Файлы
  • Список членов всех файлов

Файл _imtransf.h

#include <assert.h>
#include <algorithm>
#include "ymem.h"

Граф включаемых заголовочных файлов для _imtransf.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class | TransformCell
struct | DMatrixElem
class | DistributionMatrix
class | CoverageMatrix
class | ProcessMatrix
class | ImageTransformImpl
class | ImageTransformCellImpl
class | ImageTransformMatrixImpl
class | ImageTransformMatrixFastImpl

Определения типов

typedef std::vector< YPoint<
double > > 		ITPolygon

Функции

bool | isBadCell (const YPoint< double > *cell)

Типы

typedef std::vector<YPoint<double> > ITPolygon

Функции

bool isBadCell ( const YPoint< double > * cell )


Pipe Line Filters: Файл _num_boost_adds.h

  • Файлы
  • Список членов всех файлов

Файл _num_boost_adds.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::NumAlg
namespace | Vtl::NumAlg::Lin

Классы

class | Vtl::NumAlg::Lin::PseudoInverseElemPositive< T >
class | Vtl::NumAlg::Lin::PseudoInverseElem< T >

Функции

template<class Iter>
Iter | Vtl::NumAlg::Lin::max_abs_element (Iter begin, Iter end)
template<class M, class V>
void | Vtl::NumAlg::Lin::prod_diag (ublas::matrix_container< M > &A, const ublas::vector_container< V > &diag_matrix)
template<class V, class M>
void | Vtl::NumAlg::Lin::prod_diag (const ublas::vector_container< V > &diag_matrix, ublas::matrix_container< M > &A)
template<class VectorW>
static void | Vtl::NumAlg::Lin::inverse_diag_matrix_positive (VectorW &W, double relerr)
template<class VectorW>
static void | Vtl::NumAlg::Lin::inverse_diag_matrix (VectorW &W, double relerr)
template<class M>
M::value_type | Vtl::NumAlg::Lin::matrix_max_abs_element (M &A)


Pipe Line Filters: Файл _num_cholesky.h

  • Файлы
  • Список членов всех файлов

Файл _num_cholesky.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::NumAlg
namespace | Vtl::NumAlg::Lin

Классы

class | Vtl::NumAlg::Lin::cholesky


Pipe Line Filters: Файл _num_eigen.h

  • Файлы
  • Список членов всех файлов

Файл _num_eigen.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::NumAlg
namespace | Vtl::NumAlg::Lin

Классы

class | Vtl::NumAlg::Lin::eigen

Функции

template<typename T>
T | Vtl::NumAlg::Lin::hypot (T x, T y)


Pipe Line Filters: Файл _num_implicit.h

  • Файлы
  • Список членов всех файлов

Файл _num_implicit.h

#include "_num_boost_adds.h"

Граф включаемых заголовочных файлов для _num_implicit.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::NumAlg
namespace | Vtl::NumAlg::Implicit
namespace | Vtl::NumAlg::Implicit::Pred

Классы

struct | Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
Предикат GreaterThan: Specialization for boost::ublas::c_vector. Подробнее...
struct | Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
Предикат LessThan: Specialization for boost::ublas::c_vector. Подробнее...
class | Vtl::NumAlg::Implicit::Sort_base< N_ >
class | Vtl::NumAlg::Implicit::Sort_base< 0 >
class | Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >
Specialization for boost::ublas::c_vector. Алгоритмы неявной сортировки. Вместо сортировки элементов контейнера, создается массив индексов элементов в контейнере. и сортируюутся эти индексы. С помощью функции operator[] можно получить индекс указанного порядкового элемента в исходном контейнере или с помощью щператора преобразования типа к const int* индексироваться просто как в массиве (константный указатель на такой массив может передаваться функциям, см. напр. функции Implicit::sort).
Пример:
. Подробнее...

Функции

template<typename T, size_t M, size_t N>
void | Vtl::NumAlg::Implicit::sort_columns (Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N > &U_sorted, Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N > &U_in, const int *s)
template<typename T>
void | Vtl::NumAlg::Implicit::sort_columns (Vtl::NumAlg::Lin::ublas::matrix< T > &U_sorted, const Vtl::NumAlg::Lin::ublas::matrix< T > &U_in, const int *s)
template<typename T, size_t N>
void | Vtl::NumAlg::Implicit::sort (Vtl::NumAlg::Lin::ublas::c_vector< T, N > &V_sorted, const Vtl::NumAlg::Lin::ublas::c_vector< T, N > &V_in, const int *s)
template<typename T>
void | Vtl::NumAlg::Implicit::sort (Vtl::NumAlg::Lin::ublas::vector< T > &V_sorted, const Vtl::NumAlg::Lin::ublas::vector< T > &V_in, const int *s)


Pipe Line Filters: Файл _num_qr.h

  • Файлы
  • Список членов всех файлов

Файл _num_qr.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::NumAlg
namespace | Vtl::NumAlg::Lin

Классы

class | Vtl::NumAlg::Lin::QR


Pipe Line Filters: Файл _num_svd.h

  • Файлы
  • Список членов всех файлов

Файл _num_svd.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::NumAlg
namespace | Vtl::NumAlg::Lin

Классы

class | Vtl::NumAlg::Lin::svd

Функции

template<typename T>
T | Vtl::NumAlg::Lin::sing_fortran (T x1, T x2)


Pipe Line Filters: Файл AbsDifference.cpp

  • Файлы
  • Список членов всех файлов

Файл AbsDifference.cpp

#include "plf_functors.h"
#include "AbsDifference.h"

Граф включаемых заголовочных файлов для AbsDifference.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл AbsDifference.h

  • Файлы
  • Список членов всех файлов

Файл AbsDifference.h

#include "aimage.h"
#include "imalg_resampling.h"
#include "imalg_tools.h"
#include "consolap.h"

Граф включаемых заголовочных файлов для AbsDifference.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_AbsDifference


Pipe Line Filters: Файл AbsoluteDualQuadric.cpp

  • Файлы
  • Список членов всех файлов

Файл AbsoluteDualQuadric.cpp

#include "AbsoluteDualQuadric.h"

Граф включаемых заголовочных файлов для AbsoluteDualQuadric.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл AbsoluteDualQuadric.h

  • Файлы
  • Список членов всех файлов

Файл AbsoluteDualQuadric.h

#include "num_linalg.h"
#include "MatrixOperations.h"
#include "Func.h"
#include "SolveEq.h"

Граф включаемых заголовочных файлов для AbsoluteDualQuadric.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::AbsoluteDualQuadric


Pipe Line Filters: Файл aimage.h

  • Файлы
  • Список членов всех файлов

Файл aimage.h

#include <string.h>
#include <assert.h>
#include "ytypes.h"
#include "progrcnt.h"

Граф включаемых заголовочных файлов для aimage.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class | AImage
Base class for all images. Подробнее...
class | AImage::Error
struct | AImage::Rgb
struct | AImage::Bgr
struct | AImage::Info
Иногда удобно вернуть из функции сразу все основные параметры изображения, например функция определяет какое изображение надо создать чтобы принять результат фильтрации неким фильтром. Удобно вернуть такую структуру и на ее основе создать изображение или проверить можно ли положить результат в уже имеющееся изображение. Подробнее...
class | AImageMem8
Interface for 8 bit per pixel container. Подробнее...
class | AImageMem16
interface for 16 bit per pixel container Подробнее...
class | AImageMemFloat
Interface for float per pixel container //////. Подробнее...
class | AImageMemRgb8
Interface for TrueColor 8 bit per each pixel sample container. Подробнее...
class | AImageMemRgb16
Interface for TrueColor 16 bit per each pixel sample container. Подробнее...
class | tplAImageReference< ImgT >
class | tplAImageFragment< ImgT >
class | ImageFragment8
class | ImageFragment16
class | ImageFragmentRgb8
class | ImageMem16Stuff
class | ImageMem16Stuff::Error
class | YImageFrame

Макросы

#define | IMAGE_MAX_FRAME 64

Определения типов

typedef uint8_t | Pixel8
typedef Pixel8 * | Pixel8Ptr
typedef uint16_t | Pixel16
typedef Pixel16 * | Pixel16Ptr
typedef float | PixelFloat
typedef PixelFloat * | PixelFloatPtr
typedef AImage * | AImagePtr
typedef AImageMem8 * | AImageMem8Ptr
typedef AImageMem16 * | AImageMem16Ptr
typedef AImageMemFloat * | AImageMemFloatPtr
typedef AImageMemRgb8 * | AImageMemRgb8Ptr
typedef AImageMemRgb16 * | AImageMemRgb16Ptr

Функции

AImage * | AImageLoad (AImage *img, bool replace, const char *fname, ProgressCounter *indicator=0)
Функция загрузки изображения в память.
void | AImageSave (const AImage *img, const char *fname, ProgressCounter *indicator=0)
Функция сохранения изображения в файл.
bool | AImageIsCompatible (AImage *img, AImage::YImageClass iclass, short width, short height, short bitsPerPix)
AImage * | AImageCreate (AImage *img, AImage::YImageClass iclass, short width, short height, short bitsPerPix)
Функция создания изображения (объект).
AImage * | AImageCreate (AImage *img, AImage::Info inf)


Pipe Line Filters: Файл alexandresku.h

  • Файлы
  • Список членов всех файлов

Файл alexandresku.h

#include <sstream>
#include <algorithm>
#include <cmath>
#include "loki_TypeManip.h"

Граф включаемых заголовочных файлов для alexandresku.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Types
namespace | Vtl::Types::TL
namespace | Vtl::Alg
namespace | Vtl::Alg::Impl

Классы

struct | Vtl::Types::EmptyType
class | Vtl::Types::NullType
Нулевой маркер типов. Подробнее...
struct | Vtl::Types::Int2Type< v >
struct | Vtl::Types::Type2Type< T >
class | Vtl::Types::Select< flag, Type1, Type2 >
Выбор типа на этапе комспиляции, if flag==true - первый тип, иначе - второй. Подробнее...
class | Vtl::Types::Conversion< T, U >
Проверка, существует ли преобразование по умолчанию (cast) из типа T в тип U. Подробнее...
class | Vtl::Types::isSameType< T1, T2 >
Проверка, совпадают ли типы. Если оба шаблонных параметра одинакового типа - то поле value=1, иначе value=0. Подробнее...
class | Vtl::Types::Typelist< T, U >
Списки типов. см. также Макросы для линеаризованного создания списка типов и namespace Vtl::Types::TL. Подробнее...
struct | Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >
struct | Vtl::Types::TL::MakeTypelist<>
struct | Vtl::Types::TL::AppendIf< TList, U, append >
Добавлять к списку типов, если последний шаблонный аргумент - TRUE. Подробнее...
struct | Vtl::Types::TL::isIn< TList, T >
Проверка в списке ли? Подробнее...
struct | Vtl::Types::TL::GT< s1, s2 >
struct | Vtl::Types::TL::LT< s1, s2 >
struct | Vtl::Types::TL::GE< s1, s2 >
struct | Vtl::Types::TL::LE< s1, s2 >
struct | Vtl::Types::TL::EQ< s1, s2 >
struct | Vtl::Types::TL::NE< s1, s2 >
class | Vtl::Types::TL::Print< TList >
Отладка - печать списка: фактических имен типов и sizeof элементов списка. Подробнее...
class | Vtl::Types::Traits< T >
struct | Vtl::Types::IntOrReal
Определение констант для выбора типа. Подробнее...
struct | Vtl::Types::SUIntOrReal
Определение констант для выбора типа. Подробнее...
class | Vtl::Types::PixelTraits< T >
struct | Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::SInt >
struct | Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::UInt >
struct | Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::Real >
struct | Vtl::Types::isIntOrReal< T >
Проверка на этапе компиляции к какой группе относится тип T Vtl::Types::IntOrReal. Подробнее...
struct | Vtl::Types::isSUIntOrReal< T >
Проверка на этапе компиляции к какомй группе относится тип T Vtl::Types::SUIntOrReal. Подробнее...
struct | Vtl::Alg::Factorial< N >
Вычисляет факториал во время компиляции. Подробнее...
struct | Vtl::Alg::Factorial< 0 >
struct | Vtl::Alg::isOdd< N >
Определяет на стадии компиляции нечетное число или нет. Если нечетное, то Vtl::Alg::isOdd::value равно 1, иначе 0. Подробнее...
struct | Vtl::Alg::x_to_N< N >
Вычисляет x^N, т.е. pow(x,N). N - целое известное на момент компиляции. Подробнее...
struct | Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 >
struct | Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 >
struct | Vtl::Alg::x_to_N< N >::x_to_N__< 1, 1 >
struct | Vtl::Alg::x_to_N< N >::x_to_N__< 0, 0 >

Макросы

#define | _USE_MATH_DEFINES
#define | TYPELIST_1(T1) Vtl::Types::Typelist<T1,Vtl::Types::NullType>
#define | TYPELIST_2(T1, T2) Vtl::Types::Typelist<T1,TYPELIST_1(T2) >
#define | TYPELIST_3(T1, T2, T3) Vtl::Types::Typelist<T1,TYPELIST_2(T2,T3) >
#define | TYPELIST_4(T1, T2, T3, T4) Vtl::Types::Typelist<T1,TYPELIST_3(T2,T3,T4) >
#define | TYPELIST_5(T1, T2, T3, T4, T5) Vtl::Types::Typelist<T1,TYPELIST_4(T2,T3,T4,T5) >
#define | TYPELIST_6(T1, T2, T3, T4, T5, T6) Vtl::Types::Typelist<T1,TYPELIST_5(T2,T3,T4,T5,T6) >
#define | TYPELIST_7(T1, T2, T3, T4, T5, T6, T7) Vtl::Types::Typelist<T1,TYPELIST_6(T2,T3,T4,T5,T6,T7) >
#define | TYPELIST_8(T1, T2, T3, T4, T5, T6, T7, T8) Vtl::Types::Typelist<T1,TYPELIST_7(T2,T3,T4,T5,T6,T7,T8) >
#define | TYPELIST_9(T1, T2, T3, T4, T5, T6, T7, T8, T9) Vtl::Types::Typelist<T1,TYPELIST_8(T2,T3,T4,T5,T6,T7,T8,T9) >
#define | TYPELIST_10(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) Vtl::Types::Typelist<T1,TYPELIST_9(T2,T3,T4,T5,T6,T7,T8,T9,T10) >
#define | TYPELIST_11(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) Vtl::Types::Typelist<T1,TYPELIST_10(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11) >
#define | TYPELIST_12(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) Vtl::Types::Typelist<T1,TYPELIST_11(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12) >
#define | TYPELIST_13(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) Vtl::Types::Typelist<T1,TYPELIST_12(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13) >
#define | TYPELIST_14(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) Vtl::Types::Typelist<T1,TYPELIST_13(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14) >
#define | TYPELIST_15(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) Vtl::Types::Typelist<T1,TYPELIST_14(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15) >

Определения типов

typedef TL::NoDuplicates<
TYPELIST_8(signed char, short,
int, long, int8_t, int16_t,
int32_t, int64_t)>::Result 		Vtl::Types::SignedIntegerTypes
все знаковые встроенные целые типы
typedef TL::NoDuplicates<
TYPELIST_8(unsigned char,
unsigned short, unsigned
int, unsigned long, uint8_t,
uint16_t, uint32_t, uint64_t)>::Result 		Vtl::Types::UnsignedIntegerTypes
все беззнаковые встроенные целые типы
typedef TL::NoDuplicates<
TYPELIST_3(float, double,
long double)>::Result 		Vtl::Types::RealTypes
все вещественные встроенные целые типы
typedef TL::NoDuplicates<
TYPELIST_3(bool, char, wchar_t)>::Result 		Vtl::Types::OtherIntegerTypes
остальные встроенные "целые" типы, такие как bool,char,wchar_t
typedef TL::NoDuplicates<
TL::Append< SignedIntegerTypes,
UnsignedIntegerTypes >::Result
>::Result 		Vtl::Types::IntegerTypes
все знаковые и беззнаковые встроенные целые типы.
typedef TL::NoDuplicates<
TL::Append< IntegerTypes,
OtherIntegerTypes >::Result
>::Result 		Vtl::Types::AllIntegerTypes
все знаковые и беззнаковые встроенные целые типы, включая OtherIntegerTypes (такие как 'char').
typedef TL::NoDuplicates<
TL::Append< SignedIntegerTypes,
RealTypes >::Result >::Result 		Vtl::Types::SignedTypes
все знаковые встроенные типы - целые и с плавающей точкой.
typedef TL::NoDuplicates<
TL::Append< IntegerTypes,
RealTypes >::Result >::Result 		Vtl::Types::ArithTypes
все численные встроенные типы - целые знаковые и беззнаковые и с плавающей точкой.
typedef TL::NoDuplicates<
TL::Append< ArithTypes, OtherIntegerTypes
>::Result >::Result 		Vtl::Types::AllArithTypes
все численные встроенные типы - целые знаковые и беззнаковые и с плавающей точкой, включая OtherIntegerTypes (такие как 'char').

Функции

template<typename T>
T | Vtl::sqr (T v)
template<typename T>
T | Vtl::max (T a, T b, T c)
template<typename T>
T | Vtl::max (T a, T b, T c, T d)
template<typename T>
T | Vtl::min (T a, T b, T c)
template<typename T>
T | Vtl::min (T a, T b, T c, T d)
template<typename T1, typename T2, typename T3>
T1 | Vtl::ToBounds (T1 var, T2 min, T3 max)
template<typename T>
T | Vtl::Alg::n_pow (T x, Vtl::Types::Int2Type< 1 >)
template<typename T, unsigned N>
T | Vtl::Alg::n_pow (T x, Vtl::Types::Int2Type< N >)
template<unsigned N, typename T>
T | Vtl::Alg::minus_if_odd (T x)
minus_if_odd<N>(x) возвращает x, если N четное и -x, если N не четное.
template<unsigned N, typename T, typename TT>
T | Vtl::Alg::mult_if_odd (T x, TT mult)
mult_if_odd<N>(x,mult) возвращает x, если N четное и x*mult, если N не четное.
template<bool do_mult, typename T, typename TT>
T | Vtl::Alg::mult_if (T x, TT mult)
mult_if<do_mult>(x,mult) возвращает x, если do_mult=false и x*mult, если do_mult=true.
template<typename T>
T | Vtl::Alg::Impl::minus_if_odd (T x, Loki::Int2Type< isOdd< 0 >::value >)
template<typename T>
T | Vtl::Alg::Impl::minus_if_odd (T x, Loki::Int2Type< isOdd< 1 >::value >)
template<typename T, typename TT>
T | Vtl::Alg::Impl::mult_if (T x, TT mult, Loki::Int2Type< false >)
template<typename T, typename TT>
T | Vtl::Alg::Impl::mult_if (T x, TT mult, Loki::Int2Type< true >)
template<typename T>
T | Vtl::Alg::Impl::sincos (T x, Loki::Int2Type< isOdd< 0 >::value >)
template<typename T>
T | Vtl::Alg::Impl::sincos (T x, Loki::Int2Type< isOdd< 1 >::value >)
template<unsigned N, typename T>
T | Vtl::Alg::sincos (T x)
sincos<N>(x) возвращает sin(x), если N-четное, и cos(x), если N-нечетное. С точностью до знака это соответствует N-ой производной от sin(x).
template<unsigned N, typename T>
T | Vtl::Alg::dsin (T x)
dsin<N>(x) возвращает значение N-ой производной от sin(x) по х. Результат представляется выражением

где $ { [ ... ] } $ обозначает округление до ближайшего целого не превышающего значение аргумента.

template<typename T>
T | Vtl::Alg::Return1stArg (T arg1, T arg2, Loki::Int2Type< true >)
template<typename T>
T | Vtl::Alg::Return1stArg (T arg1, T arg2, Loki::Int2Type< false >)
template<bool first, typename T>
T | Vtl::Alg::Return1stArg (T arg1, T arg2)
Если параметр шаблона first равен true - возвращает первый аргумент, иначе - второй. Остальные аргументы не использует.
template<typename T>
T | Vtl::Alg::ReturnArg_ (T arg1, T arg2, Loki::Int2Type< 0 >)
Возвращает аргумент с номером n. Остальные аргументы не использует. Первый аргумент имеет номер 0 (нуль).
template<typename T>
T | Vtl::Alg::ReturnArg_ (T arg1, T arg2, Loki::Int2Type< 1 >)
template<int n, typename T>
T | Vtl::Alg::ReturnArg (T arg1, T arg2)
template<typename T>
T | Vtl::Alg::ReturnArg_ (T arg1, T arg2, T arg3, Loki::Int2Type< 0 >)
template<typename T>
T | Vtl::Alg::ReturnArg_ (T arg1, T arg2, T arg3, Loki::Int2Type< 1 >)
template<typename T>
T | Vtl::Alg::ReturnArg_ (T arg1, T arg2, T arg3, Loki::Int2Type< 2 >)
template<int n, typename T>
T | Vtl::Alg::ReturnArg (T arg1, T arg2, T arg3)
template<typename T>
T | Vtl::Alg::ReturnArg_ (T arg1, T arg2, T arg3, T arg4, Loki::Int2Type< 0 >)
template<typename T>
T | Vtl::Alg::ReturnArg_ (T arg1, T arg2, T arg3, T arg4, Loki::Int2Type< 1 >)
template<typename T>
T | Vtl::Alg::ReturnArg_ (T arg1, T arg2, T arg3, T arg4, Loki::Int2Type< 2 >)
template<typename T>
T | Vtl::Alg::ReturnArg_ (T arg1, T arg2, T arg3, T arg4, Loki::Int2Type< 3 >)
template<int n, typename T>
T | Vtl::Alg::ReturnArg (T arg1, T arg2, T arg3, T arg4)
template<typename T>
T | Vtl::Alg::ReturnArg_ (T arg1, T arg2, T arg3, T arg4, T arg5, Loki::Int2Type< 0 >)
template<typename T>
T | Vtl::Alg::ReturnArg_ (T arg1, T arg2, T arg3, T arg4, T arg5, Loki::Int2Type< 1 >)
template<typename T>
T | Vtl::Alg::ReturnArg_ (T arg1, T arg2, T arg3, T arg4, T arg5, Loki::Int2Type< 2 >)
template<typename T>
T | Vtl::Alg::ReturnArg_ (T arg1, T arg2, T arg3, T arg4, T arg5, Loki::Int2Type< 3 >)
template<typename T>
T | Vtl::Alg::ReturnArg_ (T arg1, T arg2, T arg3, T arg4, T arg5, Loki::Int2Type< 4 >)
template<int n, typename T>
T | Vtl::Alg::ReturnArg (T arg1, T arg2, T arg3, T arg4, T arg5)

Макросы

#define _USE_MATH_DEFINES

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл alg_bresenham.h

  • Файлы
  • Список членов всех файлов

Файл alg_bresenham.h

#include "alexandresku.h"

Граф включаемых заголовочных файлов для alg_bresenham.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::ImAlg
namespace | Vtl::ImAlg::Bres

Классы

class | Vtl::ImAlg::Bres::Draw< Pixel >
class | Vtl::ImAlg::Bres::DrawDotted< Pixel >
class | Vtl::ImAlg::Bres::DrawGradient< Pixel >
class | Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >
Алгоритм перемещения по пикселям, в предположении, что пиксели расположены в памяти в виде одномерного массива, строка за строкой. Смещение к пикселю с тем же X на следующей строке может быть отрицательным и может превышать по модулю количество пикселей в строке изображения. Способ отрисовки пиксекля задается функтором D, в качестве образца такого функтора см. классы Vtl::Alg::Bres::Draw, Vtl::Alg::Bres::DrawDotted . Подробнее...
class | Vtl::ImAlg::Bres::Line< F >
Алгоритм Брезенхэма 'рисования' линии. Написан по мотивам [Wilton] , Listing 6-2 . В отличие от книги не используется операция перестановки концов отрезка (Swap), чтобы движение вдоль линии всегда шло в направлении возрастания координаты, так как при желании рисовать например ломаные пунктирные линии это будет приводить к нарушению шаблона (маски) пунктира. Поэтому обработка различных направлений движения сделана отдельно. Класс реализован так, что он не занимается собственно рисованием, а вызывает для этой цели функтор (параметр шаблона), который умеет выполнять следующие действия:. Подробнее...
class | Vtl::ImAlg::Bres::Circle< T >
Алгоритм 'рисования' окружности. Подробнее...
class | Vtl::ImAlg::Bres::EllipseH< F >
Алгоритм 'рисования' эллипса с полуосями в горизонтальном и вертикальном направлении. // Listing 7-2. Подробнее...
class | Vtl::ImAlg::Bres::Ellipse< T >
Алгоритм 'рисования' эллипса с произвольно ориентированной большой осью. Подробнее...
class | Vtl::ImAlg::Bres::Fill< T >
Алгоритм заполнения области. Подробнее...


Pipe Line Filters: Файл apipe.cpp

  • Файлы
  • Список членов всех файлов

Файл apipe.cpp

#include <string>
#include <sstream>
#include <assert.h>
#include "apipe.h"

Граф включаемых заголовочных файлов для apipe.cpp:

Функции

template<class T>
T min (T &a, T &b)

Функции

template<class T>
T min | ( | T & | a,
 |  | T & | b
 | ) |  |

Примеры:
test_color_registration.cpp и test_image_registration_via_fft.cpp.


Pipe Line Filters: Файл apipe.h

  • Файлы
  • Список членов всех файлов

Файл apipe.h

#include <string>
#include <vector>
#include <map>
#include <windows.h>

Граф включаемых заголовочных файлов для apipe.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class | ReadPipe
class | WritePipe
class | childPipe
class | ReadString


Pipe Line Filters: Файл AutoCalibration.cpp

  • Файлы
  • Список членов всех файлов

Файл AutoCalibration.cpp

#include "AutoCalibration.h"

Граф включаемых заголовочных файлов для AutoCalibration.cpp:

Пространства имен

namespace | Basics3D

Макросы

#define | USE_DIRECT_SEARCH

Макросы

#define USE_DIRECT_SEARCH

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл AutoCalibration.h

  • Файлы
  • Список членов всех файлов

Файл AutoCalibration.h

#include <iostream>
#include "num_linalg.h"
#include "RQDecomposition.h"
#include "MatrixOperations.h"
#include "EssentialMatrix.h"
#include "AbsoluteDualQuadric.h"
#include "EigenValueDecomp.h"
#include "ProjectiveMatrix.h"
#include "Sort.h"

Граф включаемых заголовочных файлов для AutoCalibration.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_AutoCalibration


Pipe Line Filters: Файл bmp.cpp

  • Файлы
  • Список членов всех файлов

Файл bmp.cpp

#include "bmp.h"

Граф включаемых заголовочных файлов для bmp.cpp:

Функции

static uint32_t _calcRowLen (uint16_t bits, uint16_t wid)

Функции

static uint32_t _calcRowLen | ( | uint16_t | bits,
 |  | uint16_t | wid |
 | ) |  |  | [static]


Pipe Line Filters: Файл bmp.h

  • Файлы
  • Список членов всех файлов

Файл bmp.h

#include "yfile.h"

Граф включаемых заголовочных файлов для bmp.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | IFF

Классы

struct | IFF::BMP_BitMapFileHeader
struct | IFF::BMP_BitMapInfoHeader
struct | IFF::RgbQuad
class | IFF::BmpRead
class | IFF::BmpWrite

Макросы

#define | BI_RGB 0
#define | BI_RLE8 1
#define | BI_RLE4 2

Макросы

#define BI_RGB 0

#define BI_RLE4 2

#define BI_RLE8 1

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл Bracketing.cpp

  • Файлы
  • Список членов всех файлов

Файл Bracketing.cpp

#include "Bracketing.h"

Граф включаемых заголовочных файлов для Bracketing.cpp:

Пространства имен

namespace | Basics3D

Функции

int | Basics3D::zbrac (const IFunc *g, double *x1, double *x2)


Pipe Line Filters: Файл Bracketing.h

  • Файлы
  • Список членов всех файлов

Файл Bracketing.h

#include <math.h>
#include "Func.h"

Граф включаемых заголовочных файлов для Bracketing.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Макросы

#define | FACTOR 1.05
#define | NTRY 50

Функции

int | Basics3D::zbrac (const IFunc *g, double *x1, double *x2)

Макросы

#define FACTOR 1.05

#define NTRY 50

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл C-Sharp_pixel_access.hxx

  • Файлы
  • Список членов всех файлов

Файл C-Sharp_pixel_access.hxx

См. исходные тексты.


Pipe Line Filters: Файл color_spaces.h

  • Файлы
  • Список членов всех файлов

Файл color_spaces.h

#include "loki_TypeManip.h"
#include "loki_TypeTraits.h"
#include "loki_static_check.h"

Граф включаемых заголовочных файлов для color_spaces.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::ImAlg
namespace | Vtl::ImAlg::C

Классы

class | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
class | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
struct | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< n, TT >
struct | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< 0, TT >
class | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
struct | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< n, TT >
struct | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< 0, TT >
struct | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< n, TT >
struct | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< 0, TT >
class | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
struct | Vtl::ImAlg::C::XYZ
converts RGB709 to CIE XYZ color coordinates. Подробнее...
struct | Vtl::ImAlg::C::XYZ::X< T >
Функтор XYZ: RGB -> X для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::XYZ::Y< T >
Функтор XYZ: RGB -> Y для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::XYZ::Z< T >
Функтор XYZ: RGB -> Z для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::XYZ::R< T >
Функтор XYZ: XYZ -> R для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::XYZ::G< T >
Функтор XYZ: XYZ -> G для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::XYZ::B< T >
Функтор XYZ: XYZ -> B для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >
Функтор для PixByPix3to3. Подробнее...
struct | Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >
Функтор для PixByPix3to3. Подробнее...
struct | Vtl::ImAlg::C::YCbCr
Цветовое пространство YCbCr. Подробнее...
struct | Vtl::ImAlg::C::YCbCr::Y< T >
Функтор YCbCr: RGB -> Y для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::YCbCr::Cb< T >
Функтор YCbCr: RGB -> Cb для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::YCbCr::Cr< T >
Функтор YCbCr: RGB -> Cr для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::YCbCr::R< T >
Функтор YCbCr -> R для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::YCbCr::G< T >
Функтор YCbCr -> G для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::YCbCr::B< T >
Функтор YCbCr -> B для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >
Функтор для PixByPix3to3. Подробнее...
struct | Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >
Функтор для PixByPix3to3. Подробнее...
struct | Vtl::ImAlg::C::EElEll
Цветовое пространство, введенное в работе [Geusebroek 2001 Color Invariance] . Обладает свойствами инвариантности к теням, бликам и.т.д (shading, highlighting). Подробнее...
struct | Vtl::ImAlg::C::EElEll::E< T >
Функтор EElEll: RGB -> E для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::EElEll::El< T >
Функтор EElEll: RGB -> E_lambda для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::EElEll::Ell< T >
Функтор EElEll: RGB -> E_lambda_lambda для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::EElEll::R< T >
Функтор EElEll -> R для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::EElEll::G< T >
Функтор EElEll -> G для PixByPix3to1. Подробнее...
struct | Vtl::ImAlg::C::EElEll::B< T >
Функтор EElEll -> B для PixByPix3to1. Подробнее...
class | Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >
Функтор для PixByPix3to3. Подробнее...
class | Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >
Функтор для PixByPix3to3. Подробнее...
class | Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter >
Функтор для PixByPix3to3. Подробнее...
struct | Vtl::ImAlg::C::YIQ
Цветовое пространство YIQ. Подробнее...
struct | Vtl::ImAlg::C::YIQ::Y< T >
Функтор YIQ: RGB -> Y . Подробнее...
struct | Vtl::ImAlg::C::YIQ::I< T >
Функтор YIQ: RGB -> I . Подробнее...
struct | Vtl::ImAlg::C::YIQ::Q< T >
Функтор YIQ: RGB -> Q . Подробнее...
struct | Vtl::ImAlg::C::YIQ::R< T >
Функтор YIQ -> R . Подробнее...
struct | Vtl::ImAlg::C::YIQ::G< T >
Функтор YIQ -> G . Подробнее...
struct | Vtl::ImAlg::C::YIQ::B< T >
Функтор YIQ -> B . Подробнее...
struct | Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >
Функтор для PixByPix3to3, преобразование RGB -> YIQ. Подробнее...
struct | Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >
Функтор для PixByPix3to3, преобразование YIQ -> RGB. Подробнее...
struct | Vtl::ImAlg::C::YUV
Цветовое пространство YUV. Подробнее...
struct | Vtl::ImAlg::C::YUV::Y< T >
Функтор YUV: RGB -> Y . Подробнее...
struct | Vtl::ImAlg::C::YUV::U< T >
Функтор YUV: RGB -> U . Подробнее...
struct | Vtl::ImAlg::C::YUV::V< T >
Функтор YUV: RGB -> V . Подробнее...
struct | Vtl::ImAlg::C::YUV::R< T >
Функтор YUV -> R . Подробнее...
struct | Vtl::ImAlg::C::YUV::G< T >
Функтор YUV -> G . Подробнее...
struct | Vtl::ImAlg::C::YUV::B< T >
Функтор YUV -> B . Подробнее...
struct | Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >
Функтор для PixByPix3to3, преобразование RGB -> YUV. Подробнее...
struct | Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >
Функтор для PixByPix3to3, преобразование YUV -> RGB. Подробнее...
struct | Vtl::ImAlg::C::IV1V2
Специально цветовое пространство, используется struct HSI. Подробнее...
struct | Vtl::ImAlg::C::IV1V2::I< T >
Функтор IV1V2: RGB -> I. Подробнее...
struct | Vtl::ImAlg::C::IV1V2::V1< T >
Функтор IV1V2: RGB -> V1 . Подробнее...
struct | Vtl::ImAlg::C::IV1V2::V2< T >
Функтор IV1V2: RGB -> V2 . Подробнее...
struct | Vtl::ImAlg::C::IV1V2::R< T >
Функтор IV1V2 -> R . Подробнее...
struct | Vtl::ImAlg::C::IV1V2::G< T >
Функтор IV1V2 -> G . Подробнее...
struct | Vtl::ImAlg::C::IV1V2::B< T >
Функтор IV1V2 -> B . Подробнее...
struct | Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >
Функтор для PixByPix3to3, преобразование RGB -> IV1V2. Подробнее...
struct | Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >
Функтор для PixByPix3to3, преобразование IV1V2 -> RGB. Подробнее...
struct | Vtl::ImAlg::C::HSV
Цветовое пространство HSV . The Hue/Saturation/Value model was created by A. R. Smith in 1978. It is based on such intuitive color characteristics as tint, shade and tone (or family, purety and intensity). The coordinate system is cylindrical, and the colors are defined inside a hexcone. The hue value H runs from 0 to 360?. The saturation S is the degree of strength or purity and is from 0 to 1. Purity is how much white is added to the color, so S=1 makes the purest color (no white). Brightness V also ranges from 0 to 1, where 0 is the black. Подробнее...
struct | Vtl::ImAlg::C::HSV::fromRGB< T, Iter >
Функтор для PixByPix3to3. Подробнее...
struct | Vtl::ImAlg::C::HSV::toRGB< T, Iter >
Функтор для PixByPix3to3. Подробнее...
struct | Vtl::ImAlg::C::HSL
Цветовое пространство HSL . The Hue/Saturation/Value. Подробнее...
struct | Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >
Функтор для PixByPix3to3. Подробнее...
struct | Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >
Функтор для PixByPix3to3. Подробнее...
struct | Vtl::ImAlg::C::HSI< LinSys >
Цветовое пространство HSI (or may be refered as IHS). The Hue/Saturation/Intensity. Подробнее...
struct | Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter >
Функтор для PixByPix3to3. Подробнее...
struct | Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter >
Функтор для PixByPix3to3. Подробнее...
struct | Vtl::ImAlg::C::Lab
Цветовое пространство L*a*b*. Подробнее...
class | Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >
Функтор для PixByPix3to3. Подробнее...
class | Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
Функтор для PixByPix3to3. Подробнее...

Макросы

#define | COLOR_SPACE_CONST_IV1V2_A 0.33333333333333333333333333333333
#define | COLOR_SPACE_CONST_IV1V2_B 0.40824829046386301636621401245098
#define | COLOR_SPACE_CONST_IV1V2_C 0.81649658092772603273242802490196
#define | COLOR_SPACE_CONST_IV1V2_D 1.2247448713915890490986420373529
#define | COLOR_SPACE_CONST_IV1V2_S 0.91287092917527685576161630466804

Перечисления

enum Vtl::ImAlg::C::NormalizationType {
Vtl::ImAlg::C::nNoScale = 0, Vtl::ImAlg::C::nStretch = 1, Vtl::ImAlg::C::nSaveRatio = 2, Vtl::ImAlg::C::nSaveChrom = 3,
Vtl::ImAlg::C::nDefault = nStretch
}
enum | Vtl::ImAlg::C::SystemType { Vtl::ImAlg::C::sys_other = 0, Vtl::ImAlg::C::sys_chrom = 1, Vtl::ImAlg::C::sys_hue = 2 }

Функции

double | Vtl::ImAlg::C::HSV_HSL_hue (double max, double r, double g, double b, double delta)

Макросы

#define COLOR_SPACE_CONST_IV1V2_A 0.33333333333333333333333333333333

#define COLOR_SPACE_CONST_IV1V2_B 0.40824829046386301636621401245098

#define COLOR_SPACE_CONST_IV1V2_C 0.81649658092772603273242802490196

#define COLOR_SPACE_CONST_IV1V2_D 1.2247448713915890490986420373529

#define COLOR_SPACE_CONST_IV1V2_S 0.91287092917527685576161630466804


Pipe Line Filters: Файл Combination.cpp

  • Файлы
  • Список членов всех файлов

Файл Combination.cpp

#include "Combination.h"

Граф включаемых заголовочных файлов для Combination.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл Combination.h

  • Файлы
  • Список членов всех файлов

Файл Combination.h

#include <iostream>
#include <fstream>
#include <stdio.h>
#include <string>
#include <sstream>
#include <assert.h>
#include <string.h>
#include "aimage.h"
#include "consolap.h"
#include "alg_bresenham.h"
#include "Point2D.h"
#include "Points2DSet.h"
#include "ImagesSet.h"

Граф включаемых заголовочных файлов для Combination.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_Combination


Pipe Line Filters: Файл consolap.h

  • Файлы
  • Список членов всех файлов

Файл consolap.h

#include <progrcnt.h>

Граф включаемых заголовочных файлов для consolap.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Переменные

ProgressCounter * indicator

Переменные

ProgressCounter* indicator

При написании консольных приложений следует включить этот файл пи там, где это надо, подставлять вместо аргумента типа /c ProgressCounter* переменную /c indicator. На экран будет выводиться счеткик процентов выполнения подпрограммы: в первой строке - название (суть) процедуры, во второй - процент исполнения от 0.0% до 100.0%, по заверщении - новая строка, говорящая от том, что процедура закончена. Для работы в других окружениях, например Windows,X-Windows - следует написать новый класс, производный от class ProgressCounter. В качестве примера - см. консольноый класс class SimpleProgressBar в файле /c progrcnt.cpp который и является реализацией, представляемой глобальной переменной /c indicator .

Примеры:
invert.cpp, test_alg_bresenham.cpp, test_color_registration.cpp, test_fast_gauss.cpp, test_image_registration_via_fft.cpp, test_image_registration_via_oflow.cpp, test_plf_filters.cpp, test_plf_filters_rgb.cpp и work_with_image.cpp.


Pipe Line Filters: Файл convolve.h

  • Файлы
  • Список членов всех файлов

Файл convolve.h

#include "windowing_fun.h"

Граф включаемых заголовочных файлов для convolve.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::ImAlg
namespace | Vtl::ImAlg::Conv
namespace | Vtl::ImAlg::Conv::Impl
namespace | Vtl::ImAlg::Conv::Impl::FastGaussConvolve

Классы

class | Vtl::ImAlg::Conv::SliceIter< T, stride >
Итератор по массиву, шаг известен на момент компиляции. Подробнее...
class | Vtl::ImAlg::Conv::SliceIter< T, 0 >
Итератор по массиву, шаг НЕ известен на момент компиляции и становится известным только в runtime. Подробнее...
class | Vtl::ImAlg::Conv::SliceIterConst< T, stride >
Итератор по массиву, шаг известен на момент компиляции. Подробнее...
class | Vtl::ImAlg::Conv::SliceIterConst< T, 0 >
Итератор по массиву, шаг НЕ известен на момент компиляции и становится известным только в runtime. Подробнее...
class | Vtl::ImAlg::Conv::Impl::Buffer< T, K >
Буфер для сверток. Подробнее...
class | Vtl::ImAlg::Conv::CyclicConv< T, K >
Вычисление циклической свертки. Подробнее...
class | Vtl::ImAlg::Conv::CyclicConvInplace< T, K >
Вычисление циклической свертки inplace. Подробнее...
class | Vtl::ImAlg::Conv::Conv< T, K >
Вычисление свертки, края массива дополняются отражением. Подробнее...
class | Vtl::ImAlg::Conv::ConvInplace< T, K >
Вычисление свертки, края массива дополняются отражением. Подробнее...
class | Vtl::ImAlg::Conv::Conv2D
Выполняет свертку/кросскорреляцию циклическую или с дополнением за края методом отражения двумерных данных (изображений), размещенных в одномерном массиве и заданных параметрами data,width,height, nls (Next line shift, величина, которую надо прибавить к указателю, чтобы он указывал на пиксель следующей строки строго под текущим) с двумерным сепарабельным ядром, заданным ОДНОМЕРНЫМ ядром/ядрами. K, K1, K2 - тип ядра свертки(кросскорреляции) Ядро должно быть класса Kernel::Base или производным от него, созданным с параметрами kernel_type_=KT_Conv или KT_Corr (в зввисимости от того требуется вычислить свертку или кросскорреляцию) , параметр шаблона Base double_kernel_ ДОЛЖЕН БЫТЬ true. Подробнее...
class | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 >
class | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >
class | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >
class | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >
class | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >
class | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >
class | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >
class | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >
class | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >
class | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >
class | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D >
class | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >
class | Vtl::ImAlg::Conv::FastGaussConvolve< T, D >
Быстрая рекурсивная реализация свертки с гауссом и его первыми 3 производными. По статье [Young_Vliet_1995]. Подробнее...

Функции

template<typename T, typename iterator_in, typename iterator_ker>
T | Vtl::ImAlg::Conv::Conv1pt (iterator_in in, iterator_ker begin, iterator_ker end)
Вычисление свертки в одной точке.
template<typename iterator_in, typename iterator_out, typename Kernel>
void | Vtl::ImAlg::Conv::ConvolveNoExt (iterator_in begin, iterator_in end, iterator_out out, const Kernel &ker)
Вычисление 1D свертки по 2D массиву, без обработки концов. Эта перегруженная функция предполагает, что
входные итераторы являются объектом, который при разименовании дает итератор на начало последовательности, по которой собственно вычисляется свертка(кросскорреляция) с ядром в точке.
Выходной итератор является объектом, который содержит определение типа value_type.
Типовое применение: Дан двумерный массив, для каждого элемента строки надо вычислить результат, равный кросскорреляции этого элемента и его соседей из соседних строк с ядром. Чтобы правильно обработать концы последовательности, ее следует дополнить желаемым образом, влево - на Kernel.left() точек и справа на Kernel.right() точек.
template<typename iterator_in, typename iterator_out, typename Kernel>
void | Vtl::ImAlg::Conv::ConvolveNoExt (iterator_in begin, iterator_in end, iterator_out *out, const Kernel &ker)
Вычисление 1D свертки по 2D массиву, без обработки концов. Эта перегруженная функция предполагает, что
входные итераторы являются объектом, который при разименовании дает итератор на начало последовательности, по которой собственно вычисляется свертка(кросскорреляция) с ядром в точке.
Выходной итератор является обычным указателем .
Типовое применение: Дан двумерный массив, для каждого элемента строки надо вычислить результат, равный кросскорреляции этого элемента и его соседей из соседних строк с ядром.
Чтобы правильно обработать концы последовательности, ее следует дополнить желаемым образом, влево - на Kernel.left() точек и справа на Kernel.right() точек.
template<typename iterator_in, typename iterator_out, typename Kernel>
void | Vtl::ImAlg::Conv::ConvolveNoExt (iterator_in *begin, iterator_in *end, iterator_out out, const Kernel &ker)
Вычисление 1D свертки, без обработки концов. Эта перегруженная функция предполагает, что
входные итераторы являются обычными указателями, begin при разименовании дает значение в точке.
Вычисляется свертка(кросскорреляция) последовательности с ядром в классическом понимании.
Выходной итератор является объектом, который содержит определение типа value_type.
Типовое применение: Вычисляется свертка(кросскорреляция) последовательности с ядром в классическом понимании.
Чтобы правильно обработать концы последовательности, ее следует дополнить желаемым образом, влево - на Kernel.left() точек и справа на Kernel.right() точек.
template<typename iterator_in, typename iterator_out, typename Kernel>
void | Vtl::ImAlg::Conv::ConvolveNoExt (iterator_in *begin, iterator_in *end, iterator_out *out, const Kernel &ker)
Вычисление 1D свертки, без обработки концов. Эта перегруженная функция предполагает, что входные итераторы являются обычными указателями, begin при разименовании дает значение в точке.
Выходной итератор является обычным указателем .
Типовое применение: Вычисляется свертка(кросскорреляция) последовательности с ядром в классическом понимании.
Чтобы правильно обработать концы последовательности, ее следует дополнить желаемым образом, влево - на Kernel.left() точек и справа на Kernel.right() точек.
template<typename T>
void | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::border (const T *src, T *dest, int sx)


Pipe Line Filters: Файл CPP_pixel_access_via_file_mapping_to_memory.hxx

  • Файлы
  • Список членов всех файлов

Файл CPP_pixel_access_via_file_mapping_to_memory.hxx

См. исходные тексты.


Pipe Line Filters: Файл datastring.cpp

  • Файлы
  • Список членов всех файлов

Файл datastring.cpp

#include "datastring.h"

Граф включаемых заголовочных файлов для datastring.cpp:


Pipe Line Filters: Файл datastring.h

  • Файлы
  • Список членов всех файлов

Файл datastring.h

#include <string>
#include <sstream>
#include <iomanip>
#include "ytime.h"
#include "loki_EmptyType.h"

Граф включаемых заголовочных файлов для datastring.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Gen
namespace | Gen::Data
namespace | Gen::Data::Impl

Классы

class | Gen::Data::SaveFormat
class | DataString

Функции

int | Gen::Data::Impl::Sscanf (std::istream &is, Loki::EmptyType v1, Loki::EmptyType v2, Loki::EmptyType v3, Loki::EmptyType v4, Loki::EmptyType v5, Loki::EmptyType v6, Loki::EmptyType v7, Loki::EmptyType v8, Loki::EmptyType v9, Loki::EmptyType v10, Loki::EmptyType v11, Loki::EmptyType v12, Loki::EmptyType v13, Loki::EmptyType v14, Loki::EmptyType v15, Loki::EmptyType v16)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16>
int | Gen::Data::Impl::Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13, T14 &v14, T15 &v15, T16 &v16)
template<typename T1>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1)
Через потоки ввода-вывода STL (std::istream, std::isringstream, ...) выполняет действия аналогичные функции sscanf(). Строки формата нет. type-safe. Возвращает количество успешно сосканированных полей. Пример:
template<typename T1, typename T2>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1, T2 &v2)
template<typename T1, typename T2, typename T3>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3)
template<typename T1, typename T2, typename T3, typename T4>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4)
template<typename T1, typename T2, typename T3, typename T4, typename T5>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13, T14 &v14)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
int | Gen::Data::Sscanf (std::istream &is, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13, T14 &v14, T15 &v15)
template<typename T1>
int | Gen::Data::Sscanf (const char *str, T1 &v1)
template<typename T1>
int | Gen::Data::Sscanf (std::string str, T1 &v1)
template<typename T1, typename T2>
int | Gen::Data::Sscanf (const char *str, T1 &v1, T2 &v2)
template<typename T1, typename T2>
int | Gen::Data::Sscanf (std::string str, T1 &v1, T2 &v2)
template<typename T1, typename T2, typename T3>
int | Gen::Data::Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3)
template<typename T1, typename T2, typename T3>
int | Gen::Data::Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3)
template<typename T1, typename T2, typename T3, typename T4>
int | Gen::Data::Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4)
template<typename T1, typename T2, typename T3, typename T4>
int | Gen::Data::Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4)
template<typename T1, typename T2, typename T3, typename T4, typename T5>
int | Gen::Data::Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5)
template<typename T1, typename T2, typename T3, typename T4, typename T5>
int | Gen::Data::Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
int | Gen::Data::Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
int | Gen::Data::Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
int | Gen::Data::Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
int | Gen::Data::Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
int | Gen::Data::Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
int | Gen::Data::Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
int | Gen::Data::Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
int | Gen::Data::Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
int | Gen::Data::Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
int | Gen::Data::Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
int | Gen::Data::Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
int | Gen::Data::Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
int | Gen::Data::Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
int | Gen::Data::Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
int | Gen::Data::Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
int | Gen::Data::Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
int | Gen::Data::Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13, T14 &v14)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
int | Gen::Data::Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13, T14 &v14)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
int | Gen::Data::Sscanf (const char *str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13, T14 &v14, T15 &v15)
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
int | Gen::Data::Sscanf (std::string str, T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5, T6 &v6, T7 &v7, T8 &v8, T9 &v9, T10 &v10, T11 &v11, T12 &v12, T13 &v13, T14 &v14, T15 &v15)


Pipe Line Filters: Файл debug_test.h

  • Файлы
  • Список членов всех файлов

Файл debug_test.h

#include <time.h>
#include <strstream>

Граф включаемых заголовочных файлов для debug_test.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Dbg

Классы

class | Vtl::Dbg::TimeElapsed


Pipe Line Filters: Файл DFPMinimization.h

  • Файлы
  • Список членов всех файлов

Файл DFPMinimization.h

#include <math.h>
#include <vector>
#include "num_linalg.h"
#include "MistakeFunc.h"

Граф включаемых заголовочных файлов для DFPMinimization.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Макросы

#define | ITMAX 200
#define | EPS 3.0e-8
#define | TOLX (4*EPS)
#define | STPMX 100.0
#define | ALF 1.0e-4

Функции

template<class type, class MatrixType>
void | Basics3D::lnsrch (int n, Vtl::NumAlg::Lin::ublas::vector< type > *xold, type fold, Vtl::NumAlg::Lin::ublas::vector< type > *g, Vtl::NumAlg::Lin::ublas::vector< type > *p, Vtl::NumAlg::Lin::ublas::vector< type > *x, type *f, type stpmax, int *check, T_MistakeFunc< MatrixType > *Mist)
template<class type, class MatrixType>
void | Basics3D::_dfpmin (Vtl::NumAlg::Lin::ublas::vector< type > *p, int n, type gtol, int *iter, type *fret, T_MistakeFunc< MatrixType > *Mist)

Макросы

#define ALF 1.0e-4

#define EPS 3.0e-8

#define ITMAX 200

#define STPMX 100.0

#define TOLX (4*EPS)


Pipe Line Filters: Файл DrawEllipse.h

  • Файлы
  • Список членов всех файлов

Файл DrawEllipse.h

#include <cmath>
#include "alg_bresenham.h"

Граф включаемых заголовочных файлов для DrawEllipse.h:

См. исходные тексты.

Макросы

#define | _USE_MATH_DEFINES

Функции

template<typename T>
void | DrawEllipse (T *io_dstR, T *io_dstG, T *io_dstB, int w, int h, int nls, int cx, int cy, double Ax, double Ay, double fi, int pointsNumb, T colR=T(0), T colG=T(0), T colB=T(0))

Макросы

#define _USE_MATH_DEFINES

Функции

template<typename T>
void DrawEllipse | ( | T * | io_dstR,
 |  | T * | io_dstG,
 |  | T * | io_dstB,
 |  | int | w,
 |  | int | h,
 |  | int | nls,
 |  | int | cx,
 |  | int | cy,
 |  | double | Ax,
 |  | double | Ay,
 |  | double | fi,
 |  | int | pointsNumb,
 |  | T | colR = T(0),
 |  | T | colG = T(0),
 |  | T | colB = T(0)
 | ) |  |


Pipe Line Filters: Файл DrawEpipolarLines.cpp

  • Файлы
  • Список членов всех файлов

Файл DrawEpipolarLines.cpp

#include "DrawEpipolarLines.h"

Граф включаемых заголовочных файлов для DrawEpipolarLines.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл DrawEpipolarLines.h

  • Файлы
  • Список членов всех файлов

Файл DrawEpipolarLines.h

#include "aimage.h"
#include "consolap.h"
#include "alg_bresenham.h"
#include "num_linalg.h"
#include "MatrixOperations.h"
#include "Points2DSet.h"
#include "Point2D.h"
#include "FundamentalMatrix.h"

Граф включаемых заголовочных файлов для DrawEpipolarLines.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_DrawEpipolarLines


Pipe Line Filters: Файл edge_det.h

  • Файлы
  • Список членов всех файлов

Файл edge_det.h

#include "convolve.h"
#include "imalg_tools.h"
#include "plf_functors.h"
#include "plf_kernels_1d.h"

Граф включаемых заголовочных файлов для edge_det.h:

См. исходные тексты.

Пространства имен

namespace | Students
namespace | Students::Curve

Классы

class | Students::Curve::EdgeDetect< T >


Pipe Line Filters: Файл edt_meijster_2000.h

  • Файлы
  • Список членов всех файлов

Файл edt_meijster_2000.h

#include "ytypes.h"

Граф включаемых заголовочных файлов для edt_meijster_2000.h:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::ImAlg
namespace | Vtl::ImAlg::Edt

Классы

struct | Vtl::ImAlg::Edt::isEdge< T >
class | Vtl::ImAlg::Edt::Meijster


Pipe Line Filters: Файл EdtEdgeCoord.h

  • Файлы
  • Список членов всех файлов

Файл EdtEdgeCoord.h

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::ImAlg
namespace | Vtl::ImAlg::Edt

Классы

class | Vtl::ImAlg::Edt::EdtEdgeCoord


Pipe Line Filters: Файл EigenValueDecomp.h

  • Файлы
  • Список членов всех файлов

Файл EigenValueDecomp.h

#include <math.h>
#include "num_linalg.h"
#include "TransformMatrices.h"

Граф включаемых заголовочных файлов для EigenValueDecomp.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Макросы

#define | ROTATE(a, i, j, k, l) g=a(i,j); h=a(k,l); a(i,j)=g-s*(h+g*tau); a(k,l)=h+s*(g-h*tau);

Функции

template<class MatrixType>
void | Basics3D::jacobi (MatrixType &in_a, std::vector< double > &out_d, MatrixType &out_v, int *out_nrot)

Макросы

#define ROTATE | ( | a,
 |  | i,
 |  | j,
 |  | k,
 |  | l | ) | g=a(i,j); h=a(k,l); a(i,j)=g-s*(h+g*tau); a(k,l)=h+s*(g-h*tau);


Pipe Line Filters: Файл Epipole.cpp

  • Файлы
  • Список членов всех файлов

Файл Epipole.cpp

#include "Epipole.h"

Граф включаемых заголовочных файлов для Epipole.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл Epipole.h

  • Файлы
  • Список членов всех файлов

Файл Epipole.h

#include "num_linalg.h"
#include "SolveSystem.h"
#include "Point2D.h"

Граф включаемых заголовочных файлов для Epipole.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_Epipole


Pipe Line Filters: Файл EssentialMatrix.cpp

  • Файлы
  • Список членов всех файлов

Файл EssentialMatrix.cpp

#include "EssentialMatrix.h"

Граф включаемых заголовочных файлов для EssentialMatrix.cpp:

Пространства имен

namespace | Basics3D

Функции

void | Basics3D::EssentialMatrix (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_E, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_K, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_K1)
void | Basics3D::EssentialMatrix (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_R, const Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &in_t)
void | Basics3D::SingularValues (double out_sv[2], const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in)


Pipe Line Filters: Файл EssentialMatrix.h

  • Файлы
  • Список членов всех файлов

Файл EssentialMatrix.h

#include "num_linalg.h"
#include "TransformMatrices.h"

Граф включаемых заголовочных файлов для EssentialMatrix.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Функции

void | Basics3D::EssentialMatrix (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_R, const Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &in_t)
void | Basics3D::EssentialMatrix (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_E, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_K, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_K1)
void | Basics3D::SingularValues (double out_sv[2], const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in)


Pipe Line Filters: Файл fourier.cpp

  • Файлы
  • Список членов всех файлов

Файл fourier.cpp

#include <stdlib.h>
#include "fourier.H"
#include "imagemem.h"
#include <math.h>

Граф включаемых заголовочных файлов для fourier.cpp:

Макросы

#define SWAP(a, b) tvalue=(a);(a)=(b);(b)=tvalue;

Макросы

#define SWAP | ( | a,
 |  | b | ) | tvalue=(a);(a)=(b);(b)=tvalue;


Pipe Line Filters: Файл fourier.h

  • Файлы
  • Список членов всех файлов

Файл fourier.h

#include "imagemem.h"

Граф включаемых заголовочных файлов для fourier.h:

См. исходные тексты.

Классы

class FFT_2D


Pipe Line Filters: Файл Func.cpp

  • Файлы
  • Список членов всех файлов

Файл Func.cpp

#include "Func.h"

Граф включаемых заголовочных файлов для Func.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл Func.h

  • Файлы
  • Список членов всех файлов

Файл Func.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::IFunc
class | Basics3D::IFuncWithDer
class | Basics3D::g
class | Basics3D::test
class | Basics3D::Eq4Degree


Pipe Line Filters: Файл FundamentalMatrix.cpp

  • Файлы
  • Список членов всех файлов

Файл FundamentalMatrix.cpp

#include "FundamentalMatrix.h"

Граф включаемых заголовочных файлов для FundamentalMatrix.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл FundamentalMatrix.h

  • Файлы
  • Список членов всех файлов

Файл FundamentalMatrix.h

#include <iostream>
#include <vector>
#include <math.h>
#include "nummet.h"
#include "num_linalg.h"
#include "MatrixOperations.h"
#include "Point2D.h"
#include "Points2DSet.h"
#include "Points2DParamSet.h"
#include "SolveSystem.h"
#include "Ransac.h"
#include "RecompMatrix.h"
#include "Model.h"
#include "ImagesSet.h"

Граф включаемых заголовочных файлов для FundamentalMatrix.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_FundamentalMatrix

Функции

void | Basics3D::PrintAndSave (const char *in_name, const std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &in_Matrix, const int i, const int j)
void | Basics3D::DrawEpipolarLines (const T_ImagesSet< AImageMem8 > &in_img, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_Matrix, const std::vector< T_Points2DSet< C_Point2D >> &in_PointsSet, const int i, const int n)


Pipe Line Filters: Файл History.hxx

  • Файлы
  • Список членов всех файлов

Файл History.hxx

См. исходные тексты.


Pipe Line Filters: Файл HomographyMatrix.cpp

  • Файлы
  • Список членов всех файлов

Файл HomographyMatrix.cpp

#include "Basics3D/HomographyMatrix.h"

Граф включаемых заголовочных файлов для HomographyMatrix.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл HomographyMatrix.h

  • Файлы
  • Список членов всех файлов

Файл HomographyMatrix.h

#include <vector>
#include "nummet.h"
#include "num_linalg.h"
#include "aimage.h"
#include "MatrixOperations.h"
#include "Point2D.h"
#include "Points2DSet.h"
#include "Points2DParamSet.h"
#include "SolveSystem.h"
#include "ImagesSet.h"
#include "Model.h"
#include "Ransac.h"
#include "RecompMatrix.h"

Граф включаемых заголовочных файлов для HomographyMatrix.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_HomographyMatrix

Функции

void | Basics3D::MarkCorrespondences (const char *in_name, const int j, const T_ImagesSet< AImageMem8 > &in_img, const std::vector< T_Points2DSet< C_Point2D >> &in_PointsSet, const int i)
void | Basics3D::MakeDifferenceImage (const T_ImagesSet< AImageMem8 > &in_img, const std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &in_Matrix, const int i, const int j, const int k)
void | Basics3D::PrintAndSave (const char *in_name, const std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &in_Matrix, const int i, const int j)


Pipe Line Filters: Файл HowTo_MakeDifferentRealizationForIntegersAnsFloats.hxx

  • Файлы
  • Список членов всех файлов

Файл HowTo_MakeDifferentRealizationForIntegersAnsFloats.hxx

См. исходные тексты.


Pipe Line Filters: Файл HowTo_register_images.hxx

  • Файлы
  • Список членов всех файлов

Файл HowTo_register_images.hxx

См. исходные тексты.


Pipe Line Filters: Файл HowTo_some_docs.hxx

  • Файлы
  • Список членов всех файлов

Файл HowTo_some_docs.hxx

См. исходные тексты.


Pipe Line Filters: Файл HowTo_use_numerical_algorithms.hxx

  • Файлы
  • Список членов всех файлов

Файл HowTo_use_numerical_algorithms.hxx

См. исходные тексты.


Pipe Line Filters: Файл HowTo_work_with_image.hxx

  • Файлы
  • Список членов всех файлов

Файл HowTo_work_with_image.hxx

См. исходные тексты.


Pipe Line Filters: Файл HowTo_work_with_XML_and_INI.hxx

  • Файлы
  • Список членов всех файлов

Файл HowTo_work_with_XML_and_INI.hxx

См. исходные тексты.


Pipe Line Filters: Файл HowTo_write_PipeLineFilters.hxx

  • Файлы
  • Список членов всех файлов

Файл HowTo_write_PipeLineFilters.hxx

См. исходные тексты.


Pipe Line Filters: Файл ifloat.cpp

  • Файлы
  • Список членов всех файлов

Файл ifloat.cpp

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <memory.h>
#include "iFloat.H"

Граф включаемых заголовочных файлов для ifloat.cpp:

Переменные

static const char * FILE_STAMP = "FloatImageFile"

Переменные

const char* FILE_STAMP = "FloatImageFile" [static]


Pipe Line Filters: Файл ifloat.h

  • Файлы
  • Список членов всех файлов

Файл ifloat.h

#include "yfile.h"

Граф включаемых заголовочных файлов для ifloat.h:

См. исходные тексты.

Пространства имен

namespace | IFF

Классы

class | IFF::FloatImageFile
struct | IFF::FloatImageFile::Header

Определения типов

typedef float | FloatWord

Типы

typedef float FloatWord


Pipe Line Filters: Файл image_io.cpp

  • Файлы
  • Список членов всех файлов

Файл image_io.cpp

#include <stdio.h>
#include <stdarg.h>
#include <string.h>
#include "yfilesys.h"
#include "YMem.h"
#include "ImageMem.h"
#include "PBM_file.h"
#include "Tiff.h"
#include "bmp.h"
#include "Oz.h"
#include "IFloat.H"
#include "YFileSys.h"

Граф включаемых заголовочных файлов для image_io.cpp:

Функции

static void | message_load_file (ProgressCounter *indicator, const char *fname, int height)
static void | message_load_file_aborted (ProgressCounter *indicator, const char *fname)
static void | message_unknown_image_format (ProgressCounter *indicator, const char *fname)
static void | message_error_when_load_image_file (ProgressCounter *indicator, const char *fname)
void | ERROR_NotCompatImages (const AImage *im, AImage::YImageClass iclass, int width, int height, int bits)
void | ERROR_CreateImage (const AImage *im, AImage::YImageClass iclass, int width, int height, int bits)
void | ERROR_SaveImageNotValid ()
void | ERROR_CantSaveFormat (const AImage *im, std::string format, int bits, AImage::YImageClass iclass)
void | ERROR_UnknownImageFileExtension (std::string ext)
static AImage * | LoadPbmFile (AImage *im, bool replace, const char *fname, ProgressCounter *indicator)
static AImage * | LoadPpmFile (AImage *im, bool replace, const char *fname, ProgressCounter *indicator)
static AImage * | LoadOzFile (AImage *im, bool replace, const char *fname, ProgressCounter *indicator)
static AImage * | LoadTiffFile (AImage *im, bool replace, const char *fname, ProgressCounter *indicator)
static AImage * | LoadBmpFile (AImage *im, bool replace, const char *fname, ProgressCounter *indicator)
static AImage * | LoadFloatFile (AImage *im, bool replace, const char *fname, ProgressCounter *indicator)
static void | SavePbmFile (const AImage *img, const char *fname, ProgressCounter *indicator, const char *banner)
static void | SavePpmFile (const AImage *img, const char *fname, ProgressCounter *indicator, const char *banner)
static void | SaveOzFile (const AImage *img, const char *fname, ProgressCounter *indicator, const char *banner)
static void | SaveTiffFile (const AImage *img, const char *fname, ProgressCounter *indicator, const char *banner)
static void | SaveBmpFile (const AImage *img, const char *fname, ProgressCounter *indicator, const char *banner)
static void | SaveFloatFile (const AImage *img, const char *fname, ProgressCounter *indicator, const char *banner)
AImage * | AImageLoad (AImage *img, bool replace, const char *fname, ProgressCounter *indicator)
Функция загрузки изображения в память.
void | AImageSave (const AImage *img, const char *fname, ProgressCounter *indicator)
Функция сохранения изображения в файл.

Функции

void ERROR_CantSaveFormat | ( | const AImage * | im,
 |  | std::string | format,
 |  | int | bits,
 |  | AImage::YImageClass | iclass
 | ) |  |

void ERROR_CreateImage | ( | const AImage * | im,
 |  | AImage::YImageClass | iclass,
 |  | int | width,
 |  | int | height,
 |  | int | bits
 | ) |  |

void ERROR_NotCompatImages | ( | const AImage * | im,
 |  | AImage::YImageClass | iclass,
 |  | int | width,
 |  | int | height,
 |  | int | bits
 | ) |  |

void ERROR_SaveImageNotValid ( )

void ERROR_UnknownImageFileExtension ( std::string ext )

static AImage* LoadBmpFile | ( | AImage * | im,
 |  | bool | replace,
 |  | const char * | fname,
 |  | ProgressCounter * | indicator |
 | ) |  |  | [static]

static AImage* LoadFloatFile | ( | AImage * | im,
 |  | bool | replace,
 |  | const char * | fname,
 |  | ProgressCounter * | indicator |
 | ) |  |  | [static]

static AImage* LoadOzFile | ( | AImage * | im,
 |  | bool | replace,
 |  | const char * | fname,
 |  | ProgressCounter * | indicator |
 | ) |  |  | [static]

static AImage* LoadPbmFile | ( | AImage * | im,
 |  | bool | replace,
 |  | const char * | fname,
 |  | ProgressCounter * | indicator |
 | ) |  |  | [static]

static AImage* LoadPpmFile | ( | AImage * | im,
 |  | bool | replace,
 |  | const char * | fname,
 |  | ProgressCounter * | indicator |
 | ) |  |  | [static]

static AImage* LoadTiffFile | ( | AImage * | im,
 |  | bool | replace,
 |  | const char * | fname,
 |  | ProgressCounter * | indicator |
 | ) |  |  | [static]

static void message_error_when_load_image_file | ( | ProgressCounter * | indicator,
 |  | const char * | fname |
 | ) |  |  | [static]

static void message_load_file | ( | ProgressCounter * | indicator,
 |  | const char * | fname,
 |  | int | height |
 | ) |  |  | [static]

static void message_load_file_aborted | ( | ProgressCounter * | indicator,
 |  | const char * | fname |
 | ) |  |  | [static]

static void message_unknown_image_format | ( | ProgressCounter * | indicator,
 |  | const char * | fname |
 | ) |  |  | [static]

static void SaveBmpFile | ( | const AImage * | img,
 |  | const char * | fname,
 |  | ProgressCounter * | indicator,
 |  | const char * | banner |
 | ) |  |  | [static]

static void SaveFloatFile | ( | const AImage * | img,
 |  | const char * | fname,
 |  | ProgressCounter * | indicator,
 |  | const char * | banner |
 | ) |  |  | [static]

static void SaveOzFile | ( | const AImage * | img,
 |  | const char * | fname,
 |  | ProgressCounter * | indicator,
 |  | const char * | banner |
 | ) |  |  | [static]

static void SavePbmFile | ( | const AImage * | img,
 |  | const char * | fname,
 |  | ProgressCounter * | indicator,
 |  | const char * | banner |
 | ) |  |  | [static]

static void SavePpmFile | ( | const AImage * | img,
 |  | const char * | fname,
 |  | ProgressCounter * | indicator,
 |  | const char * | banner |
 | ) |  |  | [static]

static void SaveTiffFile | ( | const AImage * | img,
 |  | const char * | fname,
 |  | ProgressCounter * | indicator,
 |  | const char * | banner |
 | ) |  |  | [static]


Pipe Line Filters: Файл ImageContainer.h

  • Файлы
  • Список членов всех файлов

Файл ImageContainer.h

#include <vector>
#include <math.h>

Граф включаемых заголовочных файлов для ImageContainer.h:

См. исходные тексты.

Классы

class ImageContainer< ImgType >


Pipe Line Filters: Файл imagemem.cpp

  • Файлы
  • Список членов всех файлов

Файл imagemem.cpp

#include <stdlib.h>
#include <string>
#include "ImageMem.h"

Граф включаемых заголовочных файлов для imagemem.cpp:

Макросы

#define | SIZEOF_TEST_DYNAMIC 1

Функции

static void * | ImgDataAlloc (void *ptr, long size_old, long size_new)
bool | AImageIsCompatible (AImage *img, AImage::YImageClass iclass, short, short, short bitsPerPix)
AImage * | AImageCreate (AImage *img, AImage::YImageClass iclass, short width, short height, short bitsPerPix)
Функция создания изображения (объект).

Переменные

__PossibleImageClass_StoreRelations | __iclass2store_table []

Макросы

#define SIZEOF_TEST_DYNAMIC 1

Функции

static void* ImgDataAlloc | ( | void * | ptr,
 |  | long | size_old,
 |  | long | size_new |
 | ) |  |  | [static]

Переменные

struct __PossibleImageClass_StoreRelations __iclass2store_table[]


Pipe Line Filters: Файл imagemem.h

  • Файлы
  • Список членов всех файлов

Файл imagemem.h

#include "aimage.h"

Граф включаемых заголовочных файлов для imagemem.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class | ImageMem8
class | ImageMem16
class | ImageMemFloat
class | ImageMemRgb8


Pipe Line Filters: Файл ImagesSet.h

  • Файлы
  • Список членов всех файлов

Файл ImagesSet.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::T_ImagesSet< Image >


Pipe Line Filters: Файл imalg_resampling.h

  • Файлы
  • Список членов всех файлов

Файл imalg_resampling.h

#include <math.h>
#include "aimage.h"
#include "img_trans_models.h"

Граф включаемых заголовочных файлов для imalg_resampling.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::ImAlg
namespace | Vtl::ImAlg::Resamp

Классы

class | Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >
Билинейной интерполяцией вычислить интенсивность изображенйи в точке (x,y). Координаты x,y задаются относительно левого верхнего угла изображения. Подробнее...
class | Vtl::ImAlg::Resamp::LinGrid< T >
Для диапазона величин value_min , value_max задает РАВНОМЕРНУЮ сетку из N=N_grid_cells узлов. Номеру ячейки 0 соответвтует величина value_min, а номеру (N-1) - величина value_max. Промежуточным ячейкам i сетки соответствуют величины value_min+step*i , где шаг сетки равномерный: step=(value_max-value_min)/(N-1) . Подробнее...
class | Vtl::ImAlg::Resamp::LogGrid< T >
Для диапазона величин value_min , value_max задает ЛОГАРИФМИЧЕСКУЮ сетку из N=N_grid_cells узлов. Номеру ячейки 0 соответвтует величина value_min, а номеру (N-1) - величина value_max. Промежуточным ячейкам i сетки соответствуют величины value_min*exp(step*i) , где логарифмический шаг сетки : step=(log(value_max)-log(value_min))/(N-1) . Подробнее...
class | Vtl::ImAlg::Resamp::PhiGrid< T >

Макросы

#define | _USE_MATH_DEFINES

Функции

template<typename T, class Interpolator, class RadGrid, class PhiGrid>
void | Vtl::ImAlg::Resamp::CartToPolar (Interpolator &interp, float x0, float y0, T *polar, int width, int height, int nls, RadGrid &lsg, PhiGrid phiGrid)
template<typename T, class Interpolator>
void | Vtl::ImAlg::Resamp::RotateScale (Interpolator &interp, float x0, float y0, float phi, float scale, T *result, int width, int height, int nls)
template<typename T, class Interpolator>
void | Vtl::ImAlg::Resamp::Affine (Interpolator &interp, float x0_in, float y0_in, float x0_out, float y0_out, float matrix_2x2[], T *result, int width, int height, int nls)
template<typename T, class Interpolator, class Transformer>
void | Vtl::ImAlg::Resamp::Transform (const Interpolator &interp, const Transformer &transf, T *result, int width, int height, int nls)
Выполняет трансформацию (русамплинг) изображения в соответствии с моделью, заданной параметром Transformer (см. пространство имен namespace Vtl::ImAlg::Transf). Часто объект Transformer получается из объектов типа Vtl::ImAlg::Model. Исходное изображение описывается через Interpolator, см. например class InterpBilinear. Выходное изображение описывается параметрами result,width,height,nls.
template<typename T, typename TT, class Interpolator>
void | Vtl::ImAlg::Resamp::ProjectiveTransform (Interpolator &interp, TT *projective_mat_3x3, double x0_in, double y0_in, double x0_out, double y0_out, T *trans, int width, int height, int nls)
Подвергнуть изображение проективному преобразованию 'P'.

Макросы

#define _USE_MATH_DEFINES

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл imalg_tools.h

  • Файлы
  • Список членов всех файлов

Файл imalg_tools.h

#include <math.h>
#include <alexandresku.h>
#include "plf_strip_buffer_support.h"

Граф включаемых заголовочных файлов для imalg_tools.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::ImAlg
namespace | Vtl::ImAlg::Tools
namespace | Vtl::ImAlg::Tools::findMax
namespace | Vtl::ImAlg::Tools::findMax::Impl

Классы

struct | Vtl::ImAlg::Tools::findMax::is_center_max_in3x3< num_equal_neihbours >
class | Vtl::ImAlg::Tools::findMax::SetPixel< T, stride >

Макросы

#define | _USE_MATH_DEFINES

Функции

template<typename T>
void | Vtl::ImAlg::Tools::xchg (T &v1, T &v2)
template<typename RandomIter, class F>
void | Vtl::ImAlg::Tools::copy_1_1 (RandomIter src_dst, size_t width, size_t height, int nls, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::copy_1_1 (ConstRandomIter src, size_t width, size_t height, int nls_s, RandomIter dst, int nls_d, F functor)
template<typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::copy_2_1 (ConstRandomIter1 src_1, size_t width, size_t height, int nls_s1, ConstRandomIter2 src_2, int nls_s2, RandomIter dst, int nls_d, F functor)
template<typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::copy_2_2 (ConstRandomIter1 src_1, size_t width, size_t height, int nls_s1, ConstRandomIter2 src_2, int nls_s2, RandomIter dst1, int nls_d1, RandomIter dst2, int nls_d2, F functor)
template<typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::copy_2_3 (ConstRandomIter1 src_1, size_t width, size_t height, int nls_s1, ConstRandomIter2 src_2, int nls_s2, RandomIter dst1, int nls_d1, RandomIter dst2, int nls_d2, RandomIter dst3, int nls_d3, F functor)
template<typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::copy_2_4 (ConstRandomIter1 src_1, size_t width, size_t height, int nls_s1, ConstRandomIter2 src_2, int nls_s2, RandomIter dst1, int nls_d1, RandomIter dst2, int nls_d2, RandomIter dst3, int nls_d3, RandomIter dst4, int nls_d4, F functor)
template<typename ConstRandomIter1, typename ConstRandomIter2, typename ConstRandomIter3, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::copy_3_1 (ConstRandomIter1 src_1, size_t width, size_t height, int nls_s1, ConstRandomIter2 src_2, int nls_s2, ConstRandomIter3 src_3, int nls_s3, RandomIter dst, int nls_d, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::copy_3_2 (ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, RandomIter out2, int nls2o, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::copy_3_3 (ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, RandomIter out2, int nls2o, RandomIter out3, int nls3o, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::copy_3_4 (ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, RandomIter out2, int nls2o, RandomIter out3, int nls3o, RandomIter out4, int nls4o, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::copy_3_5 (ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, RandomIter out2, int nls2o, RandomIter out3, int nls3o, RandomIter out4, int nls4o, RandomIter out5, int nls5o, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::copy_5_1 (ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, ConstRandomIter in4, int nls4, ConstRandomIter in5, int nls5, RandomIter out1, int nls1o, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::copy_6_1 (ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, ConstRandomIter in4, int nls4, ConstRandomIter in5, int nls5, ConstRandomIter in6, int nls6, RandomIter out1, int nls1o, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::envTransf_3e1_1 (Vtl::Plf::Extent ext, ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::envTransf_1_1 (Vtl::Plf::Extent ext, ConstRandomIter in1, int width, int height, int nls1, RandomIter out1, int nls1o, F functor)
template<int stride, class ICM, typename T1, class F>
const T1 * | Vtl::ImAlg::Tools::findMax::Impl::InRow_BoundsNo (const T1 *src, int y, int width, int up, int down, ICM &is_center_max_in3x3_, F functor)
template<int stride, class ICM, typename T1, class F>
void | Vtl::ImAlg::Tools::findMax::Impl::InRow_BoundsCyclic (const T1 *src, int y, int width, int up, int down, ICM &is_center_max_in3x3_, F functor)
template<int stride, class ICM, typename T1, class F>
void | Vtl::ImAlg::Tools::findMax::BoundsNo (const T1 *src, size_t width, size_t height, int nls, ICM &is_center_max_in3x3_, F functor)
template<int stride, class ICM, typename T1, class F>
void | Vtl::ImAlg::Tools::findMax::BoundsCyclic (const T1 *src, size_t width, size_t height, int nls, ICM &is_center_max_in3x3_, F functor)

Макросы

#define _USE_MATH_DEFINES

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл imfilter.h

  • Файлы
  • Список членов всех файлов

Файл imfilter.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Функции

void | AImageFilter_Duplicate (const AImage *in, AImage *out, ProgressCounter *ind)
void | AImageFilter_Negative (const AImage *in, AImage *out, ProgressCounter *ind)
void | AImageFilter_LineDetect_RobertsSqrt (const AImage *in, AImage *out, ProgressCounter *ind)
void | AImageFilter_LineDetect_RobertsAbs (const AImage *in, AImage *out, ProgressCounter *ind)
void | AImageFilter_LineDetect_Sobel (const AImage *in, AImage *out, ProgressCounter *ind)
void | AImageFilter_LineThining (const AImage *in, AImage *out, ProgressCounter *ind)

Функции

void AImageFilter_Duplicate | ( | const AImage * | in,
 |  | AImage * | out,
 |  | ProgressCounter * | ind
 | ) |  |

void AImageFilter_LineDetect_RobertsAbs | ( | const AImage * | in,
 |  | AImage * | out,
 |  | ProgressCounter * | ind
 | ) |  |

void AImageFilter_LineDetect_RobertsSqrt | ( | const AImage * | in,
 |  | AImage * | out,
 |  | ProgressCounter * | ind
 | ) |  |

void AImageFilter_LineDetect_Sobel | ( | const AImage * | in,
 |  | AImage * | out,
 |  | ProgressCounter * | ind
 | ) |  |

void AImageFilter_LineThining | ( | const AImage * | in,
 |  | AImage * | out,
 |  | ProgressCounter * | ind
 | ) |  |

void AImageFilter_Negative | ( | const AImage * | in,
 |  | AImage * | out,
 |  | ProgressCounter * | ind
 | ) |  |


Pipe Line Filters: Файл img_enhancement.h

  • Файлы
  • Список членов всех файлов

Файл img_enhancement.h

#include "convolve.h"
#include "imalg_tools.h"
#include "plf_functors.h"
#include "plf_kernels_1d.h"

Граф включаемых заголовочных файлов для img_enhancement.h:

См. исходные тексты.

Пространства имен

namespace | Students
namespace | Students::Enhancement


Pipe Line Filters: Файл img_registration.h

  • Файлы
  • Список членов всех файлов

Файл img_registration.h

#include <sstream>
#include "plf_kernels_1d.h"
#include "plf_io_filter.h"
#include "plf_filters_complex.h"
#include "plf_functors.h"
#include "plf_sys.h"
#include "storage.h"
#include "integral_transforms.h"
#include "imalg_tools.h"
#include "imalg_resampling.h"
#include "debug_test.h"

Граф включаемых заголовочных файлов для img_registration.h:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::ImAlg
namespace | Vtl::ImAlg::Registration
namespace | Tests
namespace | Vtl::ImAlg::Registration::Impl

Классы

class | Vtl::ImAlg::Registration::Container< Real_t >
Контейнер для работы с системой Vtl::Plf. После обнаружения характеристических точек не рисует их на изображение, а помещает их координаты и значение в список. Сохраняет только max_size_ точек, для которых отклик фильтра был максимален. Число max_size_ не должно быть слишком большим, иначе работает не эффективно, типично max_size_ ~ 8. Подробнее...
struct | Vtl::ImAlg::Registration::Container< Real_t >::Point
class | Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >
class | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >
Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ и приводится только для сравнения и полноты. Ищется сдвиг, поворот и масштаб (до 1.8). Подробнее...
class | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >
Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным [Yurin_RegBushBroom2008] на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ и приводится только для сравнения и полноты. Ищется сдвиг, поворот и масштаб (до 1.8). Подробнее...
class | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
Совмещение изображений алгоритмом Reddy-Chatterji [ReddyChatterji ] , модифицированным [Yurin_RegBushBroom2008] на использование преобразования Хартли вместо Фурье. Все свойства сохраняются, но быстрее, меньше расходует памяти и удобнее, когда надо совмещать больше одной пары. Оригинальный алгоритм приемуществ НЕ ИМЕЕТ. Ищется сдвиг, поворот и масштаб (до 1.8). Подробнее...

Функции

void | Tests::test_save_x (float *block, std::string fname_root, size_t w, size_t h, bool gray)
template<typename Real_t>
void | Vtl::ImAlg::Registration::Impl::comp_Phase (Real_t *image_phase, size_t n[], bool windowing)
template<typename Real_t>
void | Vtl::ImAlg::Registration::Impl::flip_vert (Real_t *im, size_t n[])
template<typename Real_t>
void | Vtl::ImAlg::Registration::Impl::transform_and_zero_freq (Real_t *im, size_t n[])
template<typename Real_t>
static void | Vtl::ImAlg::Registration::Impl::window (Real_t *image, int width, int height, int nls, Real_t center_x, Real_t center_y, Real_t fill_by)
template<typename Real_t>
void | Vtl::ImAlg::Registration::Impl::comp_AmpToPolar (Real_t *amp, Real_t *polar, size_t n[], Vtl::ImAlg::Resamp::LogGrid< float > &lsg)
template<typename Real_t>
void | Vtl::ImAlg::Registration::Impl::comp_Rotate (Real_t *input, Real_t *result, size_t n[], float matrix_2x2[])
template<typename Real_t>
void | Vtl::ImAlg::Registration::Impl::find_shift (Container< Real_t > &cont, Real_t *phase_1, Real_t *phase_2, Real_t *delta, size_t n[])
template<typename Real_t>
void | Vtl::ImAlg::Registration::Impl::comp_phase_corr (Real_t *phase_1, Real_t *phase_2, Real_t *corr, size_t n[])
template<typename Real_t>
void | Vtl::ImAlg::Registration::Impl::highpass_filtering_half (Real_t *im1, size_t n[])
template<typename Real_t>
void | Vtl::ImAlg::Registration::Impl::highpass_filtering (Real_t *im1, size_t n[])
template<typename Real_t>
void | Vtl::ImAlg::Registration::Impl::delta_correlation (Real_t *im, size_t n[])
template<typename Real_t>
Real_t | Vtl::ImAlg::Registration::Impl::calc_total_sum (Real_t *im, size_t sz)
template<class Container_t, typename Real_t>
void | Vtl::ImAlg::Registration::Impl::find_offset (Container_t &cont, Real_t *im, size_t n[])


Pipe Line Filters: Файл img_registration_oflow.h

  • Файлы
  • Список членов всех файлов

Файл img_registration_oflow.h

#include "plf_kernels_1d.h"
#include "plf_functors.h"
#include "imalg_tools.h"
#include "storage.h"
#include "img_trans_models.h"

Граф включаемых заголовочных файлов для img_registration_oflow.h:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::ImAlg
namespace | Vtl::ImAlg::Registration
namespace | Vtl::ImAlg::Registration::Impl
namespace | Vtl::ImAlg::Registration::Impl::OFlow

Классы

class | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
Класс отвечает за выделение памяти для работы совмещения по оптическому потоку (Kanade-Lukas [KLT_TK] , Shi-Tomasi [KLT_ST], Projective transform [Zokai_Wolberg_2005] ). Подробнее...
struct | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size
struct | Vtl::ImAlg::Registration::Impl::OFlow::BuildG< n >
struct | Vtl::ImAlg::Registration::Impl::OFlow::BuildG< 0 >
class | Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >
class | Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >
class | Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >
class | Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >
Совмещение изображений методом оптического потока, см. прострнство имен Vtl::ImAlg::Registration::Model и класс AllocStrategy. Подробнее...

Функции

template<unsigned n, typename T, class M>
T | Vtl::ImAlg::Registration::Impl::OFlow::G (const M &model, T x, T y, T gx, T gy)


Pipe Line Filters: Файл img_trans_models.h

  • Файлы
  • Список членов всех файлов

Файл img_trans_models.h

#include <iostream>
#include <iomanip>
#include "imalg_resampling.h"
#include "alexandresku.h"
#include "num_linalg.h"

Граф включаемых заголовочных файлов для img_trans_models.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::ImAlg
namespace | Vtl::ImAlg::Transf
namespace | Vtl::ImAlg::Model

Классы

class | Vtl::ImAlg::Transf::Offset< T >
class | Vtl::ImAlg::Transf::Affine< T >
class | Vtl::ImAlg::Transf::Homography< T >
class | Vtl::ImAlg::Model::Base< T >
Класс - используется только в качестве базового класса для моделей. Закрыт для прямого использования. Нужен только для определения и реализации общих для этих классов действий в одном месте (для избежания copy-pase). Подробнее...
class | Vtl::ImAlg::Model::Offset< T >
Класс - модель преобразования, соответствует поиску чистого сдвига, (Kanade-Lukas [KLT_TK]). Подробнее...
class | Vtl::ImAlg::Model::BaseAffine< T >
Класс - используется только в качестве базового класса для моделей укладывающихся в рамки афинной. Закрыт для прямого использования. Нужен только для определения и реализации общих для этих классов действий в одном месте (для избежания copy-pase). Подробнее...
class | Vtl::ImAlg::Model::SkewYOffset< T >
Класс - модель преобразования, соответствует поиску перекоса по y (Shi-Tomasi [Yurin_RegBushBroom2008] ). Подробнее...
class | Vtl::ImAlg::Model::SkewXOffset< T >
Класс - модель преобразования, соответствует поиску перекоса по x (Shi-Tomasi [Yurin_RegBushBroom2008] ). Подробнее...
class | Vtl::ImAlg::Model::Similarity< T >
Класс - модель преобразования, соответствует поиску полного афинного преобразования (Shi-Tomasi [KLT_ST] ). Подробнее...
class | Vtl::ImAlg::Model::Affine< T >
Класс - модель преобразования, соответствует поиску полного афинного преобразования (Shi-Tomasi [KLT_ST] ). Подробнее...
class | Vtl::ImAlg::Model::Homography< T >
Класс - модель преобразования, соответствует поиску проективного преобразования ( [Zokai_Wolberg_2005] ). Подробнее...

Функции

template<typename T>
std::ostream & | Vtl::ImAlg::Transf::operator<< (std::ostream &os, const Affine< T > &transf)
template<typename T>
std::ostream & | Vtl::ImAlg::Model::operator<< (std::ostream &os, const Offset< T > &model)
template<typename T>
std::ostream & | Vtl::ImAlg::Model::operator<< (std::ostream &os, const BaseAffine< T > &model)
template<typename T>
std::ostream & | Vtl::ImAlg::Model::operator<< (std::ostream &os, const Homography< T > &model)


Pipe Line Filters: Файл img_utils.h

  • Файлы
  • Список членов всех файлов

Файл img_utils.h

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::ImAlg
namespace | Vtl::ImAlg::Tools

Функции

template<typename ConstRandomIter, class F>
void | Vtl::ImAlg::Tools::copy_10_7 (ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, ConstRandomIter in4, int nls4, ConstRandomIter in5, int nls5, ConstRandomIter in6, int nls6, ConstRandomIter in7, int nls7, ConstRandomIter in8, int nls8, ConstRandomIter in9, int nls9, ConstRandomIter in10, int nls10, ConstRandomIter out1, int nls1o, ConstRandomIter out2, int nls2o, ConstRandomIter out3, int nls3o, ConstRandomIter out4, int nls4o, ConstRandomIter out5, int nls5o, ConstRandomIter out6, int nls6o, ConstRandomIter out7, int nls7o, F functor)
template<typename c_matrix, typename c_vector, class F>
void | Vtl::ImAlg::Tools::copy_1_2 (c_matrix in1, int width, int height, int nls1, c_vector out1, int nlso1, c_matrix out2, int nlso2, F functor)
template<typename ConstRandomIter, typename RandomIter, typename PtrToArray, class F>
void | Vtl::ImAlg::Tools::envTransf_3D (PtrToArray planes, int width, int height, int nls, ConstRandomIter in1, ConstRandomIter in2, ConstRandomIter in3, ConstRandomIter in4, ConstRandomIter in5, ConstRandomIter in6, RandomIter out, F functor)
template<typename ConstRandomIter, typename RandomIter, class F>
void | Vtl::ImAlg::Tools::envTransf_2Ddircheck (RandomIter image, int width, int height, int nls, ConstRandomIter h_x, ConstRandomIter h_y, ConstRandomIter grad_x, ConstRandomIter grad_y, F functor)


Pipe Line Filters: Файл imgtools.cpp

  • Файлы
  • Список членов всех файлов

Файл imgtools.cpp

#include "ImgTools.h"

Граф включаемых заголовочных файлов для imgtools.cpp:


Pipe Line Filters: Файл imgtools.h

  • Файлы
  • Список членов всех файлов

Файл imgtools.h

#include "aimage.h"
#include "progrcnt.h"
#include "ymem.h"

Граф включаемых заголовочных файлов для imgtools.h:

См. исходные тексты.

Классы

class MImages2Gray


Pipe Line Filters: Файл imline.cpp

  • Файлы
  • Список членов всех файлов

Файл imline.cpp

#include <math.h>
#include "aimage.h"
#include "imfilter.h"

Граф включаемых заголовочных файлов для imline.cpp:

Функции

template<class T, class P>
void | tpl_AImageFilter_LineDetect_RobertsSqrt (const T *in, T *out, P max_color, ProgressCounter *ind, const char *name)
void | AImageFilter_LineDetect_RobertsSqrt (const AImage *in, AImage *out, ProgressCounter *ind)
template<class T, class P>
void | tpl_AImageFilter_LineDetect_RobertsAbs (const T *in, T *out, P max_color, ProgressCounter *ind, const char *name)
void | AImageFilter_LineDetect_RobertsAbs (const AImage *in, AImage *out, ProgressCounter *ind)
template<class T, class P>
void | tpl_AImageFilter_LineDetect_Sobel (const T *in, T *out, P max_color, ProgressCounter *ind, const char *name)
void | AImageFilter_LineDetect_Sobel (const AImage *in, AImage *out, ProgressCounter *ind)
template<class T, class P>
void | tpl_AImageFilter_LineThining (const T *_in, T *out, P max_color, ProgressCounter *ind, const char *name)
void | AImageFilter_LineThining (const AImage *in, AImage *out, ProgressCounter *ind)

Функции

void AImageFilter_LineDetect_RobertsAbs | ( | const AImage * | in,
 |  | AImage * | out,
 |  | ProgressCounter * | ind
 | ) |  |

void AImageFilter_LineDetect_RobertsSqrt | ( | const AImage * | in,
 |  | AImage * | out,
 |  | ProgressCounter * | ind
 | ) |  |

void AImageFilter_LineDetect_Sobel | ( | const AImage * | in,
 |  | AImage * | out,
 |  | ProgressCounter * | ind
 | ) |  |

void AImageFilter_LineThining | ( | const AImage * | in,
 |  | AImage * | out,
 |  | ProgressCounter * | ind
 | ) |  |

template<class T, class P>
void tpl_AImageFilter_LineDetect_RobertsAbs | ( | const T * | in,
 |  | T * | out,
 |  | P | max_color,
 |  | ProgressCounter * | ind,
 |  | const char * | name
 | ) |  |

template<class T, class P>
void tpl_AImageFilter_LineDetect_RobertsSqrt | ( | const T * | in,
 |  | T * | out,
 |  | P | max_color,
 |  | ProgressCounter * | ind,
 |  | const char * | name
 | ) |  |

template<class T, class P>
void tpl_AImageFilter_LineDetect_Sobel | ( | const T * | in,
 |  | T * | out,
 |  | P | max_color,
 |  | ProgressCounter * | ind,
 |  | const char * | name
 | ) |  |

template<class T, class P>
void tpl_AImageFilter_LineThining | ( | const T * | _in,
 |  | T * | out,
 |  | P | max_color,
 |  | ProgressCounter * | ind,
 |  | const char * | name
 | ) |  |


Pipe Line Filters: Файл imresamp.cpp

  • Файлы
  • Список членов всех файлов

Файл imresamp.cpp

#include <math.h>
#include "ytypes.h"
#include "ymem.h"
#include "aimage.h"
#include "progrcnt.h"
#include "imresamp.h"
#include "ygeometr.h"

Граф включаемых заголовочных файлов для imresamp.cpp:

Макросы

#define FILL_STR_FRG(fill, len, ptr, val)

Макросы

#define FILL_STR_FRG | ( | fill,
 |  | len,
 |  | ptr,
 |  | val | )

Макроопределение:

{                                 \
          int ll=(len);                 \
          if((fill) && (ll>0))          \
          {                             \
             while(ll--)                \
                             *(ptr)++=(val);            \
          }                             \
                    else                            \
                    {                             \
                        (ptr)+=ll;                  \
          }                             \
        }


Pipe Line Filters: Файл imresamp.h

  • Файлы
  • Список членов всех файлов

Файл imresamp.h

#include "aimage.h"

Граф включаемых заголовочных файлов для imresamp.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class | ImageResample
struct | ImageResample::ImageResampleParams
class | ImageRotate
class | ImageResize


Pipe Line Filters: Файл imtransf.cpp

  • Файлы
  • Список членов всех файлов

Файл imtransf.cpp

#include <math.h>
#include <vector>
#include <iostream>
#include <assert.h>
#include "ygeometr.h"
#include "imtransf.h"
#include "_imtransf.h"

Граф включаемых заголовочных файлов для imtransf.cpp:

Макросы

#define | IT_EXCEPTION(msg) ("Exception in " __FILE__ " at line " " : " #msg)

Функции

void | parallelDxDy (const YPoint< double > &ip, const YPoint< double > &ipO, const YPoint< double > &ipX, const YPoint< double > &ipY, double &dx, double &dy)
int | ITAverageProcessImage (const AImageProxy *in, std::vector< const DMatrixElem * >::const_iterator begin, std::vector< const DMatrixElem * >::const_iterator end, int size, int shiftX, int shiftY, int w, int h, bool fH, bool fV)
int | ITBicubicalProcessImage (const AImageProxy *in, const double *P, const double *L, int x, int y, int dx, int dy)
void | AImageSetColor (AImage *image, int r, int g, int b)
void | AImageSetNull (AImage *image)
bool | isBadCell (const YPoint< double > *cell)
bool | operator== (const CoordArray2D &lhs, const CoordArray2D &rhs)
bool | operator!= (const CoordArray2D &lhs, const CoordArray2D &rhs)
std::ostream & | operator<< (std::ostream &os, const CoordArray2D &src)

Переменные

const int | directionSequenceX []
const int | directionSequenceY []
const size_t | directionSequenceSize = sizeof(directionSequenceX)/sizeof(directionSequenceX[0])

Макросы

#define IT_EXCEPTION ( msg ) ("Exception in " __FILE__ " at line " " : " #msg)

Функции

void AImageSetColor | ( | AImage * | image,
 |  | int | r,
 |  | int | g,
 |  | int | b
 | ) |  |

void AImageSetNull ( AImage * image )

bool isBadCell ( const YPoint< double > * cell )

int ITAverageProcessImage | ( | const AImageProxy * | in,
 |  | std::vector< const DMatrixElem * >::const_iterator | begin,
 |  | std::vector< const DMatrixElem * >::const_iterator | end,
 |  | int | size,
 |  | int | shiftX,
 |  | int | shiftY,
 |  | int | w,
 |  | int | h,
 |  | bool | fH,
 |  | bool | fV
 | ) |  |

int ITBicubicalProcessImage | ( | const AImageProxy * | in,
 |  | const double * | P,
 |  | const double * | L,
 |  | int | x,
 |  | int | y,
 |  | int | dx,
 |  | int | dy
 | ) |  |

bool operator!= | ( | const CoordArray2D & | lhs,
 |  | const CoordArray2D & | rhs
 | ) |  |

std::ostream& operator<< | ( | std::ostream & | os,
 |  | const CoordArray2D & | src
 | ) |  |

bool operator== | ( | const CoordArray2D & | lhs,
 |  | const CoordArray2D & | rhs
 | ) |  |

void parallelDxDy | ( | const YPoint< double > & | ip,
 |  | const YPoint< double > & | ipO,
 |  | const YPoint< double > & | ipX,
 |  | const YPoint< double > & | ipY,
 |  | double & | dx,
 |  | double & | dy
 | ) |  |

Переменные

const size_t directionSequenceSize = sizeof(directionSequenceX)/sizeof(directionSequenceX[0])

const int directionSequenceX[]

Инициализатор

{-1,+2, 0,-2, 0,+1,+1,-1 }

const int directionSequenceY[]

Инициализатор

{-1, 0,+2, 0,-1,-1,+1,+1 }


Pipe Line Filters: Файл imtransf.h

  • Файлы
  • Список членов всех файлов

Файл imtransf.h

#include <memory>
#include <vector>
#include "AImage.h"
#include "ygeometr.h"

Граф включаемых заголовочных файлов для imtransf.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class | ATransformFunction
class | ImageTransform
class | CoordArray2D
class | ImageVectorT< Base, Bit8, Bit16 >
class | AImageProxy
class | ImageProxy< ImageT >
class | ImageProxyConst< ImageT >
class | ImageProxyVector

Определения типов

typedef ImageVectorT< AImage,
AImageMem8, AImageMem16 > 		ImageVector
typedef ImageVectorT< const
AImage, const AImageMem8,
const AImageMem16 > 		ImageVectorConst

Функции

bool | operator== (const CoordArray2D &lhs, const CoordArray2D &rhs)
bool | operator!= (const CoordArray2D &lhs, const CoordArray2D &rhs)
std::ostream & | operator<< (std::ostream &os, const CoordArray2D &src)
void | AImageSetNull (AImage *image)
void | AImageSetColor (AImage *image, int r=0, int g=0, int b=0)

Типы

typedef ImageVectorT<AImage,AImageMem8,AImageMem16> ImageVector

typedef ImageVectorT<const AImage,const AImageMem8,const AImageMem16> ImageVectorConst

Функции

void AImageSetColor | ( | AImage * | image,
 |  | int | r = 0,
 |  | int | g = 0,
 |  | int | b = 0
 | ) |  |

void AImageSetNull ( AImage * image )

bool operator!= | ( | const CoordArray2D & | lhs,
 |  | const CoordArray2D & | rhs
 | ) |  |

std::ostream& operator<< | ( | std::ostream & | os,
 |  | const CoordArray2D & | src
 | ) |  |

bool operator== | ( | const CoordArray2D & | lhs,
 |  | const CoordArray2D & | rhs
 | ) |  |


Pipe Line Filters: Файл imtune.cpp

  • Файлы
  • Список членов всех файлов

Файл imtune.cpp

#include "aimage.h"
#include "imfilter.h"

Граф включаемых заголовочных файлов для imtune.cpp:

Функции

template<class T, class P>
void | tpl_AImageFilter_Duplicate (const T *in, T *out, P max_color, ProgressCounter *ind, const char *name)
void | AImageFilter_Duplicate (const AImage *in, AImage *out, ProgressCounter *ind)
template<class T, class P>
void | tpl_AImageFilter_Negative (const T *in, T *out, P max_color, ProgressCounter *ind, const char *name)
void | AImageFilter_Negative (const AImage *in, AImage *out, ProgressCounter *ind)

Функции

void AImageFilter_Duplicate | ( | const AImage * | in,
 |  | AImage * | out,
 |  | ProgressCounter * | ind
 | ) |  |

void AImageFilter_Negative | ( | const AImage * | in,
 |  | AImage * | out,
 |  | ProgressCounter * | ind
 | ) |  |

template<class T, class P>
void tpl_AImageFilter_Duplicate | ( | const T * | in,
 |  | T * | out,
 |  | P | max_color,
 |  | ProgressCounter * | ind,
 |  | const char * | name
 | ) |  |

template<class T, class P>
void tpl_AImageFilter_Negative | ( | const T * | in,
 |  | T * | out,
 |  | P | max_color,
 |  | ProgressCounter * | ind,
 |  | const char * | name
 | ) |  |


Pipe Line Filters: Файл Includings.h

  • Файлы
  • Список членов всех файлов

Файл Includings.h

#include <iostream>
#include <math.h>
#include "num_linalg.h"
#include "MatrixOperations.h"
#include "Combination.h"
#include "Point2D.h"
#include "Points2DSet.h"
#include "Points2DParamSet.h"
#include "HomographyMatrix.h"
#include "FundamentalMatrix.h"
#include "TransformMatrices.h"
#include "Transform.h"
#include "AbsDifference.h"
#include "Ransac.h"
#include "Model.h"
#include "RecompMatrix.h"
#include "DrawEpipolarLines.h"
#include "MistakeFunc.h"
#include "DFPMinimization.h"
#include "ImagesSet.h"
#include "StructureComputation.h"

Граф включаемых заголовочных файлов для Includings.h:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Определения типов

typedef Vtl::NumAlg::Lin::ublas::c_matrix<
double, 3, 3 > 		Basics3D::matrix_3_3

Функции

void | Basics3D::LoadPoints (std::vector< C_Points2DParamSet > &out_PointsParamSet, std::vector< T_Points2DSet< C_Point2D >> &out_PointsSet, char *in_argv[], const int in_N, const double in_T, const int in_imHeight)
void | Basics3D::MarkCorrespondences (const char *in_name, const int j, const T_ImagesSet< AImageMem8 > &in_img, const std::vector< T_Points2DSet< C_Point2D >> &in_PointsSet, const int i)
void | Basics3D::MarkCorrespondences (const char *in_name, const T_ImagesSet< AImageMem8 > &in_img, const T_Points2DSet< C_Point2D > &in_PointsSet, const int N, const int i)
void | Basics3D::MakeDifferenceImage (const T_ImagesSet< AImageMem8 > &in_img, const std::vector< matrix_3_3 > &in_Matrix, const int i, const int j, const int k)
void | Basics3D::DrawEpipolarLines (const T_ImagesSet< AImageMem8 > &in_img, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_Matrix, const std::vector< T_Points2DSet< C_Point2D >> &in_PointsSet, const int i, const int n)
void | Basics3D::FindCommonFeaturePoints (T_Points2DSet< C_Point2D > &out_commonPoints, const std::vector< T_Points2DSet< C_Point2D >> &in_Inliers, const int N)
int | Basics3D::Test (int argc, char *argv[])


Pipe Line Filters: Файл integral_transforms.h

  • Файлы
  • Список членов всех файлов

Файл integral_transforms.h

#include "numalg.h"

Граф включаемых заголовочных файлов для integral_transforms.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::NumAlg
namespace | Vtl::NumAlg::IntTransf
namespace | Vtl::NumAlg::IntTransf::Utils
namespace | Vtl::NumAlg::IntTransf::Utils::Impl
namespace | Vtl::NumAlg::IntTransf::Utils::F
namespace | Vtl::NumAlg::IntTransf::Fourier
namespace | Vtl::NumAlg::IntTransf::Fourier::F
namespace | Vtl::NumAlg::IntTransf::Fourier::F::Impl
namespace | Vtl::NumAlg::IntTransf::Hartley
namespace | Vtl::NumAlg::IntTransf::Hartley::Impl
namespace | Vtl::NumAlg::IntTransf::Hartley::F

Классы

struct | Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, ndim >
struct | Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, 0 >
class | Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >
struct | Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, nd >
struct | Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, 1 >
class | Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Отражает данные из полуплоскости (верхней или нижней), заданной параметром fromUpToDown в другую. Данные не имеющие пары прописываются нулем. Подробнее...
class | Vtl::NumAlg::IntTransf::Utils::F::Test< T >
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Тестовый пример. Подробнее...
struct | Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >
struct | Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >
class | Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >
class | Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T >
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Если для преобразования Фурье в качестве вещественной части было предъявлени изображение I1, а в качестве мнимой - I2 и было выполнено ПФ, то вызов proc_pos_neg_freq() с этим функтором приводит к вычислению inplace выражения F1.F2* . Подробнее...
class | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Если для преобразования Фурье в качестве вещественной части было предъявлени изображение I1, а в качестве мнимой - I2 и было выполнено ПФ, то вызов proc_pos_neg_freq() с этим функтором позволяет извлечь преобразования Фурье ОТДЕЛЬНО для I1 и I2. Подробнее...
class | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T >
class | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T >
class | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >
class | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье). Подробнее...
class | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье). Подробнее...
class | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье) и фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде. Подробнее...
class | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить амплитуду (которая равна амплитуде Фурье) и фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде. Подробнее...
class | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Позволяет из преобразования Хартли вычислить фазу, которая определяется здесь как отношение преобразования Хартли к амплитуде. Подробнее...
class | Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >
Функтор для static void proc_pos_neg_freq(I n[],ProcPair pp); Вычисляет выражение для преобразования Хартли аналогичное по свойствам выражению F1.F2* для преобразования Фурье. Результат может быть помещен вместо одного из преобразований Хартли. Функтор применим для любой размерности пространства, в т.ч. ndim>2. Подробнее...

Функции

template<typename T>
T | Vtl::NumAlg::IntTransf::Utils::Sqr (T v)
template<size_t ndim, typename I>
I | Vtl::NumAlg::IntTransf::Utils::ArrayElemProduct (I n[])
Вычисляет произведение елементов массива n длины ndim.
template<typename I>
I | Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size (I size)
Вычисляет наименьшее k такое, что 2^k >= size.
template<typename I>
I | Vtl::NumAlg::IntTransf::Utils::CalcSmalestPow2 (I size)
Вычисляет наименьшее число, являющееся степеью 2 большее или равное size.
template<typename I>
I | Vtl::NumAlg::IntTransf::Utils::rev (I index, I log2_size)
Переставляет биты числа \с index в обратном порядке, считая число \с log2_size -разрядным.
template<typename I>
I | Vtl::NumAlg::IntTransf::Utils::rev (I index, I log2_size, I step)
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Utils::bit_reversal (T data, I size)
Функция выполняет перестановку элементов массива data. size должен быть степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Utils::bit_reversal (T data, I size, I step)
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Utils::bit_reversal_complex (T data, I size, I step)
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Utils::bit_reversal_complex (T re, T im, I size, I step)
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Utils::Impl::SwapArrayHalfs (T *data, I size, I step, Loki::Int2Type< false >)
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Utils::Impl::SwapArrayHalfs (T *data, I size, I step, Loki::Int2Type< true >)
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs (T *re, T *im, I size, I step)
Обменять половинки массивов re и im для перемещения нулевой частоты в центр массивов.
template<bool is_complex, typename T, typename I>
void | Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs (T *data, I size, I step)
Обменять половинки массива data для перемещения нулевой частоты в центр массиваю.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Utils::swap (T *d1, T *d2, I len)
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Utils::mult (T data[], I n, T multiplier, I step=1)
Выполняет умножение n элементов массива data с шагом step.
template<bool is_complex_pairs, typename T, typename I>
void | Vtl::NumAlg::IntTransf::Utils::SwapQuarters (T data[], I w, I h)
template<unsigned ndim, bool is_complex_pairs, typename I>
size_t | Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants_offset (size_t mask, I nn[])
Used ONLY by IntTransf::Utils::SwapQuadrants() function.
template<unsigned ndim, bool is_complex_pairs, typename T, typename I>
void | Vtl::NumAlg::IntTransf::Utils::SwapQuadrants (T data[], I n[])
Выполняет перестановку квадрантов, чтобы перенести нулевую частоту / нуль системы координат в центр. Работает в пространстве любой размерности. data - массив данных, размещенных строка за строкой, плоскость за плоскостью и т.д. Размерность пространства ndim По каждому измерению k, 0 <= k < ndim размер матрицы равен n[k]. В преобразованиях Фурье и Хартли n[k] должны быть степенями 2, однако именно эта функция требует только, чтобы n[k] были четными для всех k=0..ndim-1.
template<unsigned ndim, typename T, typename I>
void | Vtl::NumAlg::IntTransf::Utils::SwapQuadrants (T re[], T im[], I n[])
Выполняет перестановку квадрантов, чтобы перенести нулевую частоту / нуль системы координат в центр. Работает в пространстве любой размерности. data - массив данных, размещенных строка за строкой, плоскость за плоскостью и т.д. Размерность пространства ndim По каждому измерению k, 0 <= k < ndim размер матрицы равен n[k]. В преобразованиях Фурье и Хартли n[k] должны быть степенями 2, однако именно эта функция требует только, чтобы n[k] были четными для всех k=0..ndim-1.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Utils::TransposeSqrMatrix (T data[], I n)
Транспонировать квадратную матрицу, хранится строка за строкой в одномерном массиве data без пустот.
template<size_t ndim, class Functor, typename I>
void | Vtl::NumAlg::IntTransf::Utils::ForEachDimensionDo1D (Functor &func, I nn[])
Используется для "переобразования" одномерного преобразования в многомерные.
template<size_t ndim, bool re_im_at_sep_loc, typename I>
I | Vtl::NumAlg::IntTransf::Utils::offset_to_zero_freq (I nn[])
template<size_t ndim, typename I, class ProcPair>
static void | Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq (I n[], ProcPair pp)
Служит для вычислений с преобразованиями Фурье и Хартли, когда требуемая величина определяется парой значений спектра на двух частотах k и -k ,отличающихся знаком (разделение чет-нечет, действия по извлечению из ПХ амплитуды и фазы Фурье и т.п).
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::norm_ifft (T data[], I n, I step=1)
Обратные преобразования Фурье НЕ НОРМИРОВАНЫ, т.е. вычисляются с точностью до множителя. Если это необходимо, эта функция выполняет нормировку.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::fft1D (T re[], T im[], I n)
Одномерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im. n- должно быть степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::ifft1D (T re[], T im[], I n)
Одномерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im. n- должно быть степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::fft1D (T data[], I n)
Одномерное БПФ, вещественная и мнимая часть размещены в массивe data в виде последовательно расположенных пар (re, im). n- должно быть степенью 2, полная длина массива data = 2*n.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::ifft1D (T data[], I n)
Одномерное обратное БПФ, вещественная и мнимая часть размещены в массивe data в виде последовательно расположенных пар (re, im). n- должно быть степенью 2, полная длина массива data = 2*n.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::fft2D (T re[], T im[], I nn[])
Двумерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
nn - массив из 2 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов), n[1] - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::fft2D (T re[], T im[], I width, I height)
Двумерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
width - размер по первому измерению (строкам, т.е. количество столбцов),
height - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::ifft2D (T re[], T im[], I nn[])
Двумерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
nn - массив из 2 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::ifft2D (T re[], T im[], I width, I height)
Двумерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
width - размер по первому измерению (строкам, т.е. количество столбцов),
height - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::fft2D (T data[], I nn[])
Двумерное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
nn - массив из 2 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::fft2D (T data[], I width, I height)
Двумерное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
width - размер по первому измерению (строкам, т.е. количество столбцов),
height - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::ifft2D (T data[], I nn[])
Двумерное обратное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im). nn - массив из 2 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::ifft2D (T data[], I width, I height)
Двумерное обратное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im). width - размер по первому измерению (строкам, т.е. количество столбцов),
height - по второму измерению (столбцам, т.е. количество строк). Оба этих числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::fft3D (T re[], T im[], I nn[])
Двумерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
nn - массив из 3 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк),
n[2] - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::fft3D (T re[], T im[], I n_x, I n_y, I n_z)
Двумерное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
n_x - размер по первому измерению (строкам, т.е. количество столбцов),
n_y - по второму измерению (столбцам, т.е. количество строк),
n_z - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::ifft3D (T re[], T im[], I nn[])
Двумерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
nn - массив из 3 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк),
n[2] - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::ifft3D (T re[], T im[], I n_x, I n_y, I n_z)
Двумерное обратное БПФ, вещественная и мнимая часть размещены раздельно в массивах re, im.
n_x - размер по первому измерению (строкам, т.е. количество столбцов),
n_y - по второму измерению (столбцам, т.е. количество строк),
n_z - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::fft3D (T data[], I nn[])
Двумерное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
nn - массив из 3 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк),
n[2] - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::fft3D (T data[], I n_x, I n_y, I n_z)
Двумерное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
n_z - размер по первому измерению (строкам, т.е. количество столбцов),
n_y - по второму измерению (столбцам, т.е. количество строк),
n_z - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::ifft3D (T data[], I nn[])
Двумерное обратное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
nn - массив из 3 элементов, n[0] - размер по первому измерению (строкам, т.е. количество столбцов),
n[1] - по второму измерению (столбцам, т.е. количество строк),
n[2] - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::ifft3D (T data[], I n_x, I n_y, I n_z)
Двумерное обратное БПФ, вещественная и мнимая часть размещены совместно в виде последовательности пар (re,im).
n_x - размер по первому измерению (строкам, т.е. количество столбцов),
n_y - по второму измерению (столбцам, т.е. количество строк),
n_z - по третьему измерению (т.е.количество плоскостей). Эти 3 числа ДОЛЖНЫ БЫТЬ степенью 2.
template<bool is_reverse, typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::fft1D (T re[], T im[], I n, I step=1)
БПФ одномерного сигнала, размещенного в массивах (re,im) с некоторым шагом step. В случае, когда данные расположены плотно (step=1 для раздельного размещения вещественной/мнимой части и step=2 для совместного размещения) СТРОГО РЕКОМЕНДУЕТСЯ ИСПОЛЬЗОВАТЬ СПЕЦИАЛИЗИРОВАННЫЕ ВЕРСИИ (без параметра step). Это - базовая функция, остальные функции для преобразования Фурье работают через нее.
template<size_t ndim, bool is_reverse, bool re_im_at_sep_loc, typename T, typename I>
void | Vtl::NumAlg::IntTransf::Fourier::fftND (T re[], T im[], I nn[])
БПФ ndim-мерных данных, размещенных раздельно в массивах (re,im) если re_im_at_sep_loc=true и в одном масиве в виде пар (тогда im=re+1). Если is_reverse=екгу - вычисляется обратное преобразование, иначе - прямое.
template<typename T>
void | Vtl::NumAlg::IntTransf::Fourier::F::Impl::calc_F1multF2star_from_2_simult_real_fft (T &reQk, T &imQk, T &reQ_k, T &imQ_k)
template<typename T, typename I>
static void | Vtl::NumAlg::IntTransf::Hartley::Impl::dif_sum (T *data, I i, I j)
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Hartley::fht1D_ (T *data, I n, I step)
Быстрое одномерное преобразование Хартли массива data. Время работы n*log(n).
template<int ndim, typename T, typename I>
void | Vtl::NumAlg::IntTransf::Hartley::GetModul (T *hartley, I n[], T *real)
Получить действительную часть преобразования Фурье из преобразования Хартли.
template<int ndim, typename T, typename I>
void | Vtl::NumAlg::IntTransf::Hartley::GetReal (T *hartley, I n[], T *real)
Получить действительную часть преобразования Фурье из преобразования Хартли.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Hartley::GetReal_1D (T *hartley, I n, T *real, I step=1, I step_real=1)
template<int ndim, typename T, typename I>
void | Vtl::NumAlg::IntTransf::Hartley::GetImag (T *hartley, I n[], T *imag)
Получить мнимую часть преобразования Фурье из преобразования Хартли.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Hartley::GetImag_1D (T *hartley, I n, T *imag, I step=1, I step_imag=1)
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Hartley::AddQuadrants2D (T data[], I w, I h)
Сложить квадранты согласно четырехчленной формуле.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Hartley::fht2D_square (T data[], I w, I h)
Быстрое двумерное преобразование Хартли матрицы data. Время работы n*log(n).
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Hartley::quasi_fht2D (T data[], I n)
Быстрое преобразование Хартли строк, а затем столбцов квадратной матрицы data.
template<size_t ndim, typename T, typename I>
void | Vtl::NumAlg::IntTransf::Hartley::quasi_fhtND (T data[], I nn[])
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Hartley::fht1D (T data[], I n)
Быстрое одномерное преобразование Хартли.
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Hartley::ifht1D (T data[], I n)
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Hartley::fht2D (T data[], I width, I height)
template<typename T, typename I>
void | Vtl::NumAlg::IntTransf::Hartley::ifht2D (T data[], I width, I height)


Pipe Line Filters: Файл invert.cpp

  • Файлы
  • Список членов всех файлов

Файл invert.cpp

#include <stdio.h>
#include <algorithm>
#include <string>
#include "aimage.h"
#include "consolap.h"

Граф включаемых заголовочных файлов для invert.cpp:

Функции

void Invert (Aimage *im, ProgressCounter *indicator=0)

Функции

void Invert | ( | Aimage * | im,
 |  | ProgressCounter * | indicator = 0
 | ) |  |

Примеры:
invert.cpp.


Pipe Line Filters: Файл KMeans.h

  • Файлы
  • Список членов всех файлов

Файл KMeans.h

#include <vector>
#include <iostream>
#include <math.h>

Граф включаемых заголовочных файлов для KMeans.h:

См. исходные тексты.

Классы

class | Cluster1D< T, DatumType >
class | Cluster2D< T, DatumType >
class | DatumR< T >
class | DatumXY< T >

Функции

template<typename DatumType, typename ClusterType>
void | KMeans (std::vector< DatumType > &data, std::vector< ClusterType > &means, std::vector< float > &dev, int k)
template<typename IterType, typename T>
void | DrawRadCluster (Cluster1D< T, DatumR< T > > *cluster, IterType img, int nls)
template<typename IterType, typename T>
void | DrawCentCluster (Cluster2D< T, DatumXY< T > > *cluster, IterType img, int width, int height, int nls, T color)

Функции

template<typename IterType, typename T>
void DrawCentCluster | ( | Cluster2D< T, DatumXY< T > > * | cluster,
 |  | IterType | img,
 |  | int | width,
 |  | int | height,
 |  | int | nls,
 |  | T | color
 | ) |  |

template<typename IterType, typename T>
void DrawRadCluster | ( | Cluster1D< T, DatumR< T > > * | cluster,
 |  | IterType | img,
 |  | int | nls
 | ) |  |

template<typename DatumType, typename ClusterType>
void KMeans | ( | std::vector< DatumType > & | data,
 |  | std::vector< ClusterType > & | means,
 |  | std::vector< float > & | dev,
 |  | int | k
 | ) |  |


Pipe Line Filters: Файл Literature.hxx

  • Файлы
  • Список членов всех файлов

Файл Literature.hxx

См. исходные тексты.


Pipe Line Filters: Файл LMMinimization.h

  • Файлы
  • Список членов всех файлов

Файл LMMinimization.h

#include <math.h>
#include <vector>
#include "nrutil.h"

Граф включаемых заголовочных файлов для LMMinimization.h:

См. исходные тексты.

Функции

void | SWAP (float a, float b)
void | gaussj (float **a, int n, float **b, int m)
void | covsrt (float **covar, int ma, int ia[], int mfit)
void | mrqmin (float x[], float y, float sig, int ndata, float a[], int ia[], int ma, float **covar, float **alpha, float *chisq, void(*funcs)(float[], float[], float *, float[], int), float *alamda)
void | mrqcof (float x[], float y, float sig, int ndata, float a[], int ia[], int ma, float **alpha, float beta[], float *chisq, void(*funcs)(float[], float[], float *, float[], int))
void | FToMinimaze (float x[], float a[], float *y, float dyda[], int ma)

Функции

void covsrt | ( | float ** | covar,
 |  | int | ma,
 |  | int | ia[],
 |  | int | mfit
 | ) |  |

void FToMinimaze | ( | float | x[],
 |  | float | a[],
 |  | float * | y,
 |  | float | dyda[],
 |  | int | ma
 | ) |  |

void gaussj | ( | float ** | a,
 |  | int | n,
 |  | float ** | b,
 |  | int | m
 | ) |  |

void mrqcof | ( | float | x[],
 |  | float | y,
 |  | float | sig,
 |  | int | ndata,
 |  | float | a[],
 |  | int | ia[],
 |  | int | ma,
 |  | float ** | alpha,
 |  | float | beta[],
 |  | float * | chisq,
 |  | void(*)(float[], float[], float *, float[], int) | funcs
 | ) |  |

void mrqmin | ( | float | x[],
 |  | float | y,
 |  | float | sig,
 |  | int | ndata,
 |  | float | a[],
 |  | int | ia[],
 |  | int | ma,
 |  | float ** | covar,
 |  | float ** | alpha,
 |  | float * | chisq,
 |  | void(*)(float[], float[], float *, float[], int) | funcs,
 |  | float * | alamda
 | ) |  |

void SWAP | ( | float | a,
 |  | float | b
 | ) |  |


Pipe Line Filters: Файл MatrixOperations.h

  • Файлы
  • Список членов всех файлов

Файл MatrixOperations.h

#include <iostream>
#include <math.h>
#include <fstream>
#include <vector>
#include "nummet.h"
#include "num_linalg.h"
#include "Sort.h"

Граф включаемых заголовочных файлов для MatrixOperations.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::T_MatrixOperations


Pipe Line Filters: Файл MistakeFunc.h

  • Файлы
  • Список членов всех файлов

Файл MistakeFunc.h

#include <iostream>
#include <vector>
#include <math.h>
#include "num_linalg.h"
#include "Point2D.h"
#include "Points2DSet.h"

Граф включаемых заголовочных файлов для MistakeFunc.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::T_MistakeFunc< Operations >


Pipe Line Filters: Файл Model.h

  • Файлы
  • Список членов всех файлов

Файл Model.h

#include "num_linalg.h"
#include "Point2D.h"
#include "Points2DSet.h"
#include "Points2DParamSet.h"

Граф включаемых заголовочных файлов для Model.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::T_Model< Operations >


Pipe Line Filters: Файл mslieqlz.cpp

  • Файлы
  • Список членов всех файлов

Файл mslieqlz.cpp

#include <stdlib.h>
#include <memory.h>
#include <sstream>
#include "aimage.h"
#include "mslieqlz.h"

Граф включаемых заголовочных файлов для mslieqlz.cpp:

Функции

template<class PIX>
void | tmpl_RightLeft (int Wd, int Or_frame_sz_x, int Frame_sz_y, int Down_sz_y, int Half_framW, long *hist, PIX *p, PIX *dst_pt, int src_shift, int *max_cval, int *min_cval, const unsigned int N)
template<class PIX>
void | tmpl_LeftRight (int Wd, int Or_frame_sz_x, int Frame_sz_y, int Down_sz_y, int Half_framW, long *hist, PIX *p, PIX *dst_pt, int src_shift, int *max_cval, int *min_cval, const unsigned int N)
template<class PIX>
void | tmpl_VertLeftMiddle (int frame_sz_x, int frame_sz_y, int y_down, long *hist, PIX *p, PIX *dst_pt, int src_shift, int *max_val, int *min_val, const unsigned int N)
template<class PIX>
void | tmpl_VertLeftUp (int frame_sz_x, int frame_sz_y, int y_down, long *hist, PIX *p, PIX *dst_pt, int src_shift, int *max_val, int *min_val, const unsigned int N)
template<class PIX>
void | tmpl_VertLeftDown (int frame_sz_x, int frame_sz_y, int y_down, long *hist, PIX *p, PIX *dst_pt, int src_shift, int *max_val, int *min_val, const unsigned int N)
template<class PIX>
void | tmpl_VertRightMiddle (int frame_sz_x, int frame_sz_y, int y_down, long *hist, PIX *p, PIX *dst_pt, int src_shift, int *max_val, int *min_val, const unsigned int N)
template<class PIX>
void | tmpl_VertRightDown (int frame_sz_x, int frame_sz_y, int y_down, long *hist, PIX *p, PIX *dst_pt, int src_shift, int *max_val, int *min_val, const unsigned int N)
template<class PIX>
void | tmpl_VertRightUp (int frame_sz_x, int frame_sz_y, int y_down, long *hist, PIX *p, PIX *dst_pt, int src_shift, int *max_val, int *min_val, const unsigned int N)
template<class IMAGE, class PIXEL>
bool | tmpl_Run (const IMAGE *Src, IMAGE *Dst, int Original_XFrmSz, int Original_YFrmSz, long *hist, ProgressCounter *count)

Функции

template<class PIX>
void tmpl_LeftRight | ( | int | Wd,
 |  | int | Or_frame_sz_x,
 |  | int | Frame_sz_y,
 |  | int | Down_sz_y,
 |  | int | Half_framW,
 |  | long * | hist,
 |  | PIX * | p,
 |  | PIX * | dst_pt,
 |  | int | src_shift,
 |  | int * | max_cval,
 |  | int * | min_cval,
 |  | const unsigned int | N
 | ) |  |

template<class PIX>
void tmpl_RightLeft | ( | int | Wd,
 |  | int | Or_frame_sz_x,
 |  | int | Frame_sz_y,
 |  | int | Down_sz_y,
 |  | int | Half_framW,
 |  | long * | hist,
 |  | PIX * | p,
 |  | PIX * | dst_pt,
 |  | int | src_shift,
 |  | int * | max_cval,
 |  | int * | min_cval,
 |  | const unsigned int | N
 | ) |  |

template<class IMAGE, class PIXEL>
bool tmpl_Run | ( | const IMAGE * | Src,
 |  | IMAGE * | Dst,
 |  | int | Original_XFrmSz,
 |  | int | Original_YFrmSz,
 |  | long * | hist,
 |  | ProgressCounter * | count
 | ) |  |

template<class PIX>
void tmpl_VertLeftDown | ( | int | frame_sz_x,
 |  | int | frame_sz_y,
 |  | int | y_down,
 |  | long * | hist,
 |  | PIX * | p,
 |  | PIX * | dst_pt,
 |  | int | src_shift,
 |  | int * | max_val,
 |  | int * | min_val,
 |  | const unsigned int | N
 | ) |  |

template<class PIX>
void tmpl_VertLeftMiddle | ( | int | frame_sz_x,
 |  | int | frame_sz_y,
 |  | int | y_down,
 |  | long * | hist,
 |  | PIX * | p,
 |  | PIX * | dst_pt,
 |  | int | src_shift,
 |  | int * | max_val,
 |  | int * | min_val,
 |  | const unsigned int | N
 | ) |  |

template<class PIX>
void tmpl_VertLeftUp | ( | int | frame_sz_x,
 |  | int | frame_sz_y,
 |  | int | y_down,
 |  | long * | hist,
 |  | PIX * | p,
 |  | PIX * | dst_pt,
 |  | int | src_shift,
 |  | int * | max_val,
 |  | int * | min_val,
 |  | const unsigned int | N
 | ) |  |

template<class PIX>
void tmpl_VertRightDown | ( | int | frame_sz_x,
 |  | int | frame_sz_y,
 |  | int | y_down,
 |  | long * | hist,
 |  | PIX * | p,
 |  | PIX * | dst_pt,
 |  | int | src_shift,
 |  | int * | max_val,
 |  | int * | min_val,
 |  | const unsigned int | N
 | ) |  |

template<class PIX>
void tmpl_VertRightMiddle | ( | int | frame_sz_x,
 |  | int | frame_sz_y,
 |  | int | y_down,
 |  | long * | hist,
 |  | PIX * | p,
 |  | PIX * | dst_pt,
 |  | int | src_shift,
 |  | int * | max_val,
 |  | int * | min_val,
 |  | const unsigned int | N
 | ) |  |

template<class PIX>
void tmpl_VertRightUp | ( | int | frame_sz_x,
 |  | int | frame_sz_y,
 |  | int | y_down,
 |  | long * | hist,
 |  | PIX * | p,
 |  | PIX * | dst_pt,
 |  | int | src_shift,
 |  | int * | max_val,
 |  | int * | min_val,
 |  | const unsigned int | N
 | ) |  |


Pipe Line Filters: Файл mslieqlz.h

  • Файлы
  • Список членов всех файлов

Файл mslieqlz.h

#include "aimage.h"
#include "progrcnt.h"

Граф включаемых заголовочных файлов для mslieqlz.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class MSlidingEqualization


Pipe Line Filters: Файл Newton-Raphson.cpp

  • Файлы
  • Список членов всех файлов

Файл Newton-Raphson.cpp

#include "Newton-Raphson.h"

Граф включаемых заголовочных файлов для Newton-Raphson.cpp:

Пространства имен

namespace | Basics3D

Функции

double | Basics3D::rtnewt (const IFuncWithDer *g, double x1, double x2, double xacc)
double | Basics3D::rtsafe (const IFuncWithDer *g, double x1, double x2, double xacc)


Pipe Line Filters: Файл Newton-Raphson.h

  • Файлы
  • Список членов всех файлов

Файл Newton-Raphson.h

#include <math.h>
#include <iostream>
#include "Func.h"

Граф включаемых заголовочных файлов для Newton-Raphson.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Макросы

#define | JMAX 20
#define | MAXIT 100

Функции

double | Basics3D::rtnewt (const IFuncWithDer *g, double x1, double x2, double xacc)
double | Basics3D::rtsafe (const IFuncWithDer *g, double x1, double x2, double xacc)

Макросы

#define JMAX 20

#define MAXIT 100

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл num_linalg.h

  • Файлы
  • Список членов всех файлов

Файл num_linalg.h

#include <algorithm>
#include <cmath>
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/matrix_proxy.hpp>
#include <boost/numeric/ublas/symmetric.hpp>
#include <boost/numeric/ublas/io.hpp>
#include <boost/numeric/ublas/lu.hpp>
#include <boost/numeric/ublas/blas.hpp>
#include "vtl_meta_base.h"
#include "numalg.h"
#include "_num_boost_adds.h"
#include "_num_implicit.h"
#include "_num_svd.h"
#include "_num_eigen.h"
#include "_num_cholesky.h"
#include "_num_qr.h"

Граф включаемых заголовочных файлов для num_linalg.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::NumAlg
namespace | Vtl::NumAlg::Lin

Макросы

#define | _USE_MATH_DEFINES

Макросы

#define _USE_MATH_DEFINES

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл num_optimization.h

  • Файлы
  • Список членов всех файлов

Файл num_optimization.h

#include "numalg.h"
#include "num_linalg.h"

Граф включаемых заголовочных файлов для num_optimization.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::NumAlg
namespace | Vtl::NumAlg::Opt

Функции

template<typename T, class Functor>
T | Vtl::NumAlg::Opt::Fmin (Functor fun, T A, T B, T tol=T(0))
template<typename T, int n, class Functor>
void | Vtl::NumAlg::Opt::nrc_lnsrch (boost::numeric::ublas::c_vector< T, n > &xold_, T fold, boost::numeric::ublas::c_vector< T, n > &g_, boost::numeric::ublas::c_vector< T, n > &p_, boost::numeric::ublas::c_vector< T, n > &x_, T &f, T stpmax, int &check, Functor func)
template<typename T, int n, class Functor>
T | Vtl::NumAlg::Opt::nrc_dfpmin (boost::numeric::ublas::c_vector< T, n > &p_, T gtol, int &iter, Functor func)


Pipe Line Filters: Файл numalg.h

  • Файлы
  • Список членов всех файлов

Файл numalg.h

#include <cmath>
#include <assert.h>
#include "loki_TypeManip.h"

Граф включаемых заголовочных файлов для numalg.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::NumAlg

Макросы

#define | _USE_MATH_DEFINES

Функции

template<typename T1, typename T2>
T1 | Vtl::NumAlg::sign (T1 x1, T2 x2)
template<typename T>
T | Vtl::NumAlg::RelerrEps ()

Макросы

#define _USE_MATH_DEFINES

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл nummet.h

  • Файлы
  • Список членов всех файлов

Файл nummet.h

#include "ytypes.h"
#include "nummet00.h"

Граф включаемых заголовочных файлов для nummet.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Функции

double | nmPoly (double x, const double *coef, int n)
int | nmPow (int a, int b)
double | nmQUANC8 (double(*FUN)(double, void *), const double A, const double B, void *param, const double ABSERR, const double RELERR, double &ERREST, int &NOFUN, double &FLAG)
double | nmFMIN (double(*FUN)(double, void *), double AX, double BX, void *param, double TOL)
double | nmZEROIN (double(*FUN)(double, void *), double AX, double BX, void *param, double TOL)
void | nmSPLINE_FREE (int n, const double *x, const double *y, double *b, double *c, double *d)
void | nmSPLINE (int n, const double *x, const double *y, double *b, double *c, double *d)
double | nmSEVAL (int n, double u, const double *x, const double *y, const double *b, const double *c, const double *d)
double | nmGAMMLN (double xx)
int | nmSVD (int NM, int M, int N, double *A, double *W, double *U, double *V, double *RV1)
int | nmVDCPS (int N, int *IPF, int *IEXP, int *IPWR)
Разлагает число N на простые множители, взято из библиотеки IMSL.
void | nmVTRAN (double *A, int N, int M)
Транспонирует прямоугольную матрицу на том же месте, взято из библиотеки IMSL.
template<class T>
T | nmMaxArrayElem (int n, const T *array)
Поиск максимального элемента в массиве.
double | nmNormQRev (double p)
double | nmBetaFnForStudent (double n)
вычисляет B(1/2,n/2)==Г(1/2)Г(n/2)/Г((n+1)/2)
double | nmTStudentPercPtNlRoot (double p, int n)
double | nmTStudentPercPtAssimpt (double p, int n)
double | nmTStudentPercPt (double p, int n)
double | nmTStudentPercPtViaIntegral (double p, double n)
double | nmTStudentPercPtTauThreshold (double p, int n)
template<class T>
T | nmRang (int k, T *a, int n)
template<class T>
T | nmMedian (T *a, int n)
template<class T>
void | nmMedian1D (T *data, int n, int half_wnd_size, T *buf, bool reflect_edjes=false)
template<class T, class TT>
void | nmLinearLeastSquares (int n, const T *x, const TT *y, double &slope, double &intercept)
template<class T>
int | nmFindBadByStudent (int n, const T *array, const double *tau2, double *mean, double *disp2)
template<class T>
double | nmMeanAndDisp (int n, const T *array, double *dispsqr=0)
template<class T, class TT>
int | nmFindBadByStudent (int n, const T *x, const TT *y, const double *tau2)
template<class T>
double | nmFilteredMeanByStudent (int n, T *array, const double *tau2, int *n_rest=0)


Pipe Line Filters: Файл nummet00.cpp

  • Файлы
  • Список членов всех файлов

Файл nummet00.cpp

#include <math.h>
#include "nummet.h"

Граф включаемых заголовочных файлов для nummet00.cpp:

Макросы

#define | AA(i, j) A[(i-1)*N+j-1]
#define | UU(i, j) U[(i-1)*N+j-1]
#define | VV(i, j) V[(i-1)*N+j-1]

Функции

int | nmPow (int a, int b)
double | nmPoly (double x, const double *coef, int n)
double | nmQUANC8 (double(*FUN)(double, void *), const double A, const double B, void *param, const double ABSERR, const double RELERR, double &ERREST, int &NOFUN, double &FLAG)
double | nmFMIN (double(*FUN)(double, void *), double AX, double BX, void *param, double TOL)
double | nmZEROIN (double(*FUN)(double, void *), double AX, double BX, void *param, double TOL)
void | nmSPLINE (int n, const double *x, const double *y, double *b, double *c, double *d)
void | nmSPLINE_FREE (int n, const double *x, const double *y, double *b, double *c, double *d)
double | nmSEVAL (int n, double u, const double *x, const double *y, const double *b, const double *c, const double *d)
double | nmGAMMLN (double xx)
int | nmSVD (int NM, int M, int N, double *A, double *W, double *U, double *V, double *RV1)
int | nmVDCPS (int N, int *IPF, int *IEXP, int *IPWR)
Разлагает число N на простые множители, взято из библиотеки IMSL.
void | nmVTRAN (double *A, int N, int M)
Транспонирует прямоугольную матрицу на том же месте, взято из библиотеки IMSL.

Макросы

#define AA | ( | i,
 |  | j | ) | A[(i-1)*N+j-1]

#define UU | ( | i,
 |  | j | ) | U[(i-1)*N+j-1]

#define VV | ( | i,
 |  | j | ) | V[(i-1)*N+j-1]


Pipe Line Filters: Файл nummet00.h

  • Файлы
  • Список членов всех файлов

Файл nummet00.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Функции

template<class T>
T | nmRang (int k, T *a, int n)
template<class T>
T | nmMedian (T *a, int n)
template<class T>
void | nmMedian1D (T *data, int n, int half_wnd_size, T *buf, bool reflect_edjes)
template<class T, class TT>
void | nmLinearLeastSquares (int n, const T *x, const TT *y, double &slope, double &intercept)
template<class T>
double | nmMeanAndDisp (int n, const T *array, double *dispsqr)
template<class T>
int | nmFindBadByStudent (int n, const T *array, const double *tau2, double *mean, double *disp2)
template<class T>
double | nmFilteredMeanByStudent (int n, T *array, const double *tau2, int *n_rest)
template<class T, class TT>
int | nmFindBadByStudent (int n, const T *x, const TT *y, const double *tau2)
template<class T>
T | nmMaxArrayElem (int n, const T *array)
Поиск максимального элемента в массиве.


Pipe Line Filters: Файл nummet01.cpp

  • Файлы
  • Список членов всех файлов

Файл nummet01.cpp

#include <math.h>
#include "nummet.h"

Граф включаемых заголовочных файлов для nummet01.cpp:

Функции

double | nmNormQRev (double p)
double | nmTStudentPercPtAssimpt (double p, int n)
double | nmBetaFnForStudent (double n)
вычисляет B(1/2,n/2)==Г(1/2)Г(n/2)/Г((n+1)/2)
static double | IntOnePlusXSquarePowerMinusN (double x, int n)
static double | IntOnePlusXSquarePowerMinusNAndAHalf (double x, int n)
static double | pdfStud (double t, void *param)
double | nmTStudentPercPtNlRoot (double p, int n)
double | nmTStudentPercPt (double p, int n)
static double | pdfStudDistr (double x, void *n_double)
static double | pdfStud2 (double t, void *param)
double | nmTStudentPercPtViaIntegral (double p, double n)
double | nmTStudentPercPtTauThreshold (double p, int n)

Функции

static double IntOnePlusXSquarePowerMinusN | ( | double | x,
 |  | int | n |
 | ) |  |  | [static]

static double IntOnePlusXSquarePowerMinusNAndAHalf | ( | double | x,
 |  | int | n |
 | ) |  |  | [static]

static double pdfStud | ( | double | t,
 |  | void * | param |
 | ) |  |  | [static]

static double pdfStud2 | ( | double | t,
 |  | void * | param |
 | ) |  |  | [static]

static double pdfStudDistr | ( | double | x,
 |  | void * | n_double |
 | ) |  |  | [static]


Pipe Line Filters: Файл oz.cpp

  • Файлы
  • Список членов всех файлов

Файл oz.cpp

#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include "Oz.h"

Граф включаемых заголовочных файлов для oz.cpp:

Макросы

#define SIZEOF_TEST_DYNAMIC 1

Макросы

#define SIZEOF_TEST_DYNAMIC 1

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл oz.h

  • Файлы
  • Список членов всех файлов

Файл oz.h

#include "yfile.h"

Граф включаемых заголовочных файлов для oz.h:

См. исходные тексты.

Пространства имен

namespace | IFF

Классы

class | IFF::OzFile
struct | IFF::OzFile::Header

Определения типов

typedef uint16_t | IFF::OzWord


Pipe Line Filters: Файл pbm_file.cpp

  • Файлы
  • Список членов всех файлов

Файл pbm_file.cpp

#include <string>
#include <sstream>
#include "PBM_file.h"

Граф включаемых заголовочных файлов для pbm_file.cpp:

Функции

static char * gets_from_buf (char *const buf, int bufsz, char *curpos)

Функции

static char* gets_from_buf | ( | char *const | buf,
 |  | int | bufsz,
 |  | char * | curpos |
 | ) |  |  | [static]


Pipe Line Filters: Файл pbm_file.h

  • Файлы
  • Список членов всех файлов

Файл pbm_file.h

#include "yfile.h"

Граф включаемых заголовочных файлов для pbm_file.h:

См. исходные тексты.

Пространства имен

namespace | IFF

Классы

class | IFF::PBMfile


Pipe Line Filters: Файл PipeLineFilters.cpp

  • Файлы
  • Список членов всех файлов

Файл PipeLineFilters.cpp

#include <stdio.h>
#include <string>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <memory>
#include <assert.h>
#include "progrcnt.h"
#include "tests.h"

Граф включаемых заголовочных файлов для PipeLineFilters.cpp:

Определения типов

typedef int(*) | main_function (int argc, char *argv[])

Функции

int | main (int argc, char *argv[])

Переменные

TestNode | list_of_tests []
static const int | list_of_tests_size = sizeof(list_of_tests)/sizeof(list_of_tests[0])

Типы

typedef int(*) main_function(int argc, char *argv[])

Функции

int main | ( | int | argc,
 |  | char * | argv[]
 | ) |  |

Примеры:
invert.cpp и work_with_image.cpp.

Переменные

TestNode list_of_tests[]

Инициализатор

{
    {"alexandresku",Tests::test_alexandresku},
    {"boost_mtr",Tests::test_boost_mtr}
}

const int list_of_tests_size = sizeof(list_of_tests)/sizeof(list_of_tests[0]) [static]


Pipe Line Filters: Файл plf_filter_elem.h

  • Файлы
  • Список членов всех файлов

Файл plf_filter_elem.h

#include <iostream>
#include <algorithm>
#include "plf_port.h"

Граф включаемых заголовочных файлов для plf_filter_elem.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Plf

Классы

class | Vtl::Plf::FilterBase
Базовый класс. Подробнее...
class | Vtl::Plf::FilterComplex
Базовый класс для написания сложных (составных) фильтров, представляющих собой комбинацию элементарных и/или составных фильтров. Элементарные фильтры должны наследоваться из class FilterElementary. Подробнее...
class | Vtl::Plf::FilterElementary
Базовый класс для написания всех элементарных фильтров. Подробнее...


Pipe Line Filters: Файл plf_filters.h

  • Файлы
  • Список членов всех файлов

Файл plf_filters.h

#include <algorithm>
#include "plf_kernels_1d.h"
#include "plf_filter_elem.h"
#include "plf_io_filter.h"
#include "plf_iterators.h"

Граф включаемых заголовочных файлов для plf_filters.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Plf

Классы

class | Vtl::Plf::Levels< T, P >
Преобразование значение пикселя по формуле. Класс реализует преобразование яркости по таблице или формуле пиксел в пиксел. По возможности следует избегать применение этого класса, используя вместо него постобработку выходов фильтров с тем же функтором. Оправданное применение этого класса - это когда выход некоторого вильтра надо подать на входы нескольких разных фильтров, причем на часть из них с постобработкой, а на другие без (или с разными постобработками). Точно также бессмыслено соединение фильров Levels в цепочку - пишите сразу функтор, который делает все преобразования за один раз, если требуется скомбинировать несколько постробработок - а написать общий функтор сложно или лень есть функтор для комбинирования Vtl::Plf::F::Comb . Подробнее...
class | Vtl::Plf::PixByPix2to1< T, F, P >
Вычисление изображения из двух, значение пикселя вычисляется как некоторая функция из значений пикселей двух исходных изображений, взятых в тех же координатах (x,y). Подробнее...
class | Vtl::Plf::PixByPix3to1< T, Func, P >
Класс служит для генерации изображения по трем исходным, значение пикселя изображения определяется значением пикселей в тех же координатах на исходных изображениях. Действия определяются вторым шаблонным параметром. Типичные применения:. Подробнее...
class | Vtl::Plf::PixByPix4to1< T, Func, P >
Класс служит для генерации изображения по четырем исходным,. Подробнее...
class | Vtl::Plf::PixByPix5to1< T, Func, P >
Класс служит для генерации изображения по пяти исходным,. Подробнее...
class | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
Класс служит для генерации 3 изображений по 3 исходным, значение пикселя на выходных изображениях определяется значением пикселей в тех же координатах на исходных изображениях. Действия определяются вторым шаблонным параметром. Типичные применения переход к другой системе цветовых координат,. Подробнее...
class | Vtl::Plf::PixByPix2to3< T, P >
На базе двух изображений [image] и [image] вычисляет 3 новых по формулам:

т.е. компоненты корреляционной матрицы, которая симметричная и положительно определенная. (чтобы эта матрица стала собственно корреляционной, остается еще выполнить усреднение компонент в каком либо смысле, например по локальной окрестности. Подробнее...
class | Vtl::Plf::EnvProc1to1< T, Func, P >
Имеет 1 вход и 1 выход. Пиксель в координатах (x,y) на выходном изображении принимает значение, которое вычисляется по окрестности на входном изображении. Способ обработки задается функтором - вторым шаблонным параметром. Типичное применение - выполнение процедуры
  • "Non Maximum Supression" в детекторах уголков (Vtl::Plf::F::Harris, Vtl::Plf::F::MinEigenVal)
  • построение контурного препарата H-image и проч. несепарабельные и сложные обработки. Функтор должен соответствовать шаблону:.
Подробнее...
class | Vtl::Plf::EnvProc3to1< T, Func, P >
Имеет 3 входа и 1 выход. Пиксель в координатах (x,y) на выходном изображении принимает значение, которое вычисляется по окрестности точки (x,y) на входном изображении in_val с учетом значений в точке (x,y) на изображениях in_gx,in_gy. Способ обработки задается функтором - вторым шаблонным параметром. Типичное применение - выполнение процедуры "Non Maximum Supression" в детекторах линий (Vtl::Plf::Canny). Функтор должен соответствовать шаблону:. Подробнее...
class | Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
Имеет 1 вход и 2 выходa. Типовой примекр применения - анализ окрестности точки и выдача двумерного вектора, например какого-то аналога градиента, например H-image [HImg2003],. Подробнее...
class | Vtl::Plf::ConvolveHorz< T, P >
Класс реализует для каждой строки изображения свертку с указанным ядром. Подробнее...
class | Vtl::Plf::ConvolveVert< T, P >
Класс реализует для каждой строки изображения свертку по столбцам с указанным ядром (по количеству строк соотв. размеру ядра. Подробнее...
class | Vtl::Plf::FilterResampleHorz< T, P >
Класс реализует ресамплинг (растяжение/сжатие) каждой строки изображения. Подробнее...
class | Vtl::Plf::FilterResampleVert< T, P >
Класс реализует ресамплинг (растяжение/сжатие) каждого столбца изображения. Подробнее...


Pipe Line Filters: Файл plf_filters_complex.h

  • Файлы
  • Список членов всех файлов

Файл plf_filters_complex.h

#include "plf_filters.h"
#include "color_spaces.h"

Граф включаемых заголовочных файлов для plf_filters_complex.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Plf

Классы

class | Vtl::Plf::SeparableConv2D< T, P >
Вычисляет сепарабельную двумерную свертку. По соображениям эффективности системы PLF сначала по вертикали, затем по горизонтали:. Подробнее...
class | Vtl::Plf::Average< T, P >
Вычисляет сепарабельную двумерную свертку c одинаковыми ядрами по X и по Y. Обычно используется для сглаживания (Mean, Average) изображения, в частности Гауссова сглаживания (. Подробнее...
class | Vtl::Plf::Sharpen< T, P >
Вычисляет <I(x,y)>+amp*(I(x,y-<I(x,y)>). Среднее вычисляется двуерной сверткой с сепарабельным ядром, обычно используется Гауссово ядро. Поднимает на изображении границы и мелкие детали (в т.ч. шумы). Алгоритм Sharpen, описывается классическим выражением [Pratt82] [image] , где $ k $ - коэффициент усиления. При $ k=1 $ результатом является исходное изображение, при $ k=0 $ -сглаженное, при $ 0 < k < 1$ - изображение с ослабленными деталями, при $ 1 < k $ - изображение с усиленными деталями. Подробнее...
class | Vtl::Plf::AverageGauss< T, P >
Выполняет сглаживание (Mean, Average) изображения по гауссовой окрестности (. Подробнее...
class | Vtl::Plf::HImage< T, P >
Контурный препарат H-image [HImg2003],. Подробнее...
class | Vtl::Plf::BiLateral< T, P >
BiLateral фильтрация изображения [Tomasi98bilateral],. Подробнее...
class | Vtl::Plf::GradientModul< T, P >
Вычисляет модуль градиента для каждой точки изображения по локальной окрестности. Контурный препарат Канни. Подробнее...
class | Vtl::Plf::MeanAndDisp< T, P >
Вычисляет среднее и дисперсию по окрестности (путем свертки с гауссом). Подробнее...
class | Vtl::Plf::StatDiff< T, P >
Выполняет статистическое дифференцирование изображения. Среднее и дисперсия вычисляются с помощью свертки с Гауссом. Подробнее...
class | Vtl::Plf::DeNoise< T, P >
Выполняет подавление импульсного шума. Среднее и дисперсия вычисляются с помощью свертки с Гауссом. Подробнее...
class | Vtl::Plf::Canny< T, P >
Детектор краев Канни. Подробнее...
class | Vtl::Plf::DiZenzo< T, P >
Детектор краев DiZenzo. Аналог детектора Канни, но работает с цветными изображениями, находит и те края, которые исчезают при преобразовании изображения в градации серого. [DiZenzo86]. Подробнее...
class | Vtl::Plf::HImageEdge< T, P >
Детектор краев на основе контурного препарата H-image [HImg2003], \see Vtl::Plf::F::Himg, Vtl::Plf::HImage. Подробнее...
class | Vtl::Plf::GradientCorr< T, P >
Вычисляет произведения компонент вектора градиента: . Подробнее...
class | Vtl::Plf::Detect< T, Func, P >
Обнаруживает уголки, линии и т.п. в зависимости от второго шаблонного аргумента в качестве которого могут использоваться:. Подробнее...
class | Vtl::Plf::HarrisLaplace< T, Func, P >
Обнаруживает. Подробнее...
class | Vtl::Plf::Resample< T, P >
Выполняет масштабирование (resampling) изображения (билинейная интерполяция). Подробнее...


Pipe Line Filters: Файл plf_functors.h

  • Файлы
  • Список членов всех файлов

Файл plf_functors.h

#include "alexandresku.h"
#include "ytypes.h"
#include "plf_strip_buffer_support.h"

Граф включаемых заголовочных файлов для plf_functors.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Plf
namespace | Vtl::Plf::F11
namespace | Vtl::Plf::F21
namespace | Vtl::Plf::F31
namespace | Vtl::Plf::F51
namespace | Vtl::Plf::F23
namespace | Vtl::Plf::F33
namespace | Vtl::Plf::Fpie

Классы

struct | Vtl::Plf::F11::DoNothing< T >
functor DoNothing - заглушка Подробнее...
struct | Vtl::Plf::F11::Convert< T >
functor Sqrt - Преобразует тип аргумента к типу T. Подробнее...
struct | Vtl::Plf::F11::Convert2ByteBounded
functor Sqrt - Преобразует тип аргумента к типу T. Подробнее...
class | Vtl::Plf::F11::Threshold< T, Comp >
functor Threshold Подробнее...
struct | Vtl::Plf::F11::Comb< T, F1, F2 >
functor Comb - предназначен для комбинирования нескольких функторов в один. Подробнее...
class | Vtl::Plf::F11::Negative< T >
functor Negative - делает негатив изображения, считается что яркость изображения меняется от 0 до maxval, последнюю величина нада задать. Подробнее...
class | Vtl::Plf::F11::Bias< T >
functor Bias - добавляет к значению каждого пикселя константу. Подробнее...
class | Vtl::Plf::F11::Mult< T >
functor Mult - умножавет значение каждого пикселя на константу. Подробнее...
struct | Vtl::Plf::F11::ConvertMult< T >
functor Mult - умножавет значение каждого пикселя на константу и преобразует к типу T. Подробнее...
class | Vtl::Plf::F11::Lin< T >
functor Lin - преобразует значение каждого пикселя по закону a*x+b. Подробнее...
class | Vtl::Plf::F11::ToBounds< T >
functor Bounds - ограничивает выходные значения к диапазону min_val -:- max_val. Подробнее...
struct | Vtl::Plf::F11::Abs< T >
functor Abs - вычисляет абсолютную величину (модуль) вещественного числа. Подробнее...
struct | Vtl::Plf::F11::Sqrt< T >
functor Sqrt - вычисляет квадратный корень. Подробнее...
struct | Vtl::Plf::F11::Sqr< T >
functor Sqr - преобразует значение каждого пикселя $v$ по закону [image]. Подробнее...
class | Vtl::Plf::F11::GammaCor< T >
functor GammaCor - выполняет гамма коррекцию, т.е. преобразует значение каждого пикселя V по закону $ M*(V/M)^(1/gamma) $ , где. M - максимально возможное значение пикселя, например для беззнаковых целых типов изображения M=(1<<bits)-1. Подробнее...
class | Vtl::Plf::F11::Log< T >
functor Log - Вычисляет натуральный логарифм и возвращает максимум из полученной величины и порога. Подробнее...
class | Vtl::Plf::F11::GammaCorMult< T >
functor GammaCorMult - Эквивалентен последовательному применению функторов Mult, затем GammaCor, но более вычислительно эффективен. Подробнее...
class | Vtl::Plf::F21::SqrtOfSumSqr< T >
Функтор SqrtOfSumSqr для фильтра PixByPix2to1. Из двух серых изображений вычисляет одно по формуле [image]. Подробнее...
struct | Vtl::Plf::F21::Sum< T >
struct | Vtl::Plf::F21::Dif< T >
struct | Vtl::Plf::F21::AbsDif< T >
struct | Vtl::Plf::F21::Prod< T >
Функтор Prod для фильтра PixByPix2to1. Из двух серых изображений вычисляет одно по формуле $ I_1(x,y)*I_2(x,y) $. Подробнее...
class | Vtl::Plf::F21::Sharpen< T >
Функтор Sharpen для фильтра PixByPix2to1. Из двух серых изображений - среднего и среднего от квадрата яркости вычисляет одно по формуле [image] , т.е. служит для вычисления величины [image]. Подробнее...
class | Vtl::Plf::F21::Disp< T >
Функтор sqrtOfSumSqr для фильтра PixByPix2to1. Из двух серых изображений - среднего и среднего от квадрата яркости вычисляет одно по формуле [image] , т.е. служит для вычисления величины [image]. Подробнее...
class | Vtl::Plf::F31::Sum3< T >
Функтор Sum3 для PixByPix3to1. Вычисляет [image] . Подробнее...
struct | Vtl::Plf::F31::HessianDet< T >
struct | Vtl::Plf::F31::HessianDetSqrt< T >
class | Vtl::Plf::F31::Harris< T >
Функтор Harris для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет величину отклика детектора Харриса-Стефенса: , Обычно k=0.04. Используется свойство независимости следа и детерминанта матрицы от выбора системы координат.
Внимание: этот функтор на выход выдает значение не $ Harris $, а [image] . Корень четвертой степени появляется из соображений, что [image], а множитель [image] из-за того, что производные [image], т.е. обратно пропорциональны приращению координаты на которой в среднем оценивается приращение функции (производные вычисляются с помощью свертки). Множитель 6.3 - эмпирический. Эта модификация выполнена для того, чтобы динамический диапазон получаемого изображения соответствовал динамическомй диапазону фильтруемого изображения (например [0-255] -> [0-255].
Важно: множитель [image] существенен для монгомасштабных (multiscale) детекторов Харриса, впервые введен в статье
Y. Dufournaud, C. Schmid, and R. Horaud, "Matching images with different resolutions", Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR’00), 2000 (Hilton Head Island, SC, USA). V. 1, P. 612-618. ISBN: 0-7695-0662-3. http://citeseer.ist.psu.edu/dufournaud00matching.html
Сам детектор Харриса вводится в статье:
C. G. Harris and M. Stephens, "A combined corner and edge detector," In Proc. 4th Alvey Vision Conf., Manchester, pages 147-151, 1988. Подробнее...
class | Vtl::Plf::F31::Trace< T >
Функтор Trace для PixByPix3to1. Только та часть, которая вычитается в детекторе Харриса. Подробнее...
class | Vtl::Plf::F31::MaxEigenVal< T >
Функтор MaxEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет максимальное собственное значение (детектор краев DiZenzo): ,
где [image], т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $ , и [image] , [image]. Подробнее...
class | Vtl::Plf::F31::MinEigenVal< T >
Функтор MinEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет минимальное собственное значение (детектор уголков Канаде-Лукаса): ,
где [image], т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $, и [image] , [image]. Подробнее...
class | Vtl::Plf::F31::DiffEigenVal< T >
Функтор DiffEigenVal для PixByPix3to1. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет разность собственных значений (детектор краев исключая двумерные особенности(уголки)): ,
где [image] , т.е. , дискриминант $ D/4=((o_{11}+o_{22})/2)^2-(o_{11}o_{22}-o_{12}^2)=((o_{11}-o_{22})/2)^2+o_{12}^2 $ , и [image] , [image]. Подробнее...
class | Vtl::Plf::F31::StatDiff< T >
Функтор StatDiff для PixByPix3to1. Из трех величин [image] представляющих собой яркостьв точке, среднюю яркость и корень из дисперсии, вычисленные по окрестности точки вычисляет выражение для статистического дифференцирования изображения, [Pratt82]. Подробнее...
class | Vtl::Plf::F31::DeNoise< T >
Функтор DeNoise для PixByPix3to1. Из трех величин [image] представляющих собой яркость в точке, среднюю яркость и корень из дисперсии, вычисленные по окрестности точки вычисляет величину:
. Подробнее...
class | Vtl::Plf::F51::HarrisLaplace< T >
Функтор HarrisLaplace для PixByPix5to1. Подробнее...
class | Vtl::Plf::F23::CorrMatrix< T, Iter >
Функтор CorrMatrix для PixByPix2to3. Из двух величин [image] e [image] вычисляет 3 новых по формулам:
. Подробнее...
class | Vtl::Plf::F23::CorrMatrixAdd< T, Iter >
class | Vtl::Plf::F33::DiZenzo< T, Iter >
Функтор DiZenzo для PixByPix3to3. Из трех величин [image] представляющих собой элементы корреляционной матрицы компонент вектора градиента
, которая симметричная и положительно определенная, вычисляет наибольшее собственное значение (детектор краев) и соответствующий собственный вектор (направлен по нормали к краю). По первому выходу выдает с.з, а по 2 и 3 - x и y компоненты нормированного с.в. соответственно. Подробнее...
class | Vtl::Plf::Fpie::HarrisNMS< T >
Функтор HarrisNMS для EnvProc1to1. Находит точки максимальной яркости. Проверяет 8 соседних пикселей, если яркость в каждом из них меньше яркости центральной точки пишет на выход значение яркости без изменений, в противном случае - выход равен 0. Подробнее...
class | Vtl::Plf::Fpie::HarrisNMS_Smooth< T >
Функтор HarrisNMS_Smooth для EnvProc1to1 аналогичен HarrisNMS, но возвращает 1/10 от суммы центрального пикселя и всей окрестности 3х3. Находит точки максимальной яркости. Проверяет 8 соседних пикселей, если яркость в каждом из них меньше яркости центральной точки пишет на выход значение яркости без изменений, в противном случае - выход равен 0. Подробнее...
class | Vtl::Plf::Fpie::Himg2< T >
Функтор Himg2 для EnvProc1to2. Вычисляет вектор квази-градиента для контурного препарата H-image [HImg2003]. Подробнее...
class | Vtl::Plf::Fpie::Himg< T >
Функтор Himg для EnvProc1to1. Вычисляет контурный препарат H-image [HImg2003]. Подробнее...
class | Vtl::Plf::Fpie::BiLateralSmooth< T >
Функтор BiLateralSmooth для EnvProc1to1. BiLateral - фильтрация. НЕ СДЕЛАНО! Подробнее...
class | Vtl::Plf::Fpie::CannyNMS< T >
Функтор для EnvProc3to1, выполняет процедуру подавления немаксимальных точек в стиле Канни (Non Maximum Suppression). Подробнее...
class | Vtl::Plf::Fpie::CannyNMS_2< T >
Функтор для EnvProc3to1, выполняет процедуру подавления немаксимальных точек в стиле Канни (Non Maximum Suppression). Подробнее...

Функции

template<typename T>
T | Vtl::Plf::F11::sqr (T v)


Pipe Line Filters: Файл plf_gistogram.h

  • Файлы
  • Список членов всех файлов

Файл plf_gistogram.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Plf
namespace | Vtl::Plf::OLSI

Классы

class | Vtl::Plf::OLSI::mediana< T >
Служит для хранение значение медианы в гистограмме. Подробнее...
class | Vtl::Plf::OLSI::Gistogramm< T >
Служит для .... . Подробнее...
class | Vtl::Plf::OLSI::Gistogramm2< T >
Служит для .... . Подробнее...


Pipe Line Filters: Файл plf_io_filter.h

  • Файлы
  • Список членов всех файлов

Файл plf_io_filter.h

#include <list>
#include "aimage.h"
#include "plf_filters.h"

Граф включаемых заголовочных файлов для plf_io_filter.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Plf

Классы

class | Vtl::Plf::SrcArray< T, I, P >
class | Vtl::Plf::SrcAImage< T, I, P >
Источник изображений для системы потоковой фильтрации на базе изображений, размещенных в памяти в контейнере типа AImageMem8, AImageMem16, AImageMemFloat. Подробнее...
class | Vtl::Plf::SrcAImageRgb< T, I, P >
class | Vtl::Plf::DstArray< T, Pixel >
Фильтр - приемник серого изображения. Изображение представляется как одномерный массив в котором пиксели лежат слева направо, срока за строкой. Подробнее...
class | Vtl::Plf::DstAImage< T, I >
Фильтр - приемник серого изображения. Допустимые типы изображения - серые изображения, определенные в aimage.h а именно: AImageMem8, AImageMem16, AImageMemFloat. Подробнее...
class | Vtl::Plf::DstContainer< T, C, P >
Фильтр - приемник серого изображения. Помещает в контейнер только отдельные точки, в которых значение изображения больше threshold. Контейнер сам может решать что с таким точками делать - сохранять все или только нгекоторые. Типичное применение - например детектор Харриса. Подробнее...


Pipe Line Filters: Файл plf_iterators.h

  • Файлы
  • Список членов всех файлов

Файл plf_iterators.h

#include <algorithm>

Граф включаемых заголовочных файлов для plf_iterators.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Plf

Классы

class | Vtl::Plf::ColumnIteratorFast< T >
Итератор для получения информации из ImageRef. Подробнее...
class | Vtl::Plf::LineIterator< T >
Итератор для получения информации из ImageRef. Подробнее...


Pipe Line Filters: Файл plf_kernels_1d.h

  • Файлы
  • Список членов всех файлов

Файл plf_kernels_1d.h

#include "convolve.h"

Граф включаемых заголовочных файлов для plf_kernels_1d.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Plf
namespace | Vtl::Plf::Kernel

Классы

class | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
Базовый класс для написания ядер свертки/кросскорреляции/оконых функций. Тип определяется вторым шаблонным параметром. ВНИМАНИЕ! Ядро для свертки отличается от других ядер тем, что оно хранится в обратном порядке, так, что свертка вычисляется как кросскорреляция. В этой связи когда через функцию void _Init(int left,int right) задается носитель ядра, то в случае, если это ядро свертки - то в этой функции задается именно область, где функция, с которой будет осуществляться свертка отлична от нуля. Класс же Base возвращает в качестве left() b right() левую и правую "полуширину" функции, с которой будет вычисляться кросскорреляция, т.е. для ядра кросскорреляции и окна - те же left и right, а для ядра свертки right и left. Подробнее...
class | Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >
Ядро, задаваемое таблично. Подробнее...
class | Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
class FKern, реализует ядра сверток для любых функторов из Vtl::Plf::Kern::F, (см. там описание требуемого устройства функтора). Подробнее...
class | Vtl::Plf::Kernel::ImageWin< T >
Ограничение изображения окном. Подробнее...

Перечисления

enum | Vtl::Plf::Kernel::Type { Vtl::Plf::Kernel::KT_Conv, Vtl::Plf::Kernel::KT_Corr, Vtl::Plf::Kernel::KT_Win }

Функции

template<typename T, typename iterator_in, typename iterator_ker>
void | Vtl::Plf::Kernel::WindowData (iterator_in in, iterator_ker begin, iterator_ker end, T mult=1.0f, T bias=0.0f)
Ограничивает данные, заданные итератором in окном, выполняет действия "in place", Длина данных полагается равной длине ядра. Перед умножением на функцию окна из данных вычитается константа bias, затем данные умножеются на mult, что позволяет применять эту функцию для многомерных сепарабельных окон.
template<typename T, typename iterator_in, typename iterator_ker>
T | Vtl::Plf::Kernel::IntegrateWindowedData (iterator_in in, iterator_ker begin, iterator_ker end)
template<typename T, typename iterator_ker>
T | Vtl::Plf::Kernel::IntegrateKer (iterator_ker begin, iterator_ker end)


Pipe Line Filters: Файл plf_port.h

  • Файлы
  • Список членов всех файлов

Файл plf_port.h

#include <list>
#include "plf_strip_buffer.h"
#include "plf_functors.h"

Граф включаемых заголовочных файлов для plf_port.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Plf

Классы

class | Vtl::Plf::Port
Базовый класс для понятия "\b порт". Определяет функциональность, необходимую для работы системы фильтров. Подробнее...
class | Vtl::Plf::InPortBase
Базовый класс для понятия "\b входной порт". Определяет функциональность, необходимую для работы системы фильтров. Подробнее...
class | Vtl::Plf::OutPortBase
Базовый класс для понятия "\b выходной порт". Определяет функциональность, необходимую для работы системы фильтров. Подробнее...
struct | Vtl::Plf::OutPortBase::Connection
class | Vtl::Plf::InPort< T >
Класс реализует функциональность понятия "\с входной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering. Подробнее...
class | Vtl::Plf::InPortComb< T >
class | Vtl::Plf::OutPortNoPostProc< T >
Класс реализует базовую функциональность понятия \с "выходной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering. Подробнее...
class | Vtl::Plf::OutPort< T, P >
Класс реализует функциональность понятия \с "выходной порт" в фильтре, наследованном от FilterBase в системе PipeLineFiltering. Добавляет функциональность постобработки к классу OutPortNoPostProc. Подробнее...


Pipe Line Filters: Файл plf_strip_buffer.h

  • Файлы
  • Список членов всех файлов

Файл plf_strip_buffer.h

#include <algorithm>
#include "plf_strip_buffer_support.h"

Граф включаемых заголовочных файлов для plf_strip_buffer.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Plf

Классы

class | Vtl::Plf::StripBuffer< T >
Класс полосового буффера. Собственнно хранит полосу виртуального изображения, которое получилось в результате рабюоты фильтра, и которое обрабатывает последующий фильтр. Подробнее...


Pipe Line Filters: Файл plf_strip_buffer_support.h

  • Файлы
  • Список членов всех файлов

Файл plf_strip_buffer_support.h

#include <sstream>
#include <algorithm>
#include <list>

Граф включаемых заголовочных файлов для plf_strip_buffer_support.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Plf

Классы

struct | Vtl::Plf::ImgSize
Структура служит для хранения размеров изображения - ширина и высота. Подробнее...
struct | Vtl::Plf::Extent
Служит для хранения информации о размере дополнения изображения за края (путем зеркального отражения). Подробнее...
class | Vtl::Plf::ImageRef< T >
Класс служит интерфейсом 'только для чтения' к полосе изображения, хранящейся в данный момент в StripBuffer, который в свою очередь находится в OutPortNoPostProc. Подробнее...
class | Vtl::Plf::Strip
Служит для описания полосы изображения, находящейся в class StripBuffer и полосы, которая нужна для обработки class InPort. Подробнее...
class | Vtl::Plf::Fifo< T >
Реализует очередь. Подробнее...


Pipe Line Filters: Файл plf_sys.h

  • Файлы
  • Список членов всех файлов

Файл plf_sys.h

#include <iostream>
#include <fstream>
#include "ytypes.h"
#include "plf_filters.h"
#include "datastring.h"
#include "yfilesys.h"

Граф включаемых заголовочных файлов для plf_sys.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Plf
namespace | Vtl::Plf::Impl

Классы

struct | Vtl::Plf::Impl::Edge
Ребро графа, используется в представлении списка смежных вершин в классе Node. Содержит идентификаторы выходного порта и фильтра от которого передается изображение (id_outp, id_of) и идентификаторы входного порта и фильтра к которому передается изображение (id_inp, id_if). Подробнее...
struct | Vtl::Plf::Impl::Node
Узел графа, используется в классах FiltersSystem и GraphBuilder. Подробнее...
class | Vtl::Plf::Impl::GraphBuilder
Строит граф системы потоковой фильтрации, обеспечивает топологическую сортировку графа, поиск петель и циклов, проверку все ли источники и приемники заданы, отсутствие "висячих" связей. Результат возвращает в std::vector<Node> graph; класса FiltersSystem. Подробнее...
class | Vtl::Plf::Impl::DelayAdjuster
class | Vtl::Plf::FiltersSystem
"Главный класс", обеспечивает функционирование системы потоковой фильтрации Подробнее...
struct | Vtl::Plf::FiltersSystem::EdgeLabel_Unknown
class | Vtl::Plf::FiltersSystem::EdgeLabel_DelayB


Pipe Line Filters: Файл plt_filter_image.h

  • Файлы
  • Список членов всех файлов

Файл plt_filter_image.h

#include <algorithm>
#include "plf_kernels_1d.h"
#include "plf_filter_elem.h"
#include "plf_io_filter.h"
#include "plf_iterators.h"
#include "plf_gistogram.h"

Граф включаемых заголовочных файлов для plt_filter_image.h:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Plf

Классы

class | Vtl::Plf::medianFilter< T, P >
Медианная фильтрация изображения. Подробнее...
class | Vtl::Plf::medianFilter2< T, P >
Быстрая медианная фильтрация изображения, основанная на построении частичных гистограмм. Подробнее...


Pipe Line Filters: Файл Point2D.cpp

  • Файлы
  • Список членов всех файлов

Файл Point2D.cpp

#include "Basics3D/Point2D.h"

Граф включаемых заголовочных файлов для Point2D.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл Point2D.h

  • Файлы
  • Список членов всех файлов

Файл Point2D.h

#include <iostream>
#include "num_linalg.h"

Граф включаемых заголовочных файлов для Point2D.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_Point2D


Pipe Line Filters: Файл Point2DParam.cpp

  • Файлы
  • Список членов всех файлов

Файл Point2DParam.cpp

#include "Basics3D/Point2DParam.h"

Граф включаемых заголовочных файлов для Point2DParam.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл Point2DParam.h

  • Файлы
  • Список членов всех файлов

Файл Point2DParam.h

#include <vector>
#include "num_linalg.h"
#include "Point2D.h"
#include "MatrixOperations.h"

Граф включаемых заголовочных файлов для Point2DParam.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_Point2DParam


Pipe Line Filters: Файл Points2DParamSet.cpp

  • Файлы
  • Список членов всех файлов

Файл Points2DParamSet.cpp

#include "Basics3D/Points2DParamSet.h"

Граф включаемых заголовочных файлов для Points2DParamSet.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл Points2DParamSet.h

  • Файлы
  • Список членов всех файлов

Файл Points2DParamSet.h

#include <vector>
#include <fstream>
#include <iostream>
#include "Point2D.h"
#include "Point2DParam.h"
#include "Points2DSet.h"

Граф включаемых заголовочных файлов для Points2DParamSet.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_Points2DParamSet


Pipe Line Filters: Файл Points2DSet.h

  • Файлы
  • Список членов всех файлов

Файл Points2DSet.h

#include <vector>
#include <fstream>
#include <math.h>
#include "TransformMatrices.h"
#include "MatrixOperations.h"
#include "Point2D.h"

Граф включаемых заголовочных файлов для Points2DSet.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::T_Points2DSet< Point >


Pipe Line Filters: Файл progrcnt.cpp

  • Файлы
  • Список членов всех файлов

Файл progrcnt.cpp

#include <stdio.h>
#include <conio.h>
#include "progrcnt.h"

Граф включаемых заголовочных файлов для progrcnt.cpp:

Переменные

static SimpleProgressBar sb
ProgressCounter * indicator = &sb

Переменные

ProgressCounter* indicator = &sb

При написании консольных приложений следует включить этот файл пи там, где это надо, подставлять вместо аргумента типа /c ProgressCounter* переменную /c indicator. На экран будет выводиться счеткик процентов выполнения подпрограммы: в первой строке - название (суть) процедуры, во второй - процент исполнения от 0.0% до 100.0%, по заверщении - новая строка, говорящая от том, что процедура закончена. Для работы в других окружениях, например Windows,X-Windows - следует написать новый класс, производный от class ProgressCounter. В качестве примера - см. консольноый класс class SimpleProgressBar в файле /c progrcnt.cpp который и является реализацией, представляемой глобальной переменной /c indicator .

SimpleProgressBar sb [static]


Pipe Line Filters: Файл progrcnt.h

  • Файлы
  • Список членов всех файлов

Файл progrcnt.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class | ProgressCounter
class | AErrorStatusBase
class | ErrorStatusBase

Функции

void | SetMessageLanguage (bool rus=false)

Функции

void SetMessageLanguage ( bool rus = false )


Pipe Line Filters: Файл ProjectiveMatrix.cpp

  • Файлы
  • Список членов всех файлов

Файл ProjectiveMatrix.cpp

#include "ProjectiveMatrix.h"

Граф включаемых заголовочных файлов для ProjectiveMatrix.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл ProjectiveMatrix.h

  • Файлы
  • Список членов всех файлов

Файл ProjectiveMatrix.h

#include "num_linalg.h"
#include "Epipole.h"
#include "TransformMatrices.h"
#include "MatrixOperations.h"
#include "Sort.h"

Граф включаемых заголовочных файлов для ProjectiveMatrix.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_ProjectiveMatrix


Pipe Line Filters: Файл Ransac.h

  • Файлы
  • Список членов всех файлов

Файл Ransac.h

#include "num_linalg.h"
#include "Model.h"
#include "Point2D.h"
#include "Points2DSet.h"

Граф включаемых заголовочных файлов для Ransac.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Функции

template<class Operations>
void | Basics3D::Ransac (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, T_Points2DSet< C_Point2D > &out_Inliers, T_Model< Operations > &in_Model, T_Points2DSet< C_Point2D > &in_PointsSet, int in_size, double in_sigma, double in_p=0.99)


Pipe Line Filters: Файл ReadMe.hxx

  • Файлы
  • Список членов всех файлов

Файл ReadMe.hxx

См. исходные тексты.


Pipe Line Filters: Файл RecompMatrix.h

  • Файлы
  • Список членов всех файлов

Файл RecompMatrix.h

#include <vector>
#include "num_linalg.h"
#include "Points2DParamSet.h"
#include "Points2DSet.h"
#include "MatrixOperations.h"
#include "FundamentalMatrix.h"
#include "HomographyMatrix.h"
#include "TransformMatrices.h"
#include "Point2D.h"
#include "Point2DParam.h"
#include "Model.h"

Граф включаемых заголовочных файлов для RecompMatrix.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Функции

template<class Operations>
void | Basics3D::RecompMatrix (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, T_Points2DSet< C_Point2D > &outInliers, T_Model< Operations > &in_Model, C_Points2DParamSet &in_PointsParamSet1, C_Points2DParamSet &in_PointsParamSet2, double in_sigma, double in_t2)


Pipe Line Filters: Файл RQDecomposition.cpp

  • Файлы
  • Список членов всех файлов

Файл RQDecomposition.cpp

#include "RQDecomposition.h"

Граф включаемых заголовочных файлов для RQDecomposition.cpp:

Пространства имен

namespace | Basics3D

Функции

void | Basics3D::RQDecomposition (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_R, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_Q, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_M)


Pipe Line Filters: Файл RQDecomposition.h

  • Файлы
  • Список членов всех файлов

Файл RQDecomposition.h

#include "num_linalg.h"
#include "MatrixOperations.h"
#include "TransformMatrices.h"

Граф включаемых заголовочных файлов для RQDecomposition.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Функции

void | Basics3D::RQDecomposition (Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_R, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_Q, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_M)


Pipe Line Filters: Файл SaveImageArray.h

  • Файлы
  • Список членов всех файлов

Файл SaveImageArray.h

#include <iomanip>
#include <string>
#include "aimage.h"
#include "yfilesys.h"
#include "plf_functors.h"

Граф включаемых заголовочных файлов для SaveImageArray.h:

См. исходные тексты.

Пространства имен

namespace | Tests

Функции

void | Tests::CreateFileName (const char *fname, const char *postfix, const char *ext, std::string &res)
Vtl::Plf::F11::Comb< uint8_t,
Vtl::Plf::F11::GammaCorMult<
float >, Vtl::Plf::F11::Convert2ByteBounded > 		Tests::GammaCorFunctor ()
template<typename T>
void | Tests::SaveImageArray (const T *data, int w, int h, const char *baseName, const char *postfix)
template<typename T>
void | Tests::SaveColourImageArray (const T *dataR, const T *dataG, const T *dataB, int w, int h, const char *baseName, const char *postfix)
template<typename T>
void | Tests::NormalizeImage (const T *src, T *dst, int w, int h, T minDes=T(0), T maxDes=T(255))
template<typename T>
void | Tests::SaveNormImageArray (const T *data, int w, int h, const char *baseName, const char *postfix)
template<typename T>
void | Tests::SaveAbsImageArray (const T *data, int w, int h, const char *baseName, const char *postfix)
template<typename T, class ConvFunctor>
void | Tests::SaveImage (AImageMem8 *img, const T *data, int w, int h, int nls, ConvFunctor func, float sigma, const char *base_name, const char *postfix)
void | Tests::SaveImage (AImageMem8 *img, float sigma, const char *base_name, const char *postfix)


Pipe Line Filters: Файл sfm_calibration.h

  • Файлы
  • Список членов всех файлов

Файл sfm_calibration.h

#include <iostream>
#include <iomanip>
#include <algorithm>
#include <functional>
#include "loki_typeManip.h"
#include "loki_static_check.h"
#include "num_linalg.h"
#include "num_optimization.h"
#include "alexandresku.h"
#include "vtl_meta_base.h"
#include "sfm_types.h"
#include "sfm_dbg.h"

Граф включаемых заголовочных файлов для sfm_calibration.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D
namespace | Basics3D::Fm2Essential

Классы

struct | Basics3D::FmTools< T >
struct | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
class | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
class | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
class | Basics3D::Fm2Essential::CameraPoseFromEssential< T >


Pipe Line Filters: Файл sfm_dbg.h

  • Файлы
  • Список членов всех файлов

Файл sfm_dbg.h

#include <iostream>
#include <iomanip>
#include "loki_typeManip.h"
#include "loki_static_check.h"
#include "num_linalg.h"

Граф включаемых заголовочных файлов для sfm_dbg.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Dbg
namespace | Dbg::Format

Классы

struct | Dbg::Format::F
struct | Dbg::Fmt< T, format_type >
struct | Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >

Функции

template<typename T, int format>
std::ostream & | operator<< (std::ostream &os, const Dbg::Fmt< T, format > &fmt)
std::ostream & | operator<< (std::ostream &os, const Dbg::Format::F &fmt)

Функции

std::ostream& operator<< | ( | std::ostream & | os,
 |  | const Dbg::Format::F & | fmt
 | ) |  |

template<typename T, int format>
std::ostream& operator<< | ( | std::ostream & | os,
 |  | const Dbg::Fmt< T, format > & | fmt
 | ) |  |


Pipe Line Filters: Файл sfm_export_3D_model.h

  • Файлы
  • Список членов всех файлов

Файл sfm_export_3D_model.h

#include "num_linalg.h"
#include "sfm_quaternion.h"

Граф включаемых заголовочных файлов для sfm_export_3D_model.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D
namespace | Basics3D::Structure

Функции

template<typename T>
static Types< T >::Vector_3 | Basics3D::Structure::FindTranslationToObjectCenterOfMass (const std::vector< Pt< T > > &points)
template<typename T>
static T | Basics3D::Structure::FindCameraQuaternion (const typename Types< T >::Matrix_3x3 &R, typename Types< T >::Vector_3 &direction)
template<typename T>
static void | Basics3D::Structure::SaveVRML_AsPointsSet (const char *filename, const std::vector< Pt< T > > &points, const std::vector< CameraPos< T > > &cam)


Pipe Line Filters: Файл sfm_mesh_triangle.cpp

  • Файлы
  • Список членов всех файлов

Файл sfm_mesh_triangle.cpp

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "sfm_mesh_triangle.h"

Граф включаемых заголовочных файлов для sfm_mesh_triangle.cpp:

Макросы

#define | REAL double
#define | NO_TIMER
#define | ANSI_DECLARATORS
#define | TRILIBRARY
#define | CDT_ONLY
#define | INEXACT
#define | FILENAMESIZE 512
#define | INPUTLINESIZE 512
#define | TRIPERBLOCK 4092
#define | SUBSEGPERBLOCK 508
#define | VERTEXPERBLOCK 4092
#define | VIRUSPERBLOCK 1020
#define | BADSUBSEGPERBLOCK 252
#define | BADTRIPERBLOCK 4092
#define | FLIPSTACKERPERBLOCK 252
#define | SPLAYNODEPERBLOCK 508
#define | INPUTVERTEX 0
#define | SEGMENTVERTEX 1
#define | FREEVERTEX 2
#define | DEADVERTEX -32768
#define | UNDEADVERTEX -32767
#define | VOID int
#define | SAMPLEFACTOR 11
#define | SAMPLERATE 10
#define | PI 3.141592653589793238462643383279502884197169399375105820974944592308
#define | SQUAREROOTTWO 1.4142135623730950488016887242096980785696718753769480732
#define | ONETHIRD 0.333333333333333333333333333333333333333333333333333333333333
#define | decode(ptr, otri)
#define | encode(otri) (triangle) ((unsigned long) (otri).tri | (unsigned long) (otri).orient)
#define | sym(otri1, otri2)
#define | symself(otri)
#define | lnext(otri1, otri2)
#define | lnextself(otri) (otri).orient = plus1mod3[(otri).orient]
#define | lprev(otri1, otri2)
#define | lprevself(otri) (otri).orient = minus1mod3[(otri).orient]
#define | onext(otri1, otri2)
#define | onextself(otri)
#define | oprev(otri1, otri2)
#define | oprevself(otri)
#define | dnext(otri1, otri2)
#define | dnextself(otri)
#define | dprev(otri1, otri2)
#define | dprevself(otri)
#define | rnext(otri1, otri2)
#define | rnextself(otri)
#define | rprev(otri1, otri2)
#define | rprevself(otri)
#define | org(otri, vertexptr) vertexptr = (vertex) (otri).tri[plus1mod3[(otri).orient] + 3]
#define | dest(otri, vertexptr) vertexptr = (vertex) (otri).tri[minus1mod3[(otri).orient] + 3]
#define | apex(otri, vertexptr) vertexptr = (vertex) (otri).tri[(otri).orient + 3]
#define | setorg(otri, vertexptr) (otri).tri[plus1mod3[(otri).orient] + 3] = (triangle) vertexptr
#define | setdest(otri, vertexptr) (otri).tri[minus1mod3[(otri).orient] + 3] = (triangle) vertexptr
#define | setapex(otri, vertexptr) (otri).tri[(otri).orient + 3] = (triangle) vertexptr
#define | bond(otri1, otri2)
#define | dissolve(otri) (otri).tri[(otri).orient] = (triangle) m->dummytri
#define | otricopy(otri1, otri2)
#define | otriequal(otri1, otri2)
#define | infect(otri)
#define | uninfect(otri)
#define | infected(otri) (((unsigned long) (otri).tri[6] & (unsigned long) 2l) != 0l)
#define | elemattribute(otri, attnum) ((REAL *) (otri).tri)[m->elemattribindex + (attnum)]
#define | setelemattribute(otri, attnum, value) ((REAL *) (otri).tri)[m->elemattribindex + (attnum)] = value
#define | areabound(otri) ((REAL *) (otri).tri)[m->areaboundindex]
#define | setareabound(otri, value) ((REAL *) (otri).tri)[m->areaboundindex] = value
#define | deadtri(tria) ((tria)[1] == (triangle) NULL)
#define | killtri(tria)
#define | sdecode(sptr, osub)
#define | sencode(osub) (subseg) ((unsigned long) (osub).ss | (unsigned long) (osub).ssorient)
#define | ssym(osub1, osub2)
#define | ssymself(osub) (osub).ssorient = 1 - (osub).ssorient
#define | spivot(osub1, osub2)
#define | spivotself(osub)
#define | snext(osub1, osub2)
#define | snextself(osub)
#define | sorg(osub, vertexptr) vertexptr = (vertex) (osub).ss[2 + (osub).ssorient]
#define | sdest(osub, vertexptr) vertexptr = (vertex) (osub).ss[3 - (osub).ssorient]
#define | setsorg(osub, vertexptr) (osub).ss[2 + (osub).ssorient] = (subseg) vertexptr
#define | setsdest(osub, vertexptr) (osub).ss[3 - (osub).ssorient] = (subseg) vertexptr
#define | mark(osub) (* (int *) ((osub).ss + 6))
#define | setmark(osub, value) * (int *) ((osub).ss + 6) = value
#define | sbond(osub1, osub2)
#define | sdissolve(osub) (osub).ss[(osub).ssorient] = (subseg) m->dummysub
#define | subsegcopy(osub1, osub2)
#define | subsegequal(osub1, osub2)
#define | deadsubseg(sub) ((sub)[1] == (subseg) NULL)
#define | killsubseg(sub)
#define | tspivot(otri, osub)
#define | stpivot(osub, otri)
#define | tsbond(otri, osub)
#define | tsdissolve(otri) (otri).tri[6 + (otri).orient] = (triangle) m->dummysub
#define | stdissolve(osub) (osub).ss[4 + (osub).ssorient] = (subseg) m->dummytri
#define | vertexmark(vx) ((int *) (vx))[m->vertexmarkindex]
#define | setvertexmark(vx, value) ((int *) (vx))[m->vertexmarkindex] = value
#define | vertextype(vx) ((int *) (vx))[m->vertexmarkindex + 1]
#define | setvertextype(vx, value) ((int *) (vx))[m->vertexmarkindex + 1] = value
#define | vertex2tri(vx) ((triangle *) (vx))[m->vertex2triindex]
#define | setvertex2tri(vx, value) ((triangle *) (vx))[m->vertex2triindex] = value
#define | STARTINDEX 0
#define | Absolute(a) ((a) >= 0.0 ? (a) : -(a))
#define | Fast_Two_Sum_Tail(a, b, x, y)
#define | Fast_Two_Sum(a, b, x, y)
#define | Two_Sum_Tail(a, b, x, y)
#define | Two_Sum(a, b, x, y)
#define | Two_Diff_Tail(a, b, x, y)
#define | Two_Diff(a, b, x, y)
#define | Split(a, ahi, alo)
#define | Two_Product_Tail(a, b, x, y)
#define | Two_Product(a, b, x, y)
#define | Two_Product_Presplit(a, b, bhi, blo, x, y)
#define | Square_Tail(a, x, y)
#define | Square(a, x, y)
#define | Two_One_Sum(a1, a0, b, x2, x1, x0)
#define | Two_One_Diff(a1, a0, b, x2, x1, x0)
#define | Two_Two_Sum(a1, a0, b1, b0, x3, x2, x1, x0)
#define | Two_Two_Diff(a1, a0, b1, b0, x3, x2, x1, x0)
#define | Two_One_Product(a1, a0, b, x3, x2, x1, x0)

Определения типов

typedef REAL ** | triangle
typedef REAL ** | subseg
typedef REAL * | vertex

Перечисления

enum | wordtype { POINTER, FLOATINGPOINT }
enum | locateresult { INTRIANGLE, ONEDGE, ONVERTEX, OUTSIDE }
enum | insertvertexresult { SUCCESSFULVERTEX, ENCROACHINGVERTEX, VIOLATINGVERTEX, DUPLICATEVERTEX }
enum | finddirectionresult { WITHIN, LEFTCOLLINEAR, RIGHTCOLLINEAR }

Функции

int | triunsuitable (vertex triorg, vertex tridest, vertex triapex, REAL area)
VOID * | trimalloc (int size)
void | trifree (VOID *memptr)
void | internalerror ()
void | parsecommandline (int argc, char **argv, struct behavior *b)
void | printtriangle (struct mesh *m, struct behavior *b, struct otri *t)
void | printsubseg (struct mesh *m, struct behavior *b, struct osub *s)
void | poolrestart (struct memorypool *pool)
void | poolinit (struct memorypool *pool, int bytecount, int itemcount, enum wordtype wtype, int alignment)
void | pooldeinit (struct memorypool *pool)
VOID * | poolalloc (struct memorypool *pool)
void | pooldealloc (struct memorypool *pool, VOID *dyingitem)
void | traversalinit (struct memorypool *pool)
VOID * | traverse (struct memorypool *pool)
void | dummyinit (struct mesh *m, struct behavior *b, int trianglewords, int subsegwords)
void | initializevertexpool (struct mesh *m, struct behavior *b)
void | initializetrisubpools (struct mesh *m, struct behavior *b)
void | triangledealloc (struct mesh *m, triangle *dyingtriangle)
triangle * | triangletraverse (struct mesh *m)
void | subsegdealloc (struct mesh *m, subseg *dyingsubseg)
subseg * | subsegtraverse (struct mesh *m)
void | vertexdealloc (struct mesh *m, vertex dyingvertex)
vertex | vertextraverse (struct mesh *m)
vertex | getvertex (struct mesh *m, struct behavior *b, int number)
void | triangledeinit (struct mesh *m, struct behavior *b)
void | maketriangle (struct mesh *m, struct behavior *b, struct otri *newotri)
void | makesubseg (struct mesh *m, struct osub *newsubseg)
void | exactinit ()
int | fast_expansion_sum_zeroelim (int elen, REAL *e, int flen, REAL *f, REAL *h)
int | scale_expansion_zeroelim (int elen, REAL *e, REAL b, REAL *h)
REAL | estimate (int elen, REAL *e)
REAL | counterclockwiseadapt (vertex pa, vertex pb, vertex pc, REAL detsum)
REAL | counterclockwise (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc)
REAL | incircleadapt (vertex pa, vertex pb, vertex pc, vertex pd, REAL permanent)
REAL | incircle (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc, vertex pd)
REAL | orient3dadapt (vertex pa, vertex pb, vertex pc, vertex pd, REAL aheight, REAL bheight, REAL cheight, REAL dheight, REAL permanent)
REAL | orient3d (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc, vertex pd, REAL aheight, REAL bheight, REAL cheight, REAL dheight)
REAL | nonregular (struct mesh *m, struct behavior *b, vertex pa, vertex pb, vertex pc, vertex pd)
void | findcircumcenter (struct mesh *m, struct behavior *b, vertex torg, vertex tdest, vertex tapex, vertex circumcenter, REAL *xi, REAL *eta, REAL *minedge)
void | triangleinit (struct mesh *m)
unsigned long | randomnation (unsigned int choices)
void | checkmesh (struct mesh *m, struct behavior *b)
void | checkdelaunay (struct mesh *m, struct behavior *b)
void | makevertexmap (struct mesh *m, struct behavior *b)
enum locateresult | preciselocate (struct mesh *m, struct behavior *b, vertex searchpoint, struct otri *searchtri, int stopatsubsegment)
enum locateresult | locate (struct mesh *m, struct behavior *b, vertex searchpoint, struct otri *searchtri)
void | insertsubseg (struct mesh *m, struct behavior *b, struct otri *tri, int subsegmark)
void | flip (struct mesh *m, struct behavior *b, struct otri *flipedge)
void | unflip (struct mesh *m, struct behavior *b, struct otri *flipedge)
enum insertvertexresult | insertvertex (struct mesh *m, struct behavior *b, vertex newvertex, struct otri *searchtri, struct osub *splitseg, int segmentflaws, int triflaws, REAL iradius)
void | triangulatepolygon (struct mesh *m, struct behavior *b, struct otri *firstedge, struct otri *lastedge, int edgecount, int doflip, int triflaws)
void | vertexsort (vertex *sortarray, int arraysize)
void | vertexmedian (vertex *sortarray, int arraysize, int median, int axis)
void | alternateaxes (vertex *sortarray, int arraysize, int axis)
void | mergehulls (struct mesh *m, struct behavior *b, struct otri *farleft, struct otri *innerleft, struct otri *innerright, struct otri *farright, int axis)
void | divconqrecurse (struct mesh *m, struct behavior *b, vertex *sortarray, int vertices, int axis, struct otri *farleft, struct otri *farright)
long | removeghosts (struct mesh *m, struct behavior *b, struct otri *startghost)
long | divconqdelaunay (struct mesh *m, struct behavior *b)
void | boundingbox (struct mesh *m, struct behavior *b)
long | removebox (struct mesh *m, struct behavior *b)
long | incrementaldelaunay (struct mesh *m, struct behavior *b)
void | eventheapinsert (struct event **heap, int heapsize, struct event *newevent)
void | eventheapify (struct event **heap, int heapsize, int eventnum)
void | eventheapdelete (struct event **heap, int heapsize, int eventnum)
void | createeventheap (struct mesh *m, struct event ***eventheap, struct event **events, struct event **freeevents)
int | rightofhyperbola (struct mesh *m, struct otri *fronttri, vertex newsite)
REAL | circletop (struct mesh *m, vertex pa, vertex pb, vertex pc, REAL ccwabc)
void | check4deadevent (struct otri *checktri, struct event **freeevents, struct event **eventheap, int *heapsize)
splaynode * | splay (struct mesh *m, struct splaynode *splaytree, vertex searchpoint, struct otri *searchtri)
splaynode * | splayinsert (struct mesh *m, struct splaynode *splayroot, struct otri *newkey, vertex searchpoint)
splaynode * | circletopinsert (struct mesh *m, struct behavior *b, struct splaynode *splayroot, struct otri *newkey, vertex pa, vertex pb, vertex pc, REAL topy)
splaynode * | frontlocate (struct mesh *m, struct splaynode *splayroot, struct otri *bottommost, vertex searchvertex, struct otri *searchtri, int *farright)
long | sweeplinedelaunay (struct mesh *m, struct behavior *b)
long | delaunay (struct mesh *m, struct behavior *b)
enum finddirectionresult | finddirection (struct mesh *m, struct behavior *b, struct otri *searchtri, vertex searchpoint)
void | segmentintersection (struct mesh *m, struct behavior *b, struct otri *splittri, struct osub *splitsubseg, vertex endpoint2)
int | scoutsegment (struct mesh *m, struct behavior *b, struct otri *searchtri, vertex endpoint2, int newmark)
void | delaunayfixup (struct mesh *m, struct behavior *b, struct otri *fixuptri, int leftside)
void | constrainededge (struct mesh *m, struct behavior *b, struct otri *starttri, vertex endpoint2, int newmark)
void | insertsegment (struct mesh *m, struct behavior *b, vertex endpoint1, vertex endpoint2, int newmark)
void | markhull (struct mesh *m, struct behavior *b)
void | formskeleton (struct mesh *m, struct behavior *b, int *segmentlist, int *segmentmarkerlist, int numberofsegments)
void | infecthull (struct mesh *m, struct behavior *b)
void | plague (struct mesh *m, struct behavior *b)
void | regionplague (struct mesh *m, struct behavior *b, REAL attribute, REAL area)
void | carveholes (struct mesh *m, struct behavior *b, REAL *holelist, int holes, REAL *regionlist, int regions)
void | highorder (struct mesh *m, struct behavior *b)
void | transfernodes (struct mesh *m, struct behavior *b, REAL *pointlist, REAL *pointattriblist, int *pointmarkerlist, int numberofpoints, int numberofpointattribs)
void | writenodes (struct mesh *m, struct behavior *b, REAL **pointlist, REAL **pointattriblist, int **pointmarkerlist)
void | numbernodes (struct mesh *m, struct behavior *b)
void | writeelements (struct mesh *m, struct behavior *b, int **trianglelist, REAL **triangleattriblist)
void | writepoly (struct mesh *m, struct behavior *b, int **segmentlist, int **segmentmarkerlist)
void | writeedges (struct mesh *m, struct behavior *b, int **edgelist, int **edgemarkerlist)
void | writevoronoi (struct mesh *m, struct behavior *b, REAL **vpointlist, REAL **vpointattriblist, int **vpointmarkerlist, int **vedgelist, int **vedgemarkerlist, REAL **vnormlist)
void | writeneighbors (struct mesh *m, struct behavior *b, int **neighborlist)
void | quality_statistics (struct mesh *m, struct behavior *b)
void | statistics (struct mesh *m, struct behavior *b)
void | triangulate (char *triswitches, struct triangulateio *in, struct triangulateio *out, struct triangulateio *vorout)

Переменные

REAL | splitter
REAL | epsilon
REAL | resulterrbound
REAL | ccwerrboundA
REAL | ccwerrboundB
REAL | ccwerrboundC
REAL | iccerrboundA
REAL | iccerrboundB
REAL | iccerrboundC
REAL | o3derrboundA
REAL | o3derrboundB
REAL | o3derrboundC
unsigned long | randomseed
int | plus1mod3 [3] = {1, 2, 0}
int | minus1mod3 [3] = {2, 0, 1}

Макросы

#define Absolute ( a ) ((a) >= 0.0 ? (a) : -(a))

#define ANSI_DECLARATORS

#define apex | ( | otri,
 |  | vertexptr | ) | vertexptr = (vertex) (otri).tri[(otri).orient + 3]

#define areabound ( otri ) ((REAL *) (otri).tri)[m->areaboundindex]

#define BADSUBSEGPERBLOCK 252

#define BADTRIPERBLOCK 4092

#define bond | ( | otri1,
 |  | otri2 | )

Макроопределение:

(otri1).tri[(otri1).orient] = encode(otri2);                                \
  (otri2).tri[(otri2).orient] = encode(otri1)

#define CDT_ONLY

#define deadsubseg ( sub ) ((sub)[1] == (subseg) NULL)

#define deadtri ( tria ) ((tria)[1] == (triangle) NULL)

#define DEADVERTEX -32768

#define decode | ( | ptr,
 |  | otri | )

Макроопределение:

(otri).orient = (int) ((unsigned long) (ptr) & (unsigned long) 3l);         \
  (otri).tri = (triangle *)                                                   \
                  ((unsigned long) (ptr) ^ (unsigned long) (otri).orient)

#define dest | ( | otri,
 |  | vertexptr | ) | vertexptr = (vertex) (otri).tri[minus1mod3[(otri).orient] + 3]

#define dissolve ( otri ) (otri).tri[(otri).orient] = (triangle) m->dummytri

#define dnext | ( | otri1,
 |  | otri2 | )

Макроопределение:

sym(otri1, otri2);                                                          \
  lprevself(otri2);

#define dnextself ( otri )

Макроопределение:

symself(otri);                                                              \
  lprevself(otri);

#define dprev | ( | otri1,
 |  | otri2 | )

Макроопределение:

lnext(otri1, otri2);                                                        \
  symself(otri2);

#define dprevself ( otri )

Макроопределение:

lnextself(otri);                                                            \
  symself(otri);

#define elemattribute | ( | otri,
 |  | attnum | ) | ((REAL *) (otri).tri)[m->elemattribindex + (attnum)]

#define encode ( otri ) (triangle) ((unsigned long) (otri).tri | (unsigned long) (otri).orient)

#define Fast_Two_Sum | ( | a,
 |  | b,
 |  | x,
 |  | y | )

Макроопределение:

x = (REAL) (a + b); \
  Fast_Two_Sum_Tail(a, b, x, y)

#define Fast_Two_Sum_Tail | ( | a,
 |  | b,
 |  | x,
 |  | y | )

Макроопределение:

bvirt = x - a; \
  y = b - bvirt

#define FILENAMESIZE 512

#define FLIPSTACKERPERBLOCK 252

#define FREEVERTEX 2

#define INEXACT

#define infect ( otri )

Макроопределение:

(otri).tri[6] = (triangle)                                                  \
                    ((unsigned long) (otri).tri[6] | (unsigned long) 2l)

#define infected ( otri ) (((unsigned long) (otri).tri[6] & (unsigned long) 2l) != 0l)

#define INPUTLINESIZE 512

#define INPUTVERTEX 0

#define killsubseg ( sub )

Макроопределение:

(sub)[1] = (subseg) NULL;                                                   \
  (sub)[2] = (subseg) NULL

#define killtri ( tria )

Макроопределение:

(tria)[1] = (triangle) NULL;                                                \
  (tria)[3] = (triangle) NULL

#define lnext | ( | otri1,
 |  | otri2 | )

Макроопределение:

(otri2).tri = (otri1).tri;                                                  \
  (otri2).orient = plus1mod3[(otri1).orient]

#define lnextself ( otri ) (otri).orient = plus1mod3[(otri).orient]

#define lprev | ( | otri1,
 |  | otri2 | )

Макроопределение:

(otri2).tri = (otri1).tri;                                                  \
  (otri2).orient = minus1mod3[(otri1).orient]

#define lprevself ( otri ) (otri).orient = minus1mod3[(otri).orient]

#define mark ( osub ) (* (int *) ((osub).ss + 6))

#define NO_TIMER

#define ONETHIRD 0.333333333333333333333333333333333333333333333333333333333333

#define onext | ( | otri1,
 |  | otri2 | )

Макроопределение:

lprev(otri1, otri2);                                                        \
  symself(otri2);

#define onextself ( otri )

Макроопределение:

lprevself(otri);                                                            \
  symself(otri);

#define oprev | ( | otri1,
 |  | otri2 | )

Макроопределение:

sym(otri1, otri2);                                                          \
  lnextself(otri2);

#define oprevself ( otri )

Макроопределение:

symself(otri);                                                              \
  lnextself(otri);

#define org | ( | otri,
 |  | vertexptr | ) | vertexptr = (vertex) (otri).tri[plus1mod3[(otri).orient] + 3]

#define otricopy | ( | otri1,
 |  | otri2 | )

Макроопределение:

(otri2).tri = (otri1).tri;                                                  \
  (otri2).orient = (otri1).orient

#define otriequal | ( | otri1,
 |  | otri2 | )

Макроопределение:

(((otri1).tri == (otri2).tri) &&                                            \
   ((otri1).orient == (otri2).orient))

#define PI 3.141592653589793238462643383279502884197169399375105820974944592308

#define REAL double

#define rnext | ( | otri1,
 |  | otri2 | )

Макроопределение:

sym(otri1, otri2);                                                          \
  lnextself(otri2);                                                           \
  symself(otri2);

#define rnextself ( otri )

Макроопределение:

symself(otri);                                                              \
  lnextself(otri);                                                            \
  symself(otri);

#define rprev | ( | otri1,
 |  | otri2 | )

Макроопределение:

sym(otri1, otri2);                                                          \
  lprevself(otri2);                                                           \
  symself(otri2);

#define rprevself ( otri )

Макроопределение:

symself(otri);                                                              \
  lprevself(otri);                                                            \
  symself(otri);

#define SAMPLEFACTOR 11

#define SAMPLERATE 10

#define sbond | ( | osub1,
 |  | osub2 | )

Макроопределение:

(osub1).ss[(osub1).ssorient] = sencode(osub2);                              \
  (osub2).ss[(osub2).ssorient] = sencode(osub1)

#define sdecode | ( | sptr,
 |  | osub | )

Макроопределение:

(osub).ssorient = (int) ((unsigned long) (sptr) & (unsigned long) 1l);      \
  (osub).ss = (subseg *)                                                      \
              ((unsigned long) (sptr) & ~ (unsigned long) 3l)

#define sdest | ( | osub,
 |  | vertexptr | ) | vertexptr = (vertex) (osub).ss[3 - (osub).ssorient]

#define sdissolve ( osub ) (osub).ss[(osub).ssorient] = (subseg) m->dummysub

#define SEGMENTVERTEX 1

#define sencode ( osub ) (subseg) ((unsigned long) (osub).ss | (unsigned long) (osub).ssorient)

#define setapex | ( | otri,
 |  | vertexptr | ) | (otri).tri[(otri).orient + 3] = (triangle) vertexptr

#define setareabound | ( | otri,
 |  | value | ) | ((REAL *) (otri).tri)[m->areaboundindex] = value

#define setdest | ( | otri,
 |  | vertexptr | ) | (otri).tri[minus1mod3[(otri).orient] + 3] = (triangle) vertexptr

#define setelemattribute | ( | otri,
 |  | attnum,
 |  | value | ) | ((REAL *) (otri).tri)[m->elemattribindex + (attnum)] = value

#define setmark | ( | osub,
 |  | value | ) | * (int *) ((osub).ss + 6) = value

#define setorg | ( | otri,
 |  | vertexptr | ) | (otri).tri[plus1mod3[(otri).orient] + 3] = (triangle) vertexptr

#define setsdest | ( | osub,
 |  | vertexptr | ) | (osub).ss[3 - (osub).ssorient] = (subseg) vertexptr

#define setsorg | ( | osub,
 |  | vertexptr | ) | (osub).ss[2 + (osub).ssorient] = (subseg) vertexptr

#define setvertex2tri | ( | vx,
 |  | value | ) | ((triangle *) (vx))[m->vertex2triindex] = value

#define setvertexmark | ( | vx,
 |  | value | ) | ((int *) (vx))[m->vertexmarkindex] = value

#define setvertextype | ( | vx,
 |  | value | ) | ((int *) (vx))[m->vertexmarkindex + 1] = value

#define snext | ( | osub1,
 |  | osub2 | )

Макроопределение:

sptr = (osub1).ss[1 - (osub1).ssorient];                                    \
  sdecode(sptr, osub2)

#define snextself ( osub )

Макроопределение:

sptr = (osub).ss[1 - (osub).ssorient];                                      \
  sdecode(sptr, osub)

#define sorg | ( | osub,
 |  | vertexptr | ) | vertexptr = (vertex) (osub).ss[2 + (osub).ssorient]

#define spivot | ( | osub1,
 |  | osub2 | )

Макроопределение:

sptr = (osub1).ss[(osub1).ssorient];                                        \
  sdecode(sptr, osub2)

#define spivotself ( osub )

Макроопределение:

sptr = (osub).ss[(osub).ssorient];                                          \
  sdecode(sptr, osub)

#define SPLAYNODEPERBLOCK 508

#define Split | ( | a,
 |  | ahi,
 |  | alo | )

Макроопределение:

c = (REAL) (splitter * a); \
  abig = (REAL) (c - a); \
  ahi = c - abig; \
  alo = a - ahi

#define Square | ( | a,
 |  | x,
 |  | y | )

Макроопределение:

x = (REAL) (a * a); \
  Square_Tail(a, x, y)

#define Square_Tail | ( | a,
 |  | x,
 |  | y | )

Макроопределение:

Split(a, ahi, alo); \
  err1 = x - (ahi * ahi); \
  err3 = err1 - ((ahi + ahi) * alo); \
  y = (alo * alo) - err3

#define SQUAREROOTTWO 1.4142135623730950488016887242096980785696718753769480732

#define ssym | ( | osub1,
 |  | osub2 | )

Макроопределение:

(osub2).ss = (osub1).ss;                                                    \
  (osub2).ssorient = 1 - (osub1).ssorient

#define ssymself ( osub ) (osub).ssorient = 1 - (osub).ssorient

#define STARTINDEX 0

#define stdissolve ( osub ) (osub).ss[4 + (osub).ssorient] = (subseg) m->dummytri

#define stpivot | ( | osub,
 |  | otri | )

Макроопределение:

ptr = (triangle) (osub).ss[4 + (osub).ssorient];                            \
  decode(ptr, otri)

#define subsegcopy | ( | osub1,
 |  | osub2 | )

Макроопределение:

(osub2).ss = (osub1).ss;                                                    \
  (osub2).ssorient = (osub1).ssorient

#define subsegequal | ( | osub1,
 |  | osub2 | )

Макроопределение:

(((osub1).ss == (osub2).ss) &&                                              \
   ((osub1).ssorient == (osub2).ssorient))

#define SUBSEGPERBLOCK 508

#define sym | ( | otri1,
 |  | otri2 | )

Макроопределение:

ptr = (otri1).tri[(otri1).orient];                                          \
  decode(ptr, otri2);

#define symself ( otri )

Макроопределение:

ptr = (otri).tri[(otri).orient];                                            \
  decode(ptr, otri);

#define TRILIBRARY

#define TRIPERBLOCK 4092

#define tsbond | ( | otri,
 |  | osub | )

Макроопределение:

(otri).tri[6 + (otri).orient] = (triangle) sencode(osub);                   \
  (osub).ss[4 + (osub).ssorient] = (subseg) encode(otri)

#define tsdissolve ( otri ) (otri).tri[6 + (otri).orient] = (triangle) m->dummysub

#define tspivot | ( | otri,
 |  | osub | )

Макроопределение:

sptr = (subseg) (otri).tri[6 + (otri).orient];                              \
  sdecode(sptr, osub)

#define Two_Diff | ( | a,
 |  | b,
 |  | x,
 |  | y | )

Макроопределение:

x = (REAL) (a - b); \
  Two_Diff_Tail(a, b, x, y)

#define Two_Diff_Tail | ( | a,
 |  | b,
 |  | x,
 |  | y | )

Макроопределение:

bvirt = (REAL) (a - x); \
  avirt = x + bvirt; \
  bround = bvirt - b; \
  around = a - avirt; \
  y = around + bround

#define Two_One_Diff | ( | a1,
 |  | a0,
 |  | b,
 |  | x2,
 |  | x1,
 |  | x0 | )

Макроопределение:

Two_Diff(a0, b , _i, x0); \
  Two_Sum( a1, _i, x2, x1)

#define Two_One_Product | ( | a1,
 |  | a0,
 |  | b,
 |  | x3,
 |  | x2,
 |  | x1,
 |  | x0 | )

Макроопределение:

Split(b, bhi, blo); \
  Two_Product_Presplit(a0, b, bhi, blo, _i, x0); \
  Two_Product_Presplit(a1, b, bhi, blo, _j, _0); \
  Two_Sum(_i, _0, _k, x1); \
  Fast_Two_Sum(_j, _k, x3, x2)

#define Two_One_Sum | ( | a1,
 |  | a0,
 |  | b,
 |  | x2,
 |  | x1,
 |  | x0 | )

Макроопределение:

Two_Sum(a0, b , _i, x0); \
  Two_Sum(a1, _i, x2, x1)

#define Two_Product | ( | a,
 |  | b,
 |  | x,
 |  | y | )

Макроопределение:

x = (REAL) (a * b); \
  Two_Product_Tail(a, b, x, y)

#define Two_Product_Presplit | ( | a,
 |  | b,
 |  | bhi,
 |  | blo,
 |  | x,
 |  | y | )

Макроопределение:

x = (REAL) (a * b); \
  Split(a, ahi, alo); \
  err1 = x - (ahi * bhi); \
  err2 = err1 - (alo * bhi); \
  err3 = err2 - (ahi * blo); \
  y = (alo * blo) - err3

#define Two_Product_Tail | ( | a,
 |  | b,
 |  | x,
 |  | y | )

Макроопределение:

Split(a, ahi, alo); \
  Split(b, bhi, blo); \
  err1 = x - (ahi * bhi); \
  err2 = err1 - (alo * bhi); \
  err3 = err2 - (ahi * blo); \
  y = (alo * blo) - err3

#define Two_Sum | ( | a,
 |  | b,
 |  | x,
 |  | y | )

Макроопределение:

x = (REAL) (a + b); \
  Two_Sum_Tail(a, b, x, y)

#define Two_Sum_Tail | ( | a,
 |  | b,
 |  | x,
 |  | y | )

Макроопределение:

bvirt = (REAL) (x - a); \
  avirt = x - bvirt; \
  bround = b - bvirt; \
  around = a - avirt; \
  y = around + bround

#define Two_Two_Diff | ( | a1,
 |  | a0,
 |  | b1,
 |  | b0,
 |  | x3,
 |  | x2,
 |  | x1,
 |  | x0 | )

Макроопределение:

Two_One_Diff(a1, a0, b0, _j, _0, x0); \
  Two_One_Diff(_j, _0, b1, x3, x2, x1)

#define Two_Two_Sum | ( | a1,
 |  | a0,
 |  | b1,
 |  | b0,
 |  | x3,
 |  | x2,
 |  | x1,
 |  | x0 | )

Макроопределение:

Two_One_Sum(a1, a0, b0, _j, _0, x0); \
  Two_One_Sum(_j, _0, b1, x3, x2, x1)

#define UNDEADVERTEX -32767

#define uninfect ( otri )

Макроопределение:

(otri).tri[6] = (triangle)                                                  \
                    ((unsigned long) (otri).tri[6] & ~ (unsigned long) 2l)

#define vertex2tri ( vx ) ((triangle *) (vx))[m->vertex2triindex]

#define vertexmark ( vx ) ((int *) (vx))[m->vertexmarkindex]

#define VERTEXPERBLOCK 4092

#define vertextype ( vx ) ((int *) (vx))[m->vertexmarkindex + 1]

#define VIRUSPERBLOCK 1020

#define VOID int

Типы

typedef REAL** subseg

typedef REAL** triangle

typedef REAL* vertex

Перечисления

enum finddirectionresult

Элементы перечислений:
WITHIN
LEFTCOLLINEAR
RIGHTCOLLINEAR

enum insertvertexresult

Элементы перечислений:
SUCCESSFULVERTEX
ENCROACHINGVERTEX
VIOLATINGVERTEX
DUPLICATEVERTEX

enum locateresult

Элементы перечислений:
INTRIANGLE
ONEDGE
ONVERTEX
OUTSIDE

enum wordtype

Элементы перечислений:
POINTER
FLOATINGPOINT

Функции

void alternateaxes | ( | vertex * | sortarray,
 |  | int | arraysize,
 |  | int | axis
 | ) |  |

void boundingbox | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

void carveholes | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | REAL * | holelist,
 |  | int | holes,
 |  | REAL * | regionlist,
 |  | int | regions
 | ) |  |

void check4deadevent | ( | struct otri * | checktri,
 |  | struct event ** | freeevents,
 |  | struct event ** | eventheap,
 |  | int * | heapsize
 | ) |  |

void checkdelaunay | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

void checkmesh | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

REAL circletop | ( | struct mesh * | m,
 |  | vertex | pa,
 |  | vertex | pb,
 |  | vertex | pc,
 |  | REAL | ccwabc
 | ) |  |

struct splaynode* circletopinsert | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct splaynode * | splayroot,
 |  | struct otri * | newkey,
 |  | vertex | pa,
 |  | vertex | pb,
 |  | vertex | pc,
 |  | REAL | topy
 | ) |  |

void constrainededge | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct otri * | starttri,
 |  | vertex | endpoint2,
 |  | int | newmark
 | ) |  |

REAL counterclockwise | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | vertex | pa,
 |  | vertex | pb,
 |  | vertex | pc
 | ) |  |

REAL counterclockwiseadapt | ( | vertex | pa,
 |  | vertex | pb,
 |  | vertex | pc,
 |  | REAL | detsum
 | ) |  |

void createeventheap | ( | struct mesh * | m,
 |  | struct event *** | eventheap,
 |  | struct event ** | events,
 |  | struct event ** | freeevents
 | ) |  |

long delaunay | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

void delaunayfixup | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct otri * | fixuptri,
 |  | int | leftside
 | ) |  |

long divconqdelaunay | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

void divconqrecurse | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | vertex * | sortarray,
 |  | int | vertices,
 |  | int | axis,
 |  | struct otri * | farleft,
 |  | struct otri * | farright
 | ) |  |

void dummyinit | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | int | trianglewords,
 |  | int | subsegwords
 | ) |  |

REAL estimate | ( | int | elen,
 |  | REAL * | e
 | ) |  |

void eventheapdelete | ( | struct event ** | heap,
 |  | int | heapsize,
 |  | int | eventnum
 | ) |  |

void eventheapify | ( | struct event ** | heap,
 |  | int | heapsize,
 |  | int | eventnum
 | ) |  |

void eventheapinsert | ( | struct event ** | heap,
 |  | int | heapsize,
 |  | struct event * | newevent
 | ) |  |

void exactinit ( )

int fast_expansion_sum_zeroelim | ( | int | elen,
 |  | REAL * | e,
 |  | int | flen,
 |  | REAL * | f,
 |  | REAL * | h
 | ) |  |

void findcircumcenter | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | vertex | torg,
 |  | vertex | tdest,
 |  | vertex | tapex,
 |  | vertex | circumcenter,
 |  | REAL * | xi,
 |  | REAL * | eta,
 |  | REAL * | minedge
 | ) |  |

enum finddirectionresult finddirection | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct otri * | searchtri,
 |  | vertex | searchpoint
 | ) |  |

void flip | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct otri * | flipedge
 | ) |  |

void formskeleton | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | int * | segmentlist,
 |  | int * | segmentmarkerlist,
 |  | int | numberofsegments
 | ) |  |

struct splaynode* frontlocate | ( | struct mesh * | m,
 |  | struct splaynode * | splayroot,
 |  | struct otri * | bottommost,
 |  | vertex | searchvertex,
 |  | struct otri * | searchtri,
 |  | int * | farright
 | ) |  |

vertex getvertex | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | int | number
 | ) |  |

void highorder | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

REAL incircle | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | vertex | pa,
 |  | vertex | pb,
 |  | vertex | pc,
 |  | vertex | pd
 | ) |  |

REAL incircleadapt | ( | vertex | pa,
 |  | vertex | pb,
 |  | vertex | pc,
 |  | vertex | pd,
 |  | REAL | permanent
 | ) |  |

long incrementaldelaunay | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

void infecthull | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

void initializetrisubpools | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

void initializevertexpool | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

void insertsegment | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | vertex | endpoint1,
 |  | vertex | endpoint2,
 |  | int | newmark
 | ) |  |

void insertsubseg | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct otri * | tri,
 |  | int | subsegmark
 | ) |  |

enum insertvertexresult insertvertex | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | vertex | newvertex,
 |  | struct otri * | searchtri,
 |  | struct osub * | splitseg,
 |  | int | segmentflaws,
 |  | int | triflaws,
 |  | REAL | iradius
 | ) |  |

void internalerror ( )

enum locateresult locate | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | vertex | searchpoint,
 |  | struct otri * | searchtri
 | ) |  |

void makesubseg | ( | struct mesh * | m,
 |  | struct osub * | newsubseg
 | ) |  |

void maketriangle | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct otri * | newotri
 | ) |  |

void makevertexmap | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

void markhull | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

void mergehulls | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct otri * | farleft,
 |  | struct otri * | innerleft,
 |  | struct otri * | innerright,
 |  | struct otri * | farright,
 |  | int | axis
 | ) |  |

REAL nonregular | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | vertex | pa,
 |  | vertex | pb,
 |  | vertex | pc,
 |  | vertex | pd
 | ) |  |

void numbernodes | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

REAL orient3d | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | vertex | pa,
 |  | vertex | pb,
 |  | vertex | pc,
 |  | vertex | pd,
 |  | REAL | aheight,
 |  | REAL | bheight,
 |  | REAL | cheight,
 |  | REAL | dheight
 | ) |  |

REAL orient3dadapt | ( | vertex | pa,
 |  | vertex | pb,
 |  | vertex | pc,
 |  | vertex | pd,
 |  | REAL | aheight,
 |  | REAL | bheight,
 |  | REAL | cheight,
 |  | REAL | dheight,
 |  | REAL | permanent
 | ) |  |

void parsecommandline | ( | int | argc,
 |  | char ** | argv,
 |  | struct behavior * | b
 | ) |  |

void plague | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

VOID* poolalloc ( struct memorypool * pool )

void pooldealloc | ( | struct memorypool * | pool,
 |  | VOID * | dyingitem
 | ) |  |

void pooldeinit ( struct memorypool * pool )

void poolinit | ( | struct memorypool * | pool,
 |  | int | bytecount,
 |  | int | itemcount,
 |  | enum wordtype | wtype,
 |  | int | alignment
 | ) |  |

void poolrestart ( struct memorypool * pool )

enum locateresult preciselocate | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | vertex | searchpoint,
 |  | struct otri * | searchtri,
 |  | int | stopatsubsegment
 | ) |  |

void printsubseg | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct osub * | s
 | ) |  |

void printtriangle | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct otri * | t
 | ) |  |

void quality_statistics | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

unsigned long randomnation ( unsigned int choices )

void regionplague | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | REAL | attribute,
 |  | REAL | area
 | ) |  |

long removebox | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

long removeghosts | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct otri * | startghost
 | ) |  |

int rightofhyperbola | ( | struct mesh * | m,
 |  | struct otri * | fronttri,
 |  | vertex | newsite
 | ) |  |

int scale_expansion_zeroelim | ( | int | elen,
 |  | REAL * | e,
 |  | REAL | b,
 |  | REAL * | h
 | ) |  |

int scoutsegment | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct otri * | searchtri,
 |  | vertex | endpoint2,
 |  | int | newmark
 | ) |  |

void segmentintersection | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct otri * | splittri,
 |  | struct osub * | splitsubseg,
 |  | vertex | endpoint2
 | ) |  |

struct splaynode* splay | ( | struct mesh * | m,
 |  | struct splaynode * | splaytree,
 |  | vertex | searchpoint,
 |  | struct otri * | searchtri
 | ) |  |

struct splaynode* splayinsert | ( | struct mesh * | m,
 |  | struct splaynode * | splayroot,
 |  | struct otri * | newkey,
 |  | vertex | searchpoint
 | ) |  |

void statistics | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

void subsegdealloc | ( | struct mesh * | m,
 |  | subseg * | dyingsubseg
 | ) |  |

subseg* subsegtraverse ( struct mesh * m )

long sweeplinedelaunay | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

void transfernodes | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | REAL * | pointlist,
 |  | REAL * | pointattriblist,
 |  | int * | pointmarkerlist,
 |  | int | numberofpoints,
 |  | int | numberofpointattribs
 | ) |  |

void traversalinit ( struct memorypool * pool )

VOID* traverse ( struct memorypool * pool )

void triangledealloc | ( | struct mesh * | m,
 |  | triangle * | dyingtriangle
 | ) |  |

void triangledeinit | ( | struct mesh * | m,
 |  | struct behavior * | b
 | ) |  |

void triangleinit ( struct mesh * m )

triangle* triangletraverse ( struct mesh * m )

void triangulate | ( | char * | triswitches,
 |  | struct triangulateio * | in,
 |  | struct triangulateio * | out,
 |  | struct triangulateio * | vorout
 | ) |  |

void triangulatepolygon | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct otri * | firstedge,
 |  | struct otri * | lastedge,
 |  | int | edgecount,
 |  | int | doflip,
 |  | int | triflaws
 | ) |  |

void trifree ( VOID * memptr )

VOID* trimalloc ( int size )

int triunsuitable | ( | vertex | triorg,
 |  | vertex | tridest,
 |  | vertex | triapex,
 |  | REAL | area
 | ) |  |

void unflip | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | struct otri * | flipedge
 | ) |  |

void vertexdealloc | ( | struct mesh * | m,
 |  | vertex | dyingvertex
 | ) |  |

void vertexmedian | ( | vertex * | sortarray,
 |  | int | arraysize,
 |  | int | median,
 |  | int | axis
 | ) |  |

void vertexsort | ( | vertex * | sortarray,
 |  | int | arraysize
 | ) |  |

vertex vertextraverse ( struct mesh * m )

void writeedges | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | int ** | edgelist,
 |  | int ** | edgemarkerlist
 | ) |  |

void writeelements | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | int ** | trianglelist,
 |  | REAL ** | triangleattriblist
 | ) |  |

void writeneighbors | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | int ** | neighborlist
 | ) |  |

void writenodes | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | REAL ** | pointlist,
 |  | REAL ** | pointattriblist,
 |  | int ** | pointmarkerlist
 | ) |  |

void writepoly | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | int ** | segmentlist,
 |  | int ** | segmentmarkerlist
 | ) |  |

void writevoronoi | ( | struct mesh * | m,
 |  | struct behavior * | b,
 |  | REAL ** | vpointlist,
 |  | REAL ** | vpointattriblist,
 |  | int ** | vpointmarkerlist,
 |  | int ** | vedgelist,
 |  | int ** | vedgemarkerlist,
 |  | REAL ** | vnormlist
 | ) |  |

Переменные

REAL ccwerrboundA

REAL ccwerrboundB

REAL ccwerrboundC

REAL epsilon

Примеры:
test_plf_filters.cpp.

REAL iccerrboundA

REAL iccerrboundB

REAL iccerrboundC

int minus1mod3[3] = {2, 0, 1}

REAL o3derrboundA

REAL o3derrboundB

REAL o3derrboundC

int plus1mod3[3] = {1, 2, 0}

unsigned long randomseed

REAL resulterrbound

REAL splitter

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл sfm_mesh_triangle.h

  • Файлы
  • Список членов всех файлов

Файл sfm_mesh_triangle.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

struct | triangulateio

Макросы

#define | REAL double

Функции

void | triangulate (char *, struct triangulateio *, struct triangulateio *, struct triangulateio *)

Макросы

#define REAL double

Функции

void triangulate | ( | char * | ,
 |  | struct triangulateio * | ,
 |  | struct triangulateio * | ,
 |  | struct triangulateio * |
 | ) |  |


Pipe Line Filters: Файл sfm_mesh_TriResult.cpp

  • Файлы
  • Список членов всех файлов

Файл sfm_mesh_TriResult.cpp

#include <stdio.h>
#include <stdlib.h>
#include <cmath>
#include <iostream>
#include <string.h>
#include "sfm_mesh_TriResult.h"

Граф включаемых заголовочных файлов для sfm_mesh_TriResult.cpp:

Макросы

#define REAL double

Макросы

#define REAL double

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл sfm_mesh_TriResult.h

  • Файлы
  • Список членов всех файлов

Файл sfm_mesh_TriResult.h

#include "sfm_mesh_triangle.h"
#include "num_linalg.h"

Граф включаемых заголовочных файлов для sfm_mesh_TriResult.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class TriResult


Pipe Line Filters: Файл sfm_quaternion.h

  • Файлы
  • Список членов всех файлов

Файл sfm_quaternion.h

#include "vtl_meta_base.h"
#include "num_linalg.h"

Граф включаемых заголовочных файлов для sfm_quaternion.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

struct Quaternion< T >


Pipe Line Filters: Файл sfm_reconsruction.h

  • Файлы
  • Список членов всех файлов

Файл sfm_reconsruction.h

#include "sfm_types.h"
#include "sfm_calibration.h"
#include "sfm_reconsruction_dlt.h"
#include "num_optimization.h"
#include "Point2D.h"
#include "Points2DSet.h"

Граф включаемых заголовочных файлов для sfm_reconsruction.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D
namespace | Basics3D::Structure

Классы

struct | Basics3D::Structure::Pt< T >
struct | Basics3D::Structure::CameraPos< T >
class | Basics3D::Structure::Comp3D< T >
class | Basics3D::Structure::ProjectiveToMetric< T >


Pipe Line Filters: Файл sfm_reconsruction_dlt.h

  • Файлы
  • Список членов всех файлов

Файл sfm_reconsruction_dlt.h

#include <iostream>
#include <iomanip>
#include <algorithm>
#include <functional>
#include "loki_typeManip.h"
#include "loki_static_check.h"
#include "num_linalg.h"
#include "alexandresku.h"
#include "vtl_meta_base.h"
#include "sfm_dbg.h"

Граф включаемых заголовочных файлов для sfm_reconsruction_dlt.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D
namespace | Basics3D::Structure

Классы

struct | Basics3D::Structure::Dlt< T >


Pipe Line Filters: Файл sfm_structure_from_2_views.h

  • Файлы
  • Список членов всех файлов

Файл sfm_structure_from_2_views.h

#include "num_linalg.h"
#include "sfm_calibration.h"
#include "sfm_reconsruction.h"
#include "sfm_export_3D_model.h"
#include "Point2D.h"
#include "Points2DSet.h"

Граф включаемых заголовочных файлов для sfm_structure_from_2_views.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D
namespace | Basics3D::Structure

Функции

template<typename value_type, int N3_>
void | Basics3D::Structure::FromFM (const T_Points2DSet< C_Point2D > &in_points2D, const Vtl::NumAlg::Lin::ublas::c_matrix< value_type, N3_, N3_ > &F, const value_type in_sigma)


Pipe Line Filters: Файл sfm_types.h

  • Файлы
  • Список членов всех файлов

Файл sfm_types.h

#include "num_linalg.h"
#include "Point2D.h"
#include "Points2DSet.h"

Граф включаемых заголовочных файлов для sfm_types.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

struct | Basics3D::PointStatus
Define struct to clear namespace from personal enum names. Подробнее...
struct | Basics3D::Types< T >
Типы для использования в задачах восстановления 3D по изображениям. Использовать при определении типов во всех классахъ и функциях. Подробнее...


Pipe Line Filters: Файл SolveEq.cpp

  • Файлы
  • Список членов всех файлов

Файл SolveEq.cpp

#include "SolveEq.h"

Граф включаемых заголовочных файлов для SolveEq.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл SolveEq.h

  • Файлы
  • Список членов всех файлов

Файл SolveEq.h

#include <vector>
#include <iostream>
#include <math.h>
#include "Bracketing.h"
#include "Newton-Raphson.h"
#include "Func.h"

Граф включаемых заголовочных файлов для SolveEq.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::SolveEq


Pipe Line Filters: Файл SolveSystem.h

  • Файлы
  • Список членов всех файлов

Файл SolveSystem.h

#include "num_linalg.h"

Граф включаемых заголовочных файлов для SolveSystem.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Функции

template<class SystemType, class SolutionType>
void | Basics3D::SolveSystem (SolutionType &out_Vect, const SystemType &in_System)


Pipe Line Filters: Файл Sort.h

  • Файлы
  • Список членов всех файлов

Файл Sort.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

struct | Basics3D::SortS< T >


Pipe Line Filters: Файл spec_functions.h

  • Файлы
  • Список членов всех файлов

Файл spec_functions.h

#include "numalg.h"

Граф включаемых заголовочных файлов для spec_functions.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::NumAlg
namespace | Vtl::NumAlg::Spf

Классы

class | Vtl::NumAlg::Spf::bess
Returns the Bessel functions for any real x. Подробнее...
class | Vtl::NumAlg::Spf::Gamma

Макросы

#define | ITMAX 100
#define | EPS 3.0e-7f
#define | FPMIN 1.0e-30f

Функции

float | Vtl::NumAlg::Spf::erf (float x)
Returns the error function erf(x). Функция ошибок, определяется формулой: .
float | Vtl::NumAlg::Spf::erfc (float x)
Returns the complementary error function erfc(x). Определяется формулой: .
float | Vtl::NumAlg::Spf::erfcc (float x)
Returns the complementary error function erfc(x) with fractional error everywhere less than 1.2e-7. ТО же самое, что и функция erfc(), но, возможно, вычисляется быстрее. Определяется формулой: .

Макросы

#define EPS 3.0e-7f

#define FPMIN 1.0e-30f

#define ITMAX 100

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл ss_ridge_det.h

  • Файлы
  • Список членов всех файлов

Файл ss_ridge_det.h

#include "num_linalg.h"
#include "AImage.h"
#include "plf_functors.h"
#include "plf_kernels_1d.h"
#include "Hanina/ss_ridge_functors.h"

Граф включаемых заголовочных файлов для ss_ridge_det.h:

См. исходные тексты.

Пространства имен

namespace | Hanina

Классы

class | Hanina::Hessian3D< T >
class | Hanina::Planes3< T >


Pipe Line Filters: Файл ss_ridge_functors.h

  • Файлы
  • Список членов всех файлов

Файл ss_ridge_functors.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Hanina

Классы

class | Hanina::Comb_ridge< T1, T2 >
class | Hanina::Check_4_grad_sign_change< T >
class | Hanina::FillingHessianMatrix3x3
class | Hanina::p33< T, 0, 1 >
class | Hanina::p33< T, 1, 2 >
class | Hanina::p33< T, 0, 2 >
class | Hanina::ScaleScan3x3< T >

Функции

template<int d_a, int d_b, typename T, class F>
void | Hanina::v12_bilin (T alpha, T beta, T &v1, T &v2, F p)
template<typename T, class F>
void | Hanina::v12_bilinear (T alpha, T beta, T &v1, T &v2, F p)


Pipe Line Filters: Файл ss_ridge_functors_2.h

  • Файлы
  • Список членов всех файлов

Файл ss_ridge_functors_2.h

См. исходные тексты.

Пространства имен

namespace | Hanina

Классы

struct | Hanina::HessianDetSqrt< T >
struct | Hanina::HessianEigenDiff< T >
struct | Hanina::HessianEigenDiffAndMaxCurvatureDirection
struct | Hanina::Luv_from_xy_derivatives< T >
class | Hanina::ZeroCrossVisualization< T >
class | Hanina::ZeroCross< T >


Pipe Line Filters: Файл start_median.h

  • Файлы
  • Список членов всех файлов

Файл start_median.h

См. исходные тексты.


Pipe Line Filters: Файл StatDiff.h

  • Файлы
  • Список членов всех файлов

Файл StatDiff.h

#include <cmath>
#include "convolve.h"
#include "plf_kernels_1d.h"

Граф включаемых заголовочных файлов для StatDiff.h:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Plf
namespace | Vtl::Plf::F31

Классы

class | Vtl::Plf::F31::StatDiffThresh< T >

Макросы

#define | _USE_MATH_DEFINES

Функции

template<typename T>
void | GetStatCharact (T *mean, T *sq, const T *img, const int w, const int h, float sigma, float nsigmas_env)
template<typename T, typename Func>
void | StatDiff (T *result, const T *img, const int w, const int h, const float sigma, const float nsigmas_env, Func stDiffFunc)
template<typename T>
void | GradStatDiff (T *gradMod, T *statDiff, T *Lx, T *Ly, int w, int h)

Макросы

#define _USE_MATH_DEFINES

Функции

template<typename T>
void GetStatCharact | ( | T * | mean,
 |  | T * | sq,
 |  | const T * | img,
 |  | const int | w,
 |  | const int | h,
 |  | float | sigma,
 |  | float | nsigmas_env
 | ) |  |

template<typename T>
void GradStatDiff | ( | T * | gradMod,
 |  | T * | statDiff,
 |  | T * | Lx,
 |  | T * | Ly,
 |  | int | w,
 |  | int | h
 | ) |  |

template<typename T, typename Func>
void StatDiff | ( | T * | result,
 |  | const T * | img,
 |  | const int | w,
 |  | const int | h,
 |  | const float | sigma,
 |  | const float | nsigmas_env,
 |  | Func | stDiffFunc
 | ) |  |


Pipe Line Filters: Файл stdint.h

  • Файлы
  • Список членов всех файлов

Файл stdint.h

#include "wchar.h"

Граф включаемых заголовочных файлов для stdint.h:

См. исходные тексты.

Макросы

#define | INT8_MIN (-128)
#define | INT16_MIN (-32768)
#define | INT32_MIN (-2147483647 - 1)
#define | INT64_MIN (-9223372036854775807LL - 1)
#define | INT8_MAX 127
#define | INT16_MAX 32767
#define | INT32_MAX 2147483647
#define | INT64_MAX 9223372036854775807LL
#define | UINT8_MAX 0xff
#define | UINT16_MAX 0xffff
#define | UINT32_MAX 0xffffffff
#define | UINT64_MAX 0xffffffffffffffffULL
#define | INT_LEAST8_MIN INT8_MIN
#define | INT_LEAST16_MIN INT16_MIN
#define | INT_LEAST32_MIN INT32_MIN
#define | INT_LEAST64_MIN INT64_MIN
#define | INT_LEAST8_MAX INT8_MAX
#define | INT_LEAST16_MAX INT16_MAX
#define | INT_LEAST32_MAX INT32_MAX
#define | INT_LEAST64_MAX INT64_MAX
#define | UINT_LEAST8_MAX UINT8_MAX
#define | UINT_LEAST16_MAX UINT16_MAX
#define | UINT_LEAST32_MAX UINT32_MAX
#define | UINT_LEAST64_MAX UINT64_MAX
#define | INT_FAST8_MIN INT8_MIN
#define | INT_FAST16_MIN INT16_MIN
#define | INT_FAST32_MIN INT32_MIN
#define | INT_FAST64_MIN INT64_MIN
#define | INT_FAST8_MAX INT8_MAX
#define | INT_FAST16_MAX INT16_MAX
#define | INT_FAST32_MAX INT32_MAX
#define | INT_FAST64_MAX INT64_MAX
#define | UINT_FAST8_MAX UINT8_MAX
#define | UINT_FAST16_MAX UINT16_MAX
#define | UINT_FAST32_MAX UINT32_MAX
#define | UINT_FAST64_MAX UINT64_MAX
#define | INTPTR_MIN INT32_MIN
#define | INTPTR_MAX INT32_MAX
#define | UINTPTR_MAX UINT32_MAX
#define | INTMAX_MIN INT64_MIN
#define | INTMAX_MAX INT64_MAX
#define | UINTMAX_MAX UINT64_MAX
#define | PTRDIFF_MIN INT32_MIN
#define | PTRDIFF_MAX INT32_MAX
#define | SIG_ATOMIC_MIN INT32_MIN
#define | SIG_ATOMIC_MAX INT32_MAX
#define | SIZE_MAX UINT32_MAX
#define | WCHAR_MIN 0
#define | WCHAR_MAX ((wchar_t)-1)
#define | WINT_MIN 0
#define | WINT_MAX ((wint_t)-1)
#define | INT8_C(val) (INT_LEAST8_MAX-INT_LEAST8_MAX+(val))
#define | INT16_C(val) (INT_LEAST16_MAX-INT_LEAST16_MAX+(val))
#define | INT32_C(val) (INT_LEAST32_MAX-INT_LEAST32_MAX+(val))
#define | INT64_C(val) (INT_LEAST64_MAX-INT_LEAST64_MAX+(val))
#define | UINT8_C(val) (UINT_LEAST8_MAX-UINT_LEAST8_MAX+(val))
#define | UINT16_C(val) (UINT_LEAST16_MAX-UINT_LEAST16_MAX+(val))
#define | UINT32_C(val) (UINT_LEAST32_MAX-UINT_LEAST32_MAX+(val))
#define | UINT64_C(val) (UINT_LEAST64_MAX-UINT_LEAST64_MAX+(val))
#define | INTMAX_C(val) (INTMAX_MAX-INTMAX_MAX+(val))
#define | UINTMAX_C(val) (UINTMAX_MAX-UINTMAX_MAX+(val))

Определения типов

typedef signed char | int8_t
typedef short | int16_t
typedef int | int32_t
typedef __int64 | int64_t
typedef unsigned char | uint8_t
typedef unsigned short | uint16_t
typedef unsigned int | uint32_t
typedef unsigned __int64 | uint64_t
typedef int8_t | int_least8_t
typedef int16_t | int_least16_t
typedef int32_t | int_least32_t
typedef int64_t | int_least64_t
typedef uint8_t | uint_least8_t
typedef uint16_t | uint_least16_t
typedef uint32_t | uint_least32_t
typedef uint64_t | uint_least64_t
typedef int8_t | int_fast8_t
typedef int16_t | int_fast16_t
typedef int32_t | int_fast32_t
typedef int64_t | int_fast64_t
typedef uint8_t | uint_fast8_t
typedef uint16_t | uint_fast16_t
typedef uint32_t | uint_fast32_t
typedef uint64_t | uint_fast64_t
typedef int | intptr_t
typedef unsigned | uintptr_t
typedef int64_t | intmax_t
typedef uint64_t | uintmax_t

Макросы

#define INT16_C ( val ) (INT_LEAST16_MAX-INT_LEAST16_MAX+(val))

#define INT16_MAX 32767

#define INT16_MIN (-32768)

#define INT32_C ( val ) (INT_LEAST32_MAX-INT_LEAST32_MAX+(val))

#define INT32_MAX 2147483647

#define INT32_MIN (-2147483647 - 1)

#define INT64_C ( val ) (INT_LEAST64_MAX-INT_LEAST64_MAX+(val))

#define INT64_MAX 9223372036854775807LL

#define INT64_MIN (-9223372036854775807LL - 1)

#define INT8_C ( val ) (INT_LEAST8_MAX-INT_LEAST8_MAX+(val))

#define INT8_MAX 127

#define INT8_MIN (-128)

#define INT_FAST16_MAX INT16_MAX

#define INT_FAST16_MIN INT16_MIN

#define INT_FAST32_MAX INT32_MAX

#define INT_FAST32_MIN INT32_MIN

#define INT_FAST64_MAX INT64_MAX

#define INT_FAST64_MIN INT64_MIN

#define INT_FAST8_MAX INT8_MAX

#define INT_FAST8_MIN INT8_MIN

#define INT_LEAST16_MAX INT16_MAX

#define INT_LEAST16_MIN INT16_MIN

#define INT_LEAST32_MAX INT32_MAX

#define INT_LEAST32_MIN INT32_MIN

#define INT_LEAST64_MAX INT64_MAX

#define INT_LEAST64_MIN INT64_MIN

#define INT_LEAST8_MAX INT8_MAX

#define INT_LEAST8_MIN INT8_MIN

#define INTMAX_C ( val ) (INTMAX_MAX-INTMAX_MAX+(val))

#define INTMAX_MAX INT64_MAX

#define INTMAX_MIN INT64_MIN

#define INTPTR_MAX INT32_MAX

#define INTPTR_MIN INT32_MIN

#define PTRDIFF_MAX INT32_MAX

#define PTRDIFF_MIN INT32_MIN

#define SIG_ATOMIC_MAX INT32_MAX

#define SIG_ATOMIC_MIN INT32_MIN

#define SIZE_MAX UINT32_MAX

#define UINT16_C ( val ) (UINT_LEAST16_MAX-UINT_LEAST16_MAX+(val))

#define UINT16_MAX 0xffff

#define UINT32_C ( val ) (UINT_LEAST32_MAX-UINT_LEAST32_MAX+(val))

#define UINT32_MAX 0xffffffff

#define UINT64_C ( val ) (UINT_LEAST64_MAX-UINT_LEAST64_MAX+(val))

#define UINT64_MAX 0xffffffffffffffffULL

#define UINT8_C ( val ) (UINT_LEAST8_MAX-UINT_LEAST8_MAX+(val))

#define UINT8_MAX 0xff

#define UINT_FAST16_MAX UINT16_MAX

#define UINT_FAST32_MAX UINT32_MAX

#define UINT_FAST64_MAX UINT64_MAX

#define UINT_FAST8_MAX UINT8_MAX

#define UINT_LEAST16_MAX UINT16_MAX

#define UINT_LEAST32_MAX UINT32_MAX

#define UINT_LEAST64_MAX UINT64_MAX

#define UINT_LEAST8_MAX UINT8_MAX

#define UINTMAX_C ( val ) (UINTMAX_MAX-UINTMAX_MAX+(val))

#define UINTMAX_MAX UINT64_MAX

#define UINTPTR_MAX UINT32_MAX

#define WCHAR_MAX ((wchar_t)-1)

#define WCHAR_MIN 0

#define WINT_MAX ((wint_t)-1)

#define WINT_MIN 0

Типы

typedef short int16_t

typedef int int32_t

typedef __int64 int64_t

typedef signed char int8_t

typedef int16_t int_fast16_t

typedef int32_t int_fast32_t

typedef int64_t int_fast64_t

typedef int8_t int_fast8_t

typedef int16_t int_least16_t

typedef int32_t int_least32_t

typedef int64_t int_least64_t

typedef int8_t int_least8_t

typedef int64_t intmax_t

typedef int intptr_t

typedef unsigned short uint16_t

Примеры:
invert.cpp.

typedef unsigned int uint32_t

typedef unsigned __int64 uint64_t

typedef unsigned char uint8_t

Примеры:
invert.cpp и work_with_image.cpp.

typedef uint16_t uint_fast16_t

typedef uint32_t uint_fast32_t

typedef uint64_t uint_fast64_t

typedef uint8_t uint_fast8_t

typedef uint16_t uint_least16_t

typedef uint32_t uint_least32_t

typedef uint64_t uint_least64_t

typedef uint8_t uint_least8_t

typedef uint64_t uintmax_t

typedef unsigned uintptr_t


Pipe Line Filters: Файл storage.h

  • Файлы
  • Список членов всех файлов

Файл storage.h

#include <sstream>
#include <vector>
#include <iostream>

Граф включаемых заголовочных файлов для storage.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::ImAlg
namespace | Vtl::ImAlg::Registration

Классы

class | Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >
Класс, для выделения нескольких блоков памяти (и их освобождения). Обеспечивает выравнивание блоков, и обеспечивает, чтобы смещение между любой парой блоков не равнялось указанному числу. Подробнее см. описание к макроопределению PROCESSOR_MEMORY_AVOID_PTR_DIFF . Подробнее...

Макросы

#define | PROCESSOR_MEMORY_ALIGNMENT 32
#define | PROCESSOR_MEMORY_AVOID_PTR_DIFF 64*1024

Макросы

#define PROCESSOR_MEMORY_ALIGNMENT 32

An extract from "Intel ® Integrated Performance Primitives (IPP) -Performance Tips and Tricks":

The following performance results using the IPP copy function on an Intel Pentium 4 processor clearly present the differences for different alignments of the source data:
Source align, B | 16+0 | 16+4 | 16+3
cpe | 0.3 | 0.5 | 0.7

The cpe is number of CPU-cycles per element.

#define PROCESSOR_MEMORY_AVOID_PTR_DIFF 64*1024

An extract from "Intel ® Integrated Performance Primitives (IPP) -Performance Tips and Tricks":

It is very important when developing on the Intel Pentium 4 processor that two pointers used by a function do not differ by a multiple of 64 KB. Performance of the function is decreased significantly where two pointers differ by a multiple of 64 KB. This is particular to the current version of the Intel Pentium 4 processor. For example, consider the

ippsCplxToReal_32fc function:

  for(n=0;n<length;n++)
  {
    pRe[n]=pSrc[n].re;
    pIm[n]=pSrc[n].im;
  }
Performance decreases sharply if difference between the pRe and pIm pointers is 64 KB or a multiple of that. We can see below that performance becomes 80 cpe instead of 5 cpe.


Pipe Line Filters: Файл StructureComputation.cpp

  • Файлы
  • Список членов всех файлов

Файл StructureComputation.cpp

#include "sfm_structure_from_2_views.h"
#include "StructureComputation.h"

Граф включаемых заголовочных файлов для StructureComputation.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл StructureComputation.h

  • Файлы
  • Список членов всех файлов

Файл StructureComputation.h

#include <fstream>
#include <math.h>
#include "num_linalg.h"
#include "Point2D.h"
#include "Points2DSet.h"
#include "Epipole.h"
#include "ProjectiveMatrix.h"
#include "Triangulation.h"
#include "TransformMatrices.h"
#include "Func.h"
#include "SolveEq.h"
#include "FundamentalMatrix.h"
#include "Model.h"
#include "AutoCalibration.h"

Граф включаемых заголовочных файлов для StructureComputation.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_StructureComputation


Pipe Line Filters: Файл tiff.cpp

  • Файлы
  • Список членов всех файлов

Файл tiff.cpp

#include <stdlib.h>
#include <stdio.h>
#include <io.h>
#include <fcntl.h>
#include <memory.h>
#include <sys\stat.h>
#include "Tiff.h"

Граф включаемых заголовочных файлов для tiff.cpp:

Функции

int __cdecl | writetiff (const char *filename, uint16_t width, uint16_t length, Byte *buffer, uint32_t *paletta)
int __cdecl | readtiff (const char *filename, uint16_t *width, uint16_t *length, Byte *buffer, uint32_t *paletta)

Функции

int __cdecl readtiff | ( | const char * | filename,
 |  | uint16_t * | width,
 |  | uint16_t * | length,
 |  | Byte * | buffer,
 |  | uint32_t * | paletta
 | ) |  |

int __cdecl writetiff | ( | const char * | filename,
 |  | uint16_t | width,
 |  | uint16_t | length,
 |  | Byte * | buffer,
 |  | uint32_t * | paletta
 | ) |  |


Pipe Line Filters: Файл tiff.h

  • Файлы
  • Список членов всех файлов

Файл tiff.h

#include "yfile.h"

Граф включаемых заголовочных файлов для tiff.h:

См. исходные тексты.

Пространства имен

namespace | IFF

Классы

struct | IFF::TIFF_IFDentry
struct | IFF::TIFF_IFD
struct | IFF::TIFF_Header
struct | IFF::TIFF_ImageParms
struct | IFF::TiffTag
class | IFF::TiffWriteIFD
class | IFF::Tiff8Write
class | IFF::TiffReadIFD
class | IFF::Tiff8Read

Макросы

#define | LSB 0x4949
#define | MSB 0x4d4d
#define | NEW_SUBFILE_TYPE_TAG 254
#define | SUBFILE_TYPE_TAG 255
#define | IMAGE_WIDTH_TAG 256
#define | IMAGE_LENGTH_TAG 257
#define | BITS_PER_SAMPLE_TAG 258
#define | TAG_COMPRESSION 259
#define | PHOTOMETRIC_INTERPRETATION_TAG 262
#define | STRIPS_OFFSET_TAG 273
#define | SAMPLES_PER_PIXEL_TAG 277
#define | ROWS_PER_STRIP_TAG 278
#define | STRIPS_BYTE_COUNTS_TAG 279
#define | TAG_PLANAR_CONFIGURATION 284
#define | PALETTE_TAG 320
#define | TTYP_BYTE 1
#define | TTYP_ASCII 2
#define | TTYP_SHORT 3
#define | TTYP_LONG 4
#define | TTYP_RATIONAL 5

Макросы

#define BITS_PER_SAMPLE_TAG 258

#define IMAGE_LENGTH_TAG 257

#define IMAGE_WIDTH_TAG 256

#define LSB 0x4949

#define MSB 0x4d4d

#define NEW_SUBFILE_TYPE_TAG 254

#define PALETTE_TAG 320

#define PHOTOMETRIC_INTERPRETATION_TAG 262

#define ROWS_PER_STRIP_TAG 278

#define SAMPLES_PER_PIXEL_TAG 277

#define STRIPS_BYTE_COUNTS_TAG 279

#define STRIPS_OFFSET_TAG 273

#define SUBFILE_TYPE_TAG 255

#define TAG_COMPRESSION 259

#define TAG_PLANAR_CONFIGURATION 284

#define TTYP_ASCII 2

#define TTYP_BYTE 1

#define TTYP_LONG 4

#define TTYP_RATIONAL 5

#define TTYP_SHORT 3

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл Transform.cpp

  • Файлы
  • Список членов всех файлов

Файл Transform.cpp

#include "Transform.h"

Граф включаемых заголовочных файлов для Transform.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл Transform.h

  • Файлы
  • Список членов всех файлов

Файл Transform.h

#include "consolap.h"
#include "aimage.h"
#include "imalg_tools.h"
#include "imalg_resampling.h"
#include "num_linalg.h"
#include "MatrixOperations.h"

Граф включаемых заголовочных файлов для Transform.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_Transform


Pipe Line Filters: Файл TransformMatrices.cpp

  • Файлы
  • Список членов всех файлов

Файл TransformMatrices.cpp

#include "TransformMatrices.h"

Граф включаемых заголовочных файлов для TransformMatrices.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл TransformMatrices.h

  • Файлы
  • Список членов всех файлов

Файл TransformMatrices.h

#include <math.h>
#include "num_linalg.h"
#include "MatrixOperations.h"

Граф включаемых заголовочных файлов для TransformMatrices.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_TransformMatrices


Pipe Line Filters: Файл Triangulation.cpp

  • Файлы
  • Список членов всех файлов

Файл Triangulation.cpp

#include "Triangulation.h"

Граф включаемых заголовочных файлов для Triangulation.cpp:

Пространства имен

namespace Basics3D


Pipe Line Filters: Файл Triangulation.h

  • Файлы
  • Список членов всех файлов

Файл Triangulation.h

#include "num_linalg.h"
#include "SolveSystem.h"
#include "Point2D.h"
#include "MatrixOperations.h"

Граф включаемых заголовочных файлов для Triangulation.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Basics3D

Классы

class | Basics3D::C_Triangulation


Pipe Line Filters: Файл virtdib.cpp

  • Файлы
  • Список членов всех файлов

Файл virtdib.cpp

#include <math.h>
#include <io.h>
#include <fcntl.h>
#include <sys\stat.h>
#include "VirtDib.h"

Граф включаемых заголовочных файлов для virtdib.cpp:

Макросы

#define | MIN(a, b) ( ((a)<(b)) ? (a) : (b) )

Определения типов

typedef unsigned short | Pix16

Функции

static void | build_line_zoom_in (long *dst, BYTE *src, int left, int right, int zoom_x)
!!! CODE of functions build_line?????? differ ONLY by SECOND ARGUMENT TYPE
static void | build_line_zoom_in (long *dst, Pix16 *src, int left, int right, int zoom_x)
static void | build_line_zoom_out (long *dst, BYTE *src, int left, int right, int zoom_x, int img_width)
static void | build_line_zoom_out (long *dst, Pix16 *src, int left, int right, int zoom_x, int img_width)
static void | build_line_zoom_no (long *dst, BYTE *src, int left, int right)
static void | build_line_zoom_no (long *dst, Pix16 *src, int left, int right)
static void | build_line (long *dst, BYTE *src, int left, int right, int image_width, int zoom_x)
static void | build_line (long *dst, Pix16 *src, int left, int right, int image_width, int zoom_x)
static void | build_line_zoom_in_add (long *dst, BYTE *src, int left, int right, int zoom_x)
static void | build_line_zoom_in_add (long *dst, Pix16 *src, int left, int right, int zoom_x)
static void | build_line_zoom_out_add (long *dst, BYTE *src, int left, int right, int zoom_x, int img_width)
static void | build_line_zoom_out_add (long *dst, Pix16 *src, int left, int right, int zoom_x, int img_width)
static void | build_line_zoom_no_add (long *dst, Pix16 *src, int left, int right)
static void | build_line_zoom_no_add (long *dst, BYTE *src, int left, int right)
static void | build_line_add (long *dst, BYTE *src, int left, int right, int image_width, int zoom_x)
static void | build_line_add (long *dst, Pix16 *src, int left, int right, int image_width, int zoom_x)
static void | normalize_line (BYTE *dst, long *src, int count, int divisor, short bits, const BYTE *map_table)
static void | normalize_line_rgb (BYTE *dst, long *src, int count, int divisor, short bits, const BYTE *map_table)
static void | PaintRect (HDC hdc, HBRUSH hBrush, const RECT &rect)
static void | PaintNotImageArea (HDC hdc, HBRUSH hBrush, const RECT &rect, const SIZE &img_zoomed_size)

Макросы

#define MIN | ( | a,
 |  | b | ) | ( ((a)<(b)) ? (a) : (b) )

Типы

typedef unsigned short Pix16

Функции

static void build_line | ( | long * | dst,
 |  | Pix16 * | src,
 |  | int | left,
 |  | int | right,
 |  | int | image_width,
 |  | int | zoom_x |
 | ) |  |  | [static]

static void build_line | ( | long * | dst,
 |  | BYTE * | src,
 |  | int | left,
 |  | int | right,
 |  | int | image_width,
 |  | int | zoom_x |
 | ) |  |  | [static]

static void build_line_add | ( | long * | dst,
 |  | Pix16 * | src,
 |  | int | left,
 |  | int | right,
 |  | int | image_width,
 |  | int | zoom_x |
 | ) |  |  | [static]

static void build_line_add | ( | long * | dst,
 |  | BYTE * | src,
 |  | int | left,
 |  | int | right,
 |  | int | image_width,
 |  | int | zoom_x |
 | ) |  |  | [static]

static void build_line_zoom_in | ( | long * | dst,
 |  | Pix16 * | src,
 |  | int | left,
 |  | int | right,
 |  | int | zoom_x |
 | ) |  |  | [static]

static void build_line_zoom_in | ( | long * | dst,
 |  | BYTE * | src,
 |  | int | left,
 |  | int | right,
 |  | int | zoom_x |
 | ) |  |  | [static]

!!! CODE of functions build_line?????? differ ONLY by SECOND ARGUMENT TYPE

static void build_line_zoom_in_add | ( | long * | dst,
 |  | Pix16 * | src,
 |  | int | left,
 |  | int | right,
 |  | int | zoom_x |
 | ) |  |  | [static]

static void build_line_zoom_in_add | ( | long * | dst,
 |  | BYTE * | src,
 |  | int | left,
 |  | int | right,
 |  | int | zoom_x |
 | ) |  |  | [static]

static void build_line_zoom_no | ( | long * | dst,
 |  | Pix16 * | src,
 |  | int | left,
 |  | int | right |
 | ) |  |  | [static]

static void build_line_zoom_no | ( | long * | dst,
 |  | BYTE * | src,
 |  | int | left,
 |  | int | right |
 | ) |  |  | [static]

static void build_line_zoom_no_add | ( | long * | dst,
 |  | BYTE * | src,
 |  | int | left,
 |  | int | right |
 | ) |  |  | [static]

static void build_line_zoom_no_add | ( | long * | dst,
 |  | Pix16 * | src,
 |  | int | left,
 |  | int | right |
 | ) |  |  | [static]

static void build_line_zoom_out | ( | long * | dst,
 |  | Pix16 * | src,
 |  | int | left,
 |  | int | right,
 |  | int | zoom_x,
 |  | int | img_width |
 | ) |  |  | [static]

static void build_line_zoom_out | ( | long * | dst,
 |  | BYTE * | src,
 |  | int | left,
 |  | int | right,
 |  | int | zoom_x,
 |  | int | img_width |
 | ) |  |  | [static]

static void build_line_zoom_out_add | ( | long * | dst,
 |  | Pix16 * | src,
 |  | int | left,
 |  | int | right,
 |  | int | zoom_x,
 |  | int | img_width |
 | ) |  |  | [static]

static void build_line_zoom_out_add | ( | long * | dst,
 |  | BYTE * | src,
 |  | int | left,
 |  | int | right,
 |  | int | zoom_x,
 |  | int | img_width |
 | ) |  |  | [static]

static void normalize_line | ( | BYTE * | dst,
 |  | long * | src,
 |  | int | count,
 |  | int | divisor,
 |  | short | bits,
 |  | const BYTE * | map_table |
 | ) |  |  | [static]

static void normalize_line_rgb | ( | BYTE * | dst,
 |  | long * | src,
 |  | int | count,
 |  | int | divisor,
 |  | short | bits,
 |  | const BYTE * | map_table |
 | ) |  |  | [static]

static void PaintNotImageArea | ( | HDC | hdc,
 |  | HBRUSH | hBrush,
 |  | const RECT & | rect,
 |  | const SIZE & | img_zoomed_size |
 | ) |  |  | [static]

static void PaintRect | ( | HDC | hdc,
 |  | HBRUSH | hBrush,
 |  | const RECT & | rect |
 | ) |  |  | [static]


Pipe Line Filters: Файл virtdib.h

  • Файлы
  • Список членов всех файлов

Файл virtdib.h

#include "zoomfact.h"
#include "aimage.h"

Граф включаемых заголовочных файлов для virtdib.h:

См. исходные тексты.

Классы

class | VirtDib
struct | VirtDib::Inf


Pipe Line Filters: Файл vtl_image.h

  • Файлы
  • Список членов всех файлов

Файл vtl_image.h

#include "loki_typeManip.h"
#include "loki_Typelist.h"
#include "loki_static_check.h"
#include "alexandresku.h"
#include "vtl_meta_base.h"
#include "vtl_image_types.h"

Граф включаемых заголовочных файлов для vtl_image.h:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Img

Классы

class | Vtl::Img::Iterator_1D< T, T_stride >
class | Vtl::Img::Iterator_1D< T, 0 >
class | Vtl::Img::BuildIter1DList< T_Layout >
struct | Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, i >
struct | Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, 1 >
struct | Vtl::Img::BuildIter1DList< T_Layout >::build< i >
struct | Vtl::Img::BuildIter1DList< T_Layout >::build< ND >
class | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
class | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >
class | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >
class | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList
struct | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::MoveX_selector< i >
struct | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< i >
struct | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< ND >
class | Vtl::Img::Iterator_ND_spec< T_Layout, isGray, isSubSpace >
class | Vtl::Img::Iterator_ND_spec< T_Layout, false, false >
struct | Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::IterBands
class | Vtl::Img::Iterator_ND_spec< T_Layout, false, true >
struct | Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::IterBands
class | Vtl::Img::Iterator_ND_spec< T_Layout, true, false >
class | Vtl::Img::Iterator_ND_spec< T_Layout, true, true >
class | Vtl::Img::Iterator_ND< T_Layout >
class | Vtl::Img::ImageNDref< T_SList, T_Layout >
struct | Vtl::Img::ImageNDref< T_SList, T_Layout >::Iter1D< i >
struct | Vtl::Img::ImageNDref< T_SList, T_Layout >::IterBands

Определения типов

typedef int | Vtl::Img::offset_type


Pipe Line Filters: Файл vtl_image_old.h

  • Файлы
  • Список членов всех файлов

Файл vtl_image_old.h

#include "loki_typeManip.h"
#include "loki_Typelist.h"
#include "loki_static_check.h"
#include "alexandresku.h"
#include "vtl_meta_base.h"
#include "vtl_image_types.h"

Граф включаемых заголовочных файлов для vtl_image_old.h:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Img
namespace | Vtl::Img::Impl
namespace | Vtl::Img::Impl::Layout

Классы

struct | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
Specialization Compile time known Nbands. Подробнее...
struct | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
Specialization RunTime known Nbands. Подробнее...
class | Vtl::Img::ImageNDref< T_SList, T_Layout >

Определения типов

typedef int | Vtl::Img::offset_type

Функции

template<typename T>
static int | Vtl::Img::Impl::Layout::align (int sz, int align_to)
template<typename T, int N, int Interleave, int stride_0>
offset_type | Vtl::Img::Impl::Layout::build_strides (offset_type *strides, const int *sizes, int align_to, int nbands)


Pipe Line Filters: Файл vtl_image_types.h

  • Файлы
  • Список членов всех файлов

Файл vtl_image_types.h

#include <vector>
#include "alexandresku.h"

Граф включаемых заголовочных файлов для vtl_image_types.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Img
namespace | Vtl::Img::Impl

Классы

struct | Vtl::Img::complex_type< float >
struct | Vtl::Img::complex_type< double >
struct | Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
struct | Vtl::Img::DataType< ST_u8 >
struct | Vtl::Img::DataType< ST_s8 >
struct | Vtl::Img::DataType< ST_s16 >
struct | Vtl::Img::DataType< ST_s32 >
struct | Vtl::Img::DataType< ST_f32 >
struct | Vtl::Img::DataType< ST_f64 >
struct | Vtl::Img::DataType< ST_c32f >
struct | Vtl::Img::DataType< ST_c64f >
struct | Vtl::Img::DataType< ST_u16 >
struct | Vtl::Img::DataType< ST_u32 >
struct | Vtl::Img::DataType< ST_s64 >
struct | Vtl::Img::DataType< ST_u64 >
struct | Vtl::Img::DataTypeId< T >
По типу данных найти идентификатор данных (see SampleType) . Подробнее...
struct | Vtl::Img::DataTypeId< T >::Comp< T1, T2 >
struct | Vtl::Img::T2DataType< T >
По типу данных найти описатель тьипа DataType<>. Подробнее...
struct | Vtl::Img::DataTypeList2TypeList< Types::Typelist< T1, T2 > >
struct | Vtl::Img::DataTypeList2TypeList< T >
struct | Vtl::Img::ImageInfo
Общая информация об изображении. Подробнее...
struct | Vtl::Img::Rgb< T >
struct | Vtl::Img::SampleAccess
struct | Vtl::Img::PaletteAccess
struct | Vtl::Img::ImageDataLayout
class | Vtl::Img::ImageDataLayoutHolder
class | Vtl::Img::ImageStorageStrategyNew< T >
class | Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >
class | Vtl::Img::pic_plane< pel, stride >
class | Vtl::Img::ImageBase< P, planes, interleave >
class | Vtl::Img::Image< P, planes, interleave >
class | Vtl::Img::Image< P, planes, BIP >
class | Vtl::Img::Image< P, planes, SEP >

Макросы

#define | IMAGE_DATA_LAYOUT_VERSION 100

Определения типов

typedef Vtl::Types::TL::NoDuplicates<
TYPELIST_12(DataType< ST_u8 >,
DataType< ST_s8 >, DataType<
ST_s16 >, DataType< ST_s32 >,
DataType< ST_f32 >, DataType<
ST_f64 >, DataType< ST_c32f >,
DataType< ST_c64f >,DataType<
ST_u16 >, DataType< ST_u32 >,
DataType< ST_s64 >, DataType<
ST_u64 >) >::Result 		Vtl::Img::EnviSample_DataTypesList
typedef DataTypeList2TypeList<
EnviSample_DataTypesList
>::Result 		Vtl::Img::EnviSampleTypesList

Перечисления

enum Vtl::Img::ImageClass {
Vtl::Img::Mask, Vtl::Img::Palette, Vtl::Img::Grayscale, Vtl::Img::TrueColor,
Vtl::Img::Multichan
}
image classes -------------------- Подробнее...
enum | Vtl::Img::Interleave { Vtl::Img::SEP = -1, Vtl::Img::BIP = 0, Vtl::Img::BIL = 1, Vtl::Img::BSQ = 2 }
Image layout in memory/file (type of ordering). Подробнее...
enum Vtl::Img::SampleType {
Vtl::Img::ST_Unknown = 255, Vtl::Img::ST_u8 = 1, Vtl::Img::ST_s8 = 254, Vtl::Img::ST_s16 = 2,
Vtl::Img::ST_s32 = 3, Vtl::Img::ST_f32 = 4, Vtl::Img::ST_f64 = 5, Vtl::Img::ST_c32f = 6,
Vtl::Img::ST_c64f = 9, Vtl::Img::ST_u16 = 12, Vtl::Img::ST_u32 = 13, Vtl::Img::ST_s64 = 14,
Vtl::Img::ST_u64 = 15
}

Макросы

#define IMAGE_DATA_LAYOUT_VERSION 100

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл vtl_meta_base.h

  • Файлы
  • Список членов всех файлов

Файл vtl_meta_base.h

#include <iostream>
#include "vtl_meta_tools.h"
#include "vtl_meta_IndexList.h"
#include "vtl_meta_permutations.h"

Граф включаемых заголовочных файлов для vtl_meta_base.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.


Pipe Line Filters: Файл vtl_meta_IndexList.h

  • Файлы
  • Список членов всех файлов

Файл vtl_meta_IndexList.h

#include <iostream>
#include "loki_typeManip.h"
#include "loki_NullType.h"

Граф включаемых заголовочных файлов для vtl_meta_IndexList.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Meta
namespace | Vtl::Meta::IL

Классы

struct | Vtl::Meta::IndexList< i, T >
struct | Vtl::Meta::IL::ERROR__Index_out_of_IndexList_range< j >
Used for error reporting (invalid index in IndexList) during compile. Подробнее...
struct | Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >
Создать список из указанных индексов (в указанном порядке, без контроля повторов). В ЭТОМ И ТОЛЬКО ЭТОМ АЛГОРИТМЕ -1 считается недопустимым индексом и используется как указатель конца списка. Подробнее...
struct | Vtl::Meta::IL::Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >
struct | Vtl::Meta::IL::MakeInRange< i, n >
Создать список из последовательных индексов i, i+1, i+2, ... n-1. Например MakeInRange<12,15>::Result - это списко чисел 12,13,14. Подробнее...
struct | Vtl::Meta::IL::MakeInRange< n, n >
struct | Vtl::Meta::IL::PushFront< i, IList >
Создать новый список состоящий из числа i за которым идут числа из списка IList. Подробнее...
struct | Vtl::Meta::IL::PushBack< i, Loki::NullType >
struct | Vtl::Meta::IL::PushBack< i, IndexList< j, Tail > >
struct | Vtl::Meta::IL::ConCat< Head, IndexList< i, Tail > >
struct | Vtl::Meta::IL::ConCat< Head, Loki::NullType >
struct | Vtl::Meta::IL::Length< Loki::NullType >
struct | Vtl::Meta::IL::Length< IndexList< i, T > >
struct | Vtl::Meta::IL::IndexOf< i, Loki::NullType >
struct | Vtl::Meta::IL::IndexOf< i, IndexList< i, T > >
struct | Vtl::Meta::IL::IndexOf< i, IndexList< j, T > >
struct | Vtl::Meta::IL::Elem< 0, IndexList< j, T > >
struct | Vtl::Meta::IL::Elem< i, IndexList< j, T > >
struct | Vtl::Meta::IL::Elem< i, Loki::NullType >
struct | Vtl::Meta::IL::Erase< i, Loki::NullType >
struct | Vtl::Meta::IL::Erase< i, IndexList< i, T > >
struct | Vtl::Meta::IL::Erase< i, IndexList< j, T > >
struct | Vtl::Meta::IL::EraseAt< i, Loki::NullType >
struct | Vtl::Meta::IL::EraseAt< 0, IndexList< j, T > >
struct | Vtl::Meta::IL::EraseAt< i, IndexList< j, T > >
struct | Vtl::Meta::IL::Count< v, Loki::NullType >
struct | Vtl::Meta::IL::Count< v, IndexList< i, Tail > >
struct | Vtl::Meta::IL::ICount< v, 0, IndexList< j, T > >
struct | Vtl::Meta::IL::ICount< v, i, IndexList< j, T > >
struct | Vtl::Meta::IL::ICount< v, i, Loki::NullType >
struct | Vtl::Meta::IL::Debug< IndexList< i, Tail > >
struct | Vtl::Meta::IL::Debug< IndexList< i, Loki::NullType > >
struct | Vtl::Meta::IL::Debug< Loki::NullType >

Функции

template<class T>
T | Vtl::Meta::IL::type2ostream ()
template<int i, class Tail>
std::ostream & | operator<< (std::ostream &os, typename Vtl::Meta::IndexList< i, Tail >)

Функции

template<int i, class Tail>
std::ostream& operator<< | ( | std::ostream & | os,
 |  | typename Vtl::Meta::IndexList< i, Tail > |
 | ) |  |

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


Pipe Line Filters: Файл vtl_meta_permutations.h

  • Файлы
  • Список членов всех файлов

Файл vtl_meta_permutations.h

#include <iostream>
#include "vtl_meta_Tools.h"
#include "vtl_meta_IndexList.h"

Граф включаемых заголовочных файлов для vtl_meta_permutations.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Meta
namespace | Vtl::Meta::Impl

Классы

struct | Vtl::Meta::BitsIn< n >
Подсчет числа единичных битов в n . Алгоритм из [Henry S. Warren, Jr. 2002], стр. 76. Подробнее...
struct | Vtl::Meta::BitsIn< 0 >
struct | Vtl::Meta::Impl::determinant< N, Il1, Il2, j >
struct | Vtl::Meta::Impl::determinant< N, Il1, Il2, N >
struct | Vtl::Meta::Impl::determinant< 1, Il1, Il2, 0 >
struct | Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >
struct | Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, k >
struct | Vtl::Meta::Impl::permut< IList1, Loki::NullType, isOdd, 0, 0 >
struct | Vtl::Meta::printPermutations
class | Vtl::Meta::det< Matrix >
class | Vtl::Meta::det_poly_coef< Matrix, N >

Функции

template<int N, class Matrix>
Matrix::value_type | Vtl::Meta::determinant (const Matrix &matrix)
template<class IList, class Func>
void | Vtl::Meta::ForEachPermutationOfIndexList (Func &f)
template<int N, class Func>
void | Vtl::Meta::ForEachPermutation (Func &f)


Pipe Line Filters: Файл vtl_meta_SizeList.h

  • Файлы
  • Список членов всех файлов

Файл vtl_meta_SizeList.h

#include <iostream>
#include "vtl_meta_tools.h"
#include "vtl_meta_IndexList.h"

Граф включаемых заголовочных файлов для vtl_meta_SizeList.h:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::Meta
namespace | Vtl::Meta::Impl

Классы

struct | Vtl::Meta::Impl::SizeList_base_0< IList, sz >
struct | Vtl::Meta::Impl::SizeList_base_0< IList, 0 >
struct | Vtl::Meta::SizeList_base< T_IList >
class | Vtl::Meta::SizeList< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >
class | Vtl::Meta::Layout< T, IList >
class | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >
struct | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >
struct | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 >
struct | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I >
struct | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >
class | Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
struct | Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >

Функции

template<int i, class IList>
void | Vtl::Meta::print (std::ostream &os, const SizeList_base< IList > &sl, Loki::Int2Type< i >)
template<class IList>
void | Vtl::Meta::print (std::ostream &os, const SizeList_base< IList > &sl, Loki::Int2Type<-1 >)
template<class IList>
void | Vtl::Meta::print (std::ostream &os, const SizeList_base< IList > &sl)
template<typename T, class IList>
void | Vtl::Meta::print (std::ostream &os, const Layout< T, IList > &lay)


Pipe Line Filters: Файл vtl_meta_tools.h

  • Файлы
  • Список членов всех файлов

Файл vtl_meta_tools.h

#include <iostream>
#include "loki_EmptyType.h"
#include "loki_NullType.h"
#include "loki_typeManip.h"
#include "loki_Typelist.h"
#include "loki_static_check.h"

Граф включаемых заголовочных файлов для vtl_meta_tools.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Loki
namespace | Vtl
namespace | Vtl::Meta

Классы

struct | Loki::Bool2Type< v >
Analogous to Loki::Int2Type but for boolean type. Used to simplify code: instead using Loki::Int2Type<((a>b)?1:0)>() now use Loki::Bool2Type<(a>b)>(). Подробнее...
class | Vtl::Meta::EnumTraits
Свойства типв enum {} : знаковый или беззнаковый, максимальнрое хранимое значени, минимальное хранимое значение. Подробнее...
struct | Vtl::Meta::EnumTraits::MaxEnum< false, i >
struct | Vtl::Meta::EnumTraits::MaxEnum< true, i >
struct | Vtl::Meta::EnumTraits::IsEnum
struct | Vtl::Meta::EnumTraits::Bits< mask >
struct | Vtl::Meta::EnumTraits::Bits< 0 >
class | Vtl::Meta::Align< T, sz, align_to >
struct | Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >
struct | Vtl::Meta::Align< T, sz, align_to >::Align_< 0, size >

Функции

template<typename T>
static int | Vtl::Meta::align (int sz, int align_to)
template<int isSubtract, typename T>
void | Vtl::Meta::AddOrSub (T &result, T value)
Вычисляет result+=value; если isSubtract==0, иначе result-=value;.
template<typename T>
void | Vtl::Meta::AddOrSub (T &result, T value, Loki::Int2Type< 1 >)
template<typename T>
void | Vtl::Meta::AddOrSub (T &result, T value, Loki::Int2Type< 0 >)
template<int N, typename T>
T | Vtl::Meta::MultMinusOnePowerTo (T value)
template<typename T>
T | Vtl::Meta::MultMinusOnePowerTo (T value, Loki::Int2Type< 0 >)
template<typename T>
T | Vtl::Meta::MultMinusOnePowerTo (T value, Loki::Int2Type< 1 >)
template<int N, typename T>
void | Vtl::Meta::copy (T *dst, const T *src)
копирование массива известного на момент компиляции размера (без цикла, прямая его развертка).
template<int N, typename T>
void | Vtl::Meta::copy (T *dst, const T *src, Loki::Int2Type< N >)
template<typename T>
void | Vtl::Meta::copy (T *dst, const T *src, Loki::Int2Type< 1 >)
template<typename T>
void | Vtl::Meta::copy (T *dst, const T *src, Loki::Int2Type< 0 >)
template<int N, typename T, typename TT>
void | Vtl::Meta::set (T *dst, TT value)
Инициализация всех элементов массива известного на момент компиляции размера числом value (без цикла, прямая его развертка).
template<typename T, int N>
void | Vtl::Meta::set (T *dst, T value, Loki::Int2Type< N >)
template<typename T>
void | Vtl::Meta::set (T *dst, T value, Loki::Int2Type< 1 >)
Этот вариант функции не обязателен, но облегчает компилятору работу - на 1 шаг рекурсии.
template<typename T>
void | Vtl::Meta::set (T *dst, T value, Loki::Int2Type< 0 >)
template<int N, typename T, typename TT>
void | Vtl::Meta::set_seq (T *dst, TT value_first=0, TT value_step=1)
template<typename T, int N>
void | Vtl::Meta::set_seq (T *dst, T value, T step, Loki::Int2Type< N >)
template<typename T>
void | Vtl::Meta::set_seq (T *dst, T value, T step, Loki::Int2Type< 1 >)
template<typename T>
void | Vtl::Meta::set_seq (T *dst, T value, T step, Loki::Int2Type< 0 >)
template<int N, typename TT, typename T>
TT | Vtl::Meta::sum (T *dst)
Суммирование всех элементов массива известного на момент компиляции размера числом value (без цикла, прямая его развертка).
template<typename TT, int N, typename T>
TT | Vtl::Meta::sum (T *dst, Loki::Int2Type< N >)
template<typename TT, typename T>
TT | Vtl::Meta::sum (T *dst, Loki::Int2Type< 1 >)
Этот вариант функции не обязателен, но облегчает компилятору работу - на 1 шаг рекурсии.
template<typename TT, typename T>
TT | Vtl::Meta::sum (T *dst, Loki::Int2Type< 0 >)
template<int N, typename T>
void | Vtl::Meta::print_array (const T *src, const char *name, bool inColumn=true)


Pipe Line Filters: Файл windowing_fun.h

  • Файлы
  • Список членов всех файлов

Файл windowing_fun.h

#include <vector>
#include <algorithm>
#include <cmath>
#include <assert.h>
#include "loki_static_check.h"
#include "loki_TypeManip.h"
#include "alexandresku.h"
#include "spec_functions.h"

Граф включаемых заголовочных файлов для windowing_fun.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | Vtl
namespace | Vtl::ImAlg
namespace | Vtl::ImAlg::WndFun
namespace | Vtl::ImAlg::WndFun::Impl
namespace | Vtl::ImAlg::WndFun::Impl::Gauss
namespace | Vtl::ImAlg::WndFun::Impl::common_Trig

Классы

struct | Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >
struct | Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D >
struct | Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D >
class | Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >
Функтор - таблица непосредственно заданных значений. Значения не копируются и указатель на них должен оставаться валидным в течении всего времени жизни функтора! Целесообразно использовать в том случае, когда массив значений задается строкой констант, в противном случае следует использовать class Directю. Подробнее...
struct | Vtl::ImAlg::WndFun::Laws5< T >
Энергетические текстурные характеристики Лавса. Подробнее...
struct | Vtl::ImAlg::WndFun::Laws5< T >::L5
struct | Vtl::ImAlg::WndFun::Laws5< T >::E5
struct | Vtl::ImAlg::WndFun::Laws5< T >::S5
struct | Vtl::ImAlg::WndFun::Laws5< T >::R5
class | Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >
Функтор - таблица непосредственно заданных значений. Подробнее...
class | Vtl::ImAlg::WndFun::Rect< T, D >
Прямоугольное окно . Определяется формулой. Подробнее...
class | Vtl::ImAlg::WndFun::Bartlett< T, D >
Окно Бартлета (Bartlett - треугольное). Определяется формулой. Подробнее...
struct | Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, m >
struct | Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n,-1 >
struct | Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, n >
struct | Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, m >
struct | Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, n >
class | Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >
Окно Гаусса (Gauss). Определяется формулой. Подробнее...
class | Vtl::ImAlg::WndFun::DoG< T, D >
Окно в виде разности Гауссианов (обрезанных). Определяется формулой [image] . Подробнее...
class | Vtl::ImAlg::WndFun::Sinc< T, 0 >
Окно в виде функции sinc(x) . Определяется формулой [image] . Подробнее...
class | Vtl::ImAlg::WndFun::Kaiser< T, D >
Окно Кайзера (Kaiser). Определяется формулой [image] , где $ I_0( . )$ - модифицированная функция Бесселя. Подробнее...
class | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I >
class | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I >
class | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K >
class | Vtl::ImAlg::WndFun::common_Trig< T, D, K >
База для тригонометрических окон. Подробнее...
class | Vtl::ImAlg::WndFun::Hann< T, D >
Окно Ханна (Hann). Определяется формулой [image] при 0 <= x <= size-1. Подробнее...
class | Vtl::ImAlg::WndFun::Hamming< T, D >
Окно Хeмминга (Hamming). Определяется формулой [image] при 0 <= x <= size-1. Подробнее...
class | Vtl::ImAlg::WndFun::Blackman< T, D >
Окно Блэкмана (Blackman). Подробнее...
class | Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >
Окно Блэкмана-Нуттол (Blackman-Nuttall). Подробнее...
class | Vtl::ImAlg::WndFun::BlackmanHarris< T, D >
Окно Блэкмана-Харриса (Blackman-Harris). Подробнее...
class | Vtl::ImAlg::WndFun::Nuttall< T, D >
Окно Нуттол (Nuttall), непрерывные первые производные. Подробнее...
class | Vtl::ImAlg::WndFun::FlatTop< T, D >
Окно Плоская-вершина (FlatTop), нормированное. Подробнее...

Макросы

#define | _USE_MATH_DEFINES

Функции

template<unsigned n, unsigned m>
int | Vtl::ImAlg::WndFun::Impl::Gauss::c ()
template<unsigned n, typename T>
T | Vtl::ImAlg::WndFun::Impl::Gauss::Q (T x2, T x)

Макросы

#define _USE_MATH_DEFINES

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл work_with_image.cpp

  • Файлы
  • Список членов всех файлов

Файл work_with_image.cpp

#include <stdio.h>
#include <algorithm>
#include <string>
#include "aimage.h"
#include "consolap.h"

Граф включаемых заголовочных файлов для work_with_image.cpp:

Функции

int main (int argc, char *argv[])

Функции

int main | ( | int | argc,
 |  | char * | argv[]
 | ) |  |

Внимание!!! Категорически запрещается включать заголовки bmp.h, ifloat.h, imagemem.h, oz.h, pbm_file.h, tiff.h их использует библиотека и они должны быть доступны. Пользовательский интерфейс - только через aimage.h При необходимости отрисовки изображения в окне Windows следует включить заголовки virtdib.h, zoomfact.h .


Pipe Line Filters: Файл xml_interface.cpp

  • Файлы
  • Список членов всех файлов

Файл xml_interface.cpp

#include <iostream>
#include <string>
#include "xml_interface_imp.h"
#include "xml_interface.h"
#include "ywin.h"
#include "yfilesys.h"

Граф включаемых заголовочных файлов для xml_interface.cpp:

Макросы

#define | YXML_DRIVER_USING

Переменные

static DllModule | yxml_drv
static _YXML_DRV_ReleaseCString | YXML_DRV_ReleaseCString = 0
static _YXML_DRV_InitializeXercesc | YXML_DRV_InitializeXercesc = 0
static _YXML_DRV_OpenClose | YXML_DRV_OpenClose = 0
static _YXML_DRV_GetRootNode | YXML_DRV_GetRootNode = 0
static _YXML_DRV_TreeWalk | YXML_DRV_TreeWalk = 0
static _YXML_DRV_NodeType | YXML_DRV_NodeType = 0
static _YXML_DRV_Insert | YXML_DRV_Insert = 0
static _YXML_DRV_NodeGetSet | YXML_DRV_NodeGetSet = 0
static const char * | EncodingSystem = "windows-1251"

Макросы

#define YXML_DRIVER_USING

Переменные

const char* EncodingSystem = "windows-1251" [static]

DllModule yxml_drv [static]

_YXML_DRV_GetRootNode YXML_DRV_GetRootNode = 0 [static]

_YXML_DRV_InitializeXercesc YXML_DRV_InitializeXercesc = 0 [static]

_YXML_DRV_Insert YXML_DRV_Insert = 0 [static]

_YXML_DRV_NodeGetSet YXML_DRV_NodeGetSet = 0 [static]

_YXML_DRV_NodeType YXML_DRV_NodeType = 0 [static]

_YXML_DRV_OpenClose YXML_DRV_OpenClose = 0 [static]

_YXML_DRV_ReleaseCString YXML_DRV_ReleaseCString = 0 [static]

_YXML_DRV_TreeWalk YXML_DRV_TreeWalk = 0 [static]


Pipe Line Filters: Файл xml_interface.h

  • Файлы
  • Список членов всех файлов

Файл xml_interface.h

#include <vector>
#include <string>
#include <functional>
#include "datastring.h"
#include "xml_interface_imp.h"

Граф включаемых заголовочных файлов для xml_interface.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | YXML

Классы

class | YXML::Xercesc
class | YXML::XMLdoc
class | YXML::DNode
class | YXML::DNode::Is
class | YXML::DNode::IsCond
class | YXML::DNode::AttrRef
class | YXML::DNode::IsOR
class | YXML::DNode::IsAND
struct | YXML::IsElem
struct | YXML::IsName< Cmp >
struct | YXML::IsAttr< T, Cmp >
struct | YXML::IsAttrIn< T >

Определения типов

typedef IsName< std::equal_to<
std::string > > 		YXML::IsNameEq
проверяет, что тип ноды есть ELEMENT? а имя совпадает с заданным.
typedef IsAttr< std::string,
std::equal_to< std::string > > 		YXML::IsAttrEq
Проверяет, что аттрибут лексикографически равен заданной строке.


Pipe Line Filters: Файл xml_interface_imp.h

  • Файлы
  • Список членов всех файлов

Файл xml_interface_imp.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Макросы

#define | YXML_USE_DLL
#define | YXML_DRV_NODETYPE_ELEMENT 1
#define | YXML_DRV_NODETYPE_TEXT 2
#define | YXML_DRV_NODETYPE_COMMENT 3
#define | YXML_DRV_NODETYPE_ATTRIBUTE 4
#define | YXML_DRV_NODETYPE_UNSUPPORTED unsigned(-1)

Определения типов

typedef void * | YXML_DRV_DocHandle
typedef void * | YXML_DRV_NodeHandle

Макросы

#define YXML_DRV_NODETYPE_ATTRIBUTE 4

#define YXML_DRV_NODETYPE_COMMENT 3

#define YXML_DRV_NODETYPE_ELEMENT 1

#define YXML_DRV_NODETYPE_TEXT 2

#define YXML_DRV_NODETYPE_UNSUPPORTED unsigned(-1)

#define YXML_USE_DLL

Типы

typedef void* YXML_DRV_DocHandle

typedef void* YXML_DRV_NodeHandle


Pipe Line Filters: Файл yfile.cpp

  • Файлы
  • Список членов всех файлов

Файл yfile.cpp

#include "./std/yfile_std.cpp"

Граф включаемых заголовочных файлов для yfile.cpp:


Pipe Line Filters: Файл yfile.h

  • Файлы
  • Список членов всех файлов

Файл yfile.h

#include <string>
#include "ytypes.h"
#include "ytime.h"

Граф включаемых заголовочных файлов для yfile.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class | YFile
Обеспечивает простой доступ до файлов на бинарное чтение/запись. Наиболее ходовые и понятные опции открытия файла. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы. Подробнее...
class | YFileRead
Обеспечивает простой доступ до файлов на бинарное чтение. Файл открывается с наиболее ходовые и правильными опциями. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы. Подробнее...
class | YFileWrite
Обеспечивает простой доступ до файлов на бинарное чтение. Файл открывается с наиболее ходовые и правильными опциями. Минимальное количество заголовочных файлов, нет системно-специфических заголовков. Реализация - различна для различных операционных систем, что скрыто от пользователя. ТАким образом, в случае переноса на другую ОС или очередных изменений в Windows править придется только один файл, где все это закапсулировано, а не пересматривать весь код программы. Подробнее...
class | DebugBase
class | DebugToFile


Pipe Line Filters: Файл yfilesys.cpp

  • Файлы
  • Список членов всех файлов

Файл yfilesys.cpp

#include "yfilesys.h"
#include <sys\stat.h>
#include <sys\types.h>
#include <time.h>

Граф включаемых заголовочных файлов для yfilesys.cpp:

Функции

std::string | YFileSys::getEnv (const char *var_name)
bool | YFileSys::isFullName (std::string path)
static std::string | _dir_separator ("/\\")
static bool | _CreateDir (std::string path)
bool | YFileSys::CreateDir (std::string path)
std::string | YFileSys::getExt (std::string path)
std::string | YFileSys::remExt (std::string path)
std::string | YFileSys::getDir (std::string path)
std::string | YFileSys::getName (std::string path)
int | YFileSys::StrCmpI (const std::string &s1, const std::string &s2)
std::string | YFileSys::changeExt (std::string path, std::string ext)
std::string | YFileSys::changeExtIf (std::string path, std::string extToChange, std::string ext)
bool | YFileSys::isExists (std::string path)
bool | YFileSys::isFileExist (std::string path)
bool | YFileSys::isDirExist (std::string path)
bool | YFileSys::isPathExist (std::string path)
size_t | YFileSys::getFileSize (std::string path)
YDataTime | YFileSys::getTime (std::string path)
bool | YFileSys::rm (std::string path)
std::string | YFileSys::cwd ()
void | YFileSys::cwd (std::string path)

Функции

static bool _CreateDir ( std::string path ) [static]

static std::string _dir_separator ( "/\\" ) [static]


Pipe Line Filters: Файл yfilesys.h

  • Файлы
  • Список членов всех файлов

Файл yfilesys.h

#include <string>
#include <sstream>
#include <list>
#include "ytypes.h"
#include "ytime.h"

Граф включаемых заголовочных файлов для yfilesys.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Пространства имен

namespace | YFileSys

Функции

int | YFileSys::StrCmpI (const std::string &s1, const std::string &s2)
std::string | YFileSys::getEnv (const char *var_name)
std::string | YFileSys::getEnv (std::string var_name)
bool | YFileSys::isFullName (std::string path)
bool | YFileSys::isExists (std::string path)
bool | YFileSys::isFileExist (std::string path)
bool | YFileSys::isDirExist (std::string path)
bool | YFileSys::isPathExist (std::string path)
size_t | YFileSys::getFileSize (std::string path)
YDataTime | YFileSys::getTime (std::string path)
bool | YFileSys::rm (std::string path)
bool | YFileSys::CreateDir (std::string path)
std::string | YFileSys::remExt (std::string path)
std::string | YFileSys::getExt (std::string path)
std::string | YFileSys::getDir (std::string path)
std::string | YFileSys::getName (std::string path)
std::string | YFileSys::getNameWithoutExt (std::string path)
std::string | YFileSys::changeExt (std::string path, std::string ext)
std::string | YFileSys::changeExtIf (std::string path, std::string extToChange, std::string ext)
std::string | YFileSys::cwd ()
void | YFileSys::cwd (std::string path)


Pipe Line Filters: Файл ygeometr.cpp

  • Файлы
  • Список членов всех файлов

Файл ygeometr.cpp

#include <math.h>
#include <stdlib.h>
#include "ytypes.h"
#include "ygeometr.h"

Граф включаемых заголовочных файлов для ygeometr.cpp:

Функции

void | swap (int *pa, int *pb)
bool | equalDouble (double n1, double n2)
double | distance (const double x1, const double y1, const double x2, const double y2)
double | PointOnAxisProjectionLength (const double axis_begin_x, const double axis_begin_y, const double axis_end_x, const double axis_end_y, const double point_x, const double point_y)
double | TriangleArea (const YPoint< double > &a, const YPoint< double > &b, const YPoint< double > &c)
double | QuadrangleArea (const YPoint< double > &a, const YPoint< double > &b, const YPoint< double > &c, const YPoint< double > &d)

Переменные

static const double | e = 0.00000000000001

Функции

double distance | ( | const double | x1,
 |  | const double | y1,
 |  | const double | x2,
 |  | const double | y2
 | ) |  |

bool equalDouble | ( | double | n1,
 |  | double | n2
 | ) |  |

double PointOnAxisProjectionLength | ( | const double | axis_begin_x,
 |  | const double | axis_begin_y,
 |  | const double | axis_end_x,
 |  | const double | axis_end_y,
 |  | const double | point_x,
 |  | const double | point_y
 | ) |  |

double QuadrangleArea | ( | const YPoint< double > & | a,
 |  | const YPoint< double > & | b,
 |  | const YPoint< double > & | c,
 |  | const YPoint< double > & | d
 | ) |  |

void swap | ( | int * | pa,
 |  | int * | pb |
 | ) |  |  | [inline]

double TriangleArea | ( | const YPoint< double > & | a,
 |  | const YPoint< double > & | b,
 |  | const YPoint< double > & | c
 | ) |  |

Переменные

const double e = 0.00000000000001 [static]

Примеры:
test_boost_mtr.cpp и test_spec_functions.cpp.


Pipe Line Filters: Файл ygeometr.h

  • Файлы
  • Список членов всех файлов

Файл ygeometr.h

#include <math.h>
#include "YTypes.h"
#include <ostream>

Граф включаемых заголовочных файлов для ygeometr.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class | YPoint< T >
class | YRect< T >
class | LineFun
class | PolyFun

Макросы

#define | rad(deg) (NM_DEG2RAD*(deg))
#define | deg(rad) (NM_RAD2DEG*(rad))

Определения типов

typedef YPoint< int > | YPointInt
typedef YPoint< double > | YPointDbl
typedef YRect< int > | YRectInt
typedef YRect< double > | YRectDbl

Функции

template<class T>
std::ostream & | operator<< (std::ostream &os, const YPoint< T > &p)
bool | pointsEqual (const YPoint< double > &lhs, const YPoint< double > &rhs, double e=0.0001)
template<class T>
std::ostream & | operator<< (std::ostream &os, const YRect< T > &r)
double | distance (const double x1, const double y1, const double x2, const double y2)
double | PointOnAxisProjectionLength (const double axis_begin_x, const double axis_begin_y, const double axis_end_x, const double axis_end_y, const double point_x, const double point_y)
double | TriangleArea (const YPoint< double > &a, const YPoint< double > &b, const YPoint< double > &c)
double | QuadrangleArea (const YPoint< double > &a, const YPoint< double > &b, const YPoint< double > &c, const YPoint< double > &d)

Переменные

const double | NM_PI = ::atan2(0.,-1.)
const double | NM_2PI = NM_PI*2.
const double | NM_4PI = NM_PI*4.
const double | NM_PI2 = NM_PI/2.
const double | NM_PI4 = NM_PI/4.
const double | NM_DEG2RAD = NM_PI/180.
const double | NM_RAD2DEG = 180./NM_PI

Макросы

#define deg ( rad ) (NM_RAD2DEG*(rad))

#define rad ( deg ) (NM_DEG2RAD*(deg))

Типы

typedef YPoint<double> YPointDbl

typedef YPoint<int> YPointInt

typedef YRect<double> YRectDbl

typedef YRect<int> YRectInt

Функции

double distance | ( | const double | x1,
 |  | const double | y1,
 |  | const double | x2,
 |  | const double | y2
 | ) |  |

template<class T>
std::ostream& operator<< | ( | std::ostream & | os,
 |  | const YRect< T > & | r
 | ) |  |

template<class T>
std::ostream& operator<< | ( | std::ostream & | os,
 |  | const YPoint< T > & | p
 | ) |  |

Примеры:
test_yxml_ini.cpp.

double PointOnAxisProjectionLength | ( | const double | axis_begin_x,
 |  | const double | axis_begin_y,
 |  | const double | axis_end_x,
 |  | const double | axis_end_y,
 |  | const double | point_x,
 |  | const double | point_y
 | ) |  |

bool pointsEqual | ( | const YPoint< double > & | lhs,
 |  | const YPoint< double > & | rhs,
 |  | double | e = 0.0001 |
 | ) |  |  | [inline]

double QuadrangleArea | ( | const YPoint< double > & | a,
 |  | const YPoint< double > & | b,
 |  | const YPoint< double > & | c,
 |  | const YPoint< double > & | d
 | ) |  |

double TriangleArea | ( | const YPoint< double > & | a,
 |  | const YPoint< double > & | b,
 |  | const YPoint< double > & | c
 | ) |  |

Переменные

const double NM_2PI = NM_PI*2.

const double NM_4PI = NM_PI*4.

const double NM_DEG2RAD = NM_PI/180.

const double NM_PI = ::atan2(0.,-1.)

const double NM_PI2 = NM_PI/2.

const double NM_PI4 = NM_PI/4.

const double NM_RAD2DEG = 180./NM_PI


Pipe Line Filters: Файл ymem.cpp

  • Файлы
  • Список членов всех файлов

Файл ymem.cpp

#include "ymem.h"

Граф включаемых заголовочных файлов для ymem.cpp:


Pipe Line Filters: Файл ymem.h

  • Файлы
  • Список членов всех файлов

Файл ymem.h

#include <assert.h>
#include "ytypes.h"

Граф включаемых заголовочных файлов для ymem.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class | PtrDelete< T >
class | PtrArrayDel< T >
class | YSmallAllocLtd
class | YTArray< T >
class | YTDynArray< T >
class | YTHistListTag< T >
class | YTHistList< T >


Pipe Line Filters: Файл ytime.cpp

  • Файлы
  • Список членов всех файлов

Файл ytime.cpp

#include "ytime.h"

Граф включаемых заголовочных файлов для ytime.cpp:

Переменные

static const int | MONTH_IN_YEAR = 12
static const int | DAYS_IN_YEAR = 365
static const int | DAYS_IN_YEAR_LEAP = 366
static const int | SEC_IN_HOUR = 60*60
static const int | SEC_IN_DAY = 24*60*60
static const int | DAY_IN_MONTH [MONTH_IN_YEAR] = {31,28,31,30, 31, 30, 31, 31, 30, 31, 30, 31}
static const int | DAY_IN_MONTH_LEAP [MONTH_IN_YEAR] = {31,28,31,30, 31, 30, 31, 31, 30, 31, 30, 31}
static const int | DAY_TO_MONTH [MONTH_IN_YEAR] = { 0,31,59,90,120,151,181,212,243,273,304,334}
static const int | DAY_TO_MONTH_LEAP [MONTH_IN_YEAR] = { 0,31,60,91,121,152,182,213,244,274,305,335}
static const int32_t | SEC_TO_MKS = 1000000
static const int32_t | SEC_IN_YEAR = DAYS_IN_YEAR *SEC_IN_DAY
static const int32_t | SEC_IN_YEAR_LEAP = DAYS_IN_YEAR_LEAP*SEC_IN_DAY
static const int64_t | MKS_IN_YEAR = int64_t(SEC_IN_YEAR) *int64_t(SEC_TO_MKS)
static const int64_t | MKS_IN_YEAR_LEAP = int64_t(SEC_IN_YEAR_LEAP)*int64_t(SEC_TO_MKS)

Переменные

const int DAY_IN_MONTH[MONTH_IN_YEAR] = {31,28,31,30, 31, 30, 31, 31, 30, 31, 30, 31} [static]

const int DAY_IN_MONTH_LEAP[MONTH_IN_YEAR] = {31,28,31,30, 31, 30, 31, 31, 30, 31, 30, 31} [static]

const int DAY_TO_MONTH[MONTH_IN_YEAR] = { 0,31,59,90,120,151,181,212,243,273,304,334} [static]

const int DAY_TO_MONTH_LEAP[MONTH_IN_YEAR] = { 0,31,60,91,121,152,182,213,244,274,305,335} [static]

const int DAYS_IN_YEAR = 365 [static]

const int DAYS_IN_YEAR_LEAP = 366 [static]

const int64_t MKS_IN_YEAR = int64_t(SEC_IN_YEAR) *int64_t(SEC_TO_MKS) [static]

const int64_t MKS_IN_YEAR_LEAP = int64_t(SEC_IN_YEAR_LEAP)*int64_t(SEC_TO_MKS) [static]

const int MONTH_IN_YEAR = 12 [static]

const int SEC_IN_DAY = 24*60*60 [static]

const int SEC_IN_HOUR = 60*60 [static]

const int32_t SEC_IN_YEAR = DAYS_IN_YEAR *SEC_IN_DAY [static]

const int32_t SEC_IN_YEAR_LEAP = DAYS_IN_YEAR_LEAP*SEC_IN_DAY [static]

const int32_t SEC_TO_MKS = 1000000 [static]


Pipe Line Filters: Файл ytime.h

  • Файлы
  • Список членов всех файлов

Файл ytime.h

#include "ytypes.h"

Граф включаемых заголовочных файлов для ytime.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class | YDtTm
class | YTimeInterval
class | YDataTime
class | YDataTimeZone


Pipe Line Filters: Файл ytypes.h

  • Файлы
  • Список членов всех файлов

Файл ytypes.h

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Макросы

#define | MAX(a, b) ( ((a)>(b)) ? (a) : (b) )
#define | MIN(a, b) ( ((a)<(b)) ? (a) : (b) )
#define | MAX3(a, b, c) MAX(MAX(a,b),c)
#define | MAX4(a, b, c, d) MAX(MAX(a,b),MAX(c,d))
#define | MIN3(a, b, c) MIN(MIN(a,b),c)
#define | MIN4(a, b, c, d) MIN(MIN(a,b),MIN(c,d))
#define | ABS(a) (((a)<0)?-(a):(a))
#define | IN_BOUNDS(var, min, max) (((var)<(min))?(min):(((var)>(max))?(max):(var)))
#define | SIGN(X1, X2) ((X2 >= 0) ? ABS(X1) : -ABS(X1))


Pipe Line Filters: Файл ywin.cpp

  • Файлы
  • Список членов всех файлов

Файл ywin.cpp

#include "ywin.h"
#include "yfilesys.h"

Граф включаемых заголовочных файлов для ywin.cpp:


Pipe Line Filters: Файл ywin.h

  • Файлы
  • Список членов всех файлов

Файл ywin.h

#include <windows.h>

Граф включаемых заголовочных файлов для ywin.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class | DllModule

Макросы

#define | DLL_FUN _cdecl

Макросы

#define DLL_FUN _cdecl

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Файл ywinini.cpp

  • Файлы
  • Список членов всех файлов

Файл ywinini.cpp

#include <windows.h>
#include <assert.h>
#include "ywinini.h"

Граф включаемых заголовочных файлов для ywinini.cpp:

Функции

static const std::string DefaultItemName ("#text")

Функции

static const std::string DefaultItemName ( "#text" ) [static]


Pipe Line Filters: Файл ywinini.h

  • Файлы
  • Список членов всех файлов

Файл ywinini.h

#include <string>
#include <iostream>
#include "datastring.h"

Граф включаемых заголовочных файлов для ywinini.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class | WinIniFile
class | WiNode
class | WiNode::AttrRef


Pipe Line Filters: Файл zoomfact.h

  • Файлы
  • Список членов всех файлов

Файл zoomfact.h

#include <windows.h>

Граф включаемых заголовочных файлов для zoomfact.h:

Граф файлов, в которые включается этот файл:

См. исходные тексты.

Классы

class | ZoomFactor
class | ZoomFactor2D


Pipe Line Filters: Примеры

  • Примеры

Pipe Line Filters Примеры

Полный список примеров.
  • HowTo_MakeDifferentRealizationForIntegersAnsFloats.hxx
  • invert.cpp
  • test__datastring.cpp
  • test_alexandresku.cpp
  • test_alg_bresenham.cpp
  • test_boost_mtr.cpp
  • test_color_registration.cpp
  • test_fast_gauss.cpp
  • test_image_registration_via_fft.cpp
  • test_image_registration_via_oflow.cpp
  • test_Integral_Transforms.cpp
  • test_plf_filters.cpp
  • test_plf_filters_rgb.cpp
  • test_plf_io_ports.cpp
  • test_plf_kernels.cpp
  • test_plf_strip_buffer.cpp
  • test_spec_functions.cpp
  • test_yxml_ini.cpp
  • test_yxml_learn.cpp
  • test_yxml_xml.cpp
  • work_with_image.cpp


Pipe Line Filters: HowTo_MakeDifferentRealizationForIntegersAnsFloats.hxx

  • Примеры

HowTo_MakeDifferentRealizationForIntegersAnsFloats.hxx

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

00001
00021
00023
00036
00049


Pipe Line Filters: invert.cpp

  • Примеры

invert.cpp

Это пример как работать с изображениями через класс AImage. Пример как с помощью шаблонов писать программы, которые могут работать с разными типами данных (пикселей).

00001 #include <stdio.h>
00002 #include <algorithm>
00003 #include <string>
00004 //Для работы с изображениями включить заголовок
00005 #include "aimage.h"
00006 // Внимание!!! Категорически запрещается включать заголовки bmp.h, ifloat.h, imagemem.h,
00007 // oz.h, pbm_file.h, tiff.h их использует библиотека и они должны быть доступны.
00008 // Пользовательский интерфейс - только через aimage.h. При необходимости отрисовки
00009 // изображения в окне Windows следует включить заголовки virtdib.h, zoomfact.h .
00010
00011 // при написании консольных приложений имеет смысл включить заголовок
00012 #include "consolap.h"
00013 template<typename T> class Negative
00014 {
00015     T *pp;
00016     const T v;
00017     const int w;
00018     const int h;
00019     const int nls;
00020 public:
00021      Negative(T *lefttop,int width, int height, int next_line_shift,T max_value)
00022     : pp(lefttop),w(width), h(height), nls(next_line_shift), v(max_value)
00023     {
00024     }
00025     void run(ProgressCounter* indicator)
00026     {
00027         T* p=pp;
00028         int d=nls-w;
00029         if(indicator) indicator->start(0,h-1,"Negative");
00030         for(int y=0; y<h; ++y)
00031         {
00032             // Цикл по строке
00033             int c=w;
00034             while(c--)
00035             {
00036                 *p=v-(*p);
00037                 ++p;
00038             }
00039             p+=d;
00040             if(indicator)
00041                 if(y&0x08) // сообщаем только о каждой 8 строке, чтобы не сильно замедлять...
00042                     indicator->current(y);
00043         }
00044         if(indicator) indicator->finish();
00045     }
00046 };
00047
00048 void Invert(Aimage *im,ProgressCounter* indicator=0)
00049 {
00050         switch(im->GetImageStore())
00051         {
00052         case AImage::IMGS_AImageMem8:
00053         {
00054             AImageMem8* img=dynamic_cast<AImageMem8*>(im);
00055             if(img!=0)
00056             {
00057                 switch(img->ImageClass())
00058                 {
00059                 case AImage::IMGC_GRAYSCALE:
00060                 { // изображение серое
00061                     int h=img->Height();
00062                     Negative<uint8_t> n((*img)[0],img->Width(),img->Height(),img->NextLineShift(),uint8_t((1<<img->Bits())-1));
00063                     n.run(indicator);
00064                 }
00065                 case AImage::IMGC_PALETTE:
00066                 {// палитровое изображение, достаточно инвертировать палитру
00067                     const int n=img->GetPaletteEntries();
00068                     AImage::Rgb * pal=Palette();
00069                     for(int i=0; i<n; i++)
00070                     {
00071                         pal[i].r=255-pal[i].r;
00072                         pal[i].g=255-pal[i].g;
00073                         pal[i].b=255-pal[i].b;
00074                     }
00075                 }
00076                 default:
00077                     throw "Unsupported";
00078                 };
00079             }
00080         }
00081         break;
00082         case AImage::IMGS_AImageMem16:
00083             {
00084                 AImageMem16* img=dynamic_cast<AImageMem16*>(im);
00085                 if(img!=0)
00086                 {
00087                     if(AImage::IMGC_GRAYSCALE==img->ImageClass())
00088                     { // изображение серое
00089                         int h=img->Height();
00090                         Negative<uint16_t> n((*img)[0],img->Width(),img->Height(),img->NextLineShift(),uint16_t((1<<img->Bits())-1));
00091                         n.run(indicator);
00092                     }
00093                 }
00094             break;
00095         case AImage::IMGS_AImageMemRgb8:
00096         {
00097             AImageMemRgb8* img=dynamic_cast<AImageMemRgb8*>(im);
00098             if(img!=0)
00099             {
00100                 // В целом похоже на работу с серым изображением (выше). TrueColor изображение представляет собой
00101                 // просто 3 изображения - красное, зеленое и синее. Внимание! Удалять каждое из них не надо! Об это
00102                 // позаботится объект im.
00103                 AImageMem8* r=img->GetPlane8(0);
00104                 AImageMem8* g=img->GetPlane8(1);
00105                 AImageMem8* b=img->GetPlane8(2);
00106                 if(r!=0 && g!=0 && b!=0)
00107                 {
00108                     Negative<uint8_t> nr((*r)[0],r->Width(),r->Height(),r->NextLineShift(),uint8_t((1<<r->Bits())-1));
00109                     Negative<uint8_t> ng((*g)[0],g->Width(),g->Height(),g->NextLineShift(),uint8_t((1<<g->Bits())-1));
00110                     Negative<uint8_t> nb((*b)[0],b->Width(),b->Height(),b->NextLineShift(),uint8_t((1<<b->Bits())-1));
00111                     nr.run(indicator);
00112                     ng.run(indicator);
00113                     nb.run(indicator);
00114                 }
00115             }
00116         }
00117         break;
00118         default:
00119             printf("Unsupported!\n");
00120         };
00121 }
00122
00123 int main(int argc, char* argv[])
00124 {
00125     if(argc!=3)
00126     {
00127         printf("Command string:\n test.exe input_img output_img\n");
00128         return 1;
00129     }
00130     try
00131     {
00132         // Загружаем изображение. Внимание! формат определяется по расширению имени файла - правильно
00133         // его указывайте. По окончании работы объект надо удалить, иначе изображение так и будет висеть в памяти.
00134         // поэтому сразу полученный указатель прячем в auto_ptr, язык С++ гарантирует, что при выходе из блока любым путем
00135         // деструктор объекта отработает, и поэтому изображение будет гарантировано удалено из памяти.
00136         std::auto_ptr<AImage> _im(::AImageLoad(0,true,argv[1],indicator));
00137         // auto_ptr вое дело сделает, чтобы с ним не возиться в дальнейшем - получим указатель на загруженное изображение.
00138         AImage* im=_im.get();
00139         Invert(im,indicator); // собственно алгоритм
00140         ::AImageSave(im,argv[2],indicator); // indicator - Во время записи на диск на экране будет отображаться процент записи.
00141     }
00142     catch(AErrorStatusBase& msg )
00143     {
00144         printf("Exception: \nIn class %s\n In Derived class %s\n IN file %s line:%d\n Error message%s\n",
00145             msg.ClassName(),msg.DerivedClassName(),msg.File(),msg.Line(),msg.Msg());
00146         //printf("Exception: %s\n",msg.Msg());
00147     }
00148     catch(std::string msg)
00149     {
00150         printf("Exception: %s\n",msg.c_str());
00151     }
00152     catch(const char *msg)
00153     {
00154         printf("Exception: %s\n",msg);
00155     }
00156     return 0;
00157 }
00158


Pipe Line Filters: test__datastring.cpp

  • Примеры

test__datastring.cpp

Примеры работы с объектом DataString.

00001 #include <stdio.h>
00002 #include "datastring.h"
00003 #include "tests.h"
00004
00005
00006 int Tests::test_DataString(int argc, char* argv[])
00007 {
00008     DataString ds;
00009     ds=std::string("assign string");
00010     printf("%s\n",ds.c_str());
00015     ds="2003-04-12T19:21:3.65432Z+03:30";
00016     YDataTime dt=ds;
00017     ds=137;
00018     printf("%s\n",ds.c_str());
00019     int val=ds;
00020     printf("%d\n",val);
00021     ds=dt;
00022     printf("%s\n",ds.c_str());
00023
00024     ds=137;
00025     printf("%s\n",ds.c_str());
00026     ds=137U;
00027     printf("%s\n",ds.c_str());
00028     ds=137.13;
00029     printf("%s\n",ds.c_str());
00030     ds=137.13f;
00031     printf("%s\n",ds.c_str());
00032
00033 /*
00034     ds << " asd " << 2.134 << " ! ";
00035     printf("%s\n",ds.c_str());
00036 */
00037     return 0;
00038 }


Pipe Line Filters: test_alexandresku.cpp

  • Примеры

test_alexandresku.cpp

Примеры использования средств в стиле [Loki]

00001 #include <iostream>
00002 #include "alexandresku.h"
00003 #include "tests.h"
00004
00005 int Tests::test_alexandresku(int argc,char* argv[])
00006 {
00007     unsigned n;
00008     n=Vtl::Alg::Factorial<0>::value;
00009     std::cout << "Vtl::Alg::Factorial<0>::value="<< n << std::endl;
00010     n=Vtl::Alg::Factorial<1>::value;
00011     std::cout << "Vtl::Alg::Factorial<1>::value="<< n << std::endl;
00012     n=Vtl::Alg::Factorial<2>::value;
00013     std::cout << "Vtl::Alg::Factorial<2>::value="<< n << std::endl;
00014     n=Vtl::Alg::Factorial<3>::value;
00015     std::cout << "Vtl::Alg::Factorial<3>::value="<< n << std::endl;
00016     n=Vtl::Alg::Factorial<4>::value;
00017     std::cout << "Vtl::Alg::Factorial<4>::value="<< n << std::endl;
00018     n=Vtl::Alg::Factorial<5>::value;
00019     std::cout << "Vtl::Alg::Factorial<5>::value="<< n << std::endl;
00020     n=Vtl::Alg::Factorial<6>::value;
00021     std::cout << "Vtl::Alg::Factorial<6>::value="<< n << std::endl;
00022
00023     n=Vtl::Alg::isOdd<0>::value;
00024     std::cout << "0"<< " :  isOdd=" << n << std::endl;
00025     n=Vtl::Alg::isOdd<1>::value;
00026     std::cout << "1"<< " :  isOdd=" << n << std::endl;
00027     n=Vtl::Alg::isOdd<2>::value;
00028     std::cout << "2"<< " :  isOdd=" << n << std::endl;
00029     n=Vtl::Alg::isOdd<3>::value;
00030     std::cout << "3"<< " :  isOdd=" << n << std::endl;
00031     n=Vtl::Alg::isOdd<4>::value;
00032     std::cout << "4"<< " :  isOdd=" << n << std::endl;
00033     n=Vtl::Alg::isOdd<5>::value;
00034     std::cout << "5"<< " :  isOdd=" << n << std::endl;
00035
00036     unsigned x=2;
00037     unsigned r;
00038     r=Vtl::Alg::x_to_N<0>::value(x);
00039     std::cout << "x="<< x <<",  n="<< 0 << "  x^n="<< r << std::endl;
00040     r=Vtl::Alg::x_to_N<1>::value(x);
00041 //  r=Vtl::Alg::n_pow(x,Vtl::Types::Int2Type<1>());
00042     std::cout << "x="<< x <<",  n="<< 1 << "  x^n="<< r << std::endl;
00043     r=Vtl::Alg::x_to_N<2>::value(x);
00044 //  r=Vtl::Alg::n_pow(x,Vtl::Types::Int2Type<2>());
00045     std::cout << "x="<< x <<",  n="<< 2 << "  x^n="<< r << std::endl;
00046     r=Vtl::Alg::x_to_N<3>::value(x);
00047 //  r=Vtl::Alg::n_pow(x,Vtl::Types::Int2Type<3>());
00048     std::cout << "x="<< x <<",  n="<< 3 << "  x^n="<< r << std::endl;
00049     r=Vtl::Alg::x_to_N<4>::value(x);
00050 //  r=Vtl::Alg::n_pow(x,Vtl::Types::Int2Type<4>());
00051     std::cout << "x="<< x <<",  n="<< 4 << "  x^n="<< r << std::endl;
00052     r=Vtl::Alg::x_to_N<5>::value(x);
00053     std::cout << "x="<< x <<",  n="<< 5 << "  x^n="<< r << std::endl;
00054     r=Vtl::Alg::x_to_N<6>::value(x);
00055     std::cout << "x="<< x <<",  n="<< 6 << "  x^n="<< r << std::endl;
00056     r=Vtl::Alg::x_to_N<7>::value(x);
00057     std::cout << "x="<< x <<",  n="<< 7 << "  x^n="<< r << std::endl;
00058     r=Vtl::Alg::x_to_N<8>::value(x);
00059     std::cout << "x="<< x <<",  n="<< 8 << "  x^n="<< r << std::endl;
00060     r=Vtl::Alg::x_to_N<9>::value(x);
00061     std::cout << "x="<< x <<",  n="<< 9 << "  x^n="<< r << std::endl;
00062     r=Vtl::Alg::x_to_N<10>::value(x);
00063     std::cout << "x="<< x <<",  n="<< 10 << "  x^n="<< r << std::endl;
00064
00065     float f;
00066     f=Vtl::Alg::dsin<0>(float(M_PI/6));
00067     std::cout << "dsin<0>(30 deg)="<< f << std::endl;
00068     f=Vtl::Alg::dsin<1>(float(M_PI/6));
00069     std::cout << "dsin<1>(30 deg)="<< f << std::endl;
00070     f=Vtl::Alg::dsin<2>(float(M_PI/6));
00071     std::cout << "dsin<2>(30 deg)="<< f << std::endl;
00072     f=Vtl::Alg::dsin<3>(float(M_PI/6));
00073     std::cout << "dsin<3>(30 deg)="<< f << std::endl;
00074     f=Vtl::Alg::dsin<4>(float(M_PI/6));
00075     std::cout << "dsin<4>(30 deg)="<< f << std::endl;
00076     f=Vtl::Alg::dsin<5>(float(M_PI/6));
00077     std::cout << "dsin<5>(30 deg)="<< f << std::endl;
00078     f=Vtl::Alg::dsin<6>(float(M_PI/6));
00079     std::cout << "dsin<6>(30 deg)="<< f << std::endl;
00080     f=Vtl::Alg::dsin<7>(float(M_PI/6));
00081     std::cout << "dsin<7>(30 deg)="<< f << std::endl;
00082
00083
00084
00085     return 0;
00086 }


Pipe Line Filters: test_alg_bresenham.cpp

  • Примеры

test_alg_bresenham.cpp

Пример использования алгоритмов Брезенхэма.

00001 #include <memory>//std::auto_ptr
00002 #include <vector>
00003 #include <cmath>
00004 #include "aimage.h"
00005 #include "consolap.h"
00006 #include "alg_bresenham.h"
00007
00008 #include "tests.h"
00009
00010 using  namespace Vtl;
00011
00012 int Tests::test_alg_bresenham(int argc,char* argv[])
00013 {
00014     //Создаем или загружаем изображение
00015     const int w=1024;
00016     const int h=1024;
00017     const int bits=8;
00018     std::auto_ptr<AImage> _im(::AImageCreate(0,AImage::IMGC_GRAYSCALE,w,h,bits));
00019     AImageMem8* img=dynamic_cast<AImageMem8*>(_im.get());
00020     // Если успешно - работаем дальше
00021     if(img)
00022     {
00023         // Закрашиваем все изображение в черный цвет
00024         AImageMem8::Pixel color_back=0;
00025         img->SetTo(color_back);
00026         // Рисуем белым цветом
00027         AImageMem8::Pixel color_pen = AImageMem8::Pixel((1<<bits)-1);
00028
00029 #if 1
00030         typedef Vtl::ImAlg::Bres::DrawDotted<AImageMem8::Pixel> DrawFunctor;
00031         DrawFunctor draw_functor(color_pen,color_pen/2,0xFFFF0000);
00032 #else
00033         typedef Vtl::ImAlg::Bres::Draw<AImageMem8::Pixel> DrawFunctor;
00034         DrawFunctor draw_functor(color_pen);
00035 #endif
00036
00037         typedef Vtl::ImAlg::Bres::SetPixelGray<AImageMem8::Pixel,DrawFunctor > SetPixelFunctor;
00038         SetPixelFunctor set_pix((*img)[0],img->NextLineShift(),draw_functor);
00039
00040         Vtl::ImAlg::Bres::Line<SetPixelFunctor> line(set_pix);
00041
00042         //выбираем центр изображения
00043         const int c_x=w/2;
00044         const int c_y=h/2;
00045         int dx=w/6;
00046         int dy=h/3;
00047
00048         //Ставим начальную точку
00049         set_pix.Set0(c_x,c_y);
00050         // рисуем линию dx,dy вправо вниз
00051         line.Draw(+dx,+dy);
00052         // рисуем линию dx,dy вправо вниз
00053         line.Draw(+dx,-dy);
00054         // рисуем линию dx,dy вправо вниз
00055         line.Draw(-dx,-dy);
00056         // рисуем линию dx,dy вправо вниз
00057         line.Draw(-dx,+dy);
00058
00059         dy=h/11;
00060         //Ставим начальную точку
00061         set_pix.Set0(c_x,c_y);
00062         // рисуем линию dx,dy вправо вниз
00063         line.Draw(-dx,-dy);
00064         // рисуем линию dx,dy вправо вниз
00065         line.Draw(-dx,+dy);
00066         // рисуем линию dx,dy вправо вниз
00067         line.Draw(+dx,+dy);
00068         // рисуем линию dx,dy вправо вниз
00069         line.Draw(+dx,-dy);
00070
00071         {
00072             const int circ_x=w/4;
00073             const int circ_y=h/4;
00074             const int radius=h*3/16;
00075             const int points=8;//5 degree steps in circle
00076             std::vector<int> x;
00077             std::vector<int> y;
00078             x.resize(points+1);
00079             y.resize(points+1);
00080             for(int i=0; i<= points ; ++i)
00081             {
00082                 x[i]=int(circ_x+radius*cos(2*3.1415926/points*i)+0.5);
00083                 y[i]=int(circ_y+radius*sin(2*3.1415926/points*i)+0.5);
00084             }
00085             set_pix.Set0(x[0],y[0]);
00086             for(int i=1; i<= points ; ++i)
00087             {
00088                 line.Draw(x[i]-x[i-1],y[i]-y[i-1]);
00089             }
00090         }
00091
00092
00093         // Сохраняем результат
00094         AImageSave(img,"alg_bresenham.pgm",indicator);
00095     }
00096     return 0;
00097 }
00098


Pipe Line Filters: test_boost_mtr.cpp

  • Примеры

test_boost_mtr.cpp

Пример как работать с векторами, матрицами и алгоритмами линейной алгебры.

00001 // boost_mtr_test.cpp : Defines the entry point for the console application.
00002 //
00003
00004 #include <iostream>
00005 #include <iomanip>
00006
00007
00008 #include "num_linalg.h"
00009 #include "tests.h"
00010
00011 using namespace Vtl::NumAlg::Lin;
00012
00013
00014
00015
00016 int Tests::test_boost_mtr(int argc, char* argv[])
00017 {
00018
00019     //float m23_data[]={1,2,3,4,5,6};
00020     ublas::c_matrix<float,2,3> m23;
00021     ublas::c_vector<float,3> v3;
00022     ublas::c_vector<float,3> v3_1;
00023     //m23=1,2,3,4,5,6;
00024     m23(0,0)=1;
00025     m23(0,1)=2;
00026     m23(0,2)=3;
00027     m23(1,0)=4;
00028     m23(1,1)=5;
00029     m23(1,2)=6;
00030     v3(0)=10;
00031     v3(1)=100;
00032     v3(2)=1000;
00033     v3_1(0)=1;
00034     v3_1(1)=2;
00035     v3_1(2)=3;
00036
00037     std::cout << m23 << std::endl;
00038     std::cout << v3 << std::endl;
00039
00040     ublas::c_vector<float,2> v2;
00041     v2(0)=2;
00042     v2(1)=4;
00043     v2 = prod(m23,v3) ;
00044     std::cout << v2 << std::endl;
00045     //v2=v2+v3;
00046     std::cout << v3+v3_1 << std::endl;
00047     v3_1=v3+v3_1;
00048     std::cout << v3_1 << std::endl;
00049     v3_1*=4;
00050     std::cout << v3_1 << std::endl;
00051     v3_1/=2;
00052     std::cout << v3_1 << std::endl;
00053     v3_1=v3_1/2.0f;
00054     std::cout << v3_1 << std::endl;
00055     //std::cout << v3*m23 << std::endl;
00056
00057     ublas::c_matrix<float,5,3> A;
00058     ublas::c_vector<float,5> b;
00059     ublas::c_vector<float,3> x;
00060     A(0,0)=1;   A(0,1)= 6;  A(0,2)=11;
00061     A(1,0)=2;   A(1,1)= 7;  A(1,2)=12;
00062     A(2,0)=3;   A(2,1)= 8;  A(2,2)=13;
00063     A(3,0)=4;   A(3,1)= 9;  A(3,2)=14;
00064     A(4,0)=5;   A(4,1)=10;  A(4,2)=15;
00065     b(0)=5000;
00066     b(1)=4000;
00067     b(2)=3000;
00068     b(3)=2000;
00069     b(4)=1000;
00070     x(0)=1;
00071     x(1)=2;
00072     x(2)=3;
00073     std::cout << "A" << A << std::endl;
00074     std::cout << "x" << x << std::endl;
00075     std::cout << "b" << b << std::endl;
00076     std::cout << "ublas::prod(A,x)+b; =" << ublas::prod(A,x)+b << std::endl;
00077     std::cout << "ublas::prod(A,x); =" << ublas::prod(A,x) << std::endl;
00078     std::cout << "ublas::prod(b,A); =" << ublas::prod(b,A) << std::endl;
00079     std::cout << "ublas::prec_prod(A,x); =" << ublas::prec_prod(A,x) << std::endl;
00080     std::cout << "ublas::prec_prod(b,A); =" << ublas::prec_prod(b,A) << std::endl;
00081 //  b=ublas::prod(A,x)+b;
00082
00083     prod_diag(A,x);
00084     std::cout << "prod_diag(A,b); =" << A << std::endl;
00085     prod_diag(b,A);
00086     std::cout << "prod_diag(b,A); =" << A << std::endl;
00087
00088
00089     ublas::c_matrix<float,5,3> B;
00090     B=A;
00091     std::cout << "m23" << m23 << std::endl;
00092     std::cout << "m23.size1()" << m23.size1() << std::endl;
00093     std::cout << "m23.size2()" << m23.size2() << std::endl;
00094
00095     {
00096         ublas::c_matrix<float,5,3> A;
00097         ublas::c_vector<float,5> b;
00098         ublas::c_vector<float,3> x;
00099         A(0,0)=1;   A(0,1)= 6;  A(0,2)=11;
00100         A(1,0)=2;   A(1,1)= 7;  A(1,2)=12;
00101         A(2,0)=3;   A(2,1)= 8;  A(2,2)=13;
00102         A(3,0)=4;   A(3,1)= 9;  A(3,2)=14;
00103         A(4,0)=5;   A(4,1)=10;  A(4,2)=15;
00104
00105         float tmp[3];
00106         ublas::c_matrix<float,5,3> U;
00107         ublas::c_matrix<float,3,3> V;
00108         ublas::c_vector<float,3> s;
00109
00110         std::cout << std::endl<< "svd: ============== " << std::endl;
00111         float relerr=1.0e-05f;
00112         U=A;
00113         svd::decomp(U,s,V,tmp);
00114         std::cout << "svd: A" << A << std::endl;
00115         std::cout << "svd: U" << U << std::endl;
00116         std::cout << "svd: S" << s << std::endl;
00117         std::cout << "svd: V" << V << std::endl;
00118
00119         std::cout << "svd inv : ============== " << std::endl;
00120         ublas::c_matrix<float,3,5> Ainv;
00121         svd::inverse(Ainv,U,s,V,relerr);
00122
00123         std::cout << "svd: A" << A << std::endl;
00124         std::cout << "svd: U" << U << std::endl;
00125         std::cout << "svd: S" << s << std::endl;
00126         std::cout << "svd: V" << V << std::endl;
00127
00128
00129         std::cout << "svd: Ainv" << Ainv << std::endl;
00130
00131         std::cout << "svd: A*Ainv*" << prod(A,Ainv) << std::endl;
00132         std::cout << "svd: Ainv*A" << prod(Ainv,A) << std::endl;
00133         {
00134             std::cout << std::endl << "===  eigen ===========" << std::endl;
00135             A(0,0)=1;   A(0,1)= 6;  A(0,2)=11;
00136             A(1,0)=2;   A(1,1)= 7;  A(1,2)=12;
00137             A(2,0)=3;   A(2,1)= 8;  A(2,2)=13;
00138             A(3,0)=4;   A(3,1)= 9;  A(3,2)=14;
00139             A(4,0)=5;   A(4,1)=10;  A(4,2)=15;
00140             svd::inverse_save(Ainv,A,relerr);
00141             std::cout << "inverse_save " << Ainv << std::endl;
00142             ublas::c_vector<float,5> b;
00143             ublas::c_vector<float,5> x;
00144             b[0]=4; b[1]=5; b[2]=5; b[3]=5; b[4]=5;
00145             x=svd::solve_save(A,b,relerr);
00146             std::cout << "solve_save " << x << std::endl;
00147
00148
00149         }
00150         {
00151             std::cout << std::endl << "===  eigen ===========" << std::endl;
00152             ublas::c_matrix<float,3,3> A;
00153             ublas::c_matrix<float,3,3> V;
00154             ublas::c_vector<float,3> e;
00155             ublas::c_vector<float,3> work;
00156             A(0,0)=3;   A(0,1)= 2;  A(0,2)=3;
00157             A(1,0)=2;   A(1,1)= 4;  A(1,2)=0;
00158             A(2,0)=3;   A(2,1)= 0;  A(2,2)=6;
00159             V=A;
00160             eigen::decomp(V,e,work);
00161             std::cout << "eigen: eig=" << e <<std::endl << "V=" << V << std::endl;
00162             ublas::c_matrix<float,3,3> Ainv;
00163             eigen::inverse(Ainv,V,e,relerr);
00164             std::cout << "eigen: A*Ainv=" << prod(A,Ainv) <<std::endl ;
00165
00166         }
00167         {
00168             std::cout << std::endl << "===  cholesky ===========" << std::endl;
00169             ublas::c_matrix<float,3,3> A;
00170             ublas::c_matrix<float,3,3> L;
00171             ublas::c_matrix<float,3,3> X;
00172             A(0,0)=3;   A(0,1)= 2;  A(0,2)=3;
00173             A(1,0)=2;   A(1,1)= 4;  A(1,2)=0;
00174             A(2,0)=3;   A(2,1)= 0;  A(2,2)=6;
00175             cholesky::decomp(A,L);
00176             std::cout << "cholesky: L=" << L <<std::endl << std::endl;
00177             X = ublas::prod(L,trans(L)) ;
00178             std::cout << "cholesky: L*transp(L)=" << X <<std::endl << std::endl;
00179         }
00180         {
00181             std::cout << std::endl << "===  LU ===========" << std::endl;
00182             ublas::c_matrix<float,3,3> A;
00183             ublas::c_matrix<float,3,3> LU;
00184             ublas::c_matrix<float,3,3> L;
00185             ublas::c_matrix<float,3,3> U;
00186             ublas::c_matrix<float,3,3> X;
00187             A(0,0)=3;   A(0,1)= 2;  A(0,2)=3;
00188             A(1,0)=2;   A(1,1)= 4;  A(1,2)=0;
00189             A(2,0)=3;   A(2,1)= 0;  A(2,2)=6;
00190             LU=A;
00191             ublas::lu_factorize(LU);
00192             std::cout << "LU: LU=" << LU <<std::endl << std::endl;
00193
00194 //        m.assign (triangular_adaptor<matrix_type, strict_lower> (lr) +
00195 //                  triangular_adaptor<matrix_type, upper> (ur));
00196             L.assign( ublas::triangular_adaptor<ublas::c_matrix<float,3,3>,ublas::strict_lower>(LU) );
00197             U.assign( ublas::triangular_adaptor<ublas::c_matrix<float,3,3>,ublas::upper>(LU) );
00198             for(int i=0; i<3; ++i)
00199                 L(i,i)=1;
00200             std::cout << "LU: L=" << L <<std::endl << std::endl;
00201             std::cout << "LU: U=" << U <<std::endl << std::endl;
00202             X = ublas::prod(L,U) ;
00203             std::cout << "LU: L*U=" << X <<std::endl << std::endl;
00204             std::cout << "LU: A-L*U=" << A-X <<std::endl << std::endl;
00205             std::cout << "LU: norm_1(A-L*U)=" << ublas::blas_1::asum(A-X) << std::endl;
00206 //          std::cout << "LU: norm_2(A-L*U)=" << ublas::blas_1::nrm2(A-X) << std::endl;
00207 //          std::cout << "LU: norm_inf(A-L*U)=" << ublas::blas_1::amax(A-X) << std::endl;
00208         }
00209         {
00210             std::cout << std::endl << "===  QR ===========" << std::endl;
00211             ublas::c_matrix<float,3,3> A;
00212             ublas::c_matrix<float,3,3> QR;
00213             ublas::c_matrix<float,3,3> Q;
00214             ublas::c_matrix<float,3,3> R;
00215             ublas::c_vector<float,3> Rdiag;
00216             ublas::c_matrix<float,3,3> X;
00217             A(0,0)=3;   A(0,1)= 2;  A(0,2)=3;
00218             A(1,0)=2;   A(1,1)= 4;  A(1,2)=0;
00219             A(2,0)=2;   A(2,1)= 0;  A(2,2)=7;
00220             QR=A;
00221             QR::decomp(QR,Rdiag);
00222             std::cout << "QR: QR=" << QR <<std::endl << std::endl;
00223             QR::getR(QR,Rdiag,R);
00224             QR::getQ(QR,Rdiag,Q);
00225             std::cout << "QR: Q=" << Q <<std::endl << std::endl;
00226             std::cout << "QR: R=" << R <<std::endl << std::endl;
00227             X=prod(Q,R);
00228             std::cout << "QR: Q*R=" << X <<std::endl << std::endl;
00229             X-=A;
00230             std::cout << "LU: A-Q*R=" << X <<std::endl << std::endl;
00231             std::cout << "LU: asum(A-Q*R)=" << ublas::blas_1::asum(X) << std::endl;
00232             std::cout << "LU: amax(A-Q*R)=" << ublas::blas_1::amax(X) << std::endl;
00233
00234             std::cout << "LU: amax(A)=" << ublas::blas_1::amax(A) << std::endl;
00235             std::cout << "LU: A=" << A << std::endl;
00236             std::cout << "LU: A(0,2)=" << A(0,2) << std::endl;
00237             std::cout << "LU: norm_1(A) (max abs el sum in COLUMN)=" << norm_1(A) << std::endl;
00238             std::cout << "LU: norm_inf(A) (max abs el sum in ROW)=" << norm_inf(A) << std::endl;
00239             std::cout << "LU: norm_frobenius(A) (sqrt from el sumsq)=" << norm_frobenius(A) << std::endl;
00240
00241             std::cout << "LU: matrix_max_abs_element(A)=" << matrix_max_abs_element(A) << std::endl;
00242
00243             std::cout << "LU: norm_frobenius(X) (sqrt from el sumsq)=" << norm_frobenius(X) << std::endl;
00244             std::cout << "LU: matrix_max_abs_element(X)=" << matrix_max_abs_element(X) << std::endl;
00245
00246         }
00247     }
00248
00249
00250
00251     std::cout << "====================================" <<std::endl;
00252     return 0;
00253 }
00254


Pipe Line Filters: test_color_registration.cpp

  • Примеры

test_color_registration.cpp

Пример поиска преобразования подобия с помощью модифицированного алгоритма Reddy-Chatterji [Yurin_RegBushBroom2008] [ReddyChatterji ] .

00001
00002 #include <stdio.h>
00003 #include <string>
00004 #include <sstream>
00005 #include <memory> //auto_ptr()
00006 #include <iostream>
00007 #include <iomanip>
00008 #include <assert.h>
00009
00010 #include "aimage.h"
00011 #include "consolap.h"
00012 #include "img_registration.h"
00013 #include "progrcnt.h"
00014
00015 #include "tests.h"
00016
00017 namespace Tests
00018 {
00019     typedef float Real_t;
00021     template<class Img>
00022     void rotate(Img* img,Img* out, float* mat,float dx,float dy)
00023     {
00024         int w=img->Width();
00025         int h=img->Height();
00026         int nls=img->NextLineShift();
00027         Vtl::ImAlg::Resamp::InterpBilinear<Img::Pixel> interp((*img)[0],w,h,nls,Img::Pixel(0));
00028         float x0=float(w/2);
00029         float y0=float(h/2);
00030         Vtl::ImAlg::Resamp::Affine(interp,x0,y0,x0-dx,y0-dy,mat,(*out)[0],w,h,out->NextLineShift());
00031
00032     }
00034     void rotate(AImageMemRgb8* img,AImageMemRgb8* out, float* mat,float dx,float dy)
00035     {
00036         for(int i=0;i<3;i++)
00037         rotate(img->GetPlane8(i),out->GetPlane8(i),mat,dx,dy);
00038     }
00039
00041     template<class Img>
00042     int gray_registration(size_t sz,Img* img1,Img* img2,bool edge,const char* fname_out)
00043     {
00044         const int w=img1->Width();
00045         const int h=img1->Height();
00046         std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,w,h,img1->Bits()));
00047         Img* out=dynamic_cast<Img*>(_out.get());
00048         if (!out)
00049             return(1);
00050
00051         Vtl::Plf::SrcAImage<Real_t,Img> src_1("img1",img1);
00052
00053         Vtl::Plf::SrcAImage<Real_t,Img> src_2("img2",img2);
00054
00055
00056         std::list<Vtl::Plf::FilterElementary*> lst1;
00057         lst1.push_back(&src_1);
00058         std::list<Vtl::Plf::FilterElementary*> lst2;
00059         lst2.push_back(&src_2);
00060
00061
00062         //Следующие определения нужны только для совмещения серого изображения КАК КОНТУРНОГО
00063         const int bits=img1->Bits();
00064         const float maxPixelVal=float((1<<bits)-1);
00065     // Classic Canny
00066         float sigma=1.0f;
00067         float env_size_in_sigmas=2.5f;
00068         float gamma=2.2f;
00069         float threshold=20;
00070         //Vtl::Plf::F11::DoNothing<float> gam_cor;
00071         Vtl::Plf::Canny<float> canny_1("Canny",threshold,maxPixelVal,sigma,env_size_in_sigmas,gamma,Vtl::Plf::F11::DoNothing<float>());
00072         Vtl::Plf::Canny<float> canny_2("Canny",threshold,maxPixelVal,sigma,env_size_in_sigmas,gamma,Vtl::Plf::F11::DoNothing<float>());
00073
00074
00075         Vtl::Plf::OutPortNoPostProc<Real_t>* dst_1=0;
00076         Vtl::Plf::OutPortNoPostProc<Real_t>* dst_2=0;
00077
00078         typedef Vtl::ImAlg::Registration::Hartley<Real_t,Vtl::ImAlg::Model::Similarity<Real_t> > ReddyChatterji;
00079         ReddyChatterji reddy;
00080
00081         if (edge)
00082         {
00083             src_1.out.ConnectTo(&canny_1.in());
00084             dst_1=&canny_1.out();
00085
00086             src_2.out.ConnectTo(&canny_2.in());
00087             dst_2=&canny_2.out();
00088
00089             reddy.Init(sz, true);
00090         }
00091         else
00092         {
00093             dst_1=&src_1.out;
00094             dst_2=&src_2.out;
00095
00096             reddy.Init(sz, false);
00097         }
00098         reddy.Insert<1>(dst_1,lst1.begin(),lst1.end());
00099         reddy.Insert<2>(dst_2,lst2.begin(),lst2.end());
00100         //float matrix_2x2[4];
00101         //float dx;
00102         //float dy;
00103         typename ReddyChatterji::Model model;
00104         reddy.Run(model,w,h);
00105         std::cout << model << std::endl;
00106         std::cout << model.getTransf(w,h) << std::endl;
00107         {
00108             const int nls=img2->NextLineShift();
00109             model.Interp((*img2)[0],w, h,nls,(*out)[0],out->NextLineShift(),Img::Pixel(0));
00110 			::AImageSave(out,fname_out,indicator);
00111         }
00112         return(0);
00113     }
00114
00115     int color_registration(size_t sz,AImageMemRgb8* img1,AImageMemRgb8* img2,bool edge,const char* fname_out)
00116     {
00117         AImageMem8 * r1=img1->GetPlane8(0);
00118         AImageMem8 * g1=img1->GetPlane8(1);
00119         AImageMem8 * b1=img1->GetPlane8(2);
00120         AImageMem8 * r2=img2->GetPlane8(0);
00121         AImageMem8 * g2=img2->GetPlane8(1);
00122         AImageMem8 * b2=img2->GetPlane8(2);
00123         const int w=img1->Width();
00124         const int h=img1->Height();
00125
00126         std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_RGB,img1->Width(),img1->Height(),8));
00127         AImageMemRgb8* out=dynamic_cast<AImageMemRgb8*>(_out.get());
00128         if (!out)
00129             return(1);
00130         AImageMem8 * ro=out->GetPlane8(0);
00131         AImageMem8 * go=out->GetPlane8(1);
00132         AImageMem8 * bo=out->GetPlane8(2);
00133
00134
00135         Vtl::Plf::SrcAImage<Real_t,AImageMem8> src_r1("img1_r",r1);
00136         Vtl::Plf::SrcAImage<Real_t,AImageMem8> src_g1("img1_g",g1);
00137         Vtl::Plf::SrcAImage<Real_t,AImageMem8> src_b1("img1_b",b1);
00138
00139         Vtl::Plf::SrcAImage<Real_t,AImageMem8> src_r2("img2_r",r2);
00140         Vtl::Plf::SrcAImage<Real_t,AImageMem8> src_g2("img2_g",g2);
00141         Vtl::Plf::SrcAImage<Real_t,AImageMem8> src_b2("img2_b",b2);
00142
00143
00144
00145
00146
00147         std::list<Vtl::Plf::FilterElementary*> lst1;
00148         lst1.push_back(&src_r1);
00149         lst1.push_back(&src_g1);
00150         lst1.push_back(&src_b1);
00151         std::list<Vtl::Plf::FilterElementary*> lst2;
00152         lst2.push_back(&src_r2);
00153         lst2.push_back(&src_g2);
00154         lst2.push_back(&src_b2);
00155
00156
00157         //Следующие определения нужны только для совмещения цветного  изображения КАК СЕРОГО
00158         Vtl::ImAlg::C::YCbCr::Y <float> Y1;
00159         Vtl::ImAlg::C::YCbCr::Y <float> Y2;
00160         Vtl::Plf::PixByPix3to1<float,Vtl::ImAlg::C::YCbCr::Y <float> >  rgb2gray_1("rgb2gray_1",Y1);
00161         Vtl::Plf::PixByPix3to1<float,Vtl::ImAlg::C::YCbCr::Y <float> >  rgb2gray_2("rgb2gray_2",Y2);
00162
00163         //Следующие определения нужны только для совмещения цветного  изображения КАК КОНТУРНОГО
00164         const int bits=r1->Bits();
00165         const int max_val=(1<<bits)-1;
00166         float threshold=0;
00167         Vtl::Plf::DiZenzo<float> dizenzo_1("DiZenzo",float(max_val),threshold,2.0,2.5f,4.2f);
00168         Vtl::Plf::DiZenzo<float> dizenzo_2("DiZenzo",float(max_val),threshold,2.0,2.5f,4.2f);
00169
00170
00171
00172         Vtl::Plf::OutPortNoPostProc<Real_t>* dst_1=0;
00173         Vtl::Plf::OutPortNoPostProc<Real_t>* dst_2=0;
00174
00175         typedef Vtl::ImAlg::Registration::Hartley<Real_t,Vtl::ImAlg::Model::Similarity<Real_t> > ReddyChatterji;
00176         ReddyChatterji reddy;
00177         if (edge)
00178         {
00179             src_r1.out.ConnectTo(&dizenzo_1.in_1);
00180             src_g1.out.ConnectTo(&dizenzo_1.in_2);
00181             src_b1.out.ConnectTo(&dizenzo_1.in_3);
00182             //dizenzo.out().ConnectTo(&dst.in);
00183             dst_1=&dizenzo_1.out();
00184
00185             src_r2.out.ConnectTo(&dizenzo_2.in_1);
00186             src_g2.out.ConnectTo(&dizenzo_2.in_2);
00187             src_b2.out.ConnectTo(&dizenzo_2.in_3);
00188             //dizenzo.out().ConnectTo(&dst.in);
00189             dst_2=&dizenzo_2.out();
00190
00191
00192             reddy.Init(sz, true);
00193         }
00194         else
00195         {
00196             src_r1.out.ConnectTo(&rgb2gray_1.in_xx);
00197             src_g1.out.ConnectTo(&rgb2gray_1.in_xy);
00198             src_b1.out.ConnectTo(&rgb2gray_1.in_yy);
00199             dst_1=&rgb2gray_1.out;
00200
00201             src_r2.out.ConnectTo(&rgb2gray_2.in_xx);
00202             src_g2.out.ConnectTo(&rgb2gray_2.in_xy);
00203             src_b2.out.ConnectTo(&rgb2gray_2.in_yy);
00204             dst_2=&rgb2gray_2.out;
00205
00206             reddy.Init(sz, false);
00207         }
00208         reddy.Insert<1>(dst_1,lst1.begin(),lst1.end());
00209         reddy.Insert<2>(dst_2,lst2.begin(),lst2.end());
00210         //float matrix_2x2[4];
00211         //float dx;
00212         //float dy;
00213         ReddyChatterji::Model model;
00214         reddy.Run(model,w,h);
00215
00216
00217         std::cout << model << std::endl;
00218         std::cout << model.getTransf(w,h) << std::endl;
00219         {
00220             int w=img2->Width();
00221             int h=img2->Height();
00222             int nls=r2->NextLineShift();
00223             model.Interp((*r2)[0],w, h,nls,(*ro)[0],nls,AImageMem8::Pixel(0));
00224                 nls=g2->NextLineShift();
00225             model.Interp((*g2)[0],w, h,nls,(*go)[0],nls,AImageMem8::Pixel(0));
00226                 nls=b2->NextLineShift();
00227             model.Interp((*b2)[0],w, h,nls,(*bo)[0],nls,AImageMem8::Pixel(0));
00228 			::AImageSave(out,fname_out,indicator);
00229         }
00230         return(0);
00231     }
00232
00233
00234
00235
00236     int test_color_registration(int argc,char *argv[])
00237     {
00238         std::cout << "==== color_registration() started ====" <<std::endl;
00239
00240         //const char *img_fname_1="pic1.tif";
00241         //const char *img_fname_2="pic2.tif";
00242
00243         const char *img_fname_1="budka1.bmp";
00244         const char *img_fname_2="budka2.bmp";
00245
00246         //const char *img_fname_1=argv[1];
00247         //const char *img_fname_2=argv[2];
00248
00249         std::cout << img_fname_1 <<std::endl;
00250         std::cout << img_fname_2 <<std::endl;
00251
00252     //---------------------------------
00253         try
00254         {
00255             std::auto_ptr<AImage> _im1(::AImageLoad(0,true,img_fname_1,indicator));
00256             std::auto_ptr<AImage> _im2(::AImageLoad(0,true,img_fname_2,indicator));
00257             AImage* im1=_im1.get();
00258             AImage* im2=_im2.get();
00259
00260             if(im1==0 || im2==0 )
00261                 throw "Imaged not loaded";
00262
00263             std::cout << typeid(im1).name() <<std::endl;
00264             std::cout << typeid(im2).name() <<std::endl;
00265
00266             size_t sz=0;
00267             {
00268                 size_t sz1=std::max(im1->Width(),im1->Height());
00269                 size_t d1 =std::min(im1->Width(),im1->Height());
00270                 std::cout << "sz2=" << sz1 << " d1=" <<d1 <<std::endl;
00271                 if(sz1>2*d1)
00272                 {
00273                     throw "image 1 is too narraw!";
00274                 }
00275                 size_t sz2=std::max(im2->Width(),im2->Height());
00276                 size_t d2 =std::min(im2->Width(),im2->Height());
00277                 std::cout << "sz2=" << sz2 << " d2=" <<d2 <<std::endl;
00278                 if(sz2>2*d2)
00279                 {
00280                     throw "image 2 is too narraw!";
00281                 }
00282                 if(2*std::min(sz1,sz2) < std::max(sz1,sz2))
00283                 {
00284                     throw "images more the 2 times different size!";
00285                 }
00286
00287                 sz=Vtl::NumAlg::IntTransf::Utils::CalcSmalestPow2(std::max(sz1,sz2));
00288                 std::cout << "New image size =" << sz <<std::endl;
00289             }
00290
00291
00292             if(im1->GetImageStore()!=im2->GetImageStore())
00293                 throw "Imaged are of different storage type";
00294             if(im1->ImageClass()!=im2->ImageClass())
00295                 throw "Imaged are of different photometric type";
00296             switch(im1->GetImageStore())
00297             {
00298             case AImage::IMGS_AImageMem8:
00299                 {
00300                     AImageMem8* img=dynamic_cast<AImageMem8*>(im1);
00301                     if(img!=0)
00302                     {
00303                         switch(img->ImageClass())
00304                         {
00305                         case AImage::IMGC_GRAYSCALE:
00306                             { // изображение серое
00307                                 gray_registration(sz,img,dynamic_cast<AImageMem8*>(im2),false,"result_gray.tif");
00308                                 gray_registration(sz,img,dynamic_cast<AImageMem8*>(im2),true,"result_gray_via_edge.tif");
00309                             }
00310                             break;
00311                         default:
00312                             throw "Unsupported";
00313                         };
00314                     }
00315                 }
00316                 break;
00317             case AImage::IMGS_AImageMem16:
00318                 {
00319                     AImageMem16* img=dynamic_cast<AImageMem16*>(im1);
00320                     if(img!=0)
00321                     {
00322                         if(AImage::IMGC_GRAYSCALE==img->ImageClass())
00323                         { // изображение серое
00324                             gray_registration(sz,img,dynamic_cast<AImageMem16*>(im2),false,"result_gray.tif");
00325                             gray_registration(sz,img,dynamic_cast<AImageMem16*>(im2),true,"result_gray_via_edge.tif");
00326                         }
00327                     }
00328                 }
00329                 break;
00330
00331             case AImage::IMGS_AImageMemFloat:
00332                 gray_registration(sz,dynamic_cast<AImageMemFloat*>(im1),dynamic_cast<AImageMemFloat*>(im2),false,"result_gray.tif");
00333                 gray_registration(sz,dynamic_cast<AImageMemFloat*>(im1),dynamic_cast<AImageMemFloat*>(im2),true,"result_gray_via_edge.tif");
00334                 break;
00335
00336             case AImage::IMGS_AImageMemRgb8:
00337                 {
00338                     AImageMemRgb8* img=dynamic_cast<AImageMemRgb8*>(im1);
00339                     if(img!=0)
00340                     {
00341                         color_registration(sz,dynamic_cast<AImageMemRgb8*>(im1),dynamic_cast<AImageMemRgb8*>(im2),true,"result_rgb_via_edge.bmp");
00342                         color_registration(sz,dynamic_cast<AImageMemRgb8*>(im1),dynamic_cast<AImageMemRgb8*>(im2),false,"result_rgb_via_gray.bmp");
00343                     }
00344                 }
00345                 break;
00346             default:
00347                 throw "Unsupported";
00348             };
00349
00350             std::cout << "==== color_registration() finished ====" <<std::endl;
00351             return(0);
00352         }
00353         catch(::AErrorStatusBase& msg)
00354         {
00355             printf("Exception: %s\n",msg.Msg());
00356         }
00357         catch(std::string msg)
00358         {
00359             printf("Exception: %s\n",msg.c_str());
00360         }
00361         catch(const char * msg)
00362         {
00363             printf("Exception: %s\n",msg);
00364         };
00365         return 1;
00366     }
00367
00368 }//namespace Tests
00369


Pipe Line Filters: test_fast_gauss.cpp

  • Примеры

test_fast_gauss.cpp

Вычисление сверток: в точке, одномерных, двумерных, циклических и обычных с экстраполяцией за край данных (изображений). Быстрые и приближенные алгоритмы свертки для тех ядер, для которых такие алгоритмы есть. Используются как при потоковой фильтрации (пространство имен Plf) так и при обычных быстрых алгоритмах (все изображение в памяти). Примеры использования см. в

00001 #include <stdio.h>
00002 #include <stdlib.h> //rand(),srand()
00003 #include <time.h> //time()
00004
00005 #include <string>
00006 #include <sstream>
00007 #include <iostream>
00008 #include <fstream>
00009 #include <iomanip>
00010 #include <memory> //auto_ptr()
00011
00012 #include <list>
00013
00014 #include "plf_kernels_1d.h"
00015 #include "plf_functors.h"
00016 #include "imalg_tools.h"
00017 #include "aimage.h"
00018 #include "consolap.h"
00019 #include "tests.h"
00020
00021
00022
00023 namespace Tests
00024 {
00025
00026
00027     int test_fast_gauss(int argc, char* argv[])
00028     {
00029         //ConvKernel<float> ker; //Эта строка вызывает ошибку - класс предназначен только для наследования из него!
00030         {//Test Cyclic convolve
00031             std::cout << "========= Test Cyclic convolve ==========" <<std::endl;
00032             //-----Create Kernel
00033             //typedef Vtl::ImAlg::WndFun::Nuttall<float,0> FF;
00034             typedef Vtl::ImAlg::WndFun::Hann<float,0> FF;
00035             typedef Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Corr,true>  K;
00036             //FF func(10);
00037             FF func(7);
00038             K ker(func);
00039             //-----Print Kernel
00040             std::cout << "Kernel is: " << func.Name()<<std::endl;
00041             for( Vtl::Plf::Kernel::FKern<float>::const_iterator it=ker.begin(); it!=ker.end(); ++it)
00042                 std::cout << *it << "  ";
00043             std::cout << std::endl;
00044
00045             //-----Create data
00046             const float data[]={1,2,3,4,5,6,7,8,9,10};
00047             const int sz=sizeof(data)/sizeof(data[0]);
00048             std::vector<float> out_c(sz);
00049             std::vector<float> out_ci(sz);
00050             std::vector<float> out_r(sz);
00051             std::vector<float> out_ri(sz);
00052             std::copy(data,data+sz,out_ci.begin());
00053             std::copy(data,data+sz,out_ri.begin());
00054             //-----Convolve each kind
00055             Vtl::ImAlg::Conv::CyclicConv<float,K> cc(ker);
00056             Vtl::ImAlg::Conv::CyclicConvInplace<float,K> cci(ker);
00057             Vtl::ImAlg::Conv::Conv<float,K> rc(ker);
00058             Vtl::ImAlg::Conv::ConvInplace<float,K> rci(ker);
00059             cc(data,data+sz,out_c.begin());
00060             rc(data,data+sz,out_r.begin());
00061             cci(out_ci.begin(),out_ci.end());
00062             rci(out_ri.begin(),out_ri.end());
00063             //-----Print convolution results
00064             bool ok=true;
00065             for(int i=0; i<sz; ++i)
00066             {
00067                 if(out_ci[i]!=out_c[i])
00068                 {
00069                     ok=false;
00070                     std::cout << "Cyclic conv inplace != CyclicConv at i="<< i << " out_ci[i]="<< out_ci[i]<< "  out_c="<< out_c[i] <<std::endl;
00071                 }
00072                 if(out_ri[i]!=out_r[i])
00073                 {
00074                     ok=false;
00075                     std::cout << "Reflection conv inplace != ReflectConv at i="<< i << " out_ri[i]="<< out_ri[i]<< "  out_r="<< out_r[i] <<std::endl;
00076                 }
00077             }
00078             std::cout << "Convolve comparisons is ===== "<< (ok?"OK!":"ERROR!") << " =====" <<std::endl;
00079
00080             std::cout << "Results:"<<std::endl;
00081             int i=0;
00082             for( int i=0; i<sz ; ++i)
00083                 std::cout << "i=" << i <<"\t in=" << data[i] <<"\t out_c[i]=" << out_c[i] << "\t out_ci[i]="<< out_ci[i] <<"\t out_r[i]=" << out_r[i] <<"\t out_ri[i]=" << out_r[i] << std::endl;
00084             std::cout << std::endl;
00085
00086             std::list<float> lst;
00087             std::list<float> out_lst;
00088             for(int i=0; i<sz; ++i)
00089                 lst.push_back(data[i]);
00090             out_lst.resize(lst.size());
00091             cc(lst.begin(),lst.end(),out_lst.begin());
00092             std::cout << "Vtl::ImAlg::Conv::CyclicConv<> work  ==== " << (std::equal(out_c.begin(),out_c.end( ),out_lst.begin()) ? "OK":"BAD")    << " ===== on data placed in list container" << std::endl;
00093
00094             //rc.Run(lst.begin(),lst.end(),out1.begin());
00095             cci(lst.begin(),lst.end());
00096             std::cout << "Vtl::ImAlg::Conv::CyclicConvInplace<> work ==== " << (std::equal(out_c.begin(),out_c.end( ),lst.begin()) ? "OK":"BAD") << " ===== on data placed in list container" << std::endl;
00097             //rci.Run(lst.begin(),lst.end());
00098
00099         }
00100         {//test fast Gauss - сравнительный тест с обчным Гауссом - сверка значений.
00101             std::vector<float> data0;
00102             std::vector<float> data1;
00103             std::vector<float> data2;
00104             int len=200;
00105             data0.resize(len);
00106             data1.resize(len);
00107             data2.resize(len);
00108
00109 //          ::srand( (unsigned)time( NULL ) );
00110 //          for(int i=0; i<len;++i)
00111 //          {
00112 //              data0[i]=float( (rand()/double(RAND_MAX))* 200. - 100. );
00113 //          }
00114             for(int i=0; i<len;++i)
00115             {
00116                 data0[i]=float(((i/50)+1)*100);
00117             }
00118 //          for(int i=0; i<len;++i)
00119 //          {
00120 //              data0[i]=float(((i+20)%50==0)?17.54:0);
00121 //          }
00122             std::copy(data0.begin(),data0.end(),data1.begin());
00123             std::copy(data0.begin(),data0.end(),data2.begin());
00124             const float * d0=&(data0[0]);
00125             float * d1=&(data1[0]);
00126             float * d2=&(data2[0]);
00127             //double sigma=6.04f;
00128             double sigma=7.0f;
00129 #define DERIV 0
00130             Vtl::ImAlg::Conv::FastGaussConvolve<float,DERIV> g0(sigma);
00131             g0(d1,d1+len);
00132
00133
00134             typedef Vtl::ImAlg::WndFun::Gauss<float,DERIV> FF;
00135 #undef DERIV
00136             FF func(sigma,10);
00137             typedef Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Conv,true> K;
00138             K ker(func);
00139             //Vtl::Plf::Kernel::ConvolveNoExt(d0,d0+len,d2,ker);
00140             Vtl::ImAlg::Conv::ConvInplace<float,K> conv(ker);
00141             //conv.Run(d0,d0+len,d2);
00142             conv(d2,d2+len);
00143
00144
00145             float max_err=0;
00146             float max_relerr=0;
00147             float max_val=0;
00148             int i;
00149             for(i=0; i<len-50; ++i)
00150             {
00151                 //float dif=(d2[i]-d1[i])/std::max(std::abs(d2[i]),std::abs(d1[i]));
00152                 float dif=(d2[i]-d1[i]);
00153                 float max=std::max(std::abs(d2[i]),std::abs(d2[i]))+0.0000001f;
00154                 float adif=std::abs(dif);
00155                 max_err=std::max(max_err,adif);
00156                 max_val=std::max(max_val,std::abs(d2[i]));
00157                 max_relerr=std::max(max_relerr,adif/max);
00158                 //if(std::abs(dif) > std::max(0.1f*std::abs(d2[i]),0.001f) )
00159                 //  std::cout << "dif["<<i<<"]= " <<dif <<std::endl;
00160                     std::cout << "i="<<i <<"   d0[i]= " <<d0[i]   <<"   d2[i]= " <<d2[i]   <<"   d1[i]= " <<d1[i]   <<"   dif[i]= " <<dif   <<std::endl;
00161             }
00162             float max_err2=max_err;
00163             float max_relerr2=max_relerr;
00164             float max_val2=max_val;
00165             for(; i<len; ++i)
00166             {
00167                 //float dif=(d2[i]-d1[i])/std::max(std::abs(d2[i]),std::abs(d1[i]));
00168                 float dif=(d2[i]-d1[i]);
00169                 float max=std::max(std::abs(d2[i]),std::abs(d2[i]))+0.0000001f;
00170                 float adif=std::abs(dif);
00171                 max_err=std::max(max_err,adif);
00172                 max_val=std::max(max_val,std::abs(d2[i]));
00173                 max_relerr=std::max(max_relerr,adif/max);
00174                 //if(std::abs(dif) > std::max(0.1f*std::abs(d2[i]),0.001f) )
00175                 //  std::cout << "dif["<<i<<"]= " <<dif <<std::endl;
00176                     std::cout << "i="<<i <<"   d0[i]= " <<d0[i]   <<"   d2[i]= " <<d2[i]   <<"   d1[i]= " <<d1[i]   <<"   dif[i]= " <<dif   <<std::endl;
00177             }
00178             std::cout << "max_err ="<<max_err <<"   max_relerr = " <<max_relerr  <<"   max_err/max_val  = " <<max_err/max_val    <<std::endl;
00179             std::cout << "max_err2="<<max_err2 <<"   max_relerr2= " <<max_relerr2  <<"   max_err2/max_val2= " <<max_err2/max_val2    <<std::endl;
00180
00181
00182         }
00183         { //Тест быстрого гаусса - вычислений различных фильтров на изображении
00184             std::auto_ptr<AImage> _im(::AImageLoad(0,true,argv[1],indicator));
00185             AImageMem8* img=dynamic_cast<AImageMem8*>(_im.get());
00186             if(img)
00187             {
00188                 //подготовка массивов с данными (данные должны быть
00189                 //вещественными, поэтому перекладка в массив из AImage.
00190                 int w=img->Width();
00191                 int h=img->Height();
00192                 int sz=w*h;
00193                 std::vector<float> _data0(sz);
00194                 std::vector<float> _data1(sz);
00195                 std::vector<float> _data2(sz);
00196                 std::vector<float> _data3(sz);
00197                 float *data0=&(_data0[0]);
00198                 float *data1=&(_data1[0]);
00199                 float *data2=&(_data2[0]);
00200                 float *data3=&(_data3[0]);
00201
00202                 Vtl::Plf::F11::Convert<float> c_to_float;
00203                 Vtl::ImAlg::Tools::copy_1_1((*img)[0],w,h,img->NextLineShift(),data0,w,c_to_float);
00204
00205                 memcpy(data2,data0,sz*sizeof(float));
00206                 memcpy(data1,data0,sz*sizeof(float));
00207
00208
00209                 //Задается сигма
00210                 float sigma=3.5f;
00211                 //строятся объекты для быстрой сепарабельной свертки - до 3 производной включителдьно
00212                 Vtl::ImAlg::Conv::FastGaussConvolve<float,0> g0(sigma);
00213                 Vtl::ImAlg::Conv::FastGaussConvolve<float,1> g1(sigma);
00214                 Vtl::ImAlg::Conv::FastGaussConvolve<float,2> g2(sigma);
00215                 Vtl::ImAlg::Conv::FastGaussConvolve<float,3> g3(sigma);
00216
00217                 //----------- Вычисление производной по X и по Y от изображения ---
00218                 // по X :
00219                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(data1,w,h,w,g1,g0);
00220                 // по Y :
00221                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(data2,w,h,w,g0,g1);
00222                 // нормировка по яркости для сохраненияв 8-битное изображение.
00223                 //линейное преобразование яркости - функция Mult() возвращает множитель для свертки такой, чтобы растянуть
00224                 //размах функции в дианазон 0-M, где M - максимальная яркость ИСХОДНОГО изображения.
00225                 // Если результат знакопеременный - сдвинуть нуль в точку 128 (тогда размах надо уменьшить вдвое).
00226                 // Функтор линейного преобразования:
00227                 Vtl::Plf::F11::Lin<float> lin_1(g1.Deriv==0?g1.Mult(sigma):g1.Mult(sigma)/2.0f,g1.Deriv==0?0.0f:128.0f);
00228                 //Функтор преобразования типа:
00229                 Vtl::Plf::F11::Convert<uint8_t> c_to_Byte;
00230                 //Функтор комбинирования первых двух:
00231                 //Vtl::Plf::F::Comb<float> lin(mult,bias);
00232                 Vtl::Plf::F11::Comb<uint8_t,Vtl::Plf::F11::Lin<float>,Vtl::Plf::F11::Convert<uint8_t> > adj_1(lin_1,c_to_Byte);
00233                 // копирование с выполнением преобразований, заданных функтором и сохранение в файл:
00234                 Vtl::ImAlg::Tools::copy_1_1(data1,w,h,w,(*img)[0],img->NextLineShift(),adj_1);
00235 				::AImageSave(img,"fast_d1.tif");
00236                 // копирование с выполнением преобразований, заданных функтором и сохранение в файл:
00237                 Vtl::ImAlg::Tools::copy_1_1(data2,w,h,w,(*img)[0],img->NextLineShift(),adj_1);
00238 				::AImageSave(img,"fast_d2.tif");
00239
00240                 //----------- На базе производных по X и по Y от изображения вычисление модуля градиента ---
00241                 //Он задается функтором:
00242                 Vtl::Plf::F21::SqrtOfSumSqr<float> sumsqr;
00243                 //теперь данные преобразуются этим функтором:
00244                 Vtl::ImAlg::Tools::copy_2_1(data2,w,h,w,data1,w,data2,w,sumsqr);
00245
00246                 //Линейное преобразование яркости, преобразование типа и сохранение в фал также, как было выше:
00247                 Vtl::Plf::F11::Lin<float> lin_1mod(g1.Mult(sigma),0);
00248                 Vtl::Plf::F11::Comb<uint8_t,Vtl::Plf::F11::Lin<float>,Vtl::Plf::F11::Convert<uint8_t> > adj_1mod(lin_1mod,c_to_Byte);
00249                 Vtl::ImAlg::Tools::copy_1_1(data2,w,h,w,(*img)[0],img->NextLineShift(),adj_1mod);
00250 				::AImageSave(img,"fast_gmod.tif");
00251
00252                 //---------------------------------------------------
00253                 //Восстановление исходных данных в массивах 1 и 2
00254                 //(было изменено в ходе вычисления производных и модуля градиента):
00255                 memcpy(data1,data0,sz*sizeof(float));
00256                 memcpy(data2,data0,sz*sizeof(float));
00257                 //----------- Вычисление вторых производных по X и по Y от изображения ---
00258                 // по XX :
00259                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(data1,w,h,w,g2,g0);
00260                 // по YY :
00261                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(data2,w,h,w,g0,g2);
00262                 //вычисления Лапласиана, т.е. суммы вторых производных по Х и по Y
00263                 Vtl::Plf::F21::Sum<float> sum;
00264                 Vtl::ImAlg::Tools::copy_2_1(data2,w,h,w,data1,w,data2,w,sum);
00265
00266                 //Линейное преобразование яркости, преобразование типа и сохранение в файл
00267                 Vtl::Plf::F11::Lin<float> lin_2(g2.Deriv==0?g2.Mult(sigma):g2.Mult(sigma)/2.0f,g2.Deriv==0?0.0f:128.0f);
00268                 Vtl::Plf::F11::Comb<uint8_t,Vtl::Plf::F11::Lin<float>,Vtl::Plf::F11::Convert<uint8_t> > adj_2(lin_2,c_to_Byte);
00269                 Vtl::ImAlg::Tools::copy_1_1(data2,w,h,w,(*img)[0],img->NextLineShift(),adj_2);
00270 				::AImageSave(img,"fast_lapl.tif");
00271
00272                 //Сохранение в файл МОДУЛЯ лапласиана - единственное отличие
00273                 //в сложный функтор добавляется еще один шаг - вычисление модуля.
00274                 //Все преобразования происходят налету при копировании данных
00275                 //из массива data2 в объект AImage, массив data2 НЕ ИЗМЕНЯЕТСЯ.
00276                 Vtl::Plf::F11::Lin<float> lin_2mod(g2.Mult(sigma),0.0f);
00277                 Vtl::Plf::F11::Abs<float> abs;
00278                 Vtl::Plf::F11::Comb< float , Vtl::Plf::F11::Abs<float> , Vtl::Plf::F11::Lin<float> > lin_2mod_(abs,lin_2mod);
00279                 Vtl::Plf::F11::Comb<uint8_t, Vtl::Plf::F11::Comb< float ,Vtl::Plf::F11::Abs<float> , Vtl::Plf::F11::Lin<float> > ,Vtl::Plf::F11::Convert<uint8_t> > adj_2mod(lin_2mod_,c_to_Byte);
00280                 Vtl::ImAlg::Tools::copy_1_1(data2,w,h,w,(*img)[0],img->NextLineShift(),adj_2mod);
00281 				::AImageSave(img,"fast_lapl_modul.tif");
00282
00283                 //Ищем точки, где лапласиан имеет локальные максимумы.
00284                 ::memset(data1,0,sz*sizeof(float));
00285                 Vtl::ImAlg::Tools::findMax::SetPixel<float,1> functor(data1,w);
00286                 Vtl::ImAlg::Tools::findMax::is_center_max_in3x3<1> icm;
00287                 //Vtl::ImAlg::Tools::findMax::BoundsNo<1>(data2,w,h,w,icm,functor );
00288                 Vtl::ImAlg::Tools::findMax::BoundsCyclic<1>(data2,w,h,w,icm,functor );
00289                 Vtl::ImAlg::Tools::copy_1_1(data1,w,h,w,(*img)[0],img->NextLineShift(),adj_2mod);
00290
00291 				::AImageSave(img,"fast_lapl_modul_maxs.tif");
00292
00293                 //Восстановление исходных данных в массивах 1 и 2
00294                 //(было изменено в ходе вычисления лапласиана):
00295                 memcpy(data1,data0,sz*sizeof(float));
00296                 memcpy(data2,data0,sz*sizeof(float));
00297                 memcpy(data3,data0,sz*sizeof(float));
00298                 // перевычисляем вторые производные:
00299                 // по XX :
00300                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(data1,w,h,w,g2,g0);
00301                 // по YY :
00302                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(data2,w,h,w,g0,g2);
00303                 // по XY :
00304                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(data3,w,h,w,g1,g1);
00305                 //Вычисляем детерминант Гессиана
00306                 Vtl::Plf::F31::HessianDetSqrt<float> detH;
00307                 //порядок аргументов data1,data3,data2 определяется порядком аргументов в функторе
00308                 Vtl::ImAlg::Tools::copy_3_1(data1,w,h,w,data3,w,data2,w,data1,w,detH);
00309
00310                 //НЕлинейное преобразование яркости, преобразование типа и сохранение в фал также, как было выше:
00311                 //Vtl::Plf::F::Lin<float> lin_3mod(2*g2.Mult(sigma),0);
00312                 Vtl::Plf::F11::GammaCorMult<float> lin_3mod(255,2.2,1.0*g2.Mult(sigma));
00313                 Vtl::Plf::F11::Comb<uint8_t,Vtl::Plf::F11::GammaCorMult<float>,Vtl::Plf::F11::Convert<uint8_t> > adj_3mod(lin_3mod,c_to_Byte);
00314                 Vtl::ImAlg::Tools::copy_1_1(data1,w,h,w,(*img)[0],img->NextLineShift(),adj_3mod);
00315 				::AImageSave(img,"fast_hess_det.tif");
00316                 {
00317                     std::cout << "Test that convolution with gaussian derivative via FastGaussConvolve results in true image derivatives estimation" << std::endl;
00318                     Vtl::ImAlg::Conv::FastGaussConvolve<float,0> g0(sigma);
00319                     Vtl::ImAlg::Conv::FastGaussConvolve<float,1> g1(sigma);
00320                     static float d[100*100];
00321                     for(int a=0; a<5; ++a)
00322                     {
00323                         for(int y=0; y<100; ++y)
00324                         for(int x=0; x<100; ++x)
00325                             d[100*y+x]=float(a*x);
00326                         Vtl::ImAlg::Conv::Conv2D::conv2DInplace(d,100,100,100,g1,g0);
00327                         std::cout << "sigma= " << sigma << "  a=" << a <<std::endl;
00328                         std::cout << "d(10,10),(30,30),(70,50)=" << d[100*10+10] << " " << d[100*30+30] << " " << d[100*50+70] << std::endl;
00329                     }
00330                 }
00331             }
00332         }
00333
00334         return 0;
00335     }
00336 }//namespace Tests
00337


Pipe Line Filters: test_image_registration_via_fft.cpp

  • Примеры

test_image_registration_via_fft.cpp

Пример поиска преобразования сдвига/перекоса с помощью алгоритма из [Yurin_RegBushBroom2008] .

00001 #include <iostream>
00002 #include <iomanip>
00003 #include <sstream>
00004
00005 #include <string>
00006 #include <memory>
00007 #include "aimage.h"
00008 #include "consolap.h"
00009
00010 #include "img_registration.h"
00011
00012 #include "tests.h"
00013
00014
00015 namespace Tests
00016 {
00017
00018     typedef float Real_t;
00019
00020     template<typename T>
00021     std::pair<T,T> MinMaxImage(const T* p,int w, int h,int nls)
00022     {
00023         T min_v=p[0];
00024         T max_v=p[0];
00025         for(int y=0; y<h ; ++y,p+=nls)
00026         {
00027             for(int x=0; x<w; ++x)
00028                 if(p[x]<min_v)
00029                     min_v=p[x];
00030                 else if(p[x]>max_v)
00031                     max_v=p[x];
00032         }
00033         return std::pair<T,T>(min_v,max_v);
00034     }
00035
00036     template<typename T>
00037     void SaveImage(std::string fname,const T* p,int w, int h,int nls,T add,T mul,bool truc_neg=false)
00038     {
00039         std::auto_ptr<AImage> _im(::AImageCreate(0,AImage::IMGC_GRAYSCALE,w,h,8));
00040         AImageMem8* im=dynamic_cast<AImageMem8*>(_im.get());
00041         for(int y=0; y<h; ++y)
00042         {
00043             AImageMem8::Pixel *out=(*im)[y];
00044             for(int x=0; x<w; ++x)
00045             {
00046                 if(truc_neg)
00047                 {
00048                     T v=(p[x]+add)*mul;
00049                     if(v<0) v=0;
00050                     out[x]=AImageMem8::Pixel( v );
00051                 }
00052                 else
00053                     out[x]=AImageMem8::Pixel( (p[x]+add)*mul );
00054             }
00055             p+=nls;
00056         }
00057 		::AImageSave(im,fname.c_str(),0);
00058     }
00059     template<unsigned blk_n>
00060     void test_save(const Vtl::ImAlg::Registration::Hartley<Real_t,Vtl::ImAlg::Model::Similarity<Real_t> >& reddy,std::string fname_root,size_t w,size_t h,bool gray)
00061     {
00062         //test print
00063         std::pair<Real_t,Real_t> mmax1=MinMaxImage(reddy.storage().block<blk_n>(),w,h,w);
00064         std::cout << fname_root <<": " << mmax1.first << " to " << mmax1.second <<std::endl;
00065         Real_t add=0;
00066         Real_t mul=1;
00067         if(!gray)
00068         {
00069             add-=mmax1.first;
00070             mul=mmax1.second-mmax1.first;
00071             mul=Real_t(253)/mul;
00072             //add/=mul;
00073         }
00074         else
00075         {
00076             add=128;
00077             mul=std::max(std::abs(mmax1.first),std::abs(mmax1.second));
00078             mul=Real_t(127)/mul;
00079             add/=mul;
00080         }
00081         SaveImage(std::string("hreg_")+fname_root+".tif",reddy.storage().block<blk_n>(),w,h,w,add,mul,true);
00082     }
00083     void test_save_x(float *block,std::string fname_root,size_t w,size_t h,bool gray)
00084     {
00085         //test print
00086         std::pair<Real_t,Real_t> mmax1=MinMaxImage(block,w,h,w);
00087         std::cout << fname_root <<": " << mmax1.first << " to " << mmax1.second <<std::endl;
00088         Real_t add=0;
00089         Real_t mul=1;
00090         if(!gray)
00091         {
00092             add-=mmax1.first;
00093             mul=mmax1.second-mmax1.first;
00094             mul=Real_t(253)/mul;
00095             //add/=mul;
00096         }
00097         else
00098         {
00099             add=128;
00100             mul=std::max(std::abs(mmax1.first),std::abs(mmax1.second));
00101             mul=Real_t(127)/mul;
00102             add/=mul;
00103         }
00104         SaveImage(std::string("hreg_")+fname_root+".tif",block,w,h,w,add,mul,true);
00105     }
00106
00107
00108     template<class T>
00109     void image_registration_via_fft(T* img1,T* img2)
00110     {
00111         //----------------- Проверка условий на входные данные -------------------
00112         std::cout << typeid(img1).name() <<std::endl;
00113         std::cout << typeid(img2).name() <<std::endl;
00114         size_t sz1=std::max(img1->Width(),img1->Height());
00115         size_t d1 =std::min(img1->Width(),img1->Height());
00116         std::cout << "sz2=" << sz1 << " d1=" <<d1 <<std::endl;
00117         if(sz1>2*d1)
00118         {
00119             throw "image 1 is too narraw!";
00120         }
00121         size_t sz2=std::max(img2->Width(),img2->Height());
00122         size_t d2 =std::min(img2->Width(),img2->Height());
00123         std::cout << "sz2=" << sz2 << " d2=" <<d2 <<std::endl;
00124         if(sz2>2*d2)
00125         {
00126             throw "image 2 is too narraw!";
00127         }
00128         if(2*std::min(sz1,sz2) < std::max(sz1,sz2))
00129         {
00130             throw "images more the 2 times different size!";
00131         }
00132         //----------------- Совмещение изображений -------------------------------
00133         size_t sz=Vtl::NumAlg::IntTransf::Utils::CalcSmalestPow2(std::max(sz1,sz2));
00134         //sz<<=1; //Zero padding to next 2
00135         std::cout << "New image size =" << sz <<std::endl;
00136
00137         typedef Vtl::ImAlg::Model::SkewYOffset<Real_t> Model;
00138
00139         Vtl::ImAlg::Registration::Hartley<Real_t,Model> reddy;
00140
00141         reddy.Init(sz);
00142         {
00143             Vtl::Plf::SrcAImage<Real_t,T> src("img1",img1);
00144             std::list<Vtl::Plf::FilterElementary*> lst;
00145             lst.push_back(&src);
00146             reddy.Insert<1>(&(src.out),lst.begin(),lst.end());
00147             //reddy.AfterInsert<1>();
00148         }
00149         {
00150             Vtl::Plf::SrcAImage<Real_t,T> src("img2",img2);
00151             std::list<Vtl::Plf::FilterElementary*> lst;
00152             lst.push_back(&src);
00153             reddy.Insert<2>(&(src.out),lst.begin(),lst.end());
00154             //reddy.AfterInsert<2>();
00155         }
00156
00157         Model model;
00158         int w=img2->Width();
00159         int h=img2->Height();
00160         reddy.Run(model,w,h);//,matrix_2x2,&dx,&dy);
00161         //registration finished!
00162
00163         std::cout << model << std::endl;
00164         std::cout << model.getTransf(w,h) << std::endl;
00165         {
00166             int w=img2->Width();
00167             int h=img2->Height();
00168             int nls=img2->NextLineShift();
00169             std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,w,h,8));
00170             T *out=dynamic_cast<T*>(_out.get());
00171             if(!out)
00172                 std::cout << "out=NULL" <<std::endl;
00173             else
00174             {
00175                 model.Interp((*img2)[0],w, h,nls,(*out)[0],nls,T::Pixel(0));
00176 				::AImageSave(out,"hreg_result.tif",indicator);
00177             }
00178         }
00179     }
00180
00181     #define FRG_NUMBER 3  //0-6
00182     #define CHANS_PAIR 2  // 1& 1,2
00183                           // 2& 1,3
00184                           // 3& 2,3
00185
00186     int test_image_registration_via_fft(int argc,char *argv[])
00187     {
00188         std::cout << "==== test_image_registration_via_fft() started ====" <<std::endl;
00189     //  const char *img_fname_1=argv[1];
00190     //  const char *img_fname_2=argv[2];
00191     //---------------------------------
00192         std::cout << "Fragment # " <<  FRG_NUMBER <<std::endl;
00193         std::cout << "Channels pair is  ( " <<  (CHANS_PAIR==3?2:1) <<" , " << (CHANS_PAIR==1?2:3)<< ")" <<std::endl;
00194     #if FRG_NUMBER==0
00195             const char *img_fname_1="frg_skew_1.tif"; //"FONAR.TIF";
00196             const char *img_fname_2="frg_skew_2.tif"; //"FONAR_S.TIF";
00197     #elif FRG_NUMBER==1
00198         #if CHANS_PAIR == 1    // 1: 1&2
00199             const char *img_fname_1="frg1_c1.tif";
00200             const char *img_fname_2="frg1_c2.tif";
00201         #elif CHANS_PAIR == 2  // 2: 1&3
00202             const char *img_fname_1="frg1_c1.tif";
00203             const char *img_fname_2="frg1_c3.tif";
00204         #elif CHANS_PAIR == 3  // 3: 2&3
00205             const char *img_fname_1="frg1_c2.tif";
00206             const char *img_fname_2="frg1_c3.tif";
00207         #else
00208             std::cout << "macros CHANS_PAIR - inappropriate value" << std::endl;
00209         #endif
00210     #elif FRG_NUMBER==2
00211         #if CHANS_PAIR == 1    // 1: 1&2
00212             const char *img_fname_1="frg2_c1.tif";
00213             const char *img_fname_2="frg2_c2.tif";
00214         #elif CHANS_PAIR == 2  // 2: 1&3
00215             const char *img_fname_1="frg2_c1.tif";//pgm";
00216             const char *img_fname_2="frg2_c3.tif";//pgm";
00217         #elif CHANS_PAIR == 3  // 3: 2&3
00218             const char *img_fname_1="frg2_c2.tif";
00219             const char *img_fname_2="frg2_c3.tif";
00220         #else
00221             std::cout << "macros CHANS_PAIR - inappropriate value" << std::endl;
00222         #endif
00223     #elif FRG_NUMBER==3
00224         #if CHANS_PAIR == 1    // 1: 1&2
00225             const char *img_fname_1="frg3_c1.tif";
00226             const char *img_fname_2="frg3_c2.tif";
00227         #elif CHANS_PAIR == 2  // 2: 1&3
00228             const char *img_fname_1="frg3_c1.tif";//pgm";
00229             const char *img_fname_2="frg3_c3.tif";//pgm";
00230         #elif CHANS_PAIR == 3  // 3: 2&3
00231             const char *img_fname_1="frg3_c2.tif";
00232             const char *img_fname_2="frg3_c3.tif";
00233         #else
00234             std::cout << "macros CHANS_PAIR - inappropriate value" << std::endl;
00235         #endif
00236     #elif FRG_NUMBER==4
00237         #if CHANS_PAIR == 1    // 1: 1&2
00238             const char *img_fname_1="frg4_c1.tif";
00239             const char *img_fname_2="frg4_c2.tif";
00240         #elif CHANS_PAIR == 2  // 2: 1&3
00241             const char *img_fname_1="frg4_c1.tif";//pgm";
00242             const char *img_fname_2="frg4_c3.tif";//pgm";
00243         #elif CHANS_PAIR == 3  // 3: 2&3
00244             const char *img_fname_1="frg4_c2.tif";
00245             const char *img_fname_2="frg4_c3.tif";
00246         #else
00247             std::cout << "macros CHANS_PAIR - inappropriate value" << std::endl;
00248         #endif
00249     #elif FRG_NUMBER==5
00250         #if CHANS_PAIR == 1    // 1: 1&2
00251             const char *img_fname_1="frg5_c1.tif";
00252             const char *img_fname_2="frg5_c2.tif";
00253         #elif CHANS_PAIR == 2  // 2: 1&3
00254             const char *img_fname_1="frg5_c1.tif";//pgm";
00255             const char *img_fname_2="frg5_c3.tif";//pgm";
00256         #elif CHANS_PAIR == 3  // 3: 2&3
00257             const char *img_fname_1="frg5_c2.tif";
00258             const char *img_fname_2="frg5_c3.tif";
00259         #else
00260             std::cout << "macros CHANS_PAIR - inappropriate value" << std::endl;
00261         #endif
00262     #elif FRG_NUMBER==6
00263         #if CHANS_PAIR == 1    // 1: 1&2
00264             const char *img_fname_1="frg6_c1.tif";
00265             const char *img_fname_2="frg6_c2.tif";
00266         #elif CHANS_PAIR == 2  // 2: 1&3
00267             const char *img_fname_1="frg6_c1.tif";//pgm";
00268             const char *img_fname_2="frg6_c3.tif";//pgm";
00269         #elif CHANS_PAIR == 3  // 3: 2&3
00270             const char *img_fname_1="frg6_c2.tif";
00271             const char *img_fname_2="frg6_c3.tif";
00272         #else
00273             std::cout << "macros CHANS_PAIR - inappropriate value" << std::endl;
00274         #endif
00275     #else
00276         std::cout << "macros FRG_NUMBER - inappropriate value" << std::endl;
00277     #endif
00278     //---------------------------------
00279         std::auto_ptr<AImage> _im1(::AImageLoad(0,true,img_fname_1,indicator));
00280         std::auto_ptr<AImage> _im2(::AImageLoad(0,true,img_fname_2,indicator));
00281         AImage* im1=_im1.get();
00282         AImage* im2=_im2.get();
00283         if(im1==0 || im2==0 )
00284             throw "Imaged not loaded";
00285         if(im1->GetImageStore()!=im2->GetImageStore())
00286             throw "Imaged are of different storage type";
00287         if(im1->ImageClass()!=im2->ImageClass())
00288             throw "Imaged are of different photometric type";
00289         if(im1->ImageClass()!=AImage::IMGC_GRAYSCALE && im1->ImageClass()!=AImage::IMGC_FLOAT)
00290             throw "Can process only grayscale images";
00291         switch(im1->GetImageStore())
00292         {
00293         case AImage::IMGS_AImageMem8:
00294             image_registration_via_fft(dynamic_cast<AImageMem8*>(im1),dynamic_cast<AImageMem8*>(im2));
00295             break;
00296         case AImage::IMGS_AImageMem16:
00297             image_registration_via_fft(dynamic_cast<AImageMem16*>(im1),dynamic_cast<AImageMem16*>(im2));
00298             break;
00299         case AImage::IMGS_AImageMemFloat:
00300             image_registration_via_fft(dynamic_cast<AImageMemFloat*>(im1),dynamic_cast<AImageMemFloat*>(im2));
00301             break;
00302         default:
00303             throw "Can process images stored as ...";
00304         };
00305         std::cout << "==== test_image_registration_via_fft() finished ====" <<std::endl;
00306         return 0;
00307     }
00308
00309 }//namespace Tests
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: test_image_registration_via_oflow.cpp

  • Примеры

test_image_registration_via_oflow.cpp

Пример как работать с совмещением изображений по алгоритмам оптического потока [KLT_TK] , [KLT_ST] , [Zokai_Wolberg_2005] .

00001 #include <iostream>
00002 #include <iomanip>
00003 #include <sstream>
00004
00005 #include <string>
00006 #include <memory>
00007 #include "aimage.h"
00008 #include "consolap.h"
00009
00010 namespace Tests
00011 {
00012     template<typename T>
00013     void SaveImage(std::string fname,const T* p,int w, int h,int nls,T add,T mul,bool truc_neg=false);
00014 }
00015 #include "img_registration_oflow.h"
00016
00017 #include "tests.h"
00018
00019 namespace Tests
00020 {
00021
00022     typedef float Real_t;
00023
00024     template<class T>
00025     struct test_arg
00026     {
00027         const T& ma_;
00028         test_arg(const T& ma) : ma_(ma) {}
00029         template<unsigned n>
00030         void f()
00031         {
00032             std::cout << "n=" << n << "  Dx<n> = " << ma_.Dx<n>(1.01f,2.02f) << "  Dv<n> = " << ma_.Dy<n>(1.01f,2.02f) << std::endl;
00033         }
00034     };
00035     template<unsigned N>
00036     struct ForEach
00037     {
00038         template<class Func>
00039         static void _Do(Func func,Loki::Int2Type<N> )
00040         {
00041         }
00042         template<unsigned n,class Func>
00043         static void _Do(Func func,Loki::Int2Type<n> )
00044         {
00045             func.f<n>();
00046             _Do(func,Loki::Int2Type<n+1>() );
00047         }
00048         template<class Func>
00049         static void Do(Func func )
00050         {
00051             _Do(func,Loki::Int2Type<0>() );
00052         }
00053
00054     };
00055
00056     template<class Img>
00057     void image_registration_via_oflow(Img* im1,Img* im2)
00058     {
00059         if(im1->Width()!=im2->Width() || im1->Height()!=im2->Height())
00060             throw "Images are different size";
00061         if(im1->Bits()!=im2->Bits() )
00062             throw "Images are different bits";
00063
00064         //Тип и параметры искомой модели преобразования модели задаются здесь,
00065         //можно также указать начальное приближение.
00066         typedef Vtl::ImAlg::Model::Affine<Real_t> Model;
00067 //      typedef Vtl::ImAlg::Model::Offset<Real_t> Model;
00068         Model model;
00069         model.setIdentity();
00070
00071         //test model
00072         std::cout << "Model: N=" << model.N << " is " << (model.isLinear?"Linear":"NonLinear") << std::endl;
00073         test_arg<Model> ta(model);
00074         ForEach<model.N>::Do(ta);
00075
00076         const size_t w=im1->Width();
00077         const size_t h=im1->Height();
00078         //Здесь задается способ выделения паамяти под изображения (и пирамиду детальности),
00079         //тип данных, с которыми идет ВНУТРЕННЯЯ работа, обычно float32, цветное или серое изображение
00080         //(количество цветовых плоскостей), использовать или нет маску области интереса,
00081         // РАЗМЕРЫ ИЗОБРАЖЕНИЙ и количество уровней пирамиды детальности.
00082         typedef Vtl::ImAlg::Registration::OFlowAllocStrategy<Real_t,1,false> AllocStrategy;
00083         AllocStrategy alloc;
00084 //      alloc.Init(w,h,32,32);
00085         alloc.Init(w,h);
00086         std::cout << "Detality levels: " << alloc.Levels() << std::endl;
00087
00088         //Собственно совмещение. Больше объект не делает ничего, памяти не выделяет,
00089         //за исключением мелочей,  типа небольших матриц (порядка 8х8).
00090         //Объект копирует, инвертирует МОДЕЛЬ и активно с ней работает,
00091         //поэтому класс МОДЕЛИ должен быть легким, допускающим копирования и.т.п.
00092         Vtl::ImAlg::Registration::OFlow<Model,AllocStrategy> of(model,alloc);
00093         of.Insert1((*im1)[0],w,h,im1->NextLineShift());
00094         of.Insert2((*im2)[0],w,h,im2->NextLineShift());
00095         of.AfterInsert();
00096
00097         std::cout << "=============== Results: ==================" << std::endl;
00098         std::cout << model << std::endl;
00099         std::cout << "=============== Save transformation results direct and reverse: ==================" << std::endl;
00100         std::auto_ptr<AImage> _img_out(::AImageCreate(0,im1->ImageClass(),im1->Width(),im1->Height(),im1->Bits()));
00101         Img* img_out=dynamic_cast<Img*>(_img_out.get());
00102         model.Interp((*im2)[0],w, h,im2->NextLineShift(),(*img_out)[0],img_out->NextLineShift(),Img::Pixel(0));
00103 		::AImageSave(img_out,"a_result.tif",indicator);
00104         model.Inverse();
00105         model.Interp((*im1)[0],w, h,im1->NextLineShift(),(*img_out)[0],img_out->NextLineShift(),Img::Pixel(0));
00106 		::AImageSave(img_out,"a_result_rev.tif",indicator);
00107
00108     }
00109
00110
00111
00112     int test_image_registration_via_oflow(int argc,char *argv[])
00113     {
00114         std::cout << "==== test_image_registration_via_oflow() started ====" <<std::endl;
00115     //---------------------------------
00116         const char *img_fname_1="A_orig.tif"; //"FONAR.TIF";
00117         const char *img_fname_2="A_skew_20-40.tif"; //"FONAR_S.TIF";
00118 //      const char *img_fname_2="a_left3_up5.tif"; //"FONAR_S.TIF";
00119     //---------------------------------
00120         std::auto_ptr<AImage> _im1(::AImageLoad(0,true,img_fname_1,indicator));
00121         std::auto_ptr<AImage> _im2(::AImageLoad(0,true,img_fname_2,indicator));
00122         AImage* im1=_im1.get();
00123         AImage* im2=_im2.get();
00124         if(im1==0 || im2==0 )
00125             throw "Imaged not loaded";
00126         if(im1->GetImageStore()!=im2->GetImageStore())
00127             throw "Imaged are of different storage type";
00128         if(im1->ImageClass()!=im2->ImageClass())
00129             throw "Imaged are of different photometric type";
00130         if(im1->ImageClass()!=AImage::IMGC_GRAYSCALE && im1->ImageClass()!=AImage::IMGC_FLOAT)
00131             throw "Can process only grayscale images";
00132         switch(im1->GetImageStore())
00133         {
00134         case AImage::IMGS_AImageMem8:
00135             image_registration_via_oflow(dynamic_cast<AImageMem8*>(im1),dynamic_cast<AImageMem8*>(im2));
00136             break;
00137         case AImage::IMGS_AImageMem16:
00138             image_registration_via_oflow(dynamic_cast<AImageMem16*>(im1),dynamic_cast<AImageMem16*>(im2));
00139             break;
00140         case AImage::IMGS_AImageMemFloat:
00141             image_registration_via_oflow(dynamic_cast<AImageMemFloat*>(im1),dynamic_cast<AImageMemFloat*>(im2));
00142             break;
00143         default:
00144             throw "Can process images stored as ...";
00145         };
00146         std::cout << "==== test_image_registration_via_fft() finished ====" <<std::endl;
00147         return 0;
00148     }
00149
00150 }//namespace Tests
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: test_Integral_Transforms.cpp

  • Примеры

test_Integral_Transforms.cpp

Примеры как работать с преобразованиями Фурье/Хартли .

00001 //#include <stdio.h>
00002 #include <string>
00003 #include <vector>
00004 #include <iostream>
00005 #include <sstream>
00006 #include <fstream>
00007 #include <iomanip>
00008 #include <sstream>
00009 #include <memory> //auto_ptr()
00010 #include <assert.h>
00011
00012 #include "aimage.h"
00013 #include "integral_transforms.h"
00014 #include "debug_test.h"
00015 //#include "nummet.h"
00016 #include "yfilesys.h"
00017 #include "consolap.h"
00018
00019 #include "tests.h"
00020 namespace Tests
00021 {
00022     template<typename TT,typename II>
00023     class GaussFun
00024     {
00025         II N;
00026         TT sigma;
00027         TT c;
00028     public:
00029         GaussFun(II n,II n_sigmas) : N(n)
00030         {
00031             sigma=TT(N/2./TT(n_sigmas));
00032             c=0;
00033             for(II i=0; i<n; ++i)
00034                 c+=fun_value(i);
00035             c=1/c;
00036         }
00037         TT Sigma() const { return sigma;}
00038         TT operator()(II i) const
00039         {
00040             return c*fun_value(i);
00041         }
00042     private:
00043         TT fun_value(II i) const
00044         {
00045             TT x=TT(TT(i)-N/2)/sigma;
00046             //return TT(1./std::sqrt(2*M_PI)/sigma)*std::exp(-x*x/2);
00047             return TT(std::exp(-x*x/2));
00048         }
00049     };
00050
00051
00052     bool test_Utils_smallest_log2_ge_size()
00053     {
00054         std::cout << "====== Test Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size() function =======" << std::endl;
00055         bool is_ok=true;
00056         int size=1024;
00057         int log_size=Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size(size);
00058         std::cout << "Vtl::NumAlg::IntTransf::Utils::smallest_log2_gt_size(" << size<< ")=" << log_size << std::endl;
00059         if(log_size!=10)
00060             is_ok=false;
00061
00062         size=1023;
00063         log_size=Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size(size);
00064         std::cout << "Vtl::NumAlg::IntTransf::Utils::smallest_log2_gt_size(" << size<< ")=" << log_size << std::endl;
00065         if(log_size!=10)
00066             is_ok=false;
00067
00068         size=513;
00069         log_size=Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size(size);
00070         std::cout << "Vtl::NumAlg::IntTransf::Utils::smallest_log2_gt_size(" << size<< ")=" << log_size << std::endl;
00071         if(log_size!=10)
00072             is_ok=false;
00073         size=512;
00074         log_size=Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size(size);
00075         std::cout << "Vtl::NumAlg::IntTransf::Utils::smallest_log2_gt_size(" << size<< ")=" << log_size << std::endl;
00076         if(log_size!=9)
00077             is_ok=false;
00078         size=640;
00079         log_size=Vtl::NumAlg::IntTransf::Utils::CalcSmalestPow2(size);
00080         std::cout << "Vtl::NumAlg::IntTransf::Utils::CalcSmalestPow2(" << size<< ")=" << log_size << std::endl;
00081         if(log_size!=1024)
00082             is_ok=false;
00083         std::cout << (is_ok?"test OK":"test ERROR") << std::endl << "==============" << std::endl;
00084         return is_ok;
00085     }
00086     //-----------------------------
00087     bool test_Utils_rev()
00088     {
00089         std::cout << "================ Test bit reversing function ====================" << std::endl;
00090         unsigned size=8;
00091         unsigned log_size=3;
00092         unsigned step=2;
00093         bool is_ok=true;
00094         for(unsigned  i=0; i<size; ++i)
00095         {
00096             unsigned  rev=Vtl::NumAlg::IntTransf::Utils::rev(i, log_size);
00097             unsigned  rev2=Vtl::NumAlg::IntTransf::Utils::rev(i*step, log_size,step);
00098             std::cout << "Vtl::NumAlg::IntTransf::Utils::rev(" << i <<","<< log_size << ")=" << rev
00099                 << " | i*step=" << i*step << " rev(i*step)=" << rev2 << " rev2/step= " << rev2/step << "==" << rev << std::endl;
00100             if(rev2/step != rev )
00101                 is_ok=false;
00102             if(i != Vtl::NumAlg::IntTransf::Utils::rev(rev, log_size) )
00103                 is_ok=false;
00104         }
00105         std::cout << (is_ok?"test OK":"test ERROR") << std::endl << "==============" << std::endl;
00106         return is_ok;
00107     }
00108     //-----------------------------
00109     bool test_Utils_bit_reversal()
00110     {
00111         std::cout << "======== Test reordering sparse REAL array in bitreverse order ============" << std::endl;
00112         bool is_ok=true;
00113         typedef float Real_t;
00114         typedef size_t Int_t;
00115         const bool is_complex=false;
00116
00117         std::vector<Real_t> _data;
00118         for(Int_t n=1; n<32; n*=2)
00119         for(Int_t _step=1; _step<32; _step*=2)
00120         {
00121             std::cout << "size=" <<n<<" , step=" <<_step <<":"<<std::endl;
00122             Int_t step=(is_complex?2:1)*_step;
00123             //const Int_t n=8;
00124             //const Int_t step=4;
00125
00126             //allocate space and init
00127             const Int_t log_size=Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size(n);
00128             Int_t data_sz=n*step;
00129             _data.resize(data_sz);
00130             Real_t *data=&(_data[0]);
00131             memset(data,0,data_sz*sizeof(Real_t));
00132             //Assign data for test
00133             for(Int_t  i=0; i< n; ++i)
00134             {  // i номер образца
00135                 Int_t  j=i*step; //его положение в массиве
00136                 //---------------------------------------
00137                 data[j]=i+0.01f;
00138             }
00139             //call routine to test
00140             Vtl::NumAlg::IntTransf::Utils::bit_reversal(data,n,step);
00141
00142             // Проверка и печать результата
00143             for(Int_t  i=0; i< n; ++i)
00144             {  // i номер образца
00145                 Int_t  j=i*step; //его положение в массиве
00146                 //---------------------------------------
00147                 Int_t rev=Vtl::NumAlg::IntTransf::Utils::rev(i, log_size);
00148                 std::cout << i << " , " << data[j] << " : rev(i)="<< rev << std::endl;
00149                 if(abs(rev-data[j])>0.011)
00150                     is_ok=false;
00151             }
00152             std::cout << "-----------" << std::endl;
00153         }
00154         std::cout << (is_ok?"test OK":"test ERROR") << std::endl << "==============" << std::endl;
00155         return is_ok;
00156     }
00157     //-----------------------------
00158     bool test_Utils_bit_reversal_complex_pair()
00159     {
00160         std::cout << "======== Test reordering sparse COMPLEX array in bitreverse order ============" << std::endl;
00161         bool is_ok=true;
00162         typedef float Real_t;
00163         typedef size_t Int_t;
00164         const bool is_complex=true;
00165
00166         std::vector<Real_t> _data;
00167         for(Int_t n=1; n<32; n*=2)
00168         for(Int_t _step=1; _step<32; _step*=2)
00169         {
00170             std::cout << "size=" <<n<<" , step=" <<_step <<":"<<std::endl;
00171             Int_t step=(is_complex?2:1)*_step;
00172             //const Int_t n=8;
00173             //const Int_t step=4;
00174
00175             //allocate space and init
00176             const Int_t log_size=Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size(n);
00177             Int_t data_sz=n*step;
00178             _data.resize(data_sz);
00179             Real_t *data=&(_data[0]);
00180             memset(data,0,data_sz*sizeof(Real_t));
00181
00182             //Assign data for test
00183             for(Int_t  i=0; i< n; ++i)
00184             {  // i номер образца
00185                 Int_t  j=i*step; //его положение в массиве
00186                 //---------------------------------------
00187                 data[j]=i+0.01f; //Re
00188                 data[j+1]=i+0.02f;//Im
00189             }
00190
00191             //call routine to test
00192             Vtl::NumAlg::IntTransf::Utils::bit_reversal_complex(data,n,step);
00193
00194             // Проверка и печать результата
00195             for(Int_t  i=0; i< n; ++i)
00196             {  // i номер образца
00197                 Int_t  j=i*step; //его положение в массиве
00198                 //---------------------------------------
00199                 Int_t rev=Vtl::NumAlg::IntTransf::Utils::rev(i, log_size);
00200                 std::cout << i << " , (" << data[j] <<","<< data[j+1] << ") : rev(i)="<< rev << std::endl;
00201                 if(abs(rev-data[j])>0.011 || abs(rev-data[j+1])>0.021)
00202                     is_ok=false;
00203             }
00204             std::cout << "-----------" << std::endl;
00205         }
00206         std::cout << (is_ok?"test OK":"test ERROR") << std::endl << "==============" << std::endl;
00207         return is_ok;
00208     }
00209     //-----------------------------
00210     bool test_Utils_bit_reversal_complex_separate()
00211     {
00212         std::cout << "======== Test reordering sparse COMPLEX array (separate loc.) in bitreverse order ============" << std::endl;
00213         bool is_ok=true;
00214         typedef float Real_t;
00215         typedef size_t Int_t;
00216         const bool is_complex=true;
00217
00218         std::vector<Real_t> _data;
00219         for(Int_t n=1; n<32; n*=2)
00220         for(Int_t _step=1; _step<32; _step*=2)
00221         {
00222             std::cout << "size=" <<n<<" , step=" <<_step <<":"<<std::endl;
00223             Int_t step=1*_step;
00224             //const Int_t n=8;
00225             //const Int_t step=4;
00226
00227             //allocate space and init
00228             const Int_t log_size=Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size(n);
00229             Int_t data_sz=(is_complex?2:1)*n*step;
00230             _data.resize(data_sz);
00231             Real_t *re=&(_data[0]);
00232             Real_t *im=&(_data[data_sz/2]);
00233             memset(re,0,data_sz*sizeof(Real_t));
00234
00235             //Assign data for test
00236             for(Int_t  i=0; i< n; ++i)
00237             {  // i номер образца
00238                 Int_t  j=i*step; //его положение в массиве
00239                 //---------------------------------------
00240                 re[j]=i+0.01f; //Re
00241                 im[j]=i+0.02f;//Im
00242             }
00243
00244             //call routine to test
00245             Vtl::NumAlg::IntTransf::Utils::bit_reversal_complex(re,im,n,step);
00246
00247             // Проверка и печать результата
00248             for(Int_t  i=0; i< n; ++i)
00249             {  // i номер образца
00250                 Int_t  j=i*step; //его положение в массиве
00251                 //---------------------------------------
00252                 Int_t rev=Vtl::NumAlg::IntTransf::Utils::rev(i, log_size);
00253                 std::cout << i << " , (" << re[j] <<","<< im[j] << ") : rev(i)="<< rev << std::endl;
00254                 if(abs(rev-re[j])>0.011 || abs(rev-im[j])>0.021)
00255                     is_ok=false;
00256             }
00257             std::cout << "-----------" << std::endl;
00258         }
00259         std::cout << (is_ok?"test OK":"test ERROR") << std::endl << "==============" << std::endl;
00260         return is_ok;
00261     }
00262     //-----------------------------
00263     //-----------------------------
00264     bool test_Utils_SwapArrayHalfs_real()
00265     {
00266         std::cout << "========= Test Utils::SwapArrayHalfs() for sparse REAL array =========" << std::endl;
00267         bool is_ok=true;
00268         typedef float Real_t;
00269         typedef size_t Int_t;
00270         const bool is_complex=false;
00271
00272         std::vector<Real_t> _data;
00273         for(Int_t n=1; n<32; n*=2)
00274         for(Int_t _step=1; _step<32; _step*=2)
00275         {
00276             std::cout << "size=" <<n<<" , step=" <<_step <<":"<<std::endl;
00277             Int_t step=1*_step;
00278             //const Int_t n=8;
00279             //const Int_t step=4;
00280
00281             //allocate space and init
00282             const Int_t log_size=Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size(n);
00283             Int_t data_sz=(is_complex?2:1)*n*step;
00284             _data.resize(data_sz);
00285             Real_t *data=&(_data[0]);
00286             memset(data,0,data_sz*sizeof(Real_t));
00287
00288             //Assign data for test
00289             for(Int_t  i=0; i< n; ++i)
00290             {  // i номер образца
00291                 Int_t  j=i*step; //его положение в массиве
00292                 //---------------------------------------
00293                 data[j]=i+0.01f; //Re
00294             }
00295
00296             //call routine to test
00297             Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs<is_complex>(data,n,step);
00298
00299             // Проверка и печать результата
00300             for(Int_t  i=0; i< n; ++i)
00301             {  // i номер образца
00302                 Int_t  j=i*step; //его положение в массиве
00303                 //---------------------------------------
00304                 int k;
00305                 if(i<n/2)
00306                     k=i+n/2;
00307                 else
00308                     k=i-n/2;
00309                 std::cout << i << "  data[i]=" << data[j] <<"   =="<< (k+0.01) << std::endl;
00310                 if( abs(data[j]-(k+0.01)) > 0.001 )
00311                     is_ok=false;
00312             }
00313             std::cout << "-----------" << std::endl;
00314         }
00315         std::cout << (is_ok?"test OK":"test ERROR") << std::endl << "==============" << std::endl;
00316         return is_ok;
00317     }
00318     //-----------------------------
00319     bool test_Utils_SwapArrayHalfs_complex_pairs()
00320     {
00321         std::cout << "====== Test Utils::SwapArrayHalfs() for sparse COMPLEX array (loc. as pairs)======" << std::endl;
00322         bool is_ok=true;
00323         typedef float Real_t;
00324         typedef size_t Int_t;
00325         const bool is_complex=true;
00326
00327         std::vector<Real_t> _data;
00328         for(Int_t n=1; n<32; n*=2)
00329         for(Int_t _step=1; _step<32; _step*=2)
00330         {
00331             std::cout << "size=" <<n<<" , step=" <<_step <<":"<<std::endl;
00332             Int_t step=(is_complex?2:1)*_step;
00333             //const Int_t n=8;
00334             //const Int_t step=4;
00335
00336             //allocate space and init
00337             const Int_t log_size=Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size(n);
00338             Int_t data_sz=n*step;
00339             _data.resize(data_sz);
00340             Real_t *data=&(_data[0]);
00341             memset(data,0,data_sz*sizeof(Real_t));
00342
00343             //Assign data for test
00344             for(Int_t  i=0; i< n; ++i)
00345             {  // i номер образца
00346                 Int_t  j=i*step; //его положение в массиве
00347                 //---------------------------------------
00348                 data[j]=i+0.01f; //Re
00349                 data[j+1]=i+0.02f; //Re
00350             }
00351
00352             //call routine to test
00353             Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs<is_complex>(data,n,step);
00354
00355             // Проверка и печать результата
00356             for(Int_t  i=0; i< n; ++i)
00357             {  // i номер образца
00358                 Int_t  j=i*step; //его положение в массиве
00359                 //---------------------------------------
00360                 int k;
00361                 if(i<n/2)
00362                     k=i+n/2;
00363                 else
00364                     k=i-n/2;
00365                 std::cout << i << "  data[i]=(" << data[j] << "," << data[j+1] <<")"  << std::endl;
00366                 if( abs(data[j]-(k+0.01)) > 0.001 || abs(data[j+1]-(k+0.02)) > 0.001 )
00367                     is_ok=false;
00368             }
00369             std::cout << "-----------" << std::endl;
00370         }
00371         std::cout << (is_ok?"test OK":"test ERROR") << std::endl << "==============" << std::endl;
00372         return is_ok;
00373     }
00374     //-----------------------------
00375     bool test_Utils_SwapArrayHalfs_complex_separate()
00376     {
00377         std::cout << "====== Test Utils::SwapArrayHalfs() for sparse REAL array (separate loc.)======" << std::endl;
00378         bool is_ok=true;
00379         typedef float Real_t;
00380         typedef size_t Int_t;
00381         const bool is_complex=true;
00382
00383         std::vector<Real_t> _data;
00384         for(Int_t n=1; n<32; n*=2)
00385         for(Int_t _step=1; _step<32; _step*=2)
00386         {
00387             std::cout << "size=" <<n<<" , step=" <<_step <<":"<<std::endl;
00388             Int_t step=1*_step;
00389             //const Int_t n=8;
00390             //const Int_t step=4;
00391
00392             //allocate space and init
00393             const Int_t log_size=Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size(n);
00394             Int_t data_sz=(is_complex?2:1)*n*step;
00395             _data.resize(data_sz);
00396             Real_t *re=&(_data[0]);
00397             Real_t *im=&(_data[data_sz/2]);
00398             memset(re,0,data_sz*sizeof(Real_t));
00399
00400             //Assign data for test
00401             for(Int_t  i=0; i< n; ++i)
00402             {  // i номер образца
00403                 Int_t  j=i*step; //его положение в массиве
00404                 //---------------------------------------
00405                 re[j]=i+0.01f; //Re
00406                 im[j]=i+0.02f;//Im
00407             }
00408
00409             //call routine to test
00410             Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(re,im,n,step);
00411
00412             // Проверка и печать результата
00413             for(Int_t  i=0; i< n; ++i)
00414             {  // i номер образца
00415                 Int_t  j=i*step; //его положение в массиве
00416                 //---------------------------------------
00417                 int k;
00418                 if(i<n/2)
00419                     k=i+n/2;
00420                 else
00421                     k=i-n/2;
00422                 std::cout << i << "  re[j],im[j]=(" << re[j] << "," << im[j] <<")"  << std::endl;
00423                 if( abs(re[j]-(k+0.01)) > 0.001 || abs(im[j]-(k+0.02)) > 0.001 )
00424                     is_ok=false;
00425             }
00426             std::cout << "-----------" << std::endl;
00427         }
00428         std::cout << (is_ok?"test OK":"test ERROR") << std::endl << "==============" << std::endl;
00429         return is_ok;
00430     }
00431     //-----------------------------
00432     //-----------------------------
00433     template<typename Real_t>
00434     bool test_Four1_forward_reverse_equality()
00435     {
00436         std::cout << "======== Test 1D FFT and IFFT make equality (complex at separate loc.) in bitreverse order ============" << std::endl;
00437         bool is_ok=true;
00438         //typedef float Real_t;
00439         typedef int Int_t;
00440         const bool is_complex=true;
00441
00442         std::vector<Real_t> _data;
00443         for(Int_t n=2; n<64; n*=2)
00444         for(Int_t _step=1; _step<8; _step*=2)
00445         {
00446             std::cout << "size=" <<n<<" , step=" <<_step <<":" << std::endl;
00447             Int_t step=1*_step;
00448             //const Int_t n=8;
00449             //const Int_t step=4;
00450
00451             //allocate space and init
00452             Int_t data_sz=(is_complex?2:1)*n*step;
00453             _data.resize(data_sz);
00454             Real_t *re=&(_data[0]);
00455             Real_t *im=&(_data[data_sz/2]);
00456             memset(re,0,data_sz*sizeof(Real_t));
00457
00458             //Assign data for test
00459             GaussFun<Real_t,Int_t> fun(n,4);
00460             for(Int_t  i=0; i< n; ++i)
00461             {  // i номер образца
00462                 Int_t  j=i*step; //его положение в массиве
00463                 //---------------------------------------
00464                 re[j]=fun(i);
00465                 im[j]=0;//Im
00466             }
00467
00468             //call routine to test
00469             Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(re,im,n,step);
00470             Vtl::NumAlg::IntTransf::Fourier::fft1D<false>(re,im,n,step);
00471             Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(re,im,n,step);
00472             Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(re,im,n,step);
00473             Vtl::NumAlg::IntTransf::Fourier::fft1D<true>(re,im,n,step);
00474             Vtl::NumAlg::IntTransf::Fourier::norm_ifft(re,n,step);
00475             Vtl::NumAlg::IntTransf::Fourier::norm_ifft(im,n,step);
00476             Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(re,im,n,step);
00477
00478
00479
00480             // Проверка и печать результата
00481             std::cout << "sigme=" << fun.Sigma() << std::endl;
00482             Real_t max_re_diff=0;
00483             Real_t max_im_diff=0;
00484             //---------------------------------------
00485             int c=(n/2)*step;
00486             Real_t amp_c=Real_t(std::sqrt(re[c]*re[c]+im[c]*im[c]));
00487             for(Int_t  i=0; i< n; ++i)
00488             {  // i номер образца
00489                 Int_t  j=i*step; //его положение в массиве
00490                 //---------------------------------------
00491                 Real_t amp=std::sqrt(re[j]*re[j]+im[j]*im[j]);
00492                 Real_t phi=std::atan2(im[j],re[j]);
00493                 std::cout << std::setprecision(7) <<std::setiosflags(std::ios::showpoint|std::ios::fixed);
00494                 std::cout << std::setw(2) << i << ",(" << std::setw(10) << re[j] <<","<< std::setw(10) << im[j]
00495                 << " (amp,phi)=("<< std::setw(10) << amp << ","<< std::setw(10) << phi
00496                     << ") : gauss="<< std::setw(10) << fun(i) << std::endl;
00497                 max_re_diff=std::max(max_re_diff,std::abs(re[j]-fun(i)));
00498                 max_im_diff=std::max(max_im_diff,std::abs(im[j]-0));
00499             }
00500             // In next line 1 -means that function norm (integral, integral of modul is 1
00501             if( max_re_diff > 1*Vtl::NumAlg::RelerrEps<Real_t>() || max_im_diff > 1*Vtl::NumAlg::RelerrEps<Real_t>() )
00502                 is_ok=false;
00503             std::cout << std::setprecision(9) << std::setiosflags(std::ios::showpoint|std::ios::scientific);
00504             std::cout << "max_re_diff=" << max_re_diff << "   max_im_diff=" << max_im_diff << std::endl;
00505             std::cout << std::setprecision(7) << std::resetiosflags(std::ios::scientific);
00506             std::cout << "-----------" << std::endl;
00507         }
00508         std::cout << (is_ok?"test OK":"test ERROR") << std::endl << "==============" << std::endl;
00509         return is_ok;
00510     }
00511     //-----------------------------
00512     //-----------------------------
00513     template<typename Real_t>
00514     bool test_Four1_step()
00515     {
00516         std::cout << "======== Test 1D FFT correct for all data steps  (complex at separate and seq. loc.) ============" << std::endl;
00517         bool is_ok=true;
00518         //typedef float Real_t;
00519         typedef int Int_t;
00520         //const bool is_complex=true;
00521
00522         std::vector<Real_t> _data0;
00523         std::vector<Real_t> _data;
00524         for(Int_t n=2; n<64; n*=2)
00525         {
00526             std::cout << "size=" <<n<<" , step=" <<1 <<":" << std::endl;
00527             Int_t data_sz0=2*n*1; //2 as is_complex, step==1
00528             _data0.resize(data_sz0);
00529             Real_t *re0=&(_data0[0]);
00530             Real_t *im0=&(_data0[data_sz0/2]);
00531             memset(re0,0,data_sz0*sizeof(Real_t));
00532             //Assign data for test
00533             GaussFun<Real_t,Int_t> fun(n,4);
00534             for(Int_t  i=0; i< n; ++i)
00535             {  // i номер образца
00536                 re0[i]=fun(i);
00537                 im0[i]=0;//Im
00538             }
00539             Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(re0,im0,n,1);
00540             Vtl::NumAlg::IntTransf::Fourier::fft1D<false>(re0,im0,n,1);
00541             Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(re0,im0,n,1);
00542
00543             for(Int_t _step=2; _step<8; _step*=2)
00544             {
00545                 std::cout << "size=" <<n<<" , step=" <<_step <<":" << std::endl;
00546                 Int_t step=1*_step;
00547
00548                 //allocate space and init
00549                 Int_t data_sz=2*n*step; //2 as is_complex
00550                 _data.resize(data_sz);
00551                 Real_t *re=&(_data[0]);
00552                 Real_t *im=&(_data[data_sz/2]);
00553                 memset(re,0,data_sz*sizeof(Real_t));
00554
00555                 //Assign data for test
00556                 for(Int_t  i=0; i< n; ++i)
00557                 {  // i номер образца
00558                     Int_t  j=i*step; //его положение в массиве
00559                     //---------------------------------------
00560                     re[j]=fun(i);
00561                     im[j]=0;//Im
00562                 }
00563
00564                 //call routine to test
00565                 Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(re,im,n,step);
00566                 Vtl::NumAlg::IntTransf::Fourier::fft1D<false>(re,im,n,step);
00567                 Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(re,im,n,step);
00568
00569
00570                 // Проверка и печать результата
00571                 std::cout << "sigme=" << fun.Sigma() << std::endl;
00572                 Real_t max_re_diff=0;
00573                 Real_t max_im_diff=0;
00574                 //---------------------------------------
00575                 for(Int_t  i=0; i< n; ++i)
00576                 {  // i номер образца
00577                     Int_t  j=i*step; //его положение в массиве
00578                     //---------------------------------------
00579                     Real_t d_re=re[j]-re0[i];
00580                     Real_t d_im=im[j]-im0[i];
00581                     std::cout << std::setprecision(8) <<std::setiosflags(std::ios::showpoint|std::ios::fixed);
00582                     std::cout << std::setw(2) << i << ",(" << std::setw(10) << re[j] <<","<< std::setw(10) << im[j] << ") "
00583                         //<< "step=1:("<< std::setw(10) << re0[i] << ","<< std::setw(10) << im0[i] << ") "
00584                         << ": delta="
00585                         << std::setprecision(2) << std::setiosflags(std::ios::showpoint|std::ios::scientific)
00586                         << d_re << "," << d_im << ")"
00587                         << std::endl;
00588                     max_re_diff=std::max(max_re_diff,std::abs(d_re));
00589                     max_im_diff=std::max(max_im_diff,std::abs(d_im));
00590                 }
00591                 // In next line 1 -means that function norm (integral, integral of modul is 1
00592                 if( max_re_diff > 1*Vtl::NumAlg::RelerrEps<Real_t>() || max_im_diff > 1*Vtl::NumAlg::RelerrEps<Real_t>() )
00593                     is_ok=false;
00594                 std::cout << std::setprecision(9) << std::setiosflags(std::ios::showpoint|std::ios::scientific);
00595                 std::cout << "max_re_diff=" << max_re_diff << "   max_im_diff=" << max_im_diff << std::endl;
00596                 std::cout << std::setprecision(7) << std::resetiosflags(std::ios::scientific);
00597                 std::cout << "-----------" << std::endl;
00598             }
00599         }
00600         std::cout << (is_ok?"test OK":"test ERROR") << std::endl << "==============" << std::endl;
00601         return is_ok;
00602     }
00603     //-----------------------------
00604     //-----------------------------
00605     bool test_Four1_mathlab()
00606     {
00607         std::cout << "======== Test 1D FFT  (complex at separate loc.) vs. matlab ============" << std::endl;
00608         bool is_ok=true;
00609         typedef float Real_t;
00610         typedef int Int_t;
00611         const bool is_complex=true;
00612
00613         std::vector<Real_t> _data0;
00614         std::vector<Real_t> _data;
00615         for(Int_t n=2; n<64; n*=2)
00616         {
00617             std::fstream fs;
00618             std::ostringstream fn;
00619             fn << ".\\nummet\\mat\\gauss_fft_" << std::setw(2) << std::setfill('0') << n <<".dat" ;
00620             fs.open(fn.str().c_str(),std::ios_base::in);
00621             if(!fs)
00622             {
00623                 std::ostringstream os;
00624                 os<<"Can't open file "<< fn.str();
00625                 throw os.str();
00626             }
00627             _data0.resize(2*n);
00628             Real_t *re0=&(_data0[0]);
00629             Real_t *im0=re0+n;
00630             for(Int_t i=0; i<n; ++i)
00631             {
00632                 fs >> re0[i];
00633                 fs >> im0[i];
00634             }
00635             fs.close();
00636             for(Int_t _step=1; _step<8; _step*=2)
00637             {
00638                 std::cout << "size=" <<n<<" , step=" <<_step <<":" << std::endl;
00639                 Int_t step=1*_step;
00640                 //const Int_t n=8;
00641                 //const Int_t step=4;
00642
00643                 //allocate space and init
00644                 const Int_t log_size=Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size(n);
00645                 Int_t data_sz=(is_complex?2:1)*n*step;
00646                 _data.resize(data_sz);
00647                 Real_t *re=&(_data[0]);
00648                 Real_t *im=&(_data[data_sz/2]);
00649                 memset(re,0,data_sz*sizeof(Real_t));
00650
00651                 //Assign data for test
00652                 Real_t sigma=Real_t(n/2./8.);
00653                 Real_t sum=0;
00654                 for(Int_t  i=0; i< n; ++i)
00655                 {  // i номер образца
00656                     Int_t  j=i*step; //его положение в массиве
00657                     //---------------------------------------
00658                     Real_t x=Real_t(Real_t(i)-n/2)/sigma ;
00659                     re[j]=Real_t(1./std::sqrt(2*M_PI)/sigma)*std::exp(-x*x/2);
00660                     im[j]=0;//Im
00661                     sum+=re[j];
00662                 }
00663                 //Norm
00664                 for(Int_t  i=0; i< n; ++i)
00665                 {  // i номер образца
00666                     Int_t  j=i*step; //его положение в массиве
00667                     //---------------------------------------
00668                     re[j]=re[j]/sum;
00669                     im[j]=0;//Im
00670                 }
00671
00672                 //call routine to test
00673                 Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(re,im,n,step);
00674                 Vtl::NumAlg::IntTransf::Fourier::fft1D<false>(re,im,n,step);
00675                 Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(re,im,n,step);
00676
00677
00678                 // Проверка и печать результата
00679                 //Real_t sigma_rev=Real_t(n/2./M_PI/sigma);//*1.07276f;
00680                 Real_t max_re_diff=0;
00681                 Real_t max_im_diff=0;
00682                 //---------------------------------------
00683                 for(Int_t  i=0; i< n; ++i)
00684                 {  // i номер образца
00685                     Int_t  j=i*step; //его положение в массиве
00686                     //---------------------------------------
00687                     Real_t d_re=re[j]-re0[i];
00688                     Real_t d_im=im[j]-im0[i];
00689                     std::cout << std::setprecision(8) <<std::setiosflags(std::ios::showpoint|std::ios::fixed);
00690                     std::cout << std::setw(2) << i << ",(" << std::setw(10) << re[j] <<","<< std::setw(10) << im[j] << ") "
00691                         //<< "step=1:("<< std::setw(10) << re0[i] << ","<< std::setw(10) << im0[i] << ") "
00692                         << ": delta="
00693                         << std::setprecision(2) << std::setiosflags(std::ios::showpoint|std::ios::scientific)
00694                         << d_re << "," << d_im << ")"
00695                         << std::endl;
00696                     max_re_diff=std::max(max_re_diff,std::abs(d_re));
00697                     max_im_diff=std::max(max_im_diff,std::abs(d_im));
00698                 }
00699                 // In next line 2 -means that function norm (integral, integral of modul is 1,
00700                 // and 2=2*1 where 2 multiplier arises from RelerrEps() function returns value
00701                 // 2 times smaller than that of value added to 1 is really increase 1
00702                 if( max_re_diff > 2*Vtl::NumAlg::RelerrEps<Real_t>() || max_im_diff > 2*Vtl::NumAlg::RelerrEps<Real_t>() )
00703                     is_ok=false;
00704                 std::cout << std::setprecision(9) << std::setiosflags(std::ios::showpoint|std::ios::scientific);
00705                 std::cout << "max_re_diff=" << max_re_diff << "   max_im_diff=" << max_im_diff << std::endl;
00706                 std::cout << std::setprecision(7) << std::resetiosflags(std::ios::scientific);
00707                 std::cout << "-----------" << std::endl;
00708             }
00709         }
00710         std::cout << (is_ok?"test OK":"test ERROR") << std::endl << "==============" << std::endl;
00711         return is_ok;
00712     }
00713     //-----------------------------
00714     //-----------------------------
00715     bool test_hartley_vs_fft()
00716     {
00717         std::cout << "======== Test Hartley vs 1D FFT  (complex at separate loc.) ============" << std::endl;
00718         bool is_ok=true;
00719         typedef float Real_t;
00720         typedef int Int_t;
00721         const bool is_complex=true;
00722
00723         std::vector<Real_t> _data;
00724         std::vector<Real_t> _data_h;
00725         for(Int_t n=2; n<64; n*=2)
00726         for(Int_t _step=1; _step<32; _step*=2)
00727         {
00728             std::cout << "size=" <<n<<" , step=" <<_step <<":" << std::endl;
00729             Int_t step=1*_step;
00730             //const Int_t n=8;
00731             //const Int_t step=4;
00732
00733             //allocate space and init
00734             const Int_t log_size=Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size(n);
00735             Int_t data_sz=2*n*step;//is_complex
00736             _data.resize(data_sz);
00737             _data_h.resize((data_sz/2)+2*n);//is real, 1 - for hartley, 2*n - fft_real and fft_imag
00738             Real_t *re=&(_data[0]);
00739             Real_t *im=&(_data[data_sz/2]);
00740             Real_t *hart=&(_data_h[0]);
00741             Real_t *hart_re=hart+(data_sz/2);
00742             Real_t *hart_im=hart_re+n;
00743             memset(re,0,data_sz*sizeof(Real_t));
00744             memset(hart,0,_data_h.size()*sizeof(Real_t));
00745
00746             //Assign data for test
00747             //Assign data for test
00748             GaussFun<Real_t,Int_t> fun(n,8);
00749             for(Int_t  i=0; i< n; ++i)
00750             {  // i номер образца
00751                 Int_t  j=i*step; //его положение в массиве
00752                 //---------------------------------------
00753                 re[j]=fun(i);
00754                 im[j]=0;//Im
00755                 hart[j]=re[j];
00756             }
00757
00758
00759             //call routine to test
00760             Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(re,im,n,step);
00761             Vtl::NumAlg::IntTransf::Fourier::fft1D<false>(re,im,n,step);
00762             Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(re,im,n,step);
00763             Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs<false>(hart,n,step);
00764             Vtl::NumAlg::IntTransf::Hartley::fht1D_(hart,n,step);
00765             Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs<false>(hart,n,step);
00766             if(step==1)
00767             {
00768                 int nn[]={n};
00769                 Vtl::NumAlg::IntTransf::Hartley::GetReal<1>(hart,nn,hart_re);
00770                 Vtl::NumAlg::IntTransf::Hartley::GetImag<1>(hart,nn,hart_im);
00771             }
00772             else
00773             {
00774                 Vtl::NumAlg::IntTransf::Hartley::GetReal_1D(hart,n,hart_re,step,1);
00775                 Vtl::NumAlg::IntTransf::Hartley::GetImag_1D(hart,n,hart_im,step,1);
00776             }
00777
00778
00779             // Проверка и печать результата
00780             std::cout << "sigma=" << fun.Sigma() << std::endl;
00781             Real_t max_re_diff=0;
00782             Real_t max_im_diff=0;
00783             //---------------------------------------
00784             int c=(n/2)*step;
00785             Real_t amp_c=Real_t(std::sqrt(re[c]*re[c]+im[c]*im[c]));
00786             for(Int_t  i=0; i< n; ++i)
00787             {  // i номер образца
00788                 Int_t  j=i*step; //его положение в массиве
00789                 //---------------------------------------
00790                 Real_t amp=std::sqrt(re[j]*re[j]+im[j]*im[j]);
00791                 Real_t phi=std::atan2(im[j],re[j]);
00792                 std::cout << std::setprecision(7) <<std::setiosflags(std::ios::showpoint|std::ios::fixed);
00793                 std::cout << std::setw(2) << i << ",(" << std::setw(10) << re[j] <<","<< std::setw(10) << im[j]
00794                 << " (hart_re,hart_im)=("<< std::setw(10) << hart_re[i] << ","<< std::setw(10) << hart_im[i]  << ") "
00795                     << std::endl;
00796                 max_re_diff=std::max(max_re_diff,std::abs(re[j]-hart_re[i]));
00797                 max_im_diff=std::max(max_im_diff,std::abs(im[j]-hart_im[i]));
00798             }
00799             // In next line 1 -means that function norm (integral, integral of modul is 1
00800             if( max_re_diff > 3*Vtl::NumAlg::RelerrEps<Real_t>() || max_im_diff > 3*Vtl::NumAlg::RelerrEps<Real_t>() )
00801                 is_ok=false;
00802             std::cout << std::setprecision(9) << std::setiosflags(std::ios::showpoint|std::ios::scientific);
00803             std::cout << "max_re_diff=" << max_re_diff << "   max_im_diff=" << max_im_diff << std::endl;
00804             std::cout << std::setprecision(7) << std::resetiosflags(std::ios::scientific);
00805             std::cout << "-----------" << std::endl;
00806         }
00807         std::cout << (is_ok?"test OK":"test ERROR") << std::endl << "==============" << std::endl;
00808         return is_ok;
00809     }
00810     //-----------------------------
00811     bool test_speed()
00812     {
00813         std::cout << "Test FFT/Hartley speeed: " <<std::endl;
00814         std::vector<float> _data;
00815         size_t max_sz=4096;
00816
00817         size_t data_sz=2*max_sz*max_sz;//is_complex
00818         _data.resize(data_sz+32);
00819         float *re=&(_data[0]);
00820         float *im=&(_data[data_sz/2+32]);
00821
00822         for(size_t i=0; i<_data.size() ; ++i)
00823             re[i]=float(i);
00824         Vtl::Dbg::TimeElapsed t;
00825         int k=1;
00826
00827         for(int n=max_sz; n>100; n/=2, k*=4)
00828         {
00829             size_t nn[]={n,n};
00830
00831             t.start();
00832             for(int i=0; i<k ;++i)
00833             {
00834                 Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<2>(re,im,nn);
00835                 Vtl::NumAlg::IntTransf::Fourier::fft2D(re,im,nn);
00836                 Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<2>(re,im,nn);
00837             }
00838             t.finish();
00839             std::cout << "FFT NxN , N=" << std::setw(6) << n <<"   time="<< std::setw(6) << t.Get()/k << "  sec." <<std::endl;
00840
00841             t.start();
00842             for(int i=0; i<k ;++i)
00843             {
00844             Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<2,false>(re,nn);
00845             Vtl::NumAlg::IntTransf::Hartley::fht2D_square(re,n,n);
00846             Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<2,false>(re,nn);
00847             }
00848             t.finish();
00849             std::cout << "Hartley NxN , N=" << std::setw(6) << n <<"   time="<< std::setw(6) << t.Get()/k  << "  sec." << std::endl;
00850
00851         }
00852         std::cout << "Test speeed finished. " <<std::endl;
00853         return true;
00854     }
00855     //-----------------------------
00856     bool test_hartley_square()
00857     {
00858         std::cout << "======== Test 2D FHT  ============" << std::endl;
00859         bool is_ok=true;
00860         typedef float Real_t;
00861         typedef int Int_t;
00862         const bool is_complex=true;
00863
00864         std::vector<Real_t> _data;
00865         for(Int_t n=2; n<16; n*=2)
00866         {
00867             Int_t data_sz=n*n;
00868             _data.resize(data_sz);
00869             Real_t *data=&(_data[0]);
00870             memset(data,0,data_sz*sizeof(Real_t));
00871
00872             std::cout << "size = " <<n<<" x " << n <<":" << std::endl;
00873
00874                 //allocate space and init
00875 //              const Int_t log_size=Vtl::NumAlg::IntTransf::Utils::smallest_log2_ge_size(n);
00876
00877                 //Assign data for test
00878                 Int_t step=1;
00879                 Real_t sigma=Real_t(n/2./4.);
00880                 Real_t sum=0;
00881                 for(Int_t  y=0; y< n; ++y)
00882                 for(Int_t  x=0; x< n; ++x)
00883                 {  // i номер образца
00884                     Int_t  j=(y*n+x)*step; //его положение в массиве
00885                     //---------------------------------------
00886                     Real_t x_=Real_t(Real_t(x)-n/2)/sigma ;
00887                     Real_t y_=Real_t(Real_t(y)-n/2)/sigma ;
00888                     data[j]=Real_t(1./std::sqrt(2*M_PI)/sigma)*std::exp(-(x_*x_+y_*y_)/2);
00889                     sum+=data[j];
00890                 }
00891                 //Norm
00892                 for(Int_t  i=0; i< n; ++i)
00893                 {  // i номер образца
00894                     Int_t  j=i*step; //его положение в массиве
00895                     //---------------------------------------
00896                     data[j]=data[j]/sum;
00897                 }
00898
00899                 //call routine to test
00900                 Int_t nn[]={n,n};
00901                 Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<2,false>(data,nn);
00902                 //Vtl::NumAlg::IntTransf::CHartley<Real_t>::TransposeQuarters(data,n);
00903                 Vtl::NumAlg::IntTransf::Hartley::fht2D_square(data,n,n);
00904                 //Vtl::NumAlg::IntTransf::CHartley<Real_t>::TransposeQuarters(data,n);
00905                 Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<2,false>(data,nn);
00906
00907                 //Vtl::NumAlg::IntTransf::CHartley<Real_t>::Do2D(data,n);
00908
00909
00910                 // Проверка и печать результата
00911                 //Real_t sigma_rev=Real_t(n/2./M_PI/sigma);//*1.07276f;
00912                 //---------------------------------------
00913                 for(Int_t  y=0; y< n; ++y)
00914                 {
00915                     for(Int_t  x=0; x< n; ++x)
00916                     {  // i номер образца
00917                         Int_t j=y*n+x;
00918                         std::cout << std::setprecision(4) <<std::setiosflags(std::ios::showpoint|std::ios::fixed);
00919                         std::cout << std::setw(8) << data[j] <<" ";
00920 //                          << std::setprecision(2) << std::setiosflags(std::ios::showpoint|std::ios::scientific)
00921                     }
00922                     std::cout << std::endl;
00923                 }
00924                 std::cout << "---" << std::endl;
00925                 // In next line 2 -means that function norm (integral, integral of modul is 1,
00926                 // and 2=2*1 where 2 multiplier arises from RelerrEps() function returns value
00927                 // 2 times smaller than that of value added to 1 is really increase 1
00928 //              if( max_re_diff > 2*NumAlg::RelerrEps<Real_t>() || max_im_diff > 2*NumAlg::RelerrEps<Real_t>() )
00929 //                  is_ok=false;
00930 //              std::cout << std::setprecision(9) << std::setiosflags(std::ios::showpoint|std::ios::scientific);
00931 //              std::cout << "max_re_diff=" << max_re_diff << "   max_im_diff=" << max_im_diff << std::endl;
00932 //              std::cout << std::setprecision(7) << std::resetiosflags(std::ios::scientific);
00933                 std::cout << "-----------" << std::endl;
00934         }
00935         std::cout << (is_ok?"test OK":"test ERROR") << std::endl << "==============" << std::endl;
00936         return is_ok;
00937     }
00938
00939
00940
00941 int test_Integral_Transforms(int argc, char* argv[])
00942 {
00943 //----------------
00944     std::cout << "============== test_Integral_Transforms() ==============" << std::endl;
00945     bool is_ok=true;
00946     is_ok=is_ok && test_Utils_smallest_log2_ge_size();
00947     is_ok=is_ok && test_Utils_rev();
00948     is_ok=is_ok && test_Utils_bit_reversal();
00949     is_ok=is_ok && test_Utils_bit_reversal_complex_pair();
00950     is_ok=is_ok && test_Utils_bit_reversal_complex_separate();
00951     is_ok=is_ok && test_Utils_SwapArrayHalfs_real();
00952     is_ok=is_ok && test_Utils_SwapArrayHalfs_complex_pairs();
00953     is_ok=is_ok && test_Utils_SwapArrayHalfs_complex_separate();
00954     is_ok=is_ok && test_Four1_forward_reverse_equality<float>();
00955     is_ok=is_ok && test_Four1_forward_reverse_equality<double>();
00956     is_ok=is_ok && test_Four1_step<float>();
00957     is_ok=is_ok && test_Four1_step<double>();
00958     is_ok=is_ok && test_Four1_mathlab();
00959     is_ok=is_ok && test_hartley_vs_fft();
00960     is_ok=is_ok && test_hartley_square();
00961     is_ok=is_ok && test_speed();
00962
00963
00964 /*
00965     {
00966         double array_1[8]={0.1,1.1,2.1,3.1,4.1,5.1,6.1,7.1};
00967         size_t size= sizeof(array_1)/sizeof(array_1[0]);
00968         std::cout << "Original array_1[]" << std::endl;
00969         for(size_t i=0; i<size ; ++i)
00970             std::cout << "array_1[" << i <<"]="<< array_1[i] << std::endl;
00971         std::cout << "Vtl::NumAlg::IntTransf::Utils::bit_reversal(T data,I size)" << std::endl;
00972         Vtl::NumAlg::IntTransf::Utils::bit_reversal(array_1, size);
00973         for(size_t i=0; i<size ; ++i)
00974             std::cout << "array_1[" << i <<"]="<< array_1[i] << std::endl;
00975         std::cout << "Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(T* data,I size)" << std::endl;
00976         Vtl::NumAlg::IntTransf::Utils::SwapArrayHalfs(array_1,size);
00977         for(size_t i=0; i<size ; ++i)
00978             std::cout << "array_1[" << i <<"]="<< array_1[i] << std::endl;
00979     }
00980 */
00981
00982
00983     {
00984         float data[]={1,2,3,4, 5,6,7,8, 9,10,11,12, 13,14,15,16};
00985         size_t data_sz=sizeof(data)/sizeof(data[0]);
00986         size_t n[]={4,4};
00987         const size_t ndim=sizeof(n)/sizeof(n[0]);
00988         Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<ndim,false>(data,n);
00989         //Vtl::NumAlg::IntTransf::CHartley<float>::TransposeQuarters(data,n[0]);
00990
00991         std::cout << "SwapQuadrants:" << std::endl;
00992 //      for(size_t i=0; i<data_sz  ; ++i)
00993 //          std::cout << data[i] << std::endl;
00994         for(size_t y=0; y<n[1]  ; ++y)
00995         {
00996             for(size_t x=0; x<n[0]  ; ++x)
00997                 std::cout << data[y*n[0]+x] <<" ";
00998             std::cout << std::endl;
00999         }
01000     }
01001     {
01002         float data[256];
01003         Vtl::NumAlg::IntTransf::Fourier::fft2D<float,size_t>(data,4,4);
01004         Vtl::NumAlg::IntTransf::Fourier::fft3D<float,size_t>(data,4,4,2);
01005     }
01006     {
01007         std::cout << "Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<1>() :" << std::endl;
01008         float data[8];
01009         const size_t data_sz=sizeof(data)/sizeof(data[0]);
01010         size_t n[]={data_sz};
01011         for(int i=0; i< data_sz; i++)
01012             data[i]=i+0.01f;
01013         Vtl::NumAlg::IntTransf::Utils::F::Test<float> pp(data);
01014         Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<1>(n,pp);
01015         for(size_t i=0; i<data_sz  ; ++i)
01016             std::cout << i << "  " <<  data[i] << " " << std::endl;
01017     }
01018     {
01019         std::cout << "Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<2>() :" << std::endl;
01020         const size_t w=8;
01021         const size_t h=4;
01022         size_t n[]={w,h};
01023         const size_t ndim=sizeof(n)/sizeof(n[0]);
01024         float data[w*h];
01025         const size_t data_sz=sizeof(data)/sizeof(data[0]);
01026         for(int i=0; i< data_sz; i++)
01027             data[i]=i+0.01f;
01028         Vtl::NumAlg::IntTransf::Utils::F::Test<float> pp(data);
01029         Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<2>(n,pp);
01030         int i=0;
01031         std::cout << std::setprecision(2);
01032         for(size_t i1=0; i1<n[1]  ; ++i1)
01033         {
01034             for(size_t i0=0; i0<n[0]  ; ++i0)
01035                 std::cout << std::setw(5) << data[i++] << " ";
01036             std::cout << std::endl;
01037         }
01038     }
01039     {
01040         std::cout << "===" << std::endl <<"Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<3>() :" << std::endl;
01041         const size_t x=8;
01042         const size_t y=4;
01043         const size_t z=4;
01044         size_t n[]={x,y,z};
01045         const size_t ndim=sizeof(n)/sizeof(n[0]);
01046         float data[x*y*z];
01047         const size_t data_sz=sizeof(data)/sizeof(data[0]);
01048         for(int i=0; i< data_sz; i++)
01049             data[i]=i+0.01f;
01050         Vtl::NumAlg::IntTransf::Utils::F::Test<float> pp(data);
01051         Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<3>(n,pp);
01052         int i=0;
01053         std::cout << std::setprecision(2);
01054         for(size_t i2=0; i2<n[2]  ; ++i2)
01055         {
01056             for(size_t i1=0; i1<n[1]  ; ++i1)
01057             {
01058                 for(size_t i0=0; i0<n[0]  ; ++i0)
01059                     std::cout << std::setw(6) << data[i++] << " ";
01060                 std::cout << std::endl;
01061             }
01062             std::cout << std::endl;
01063         }
01064     }
01065
01066     //Vtl::NumAlg::IntTransf::Fourier<float,size_t>::four1(data,n,false);
01067
01068     std::cout << "##########---" << (is_ok?"All tests OK":"Some tests ERROR") << std::endl << "==============" << std::endl;
01069
01070     std::cout << std::setprecision(2) << std::setiosflags(std::ios::scientific);
01071     std::cout << "RelErr of float " << Vtl::NumAlg::RelerrEps<float>() << std::endl;
01072     std::cout << "RelErr of double " << Vtl::NumAlg::RelerrEps<double>() << std::endl;
01073     std::cout << "RelErr of long double " << Vtl::NumAlg::RelerrEps<long double>() << std::endl;
01074
01075     return 0;
01076 }
01077
01078 }//namespace Tests
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: test_plf_filters.cpp

  • Примеры

test_plf_filters.cpp

00001 #include <stdio.h>
00002 #include <string>
00003 #include <sstream>
00004 #include <memory> //auto_ptr()
00005 #include <assert.h>
00006
00007 #include "aimage.h"
00008 #include "yfilesys.h"
00009 #include "consolap.h"
00010
00011 #include "plf_filters.h"
00012 #include "plf_filters_complex.h"
00013 #include "plf_sys.h"
00014 #include "tests.h"
00015 #include <time.h>
00016 #include "Sidorkina/plt_filter_image.h"
00017 namespace Tests
00018 {
00019 /*
00020 class Filter1to1
00021 {
00022     AImage::Info inf;
00023 public:
00024     Filter1to1()
00025     {
00026     }
00027     void Init(AImage *input)
00028     {
00029         switch(input->GetImageStore())
00030         {
00031         case AImage::IMGS_AImageMem8:
00032         case AImage::IMGS_AImageMem16:
00033         case AImage::IMGS_AImageMemFloat:
00034             break;
00035         case AImage::IMGS_AImageMemRgb8:
00036         case AImage::IMGS_AImageMemRgb16:
00037             break;
00038         default:
00039             ;
00040         };
00041     }
00042     AImage::Info GetImageInfo() const {return inf;}
00043     void Run(AImage* output,ProgressCounter* indicator)
00044     {
00045     }
00046     protected:
00047 };
00048 */
00050
00051 template<class Img>
00052 int plf_test_Median(int r,Img* input,std::string out_name)
00053 {
00054     Vtl::Plf::SrcAImage<unsigned,Img> src("src",input);
00055     Vtl::Plf::DstAImage<unsigned,Img> dst("dst");
00056
00057     Vtl::Plf::medianFilter<unsigned> medianf(r,input->Bits(),"medain");
00058     src.out.ConnectTo(&medianf.in);
00059     medianf.out.ConnectTo(&dst.in);
00060
00061     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00062 //------ Assing task------------------------
00063     sys.Assign(&src,&dst);
00064 //------ Initialize destinations -----------
00065     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00066     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,input->Bits()));
00067     Img *out=dynamic_cast<Img *>(_out.get());
00068     if(out==0)
00069         return 1;
00070     dst.setDstImage(out);
00071     clock_t t1=clock();
00072     sys.Run(indicator,out_name.c_str());
00073     clock_t t2=clock();
00074     printf("classic time %d", int(t2-t1));
00075     std::string fn=out_name+".pgm";
00076 	::AImageSave(out,fn.c_str(),indicator);
00077     return 0;
00078 }
00079
00080 template<class Img>
00081 int plf_test_Median2(int r,Img* input,std::string out_name)
00082 {
00083     Vtl::Plf::SrcAImage<unsigned,Img> src("src",input);
00084     Vtl::Plf::DstAImage<unsigned,Img> dst("dst");
00085
00086     Vtl::Plf::medianFilter2<unsigned> medianf(r,input->Bits(),"medain");
00087     src.out.ConnectTo(&medianf.in);
00088     medianf.out.ConnectTo(&dst.in);
00089
00090     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00091 //------ Assing task------------------------
00092     sys.Assign(&src,&dst);
00093 //------ Initialize destinations -----------
00094     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00095     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,input->Bits()));
00096     Img *out=dynamic_cast<Img *>(_out.get());
00097     if(out==0)
00098         return 1;
00099     dst.setDstImage(out);
00100     clock_t t1=clock();
00101     sys.Run(indicator,out_name.c_str());
00102     clock_t t2=clock();
00103     printf("new time %d", int(t2-t1));
00104     std::string fn=out_name+".pgm";
00105 	::AImageSave(out,fn.c_str(),indicator);
00106     return 0;
00107 }
00108
00110 template<class Img>
00111 int plf_test_Resample(Img* input,std::string out_name)
00112 {
00113     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00114     Vtl::Plf::DstAImage<float,Img> dst("dst");
00115
00116     Vtl::Plf::Resample<float> resamp("Resample",712,800);
00117     src.out.ConnectTo(&resamp.in());
00118     resamp.out().ConnectTo(&dst.in);
00119
00120     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00121 //------ Assing task------------------------
00122     sys.Assign(&src,&dst);
00123 //------ Initialize destinations -----------
00124     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00125     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,input->Bits()));
00126     Img *out=dynamic_cast<Img *>(_out.get());
00127     if(out==0)
00128         return 1;
00129     dst.setDstImage(out);
00130
00131     sys.Run(indicator,out_name.c_str());
00132
00133     std::string fn=out_name+".pgm";
00134 	::AImageSave(out,fn.c_str(),indicator);
00135     return 0;
00136 }
00137
00138
00140
00141 template<class Img>
00142 int plf_test_AverageGauss(Img* input,std::string out_name)
00143 {
00144     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00145     Vtl::Plf::DstAImage<float,Img> dst("dst");
00146
00147     const int bits=input->Bits();
00148     const float maxPixelVal=float((1<<bits)-1);
00149     float sigma=1.7f;
00150     float env_size_in_sigmas=2.5f;
00151     Vtl::Plf::AverageGauss<float> average("Average",sigma,env_size_in_sigmas);
00152     src.out.ConnectTo(&average.in());
00153     average.out().ConnectTo(&dst.in);
00154
00155     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00156 //------ Assing task------------------------
00157     sys.Assign(&src,&dst);
00158 //------ Initialize destinations -----------
00159     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00160     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00161     Img *out=dynamic_cast<Img *>(_out.get());
00162     if(out==0)
00163         return 1;
00164     dst.setDstImage(out);
00165
00166     sys.Run(indicator,out_name.c_str());
00167
00168     std::string fn=out_name+".pgm";
00169 	::AImageSave(out,fn.c_str(),indicator);
00170     return 0;
00171 }
00172 template<class Img>
00173 int plf_test_Average(Img* input,std::string out_name)
00174 {
00175     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00176     Vtl::Plf::DstAImage<float,Img> dst("dst");
00177
00178     const int bits=input->Bits();
00179 //  const float maxPixelVal=float((1<<bits)-1);
00180     typedef Vtl::ImAlg::WndFun::Hann<float,0> FF;
00181     FF hann(9);
00182     Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Conv> kern(hann);
00183     Vtl::Plf::Average<float> average("AverageHann",&kern);
00184     src.out.ConnectTo(&average.in());
00185     average.out().ConnectTo(&dst.in);
00186
00187     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00188 //------ Assing task------------------------
00189     sys.Assign(&src,&dst);
00190 //------ Initialize destinations -----------
00191     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00192     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00193     Img *out=dynamic_cast<Img *>(_out.get());
00194     if(out==0)
00195         return 1;
00196     dst.setDstImage(out);
00197
00198     sys.Run(indicator,out_name.c_str());
00199
00200     std::string fn=out_name+".pgm";
00201 	::AImageSave(out,fn.c_str(),indicator);
00202     return 0;
00203 }
00204
00205
00206 template<class Img>
00207 int plf_test_Sharpen(Img* input,std::string out_name)
00208 {
00209     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00210     Vtl::Plf::DstAImage<float,Img> dst("dst");
00211
00212     const int bits=input->Bits();
00213     const float maxPixelVal=float((1<<bits)-1);
00214     float sigma=3.0f;
00215     float env_size_in_sigmas=2.0f;
00216     float amplification=4.0f;
00217     typedef Vtl::ImAlg::WndFun::Gauss<float,0> G0;
00218     Vtl::Plf::Kernel::FKern<float> gauss(G0(sigma,env_size_in_sigmas));
00219 //  Vtl::Plf::Kernel::Gauss<float,0,Vtl::Plf::Kernel::KT_Conv> gauss(sigma,env_size_in_sigmas);
00220     Vtl::Plf::F11::ToBounds<float> bounds(0,maxPixelVal);
00221     Vtl::Plf::Sharpen<float,Vtl::Plf::F11::ToBounds<float> > sharpen("Sharpen",&gauss,amplification,bounds);
00222     src.out.ConnectTo(&sharpen.in);
00223     sharpen.out().ConnectTo(&dst.in);
00224
00225     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00226 //------ Assing task------------------------
00227     sys.Assign(&src,&dst);
00228 //------ Initialize destinations -----------
00229     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00230     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00231     Img *out=dynamic_cast<Img *>(_out.get());
00232     if(out==0)
00233         return 1;
00234     dst.setDstImage(out);
00235
00236     sys.Run(indicator,out_name.c_str());
00237
00238     std::string fn=out_name+".pgm";
00239 	::AImageSave(out,fn.c_str(),indicator);
00240     return 0;
00241 }
00242
00243 template<class Img>
00244 int plf_test_MeanAndDisp(Img* input,std::string out_name)
00245 {
00246     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00247     Vtl::Plf::DstAImage<float,Img> dst_m("dst_mean");
00248     Vtl::Plf::DstAImage<float,Img> dst_d("dst_disp");
00249
00250     const int bits=input->Bits();
00251     const float maxPixelVal=float((1<<bits)-1);
00252     float sigma=3.0f;
00253     float env_size_in_sigmas=2.0f;
00254     Vtl::Plf::MeanAndDisp<float > mean_and_disp("MeanAndDisp",maxPixelVal,sigma,env_size_in_sigmas);
00255     src.out.ConnectTo(&mean_and_disp.in);
00256     mean_and_disp.out_mean().ConnectTo(&dst_m.in);
00257     mean_and_disp.out_disp().ConnectTo(&dst_d.in);
00258
00259     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00260 //------ Assing task------------------------
00261     //Vtl::Plf::FilterElementary* _dd[2]={&dst_m,&dst_d};
00262     std::list<Vtl::Plf::FilterElementary*> _dd;
00263     _dd.push_back(&dst_m);
00264     _dd.push_back(&dst_d);
00265     Vtl::Plf::FilterElementary* _ss[1]={&src};
00266     sys.Assign(&src,_dd.begin(),_dd.end());
00267 //------ Initialize destinations -----------
00268     Vtl::Plf::ImgSize is_m=dst_m.in.getImageSize();
00269     std::auto_ptr<AImage> _out_m(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is_m.width,is_m.height,bits));
00270     Img *out_m=dynamic_cast<Img *>(_out_m.get());
00271     if(out_m==0)
00272         return 1;
00273     dst_m.setDstImage(out_m);
00274     Vtl::Plf::ImgSize is_d=dst_d.in.getImageSize();
00275     std::auto_ptr<AImage> _out_d(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is_d.width,is_d.height,bits));
00276     Img *out_d=dynamic_cast<Img *>(_out_d.get());
00277     if(out_d==0)
00278         return 1;
00279     dst_d.setDstImage(out_d);
00280
00281     sys.Run(indicator,out_name.c_str());
00282
00283     std::string fn_m=out_name+"_mean.pgm";
00284 	::AImageSave(out_m,fn_m.c_str(),indicator);
00285     std::string fn_d=out_name+"_disp.pgm";
00286 	::AImageSave(out_d,fn_d.c_str(),indicator);
00287     return 0;
00288 }
00289 template<class Img>
00290 int plf_test_StatDiff(Img* input,std::string out_name)
00291 {
00292     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00293     Vtl::Plf::DstAImage<float,Img> dst("dst");
00294
00295     const int bits=input->Bits();
00296     const float maxPixelVal=float((1<<bits)-1);
00297     float sigma=5.0f;
00298     float env_size_in_sigmas=2.0f;
00299     float amplification=6.0f;
00300     float sigma_desired=maxPixelVal*85.0f/256.0f;
00301     float mean_desired=maxPixelVal/2;
00302     float alpha=0.8f;
00303     Vtl::Plf::F11::ToBounds<float> bounds(0,maxPixelVal);
00304
00305     Vtl::Plf::StatDiff<float,Vtl::Plf::F11::ToBounds<float> >
00306         statdiff("StatDiff",maxPixelVal,sigma,env_size_in_sigmas,amplification,sigma_desired,mean_desired,alpha,bounds);
00307
00308     src.out.ConnectTo(&statdiff.in);
00309     statdiff.out().ConnectTo(&dst.in);
00310
00311     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00312 //------ Assing task------------------------
00313     sys.Assign(&src,&dst);
00314 //------ Initialize destinations -----------
00315     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00316     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00317     Img *out=dynamic_cast<Img *>(_out.get());
00318     if(out==0)
00319         return 1;
00320     dst.setDstImage(out);
00321
00322     sys.Run(indicator,out_name.c_str());
00323
00324     std::string fn=out_name+".pgm";
00325 	::AImageSave(out,fn.c_str(),indicator);
00326     return 0;
00327 }
00328
00329 template<class Img>
00330 int plf_test_DeNoise(Img* input,std::string out_name)
00331 {
00332     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00333     Vtl::Plf::DstAImage<float,Img> dst("dst");
00334
00335     const int bits=input->Bits();
00336     const float maxPixelVal=float((1<<bits)-1);
00337     float sigma=3.0f;
00338     float env_size_in_sigmas=1.0f;
00339     float in_k_sigmas=2.0f;
00340     Vtl::Plf::F11::ToBounds<float> bounds(0,maxPixelVal);
00341
00342     Vtl::Plf::DeNoise<float,Vtl::Plf::F11::ToBounds<float> >
00343         denoise("DeNoise",maxPixelVal,sigma,env_size_in_sigmas,in_k_sigmas,bounds);
00344
00345     src.out.ConnectTo(&denoise.in);
00346     denoise.out().ConnectTo(&dst.in);
00347
00348     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00349 //------ Assing task------------------------
00350     sys.Assign(&src,&dst);
00351 //------ Initialize destinations -----------
00352     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00353     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00354     Img *out=dynamic_cast<Img *>(_out.get());
00355     if(out==0)
00356         return 1;
00357     dst.setDstImage(out);
00358
00359     sys.Run(indicator,out_name.c_str());
00360
00361     std::string fn=out_name+".pgm";
00362 	::AImageSave(out,fn.c_str(),indicator);
00363     return 0;
00364 }
00365
00366 template<class Img>
00367 int plf_test_HImage(Img* input,std::string out_name)
00368 {
00369     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00370     Vtl::Plf::DstAImage<float,Img> dst("dst");
00371
00372     const int bits=input->Bits();
00373     const float maxPixelVal=float((1<<bits)-1);
00374     int radius=7;
00375     float gamma=2.2f;
00376     Vtl::Plf::F11::GammaCorMult<float> gam_mult(maxPixelVal,gamma,1);
00377     Vtl::Plf::HImage<float,Vtl::Plf::F11::GammaCorMult<float> > himage("H-image",radius,gam_mult);
00378     src.out.ConnectTo(&himage.in());
00379     himage.out().ConnectTo(&dst.in);
00380
00381     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00382 //------ Assing task------------------------
00383     sys.Assign(&src,&dst);
00384 //------ Initialize destinations -----------
00385     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00386     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00387     Img *out=dynamic_cast<Img *>(_out.get());
00388     if(out==0)
00389         return 1;
00390     dst.setDstImage(out);
00391
00392     sys.Run(indicator,out_name.c_str());
00393
00394     std::string fn=out_name+".pgm";
00395 	::AImageSave(out,fn.c_str(),indicator);
00396     return 0;
00397 }
00398
00399 template<class Img>
00400 int plf_test_BiLateral(Img* input,std::string out_name)
00401 {
00402     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00403     Vtl::Plf::DstAImage<float,Img> dst("dst");
00404
00405     const int bits=input->Bits();
00406     const float maxPixelVal=float((1<<bits)-1);
00407     float epsilon=7.0f/255.0f*maxPixelVal;
00408     float sigma=2.0f;
00409     float env_sigmas=2.0f;
00410     Vtl::Plf::BiLateral<float> bilateral("BiLateral",epsilon,sigma,env_sigmas);
00411     src.out.ConnectTo(&bilateral.in());
00412     bilateral.out().ConnectTo(&dst.in);
00413
00414     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00415 //------ Assing task------------------------
00416     sys.Assign(&src,&dst);
00417 //------ Initialize destinations -----------
00418     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00419     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00420     Img *out=dynamic_cast<Img *>(_out.get());
00421     if(out==0)
00422         return 1;
00423     dst.setDstImage(out);
00424
00425     sys.Run(indicator,out_name.c_str());
00426
00427     std::string fn=out_name+".pgm";
00428 	::AImageSave(out,fn.c_str(),indicator);
00429     return 0;
00430 }
00431
00432
00433 template<class Img>
00434 int plf_test_GradientModul(Img* input,std::string out_name)
00435 {
00436     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00437     Vtl::Plf::DstAImage<float,Img> dst("dst");
00438
00439     const int bits=input->Bits();
00440     const float maxPixelVal=float((1<<bits)-1);
00441 // Classic Canny
00442     float sigma=1.0f;
00443     float env_size_in_sigmas=2.5f;
00444     float gamma=2.2f;
00445     Vtl::Plf::GradientModul<float> grad_modul("GradModul",maxPixelVal,sigma,env_size_in_sigmas,gamma);
00446     src.out.ConnectTo(&grad_modul.in);
00447     grad_modul.out().ConnectTo(&dst.in);
00448
00449     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00450 //------ Assing task------------------------
00451     sys.Assign(&src,&dst);
00452 //------ Initialize destinations -----------
00453     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00454     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00455     Img *out=dynamic_cast<Img *>(_out.get());
00456     if(out==0)
00457         return 1;
00458     dst.setDstImage(out);
00459
00460     sys.Run(indicator,out_name.c_str());
00461
00462     std::string fn=out_name+".pgm";
00463 	::AImageSave(out,fn.c_str(),indicator);
00464     return 0;
00465 }
00466
00467 template<class Img>
00468 int plf_test_Canny(Img* input,std::string out_name)
00469 {
00470     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00471     Vtl::Plf::DstAImage<float,Img> dst("dst");
00472
00473     const int bits=input->Bits();
00474     const float maxPixelVal=float((1<<bits)-1);
00475 // Classic Canny
00476     float sigma=1.0f;
00477     float env_size_in_sigmas=2.5f;
00478     float gamma=2.2f;
00479     float threshold=20;
00480     //Vtl::Plf::F11::DoNothing<float> gam_cor;
00481     Vtl::Plf::Canny<float> canny("Canny",threshold,maxPixelVal,sigma,env_size_in_sigmas,gamma,Vtl::Plf::F11::DoNothing<float>());
00482
00483     src.out.ConnectTo(&canny.in());
00484     canny.out().ConnectTo(&dst.in);
00485
00486     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00487 //------ Assing task------------------------
00488     sys.Assign(&src,&dst);
00489 //------ Initialize destinations -----------
00490     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00491     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00492     Img *out=dynamic_cast<Img *>(_out.get());
00493     if(out==0)
00494         return 1;
00495     dst.setDstImage(out);
00496
00497     sys.Run(indicator,out_name.c_str());
00498
00499     std::string fn=out_name+".pgm";
00500 	::AImageSave(out,fn.c_str(),indicator);
00501     return 0;
00502 }
00503
00504 template<class Img>
00505 int plf_test_HImageEdge(Img* input,std::string out_name)
00506 {
00507     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00508     Vtl::Plf::DstAImage<float,Img> dst("dst");
00509
00510     const int bits=input->Bits();
00511     const float maxPixelVal=float((1<<bits)-1);
00512     float threshold=10;
00513     int radius=7;
00514     float gamma=2.2f;
00515     Vtl::Plf::F11::GammaCor<float> gam_mult(maxPixelVal,gamma);
00516     //Vtl::Plf::F11::DoNothing<float> gam_cor;
00517     Vtl::Plf::HImageEdge<float,Vtl::Plf::F11::GammaCor<float> > h_edge("HImageEdge",radius,threshold,gam_mult);
00518
00519     src.out.ConnectTo(&h_edge.in());
00520     h_edge.out().ConnectTo(&dst.in);
00521
00522     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00523 //------ Assing task------------------------
00524     sys.Assign(&src,&dst);
00525 //------ Initialize destinations -----------
00526     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00527     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00528     Img *out=dynamic_cast<Img *>(_out.get());
00529     if(out==0)
00530         return 1;
00531     dst.setDstImage(out);
00532
00533     sys.Run(indicator,out_name.c_str());
00534
00535     std::string fn=out_name+".pgm";
00536 	::AImageSave(out,fn.c_str(),indicator);
00537     return 0;
00538 }
00539
00540 template<class Img>
00541 int plf_test_Harris(Img* input,std::string out_name,float k)
00542 {
00543     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00544     Vtl::Plf::DstAImage<float,Img> dst("dst");
00545
00546     const int bits=input->Bits();
00547     const float maxPixelVal=float((1<<bits)-1);
00548 // Classic Canny
00549     float sigma=1.5f;
00550     float env_size_in_sigmas=2.5f;
00551     float gamma=2.2f;
00552     Vtl::Plf::F11::GammaCor<float> gam_cor(maxPixelVal,gamma);
00553     //Vtl::Plf::F11::DoNothing<float> gam_cor;
00554     Vtl::Plf::F31::Harris<float> func(sigma,k);
00555     Vtl::Plf::Detect<float,Vtl::Plf::F31::Harris<float>,Vtl::Plf::F11::GammaCor<float> > det(out_name,sigma,env_size_in_sigmas,func,gam_cor);
00556
00557     src.out.ConnectTo(&det.in());
00558     det.out().ConnectTo(&dst.in);
00559
00560     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00561 //------ Assing task------------------------
00562     sys.Assign(&src,&dst);
00563 //------ Initialize destinations -----------
00564     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00565     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00566     Img *out=dynamic_cast<Img *>(_out.get());
00567     if(out==0)
00568         return 1;
00569     dst.setDstImage(out);
00570
00571     sys.Run(indicator,out_name.c_str());
00572
00573     std::string fn=out_name+".pgm";
00574 	::AImageSave(out,fn.c_str(),indicator);
00575     return 0;
00576 }
00577
00578
00579
00580 template<class Img>
00581 int plf_test_HarrisLaplace(Img* input,std::string out_name,float k)
00582 {
00583     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00584     Vtl::Plf::DstAImage<float,Img> dst("dst");
00585
00586     const int bits=input->Bits();
00587     const float maxPixelVal=float((1<<bits)-1);
00588 // Classic Canny
00589     float sigma=1.5f;
00590     float env_size_in_sigmas=2.5f;
00591     float gamma=2.2f;
00592     Vtl::Plf::F11::GammaCor<float> gam_cor(maxPixelVal,gamma);
00593     //Vtl::Plf::F11::DoNothing<float> gam_cor;
00594     Vtl::Plf::F51::HarrisLaplace<float> func(sigma,k);
00595     Vtl::Plf::HarrisLaplace<float,Vtl::Plf::F51::HarrisLaplace<float>,Vtl::Plf::F11::GammaCor<float> > det(out_name,sigma,env_size_in_sigmas,func,gam_cor);
00596
00597     src.out.ConnectTo(&det.in);
00598     det.out().ConnectTo(&dst.in);
00599
00600     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00601 //------ Assing task------------------------
00602     sys.Assign(&src,&dst);
00603 //------ Initialize destinations -----------
00604     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00605     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00606     Img *out=dynamic_cast<Img *>(_out.get());
00607     if(out==0)
00608         return 1;
00609     dst.setDstImage(out);
00610
00611     sys.Run(indicator,out_name.c_str());
00612
00613     std::string fn=out_name+".pgm";
00614 	::AImageSave(out,fn.c_str(),indicator);
00615     return 0;
00616 }
00617
00618 template<class Img>
00619 int plf_test_Trace(Img* input,std::string out_name)
00620 {
00621     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00622     Vtl::Plf::DstAImage<float,Img> dst("dst");
00623
00624     const int bits=input->Bits();
00625     const float maxPixelVal=float((1<<bits)-1);
00626 // Classic Canny
00627     float sigma=1.5f;
00628     float env_size_in_sigmas=2.5f;
00629     float gamma=2.2f;
00630     Vtl::Plf::F11::GammaCor<float> gam_cor(maxPixelVal,gamma);
00631     //Vtl::Plf::F11::DoNothing<float> gam_cor;
00632     Vtl::Plf::F31::Trace<float> func(sigma);
00633     Vtl::Plf::Detect<float,Vtl::Plf::F31::Trace<float>,Vtl::Plf::F11::GammaCor<float> > det(out_name,sigma,env_size_in_sigmas,func,gam_cor);
00634
00635     src.out.ConnectTo(&det.in());
00636     det.out().ConnectTo(&dst.in);
00637
00638     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00639 //------ Assing task------------------------
00640     sys.Assign(&src,&dst);
00641 //------ Initialize destinations -----------
00642     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00643     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00644     Img *out=dynamic_cast<Img *>(_out.get());
00645     if(out==0)
00646         return 1;
00647     dst.setDstImage(out);
00648
00649     sys.Run(indicator,out_name.c_str());
00650
00651     std::string fn=out_name+".pgm";
00652 	::AImageSave(out,fn.c_str(),indicator);
00653     return 0;
00654 }
00655 template<class Img>
00656 int plf_test_MinEigenVal(Img* input,std::string out_name)
00657 {
00658     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00659     Vtl::Plf::DstAImage<float,Img> dst("dst");
00660
00661     const int bits=input->Bits();
00662     const float maxPixelVal=float((1<<bits)-1);
00663 // Classic Canny
00664     float sigma=1.5f;
00665     float env_size_in_sigmas=2.5f;
00666     float gamma=2.2f;
00667     Vtl::Plf::F11::GammaCor<float> gam_cor(maxPixelVal,gamma);
00668     //Vtl::Plf::F11::DoNothing<float> gam_cor;
00669     Vtl::Plf::F31::MinEigenVal<float> func(sigma);
00670     Vtl::Plf::Detect<float,Vtl::Plf::F31::MinEigenVal<float>,Vtl::Plf::F11::GammaCor<float> > det(out_name,sigma,env_size_in_sigmas,func,gam_cor);
00671
00672     src.out.ConnectTo(&det.in());
00673     det.out().ConnectTo(&dst.in);
00674
00675     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00676 //------ Assing task------------------------
00677     sys.Assign(&src,&dst);
00678 //------ Initialize destinations -----------
00679     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00680     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00681     Img *out=dynamic_cast<Img *>(_out.get());
00682     if(out==0)
00683         return 1;
00684     dst.setDstImage(out);
00685
00686     sys.Run(indicator,out_name.c_str());
00687
00688     std::string fn=out_name+".pgm";
00689 	::AImageSave(out,fn.c_str(),indicator);
00690     return 0;
00691 }
00692 template<class Img>
00693 int plf_test_MaxEigenVal(Img* input,std::string out_name)
00694 {
00695     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00696     Vtl::Plf::DstAImage<float,Img> dst("dst");
00697
00698     const int bits=input->Bits();
00699     const float maxPixelVal=float((1<<bits)-1);
00700 // Classic Canny
00701     float sigma=1.5f;
00702     float env_size_in_sigmas=2.5f;
00703     float gamma=2.2f;
00704     Vtl::Plf::F11::GammaCor<float> gam_cor(maxPixelVal,gamma);
00705     //Vtl::Plf::F11::DoNothing<float> gam_cor;
00706     Vtl::Plf::F31::MaxEigenVal<float> func(sigma);
00707     Vtl::Plf::Detect<float,Vtl::Plf::F31::MaxEigenVal<float>,Vtl::Plf::F11::GammaCor<float> > det(out_name,sigma,env_size_in_sigmas,func,gam_cor);
00708
00709     src.out.ConnectTo(&det.in());
00710     det.out().ConnectTo(&dst.in);
00711
00712     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00713 //------ Assing task------------------------
00714     sys.Assign(&src,&dst);
00715 //------ Initialize destinations -----------
00716     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00717     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00718     Img *out=dynamic_cast<Img *>(_out.get());
00719     if(out==0)
00720         return 1;
00721     dst.setDstImage(out);
00722
00723     sys.Run(indicator,out_name.c_str());
00724
00725     std::string fn=out_name+".pgm";
00726 	::AImageSave(out,fn.c_str(),indicator);
00727     return 0;
00728 }
00729 template<class Img>
00730 int plf_test_DiffEigenVal(Img* input,std::string out_name)
00731 {
00732     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00733     Vtl::Plf::DstAImage<float,Img> dst("dst");
00734
00735     const int bits=input->Bits();
00736     const float maxPixelVal=float((1<<bits)-1);
00737 // Classic Canny
00738     float sigma=1.5f;
00739     float env_size_in_sigmas=2.5f;
00740     float gamma=2.2f;
00741     Vtl::Plf::F11::GammaCor<float> gam_cor(maxPixelVal,gamma);
00742     //Vtl::Plf::F11::DoNothing<float> gam_cor;
00743     Vtl::Plf::F31::DiffEigenVal<float> func(sigma);
00744     Vtl::Plf::Detect<float,Vtl::Plf::F31::DiffEigenVal<float>,Vtl::Plf::F11::GammaCor<float> > det(out_name,sigma,env_size_in_sigmas,func,gam_cor);
00745
00746     src.out.ConnectTo(&det.in());
00747     det.out().ConnectTo(&dst.in);
00748
00749     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00750 //------ Assing task------------------------
00751     sys.Assign(&src,&dst);
00752 //------ Initialize destinations -----------
00753     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00754     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00755     Img *out=dynamic_cast<Img *>(_out.get());
00756     if(out==0)
00757         return 1;
00758     dst.setDstImage(out);
00759
00760     sys.Run(indicator,out_name.c_str());
00761
00762     std::string fn=out_name+".pgm";
00763 	::AImageSave(out,fn.c_str(),indicator);
00764     return 0;
00765 }
00766 template<class Img>
00767 int plf_test_HarrisNMS(Img* input,std::string out_name,float k)
00768 {
00769     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00770     Vtl::Plf::DstAImage<float,Img> dst("dst");
00771
00772     const int bits=input->Bits();
00773     const float maxPixelVal=float((1<<bits)-1);
00774 // Classic Canny
00775     float sigma=1.5f;
00776     float env_size_in_sigmas=2.5f;
00777     float gamma=2.2f;
00778     Vtl::Plf::F11::GammaCor<float> gam_cor(maxPixelVal,gamma);
00779     //Vtl::Plf::F11::DoNothing<float> gam_cor;
00780     Vtl::Plf::F31::Harris<float> func(sigma,k);
00781     Vtl::Plf::Detect<float,Vtl::Plf::F31::Harris<float>,Vtl::Plf::F11::GammaCor<float> > det("Harris",sigma,env_size_in_sigmas,func,gam_cor);
00782     Vtl::Plf::Fpie::HarrisNMS<float> harris_nms;
00783     Vtl::Plf::EnvProc1to1<float,Vtl::Plf::Fpie::HarrisNMS<float> > loc_max("loc_max",harris_nms);
00784
00785     src.out.ConnectTo(&det.in());
00786     det.out().ConnectTo(&loc_max.in);
00787     loc_max.out.ConnectTo(&dst.in);
00788
00789     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00790 //------ Assing task------------------------
00791     sys.Assign(&src,&dst);
00792 //------ Initialize destinations -----------
00793     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00794     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00795     Img *out=dynamic_cast<Img *>(_out.get());
00796     if(out==0)
00797         return 1;
00798     dst.setDstImage(out);
00799
00800     sys.Run(indicator,out_name.c_str());
00801
00802     std::string fn=out_name+".pgm";
00803 	::AImageSave(out,fn.c_str(),indicator);
00804     return 0;
00805 }
00806
00807
00808
00809 template<class Img>
00810 int plf_test_DifferentBrahch(Img* input,std::string out_name)
00811 {
00812 #define DIFFERENT_DELAY_BRANCHES
00813
00814 #ifdef DIFFERENT_DELAY_BRANCHES
00815     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00816 #else
00817     Vtl::Plf::SrcAImage<float,Img> src("src",input);
00818     Vtl::Plf::SrcAImage<float,Img> src2("src2",input);
00819 #endif
00820     Vtl::Plf::DstAImage<float,Img> dst("dst");
00821
00822     const int bits=input->Bits();
00823     const float maxPixelVal=float((1<<bits)-1);
00824     float sigma=1.0f;
00825     float env_size_in_sigmas=2.5f;
00826     float gamma=2.2f;
00827
00828     typedef Vtl::ImAlg::WndFun::Gauss<float,0> G0;
00829     typedef Vtl::ImAlg::WndFun::Gauss<float,1> G1;
00830     Vtl::Plf::Kernel::FKern<float> gauss(G0(sigma,env_size_in_sigmas));
00831     Vtl::Plf::Kernel::FKern<float> gauss_deriv(G1(sigma,env_size_in_sigmas));
00832     //Vtl::Plf::Kernel::Gauss<float,0,Vtl::Plf::Kernel::KT_Conv> gauss(sigma,env_size_in_sigmas);
00833     //Vtl::Plf::Kernel::Gauss<float,1,Vtl::Plf::Kernel::KT_Conv> gauss_deriv(sigma,env_size_in_sigmas);
00834
00835     Vtl::Plf::ConvolveHorz<float> gx_h_conv("gx H-conv",&gauss_deriv);
00836     Vtl::Plf::ConvolveVert<float> gx_v_conv("gx V-conv",&gauss);
00837     Vtl::Plf::ConvolveHorz<float> gy_h_conv("gy H-conv",&gauss);
00838     Vtl::Plf::ConvolveVert<float> gy_v_conv("gy V-conv",&gauss_deriv);
00839
00840
00841     const Vtl::Plf::F21::SqrtOfSumSqr<float> ssqr;
00842     Vtl::Plf::F11::GammaCorMult<float> gam_mult(maxPixelVal,gamma,sqrt(2.0f*3.1415926f)*sigma);
00843     Vtl::Plf::PixByPix2to1<float,Vtl::Plf::F21::SqrtOfSumSqr<float>,Vtl::Plf::F11::GammaCorMult<float> > sum_sqr;
00844     sum_sqr.Init("SumSqr",ssqr,gam_mult);
00845
00846     Vtl::Plf::Resample<float> resamp("Resample",712,800);
00847
00848     Vtl::Plf::F11::Mult<float> m2(0.5);
00849     Vtl::Plf::Levels<float,Vtl::Plf::F11::Mult<float> > mult05_1("mult05_1",m2);
00850     Vtl::Plf::Levels<float,Vtl::Plf::F11::Mult<float> > mult05_2("mult05_2",m2);
00851     Vtl::Plf::PixByPix2to1<float,Vtl::Plf::F21::SqrtOfSumSqr<float> > sum_sqr2("SumSqr-2",ssqr);
00852
00853     //------ create graph --------------------
00854     src.out.ConnectTo(&gx_h_conv.in);
00855     src.out.ConnectTo(&gy_h_conv.in);
00856     gx_h_conv.out.ConnectTo(&gx_v_conv.in);
00857     gy_h_conv.out.ConnectTo(&gy_v_conv.in);
00858     gx_h_conv.out.ConnectTo(&gx_v_conv.in);
00859     gy_h_conv.out.ConnectTo(&gy_v_conv.in);
00860     gx_v_conv.out.ConnectTo(&sum_sqr.in_1);
00861     gy_v_conv.out.ConnectTo(&sum_sqr.in_2);
00862     sum_sqr.out.ConnectTo(&mult05_1.in);
00863
00864 #ifdef DIFFERENT_DELAY_BRANCHES
00865     src.out.ConnectTo(&mult05_2.in);
00866 #else
00867     src2.out.ConnectTo(&mult05_2.in);
00868 #endif
00869     mult05_1.out.ConnectTo(&sum_sqr2.in_1);
00870     mult05_2.out.ConnectTo(&sum_sqr2.in_2);
00871     sum_sqr2.out.ConnectTo(&resamp.in());
00872     resamp.out().ConnectTo(&dst.in);
00873 //------ create filters --------------------
00874     Vtl::Plf::FiltersSystem sys(out_name+".dot");
00875 //------ Assing task------------------------
00876 #ifdef DIFFERENT_DELAY_BRANCHES
00877     sys.Assign(&src,&dst);
00878 #else
00879 //  std::list<Vtl::Plf::FilterElementary*> _ss;
00880 //  _ss.push_back(&src);
00881 //  _ss.push_back(&src2);
00882 //  sys.Assign(_ss.begin(),_ss.end(),&dst);
00883     Vtl::Plf::FilterElementary* _ss[2]={&src,&src2};
00884     sys.Assign(_ss,_ss+2,&dst);
00885 #endif
00886
00887 //  std::list<Vtl::Plf::FilterBase*> _ss;
00888 //  _ss.push_back(&src);
00889 //  _ss.push_back(&src2);
00890 //  sys.Assign(_ss.begin(),_ss.end(),&dst);
00891
00892 //  Vtl::Plf::FilterBase* _ss[2]={&src,&src2};
00893 //  sys.Assign(_ss,_ss+2,&dst);
00894 //------ Initialize destinations -----------
00895     Vtl::Plf::ImgSize is=dst.in.getImageSize();
00896     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00897     Img *out=dynamic_cast<Img *>(_out.get());
00898     if(out==0)
00899         return 1;
00900     dst.setDstImage(out);
00901
00902
00903     sys.Run(indicator,out_name.c_str());
00904
00905     std::string fn=out_name+".pgm";
00906 	::AImageSave(out,fn.c_str(),indicator);
00907     return 0;
00908 }
00909
00910 int test_plf_Filter(int argc, char* argv[])
00911 {
00912 //------ load_images ---------------------
00913     std::auto_ptr<AImage> _in(::AImageLoad(0,true,argv[1],indicator));
00914     AImageMem8 *in=dynamic_cast<AImageMem8 *>(_in.get());
00915     if(in==0)
00916         return 1;
00917     const int bits=in->Bits();
00918     const float maxPixelVal=float((1<<bits)-1);
00919
00920
00921
00922     clock_t t1=clock();
00923     plf_test_Median(5,in,"Median");
00924     clock_t t2=clock();
00925     plf_test_Median2(5,in,"Median2");
00926     clock_t t3=clock();
00927     printf("%d   %d", int(t2-t1), int(t3-t2) );
00928
00929     plf_test_AverageGauss(in,"AverGauss");
00930     plf_test_Average(in,"AverWnd");
00931     plf_test_Canny(in,"Canny");
00932     plf_test_DifferentBrahch(in,"DiffBranch");
00933     plf_test_StatDiff(in,"StatDiff");
00934
00935     plf_test_Resample(in,"Resample");
00936     plf_test_Sharpen(in,"Sharpen");
00937     plf_test_MeanAndDisp(in,"MeanAndDisp");
00938     plf_test_DeNoise(in,"DeNoise");
00939     plf_test_HImage(in,"H-image");
00940     plf_test_BiLateral(in,"BiLateral");
00941     plf_test_GradientModul(in,"ModGrad");
00942     plf_test_HImageEdge(in,"H-image-Edges");
00943     plf_test_Harris(in,"Harris(k=0.04)",0.04f);
00944     plf_test_Harris(in,"Harris(k=0.00)",0.0f);
00945     plf_test_Trace(in,"Trace");
00946     plf_test_MinEigenVal(in,"MinEigenVal");
00947     plf_test_MaxEigenVal(in,"MaxEigenVal");
00948     plf_test_DiffEigenVal(in,"DiffEigenVal");
00949     plf_test_HarrisNMS(in,"HarrisNMS(0.04)",0.04f);
00950
00951
00952     plf_test_HarrisLaplace(in,"HarrisLaplace(k=0.04)",0.04f);
00953
00954
00955     return 0;
00956 }
00957
00958 }//namespace Tests
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: test_plf_filters_rgb.cpp

  • Примеры

test_plf_filters_rgb.cpp

00001 #include <stdio.h>
00002 #include <string>
00003 #include <sstream>
00004 #include <memory> //auto_ptr()
00005 #include <assert.h>
00006
00007 #include "aimage.h"
00008 #include "yfilesys.h"
00009 #include "consolap.h"
00010
00011 #include "plf_filters.h"
00012 #include "plf_filters_complex.h"
00013 #include "plf_sys.h"
00014 #include "tests.h"
00015 #include <time.h>
00016 #include "Sidorkina/plt_filter_image.h"
00017
00018
00019 namespace Tests
00020 {
00021     template<class Img>
00022     int plf_test_DiZenzo(Img* r,Img* g,Img* b,std::string out_name)
00023     {
00024         Vtl::Plf::SrcAImage<float,Img> src_r("src_r",r);
00025         Vtl::Plf::SrcAImage<float,Img> src_g("src_g",g);
00026         Vtl::Plf::SrcAImage<float,Img> src_b("src_b",b);
00027         Vtl::Plf::DstAImage<float,Img> dst("dst");
00028
00029         const int bits=r->Bits();
00030         const int max_val=(1<<bits)-1;
00031         float threshold=20;
00032         Vtl::Plf::DiZenzo<float> dizenzo("DiZenzo",float(max_val),threshold,1.5,2.0f,4.2f);
00033
00034
00035         src_r.out.ConnectTo(&dizenzo.in_1);
00036         src_g.out.ConnectTo(&dizenzo.in_2);
00037         src_b.out.ConnectTo(&dizenzo.in_3);
00038         dizenzo.out().ConnectTo(&dst.in);
00039
00040         Vtl::Plf::FiltersSystem sys(out_name+".dot");
00041     //------ Assing task------------------------
00042         std::list<Vtl::Plf::SrcAImage<float,Img>* > src_list;
00043         src_list.push_back(&src_r);
00044         src_list.push_back(&src_g);
00045         src_list.push_back(&src_b);
00046         sys.Assign(src_list.begin(),src_list.end(),&dst);
00047     //------ Initialize destinations -----------
00048         Vtl::Plf::ImgSize is=dst.in.getImageSize();
00049         std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::IMGC_GRAYSCALE,is.width,is.height,bits));
00050         Img *out=dynamic_cast<Img *>(_out.get());
00051         if(out==0)
00052             return 1;
00053         dst.setDstImage(out);
00054
00055         sys.Run(indicator,out_name.c_str());
00056
00057         std::string fn=out_name+".pgm";
00058 		::AImageSave(out,fn.c_str(),indicator);
00059         return 0;
00060     }
00061
00062     int test_plf_Filter_rgb(int argc, char* argv[])
00063     {
00064     //------ load_images ---------------------
00065         std::auto_ptr<AImage> _in(::AImageLoad(0,true,argv[2],indicator));
00066         AImageMemRgb8 *in=dynamic_cast<AImageMemRgb8 *>(_in.get());
00067         if(in==0)
00068             return 1;
00069         AImageMem8 * r=in->GetPlane8(0);
00070         AImageMem8 * g=in->GetPlane8(1);
00071         AImageMem8 * b=in->GetPlane8(2);
00072         //const int bits=in->Bits();
00073         //const float maxPixelVal=float((1<<bits)-1);
00074
00075         plf_test_DiZenzo(r,g,b,"DiZenzo");
00076
00077
00078         return 0;
00079     }
00080
00081 }//namespace Tests
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: test_plf_io_ports.cpp

  • Примеры

test_plf_io_ports.cpp

00001 #include <stdio.h>
00002 #include <string>
00003 #include <sstream>
00004 #include <memory> //auto_ptr()
00005 #include <assert.h>
00006
00007 //#include "aimage.h"
00008 //#include "yfilesys.h"
00009 //#include "consolap.h"
00010
00011 #include "plf_filters.h"
00012 #include "tests.h"
00013 namespace Tests
00014 {
00015     static void printImageRef(Vtl::Plf::ImageRef<int>& ir, int id)
00016     {
00017         printf("------<%d>--------\n",id);
00018         for(int y=-ir.ext().before ; y<=ir.ext().forward; y++ )
00019         {
00020             printf("%c  ",(y==0)?'c':'-');
00021             int x=-ir.ext().left;
00022             for( ; x<0; x++)
00023                 printf("%2d",ir[y][x]);
00024             printf(" | ");
00025             for( ; x<ir.w() ; x++)
00026                 printf("%2d",ir[y][x]);
00027             printf(" | ");
00028             for( ; x < (ir.w()+ir.ext().right) ; x++)
00029                 printf("%2d",ir[y][x]);
00030             printf("\n");
00031         }
00032     }
00033
00034     int test_plf_IO_Ports(int argc, char* argv[])
00035     {
00036     /*
00037         std::auto_ptr<AImage> _in(::AImageLoad(0,true,argv[1],indicator));
00038         AImageMem8 *in=dynamic_cast<AImageMem8 *>(_in.get());
00039         if(in==0)
00040             return 1;
00041         const int w=in->Width();
00042         const int h=in->Height();
00043         const int bits=in->Bits();
00044         std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::YImageClass::IMGC_GRAYSCALE,w,h,bits));
00045         AImageMem8 *out=dynamic_cast<AImageMem8 *>(_out.get());
00046         if(out==0)
00047             return 1;
00048     */
00049
00050         {
00051             //Vtl::Plf::PlfSrc_AImageMem8<float> src("src",in);
00052             //Vtl::Plf::PlfDst_AImageMem8<float> dst("dst",out);
00057             Vtl::Plf::ImgSize size(8,10);
00058             typedef Vtl::Plf::OutPort<int> OutPort_t;
00059             typedef Vtl::Plf::InPort<int>   InPort_t;
00060             OutPort_t outp;
00062             outp.Init(0,0);
00064             outp.set_bufferImgSize(size);
00065
00066             InPort_t inp;
00067             inp.Init(0,0,Vtl::Plf::Extent(0,0,0,0));
00068             //inp.
00069
00070             outp.ConnectTo(&inp);
00071
00073             outp.init_bufferExtents();
00075             outp.increase_delay_by(0);
00077             //outp.set_total_delay(0);
00079             outp.init_buffer();
00080
00081             while(inp.isFinished())
00082             {
00083                 if(outp.isReadyForUpdate())
00084                 {
00085                     int y=outp.Y_wait();
00086                     outp.beginUpdate();
00087                     for( OutPort_t::Iter it=outp.begin() ; it!=outp.end() ; ++it )
00088                     {
00089                         *it=y;
00090                     }
00091                     outp.endUpdate();
00092                 }
00093                 if(inp.isDataReady())
00094                 {
00095                     Vtl::Plf::ImageRef<int> ir=inp.getImg();
00096                     printImageRef(ir,inp.Y());
00097                 }
00098             }
00099         }
00100     //  ::AImageSave(out,argv[2],indicator);
00101
00102         return 0;
00103     }
00104 }//namespace Tests
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: test_plf_kernels.cpp

  • Примеры

test_plf_kernels.cpp

00001 #include <stdio.h>
00002 #include <stdlib.h> //rand(),srand()
00003 #include <time.h> //time()
00004
00005 #include <string>
00006 #include <sstream>
00007 #include <iostream>
00008 #include <fstream>
00009 #include <iomanip>
00010 #include <memory> //auto_ptr()
00011
00012 #include <list>
00013
00014 #include "plf_kernels_1d.h"
00015 #include "plf_functors.h"
00016 #include "imalg_tools.h"
00017 #include "aimage.h"
00018 #include "consolap.h"
00019 #include "tests.h"
00020
00021
00022
00023 namespace Tests
00024 {
00025         template<typename T,unsigned D> class Gauss_;
00027         template<typename T> class Gauss_<T,0>
00028         {
00029             const T s2;
00030         public:
00031             Gauss_(T sigma) : s2(2*sigma*sigma) {}
00032             template<class TT> T operator()(TT x) const
00033             {
00034                 return exp(-(x*x)/s2);
00035             }
00036         };
00038         template<typename T> class Gauss_<T,1>
00039         {
00040             const T s;
00041         public:
00042             Gauss_(T sigma) : s(sigma){}
00043             template<class TT> T operator()(TT x) const
00044             {
00045                 double t=Vtl::sqr(x/s);
00046                 return T(-x*exp(-t/2.));
00047             }
00048         };
00050         template<typename T> class Gauss_<T,2>
00051         {
00052             const T s;
00053         public:
00054             Gauss_(T sigma) : s(sigma){}
00055             template<class TT> T operator()(TT x) const
00056             {
00057                 double t=Vtl::sqr(x/s);
00058                 return T((t-1)*exp(-t/2.));
00059             }
00060         };
00062         template<typename T> class Gauss_<T,3>
00063         {
00064             const T s;
00065         public:
00066             Gauss_(T sigma) : s(sigma) {}
00067             template<class TT> T operator()(TT x) const
00068             {
00069                 double t=Vtl::sqr(x/s);
00070                 return T(x*(3-t)*exp(-t/2.));
00071             }
00072         };
00074         template<typename T> class Gauss_<T,4>
00075         {
00076             const T s;
00077         public:
00078             Gauss_(T sigma) : s(sigma) {}
00079             template<class TT> T operator()(TT x) const
00080             {
00081                 double t=Vtl::sqr(x/s);
00082                 return T((3+(t-6)*t)*exp(-t/2.));
00083             }
00084         };
00086         template<typename T> class Gauss_<T,5>
00087         {
00088             const T s;
00089         public:
00090             Gauss_(T sigma) : s(sigma) {}
00091             template<class TT> T operator()(TT x) const
00092             {
00093                 double t=Vtl::sqr(x/s);
00094                 return T(-x*((t-10)*t+15)*exp(-t/2.));
00095
00096             }
00097         };
00099         template<typename T> class Gauss_<T,6>
00100         {
00101             const T s;
00102         public:
00103             Gauss_(T sigma) : s(sigma) {}
00104             template<class TT> T operator()(TT x) const
00105             {
00106                 double t=Vtl::sqr(x/s);
00107                 return T((((t-15)*t+45)*t-15)*exp(-t/2.));
00108             }
00109         };
00142         template<typename T,unsigned D> class Hann_
00143             : public Vtl::ImAlg::WndFun::Traits<T,true,true,D,D>
00144         {
00145             const T c;
00146         public:
00147             static const char * Name() { return "Hann"; }
00148             template<class TT>
00149             Hann_(TT size_) : Traits(T(size_),T(size_/2.0f)), c(T(2*M_PI/(size_-1))) {}
00150             template<class TT>
00151             Hann_(TT size_, const Hann_& ) : Traits(T(size_),T(size_/2.0f)), c(T(2*M_PI/(size_-1))) {}
00152             template<class TT> T operator()(TT x) const
00153             {
00154                 return result( T(x), Loki::Int2Type<(D==0)>() );
00155             }
00156         private:
00157             T result(T x,Loki::Int2Type<true>) const
00158             {
00159                 return T(0.5*(1-cos(c*x)));
00160             }
00161             T result(T x,Loki::Int2Type<false>) const
00162             {
00163                 return T(0.5*Vtl::Alg::x_to_N<D>::value(c)*Vtl::Alg::dsin<D-1>(c*x));;
00164             }
00165         };
00166         namespace Kernel
00167         {
00185             template<typename T,unsigned Deriv=0,Vtl::Plf::Kernel::Type kernel_type_=Vtl::Plf::Kernel::KT_Conv>
00186             class Gauss
00187                 :public Vtl::Plf::Kernel::Base<T,kernel_type_>
00188             {
00189                 T sigma;
00190             public:
00191                 Gauss() : Vtl::Plf::Kernel::Base<T,kernel_type_>("Gauss(t)=exp(-x^2/(2*sigma^2))") {}
00192                 Gauss(T sigmaInPixels,T sigmas_number)
00193                     : Vtl::Plf::Kernel::Base<T,kernel_type_>("Gauss(t)=exp(-x^2/(2*sigma^2))")
00194                 {
00195                     Init(sigmaInPixels,sigmas_number);
00196                 }
00197                 Gauss(int left, int right,T sigmaInPixels)
00198                     : Vtl::Plf::Kernel::Base<T,kernel_type_>("Gauss(t)=exp(-x^2/(2*sigma^2))")
00199                 {
00200                     Init(left, right,sigmaInPixels);
00201                 }
00202                 virtual ~Gauss() {}
00208                 void Init(T sigmaInPixels,T sigmas_number)
00209                 {
00210                     sigma=sigmaInPixels;
00211                     int wnd_half_size=int(sigmaInPixels*sigmas_number+0.5);
00212                     _Init(wnd_half_size,wnd_half_size);
00213                     //sigma=wnd_half_size/sigmas_number;
00214                     typedef Vtl::ImAlg::WndFun::Gauss<T,Deriv> Func;
00215                     Func gauss(sigma,sigmas_number);
00216                     build(gauss);
00217                     normalize<Func::conv_norm_alg>();
00218                 }
00225                 void Init(int left, int right,T sigmaInPixels)
00226                 {
00227                     sigma=sigmaInPixels;
00228                     _Init(left,right);
00229                     //sigma=wnd_half_size/sigmas_number;
00230                     typedef F::Gauss<T,Deriv> Func;
00231                     Func gauss(sigma,T(1));
00232                     build(gauss);
00233                     normalize<Func::conv_norm_alg>();
00234                 }
00235             private:
00236                 template<typename Func>
00237                 void build(Func func)
00238                 {
00239                     iterator d=begin_internal();
00240                     if(kernel_type==Vtl::Plf::Kernel::KT_Conv)
00241                     {
00242                         for(int i=0; i<size(); i++)
00243                             *d++=func(left()-i);
00244                     }
00245                     else
00246                     {
00247                         for(int i=0; i<size(); i++)
00248                             *d++=func(i-left());
00249                     }
00250                 }
00251             };
00252         }
00253
00254         template<class K>
00255         void save(const K* kernel)
00256         {
00257             std::string name=std::string("kernel_")+kernel->Name()+".txt";
00258             std::string s=kernel->SaveForMathLab();
00259             std::ofstream os;
00260             os.open(name.c_str(),std::ios_base::out | std::ios_base::trunc );
00261                 os << s;
00262             os.flush();
00263             os.close();
00264         }
00265
00266
00267     int test_plf_kernels(int argc, char* argv[])
00268     {
00269         //ConvKernel<float> ker; //Эта строка вызывает ошибку - класс предназначен только для наследования из него!
00270         std::string str;
00271         const Kernel::Gauss<float,0,Vtl::Plf::Kernel::KT_Corr> ker(3,1.5f);
00272         const Kernel::Gauss<float,1,Vtl::Plf::Kernel::KT_Corr> ker_deriv(3,1.5f);
00273     //  ker.Init(0.7,1);
00274         str=ker.SaveForMathLab();
00275         printf("GaussFilter:\n%s===\n",str.c_str());
00276         str=ker_deriv.SaveForMathLab();
00277         printf("GaussDerivFilter:\n%s===\n",str.c_str());
00278
00279         Kernel::Gauss<float,0,Vtl::Plf::Kernel::KT_Corr>::const_iterator f(ker.begin());
00280         const int sz=17;
00281         float v[sz]={1,1,1,4,4,4,4,1,1,1,4,4,4,4,1,1,1};
00282         double fff=Vtl::ImAlg::Conv::Conv1pt<double>(v,ker.begin(),ker.end());
00283         printf("fff=%lf\n",fff);
00284         float out[sz]={1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0};
00285         printf("--Gauss-----\n");
00286         Vtl::ImAlg::Conv::ConvolveNoExt(v,v+sz-ker.size()+1,out,ker);
00287         for(int i=0; i<sizeof(out)/sizeof(out[0]);i++)
00288             printf("%d : %f\n",i,out[i]);
00289         printf("--GaussDeriv-----\n");
00290         Vtl::ImAlg::Conv::ConvolveNoExt(v,v+sz-ker_deriv.size()+1,out,ker_deriv);
00291         for(int i=0; i<sizeof(out)/sizeof(out[0]);i++)
00292             printf("%d : %f\n",i,out[i]);
00293         printf("-------\n");
00294
00295         {
00296             std::cout << "--Hamming Window-----" <<std::setprecision(4) << std::endl;
00297             const int sz=11;
00298             Vtl::ImAlg::WndFun::Hamming<float,0> h0(sz);
00299             Vtl::ImAlg::WndFun::Hamming<float,1> h1(sz);
00300             Vtl::ImAlg::WndFun::Hamming<float,2> h2(sz);
00301             Vtl::ImAlg::WndFun::Hamming<float,3> h3(sz);
00302             Vtl::ImAlg::WndFun::Hamming<float,4> h4(sz);
00303             for(int i=0; i < h0.size(); ++i)
00304             {
00305                 std::cout << i << "  " << std::setw(12) << h0(i) << " "<< std::setw(12) << h1(i) << " "<< std::setw(12) << h2(i) << " "
00306                     << std::setw(12) << h3(i) << " "<< std::setw(12) << h4(i) <<std::endl;
00307             }
00308         }
00309         {
00310             std::cout << "--Hann Window-----" << std::setprecision(4) << std::endl;
00311             const int sz=11;
00312             Vtl::ImAlg::WndFun::Hann<float,0> h0(sz);
00313             Vtl::ImAlg::WndFun::Hann<float,1> h1(sz);
00314             Vtl::ImAlg::WndFun::Hann<float,2> h2(sz);
00315             Vtl::ImAlg::WndFun::Hann<float,3> h3(sz);
00316             Vtl::ImAlg::WndFun::Hann<float,4> h4(sz);
00317             for(int i=0; i< h0.size() ; ++i)
00318             {
00319                 std::cout << i << "  " << std::setw(12) << h0(i) << " "<< std::setw(12) << h1(i) << " "<< std::setw(12) << h2(i) << " "
00320                     << std::setw(12) << h3(i) << " "<< std::setw(12) << h4(i) <<std::endl;
00321             }
00322         }
00323         {
00324             std::cout << "Gauss functor, Hermite polinom coefficients: "<< std::endl;
00325
00326             std::cout << "c<0,0> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<0,0>() << std::endl;
00327             std::cout << "c<1,1> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<1,1>() << std::endl;
00328             std::cout << "c<2,2> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<2,2>() << std::endl;
00329             std::cout << "c<2,0> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<2,0>() << std::endl;
00330             std::cout << "c<3,3> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<3,3>() << std::endl;
00331             std::cout << "c<3,1> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<3,1>() << std::endl;
00332             std::cout << "c<4,4> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<4,4>() << std::endl;
00333             std::cout << "c<4,2> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<4,2>() << std::endl;
00334             std::cout << "c<4,0> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<4,0>() << std::endl;
00335             std::cout << "c<5,5> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<5,5>() << std::endl;
00336             std::cout << "c<5,3> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<5,3>() << std::endl;
00337             std::cout << "c<5,1> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<5,1>() << std::endl;
00338             std::cout << "c<6,6> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<6,6>() << std::endl;
00339             std::cout << "c<6,4> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<6,4>() << std::endl;
00340             std::cout << "c<6,2> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<6,2>() << std::endl;
00341             std::cout << "c<6,0> = "<< Vtl::ImAlg::WndFun::Impl::Gauss::c<6,0>() << std::endl;
00342
00343             std::cout << "===== "<< std::endl;
00344
00345             std::cout << "Q<0>(0)"<< Vtl::ImAlg::WndFun::Impl::Gauss::Q<0>(0.0f,0.0f) << std::endl;
00346             std::cout << "Q<1>(0)"<< Vtl::ImAlg::WndFun::Impl::Gauss::Q<1>(0.0f,0.0f) << std::endl;
00347             std::cout << "Q<2>(0)"<< Vtl::ImAlg::WndFun::Impl::Gauss::Q<2>(0.0f,0.0f) << std::endl;
00348             std::cout << "Q<3>(0)"<< Vtl::ImAlg::WndFun::Impl::Gauss::Q<3>(0.0f,0.0f) << std::endl;
00349             std::cout << "Q<4>(0)"<< Vtl::ImAlg::WndFun::Impl::Gauss::Q<4>(0.0f,0.0f) << std::endl;
00350             std::cout << "Q<5>(0)"<< Vtl::ImAlg::WndFun::Impl::Gauss::Q<5>(0.0f,0.0f) << std::endl;
00351             std::cout << "Q<6>(0)"<< Vtl::ImAlg::WndFun::Impl::Gauss::Q<6>(0.0f,0.0f) << std::endl;
00352
00353             Vtl::ImAlg::WndFun::Gauss<float,5> g(4.2f,2.0f);
00354             Gauss_<float,5> g_(4.2f);
00355             for(int i=-20; i<20 ; ++i)
00356             {
00357                 std::cout << "i= "<< i << " diff= " << g(i)-g_(i) << "     g= " << g(i) << "     g_= " << g_(i) << std::endl;
00358             }
00359
00360         }
00361         {
00362             std::cout << "Sinc functor: "<< std::endl;
00363             for(int half_size=1; half_size <= 5 ; ++half_size)
00364             {
00365                 std::cout << "half_size= " << half_size << std::endl;
00366                 Vtl::ImAlg::WndFun::Sinc<float,0> sinc(half_size,2);
00367 //              typedef Vtl::ImAlg::WndFun::Kaiser<float,0> WndKaiser;
00368 //              typedef Vtl::ImAlg::WndFun::Nuttall<float,0> WndNuttall;
00369 //              Vtl::ImAlg::WndFun::Sinc<float,0,WndKaiser> sinc_kaiser(half_size,2,WndKaiser(3,3));
00370 //              Vtl::ImAlg::WndFun::Sinc<float,0,WndNuttall> sinc_nuttall(half_size,2,WndNuttall(3));
00371                 int left=int(sinc.left());
00372                 for(int i=left; i<sinc.right(); ++i)
00373                 {
00374                     std::cout << "i= "<< i << "\t sinc=\t" << sinc(i)
00375 //                      <<  "\t sinc_kaiser=\t" << sinc_kaiser(i)
00376 //                      << "\t sinc_nuttall= \t" << sinc_nuttall(i)
00377                         << std::endl;
00378                 }
00379             }
00380
00381         }
00382         {
00383             std::cout << "Compile-time check Functor/Traits cast: "<< std::endl;
00384             Vtl::ImAlg::WndFun::Hamming<float,0> h(2); //This is OK
00385             Vtl::ImAlg::WndFun::Traits<float,true,true,0,0> * ptr=&h; //Not generates error, this is UNDESIRED!
00386             ptr=new Vtl::ImAlg::WndFun::Hamming<float,0>(2); //Not generates error - this is BAD!!!
00387             //delete ptr; //Generates Error - this is OK!!!
00388         }
00389         {
00390             std::cout << "Compile-time check Direct_Ref, Direct, Laws5: "<< std::endl;
00391             const int dr_data[]={1,2,5,2,1};
00392             Vtl::ImAlg::WndFun::Direct_Ref<float,int> dr(5,2,dr_data);
00393             Vtl::ImAlg::WndFun::Direct<float,int> dr_cpy(5,2,dr_data);
00394             Vtl::ImAlg::WndFun::Laws5<float>::L5 L;
00395         }
00396         {
00397             std::cout << "Check Vtl::Plf: "<< std::endl;
00398             typedef Vtl::ImAlg::WndFun::Gauss<float,0> F0;
00399             F0 gauss(2.5,2.5);
00400             Vtl::Plf::Kernel::FKern<float> g0(gauss);
00401             std::cout << "Gauss" <<std::endl <<g0.SaveForMathLab() <<std::endl;
00402
00403             typedef Vtl::ImAlg::WndFun::Gauss<float,1> F1;
00404             F1 gauss_d1(2.5,2);
00405             Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Conv> g1(gauss_d1);
00406             std::cout << "Gauss 1d conv" <<std::endl <<g1.SaveForMathLab() <<std::endl;
00407             Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Corr> g1a(gauss_d1);
00408             std::cout << "Gauss 1d corr" <<std::endl <<g1a.SaveForMathLab() <<std::endl;
00409
00410             typedef Vtl::ImAlg::WndFun::Hann<float,0> F2;
00411             F2 hann8(8);
00412             Vtl::Plf::Kernel::FKern<float> h1(hann8);
00413             std::cout << "Hann 8" <<std::endl <<h1.SaveForMathLab() <<std::endl;
00414             F2 hann9(9);
00415             Vtl::Plf::Kernel::FKern<float> h2(hann9);
00416             std::cout << "Hann 9" <<std::endl <<h2.SaveForMathLab() <<std::endl;
00417             Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Win> h3(hann9,8);
00418             std::cout << "Hann window" <<std::endl <<h3.SaveForMathLab() <<std::endl;
00419
00420             typedef Vtl::ImAlg::WndFun::Hann<float,1> F3;
00421             F3 hann8_d1(8);
00422             Vtl::Plf::Kernel::FKern<float> h4(hann8_d1);
00423             std::cout << "Hann 8 d/dx" <<std::endl <<h4.SaveForMathLab() <<std::endl;
00424             F3 hann9_d1(9);
00425             Vtl::Plf::Kernel::FKern<float> h5(hann9_d1);
00426             std::cout << "Hann 9 d/dx" <<std::endl <<h5.SaveForMathLab() <<std::endl;
00427             Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Win> h6(hann9_d1,8);
00428             std::cout << "Hann window d/dx" <<std::endl <<h6.SaveForMathLab() <<std::endl;
00429             Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Win> h61(hann9_d1,8,2.0);
00430             std::cout << "Hann window d/dx center at 2.0" <<std::endl <<h61.SaveForMathLab() <<std::endl;
00431             Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Win> h62(hann9_d1,8,3.5);
00432             std::cout << "Hann window d/dx center at 3.5" <<std::endl <<h62.SaveForMathLab() <<std::endl;
00433
00434             typedef Vtl::ImAlg::WndFun::Hamming<float,0> F4;
00435             F4 ham8(8);
00436             Vtl::Plf::Kernel::FKern<float> ha1(ham8);
00437             std::cout << "Hamming 8" <<std::endl <<ha1.SaveForMathLab() <<std::endl;
00438             F4 ham9(9);
00439             Vtl::Plf::Kernel::FKern<float> ha2(ham9);
00440             std::cout << "Hamming 9" <<std::endl <<ha2.SaveForMathLab() <<std::endl;
00441             Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Win> ha3(ham9,8);
00442             std::cout << "Hamming window" <<std::endl <<ha3.SaveForMathLab() <<std::endl;
00443
00444         }
00445         {
00446             //float a[]={0.3635819f ,   0.4891775f , 0.1365995f , 0.0106411f};
00447             float a[]={5.0f ,   7.0f , 11.0f , 13.0f};
00448             Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member<float,0,4,1> cm0(1,a);
00449             std::cout << "result=" << cm0(0,0) <<std::endl;
00450             Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member<float,1,4,1> cm1(1,a);
00451             std::cout << "result=" << cm1(0,0) <<std::endl;
00452             Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member<float,2,4,1> cm2(1,a);
00453             std::cout << "result=" << cm2(0,0) <<std::endl;
00454             Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member<float,3,4,1> cm3(1,a);
00455             std::cout << "result=" << cm3(0,0) <<std::endl;
00456
00457             const int N=10;
00458             Vtl::ImAlg::WndFun::Hann<float,0> h0(N);
00459             Hann_<float,0> h_0(N);
00460             Vtl::ImAlg::WndFun::Hann<float,1> h1(N);
00461             Hann_<float,1> h_1(N);
00462             Vtl::ImAlg::WndFun::Hann<float,2> h2(N);
00463             Hann_<float,2> h_2(N);
00464             Vtl::ImAlg::WndFun::Hann<float,3> h3(N);
00465             Hann_<float,3> h_3(N);
00466             for(int i=0; i<N; ++i)
00467             {
00468                 std::cout
00469                     << std::setw(7) << h0(i)  << " "
00470                     << std::setw(7) << h_0(i) << " "
00471                     << std::setw(7) << h1(i)  << " "
00472                     << std::setw(7) << h_1(i) << " "
00473                     << std::setw(7) << h2(i)  << " "
00474                     << std::setw(7) << h_2(i) << " "
00475                     << std::setw(7) << h3(i)  << " "
00476                     << std::setw(7) << h_3(i)
00477                     << std::endl;
00478             }
00479
00480         }
00481         std::cout << "FKern testing" <<std::endl;
00482         {
00483             const int N=10;
00484             std::cout << "=== Infinite support" <<std::endl;
00485             {
00486                 typedef Vtl::ImAlg::WndFun::Gauss<float,0> FF;
00487                 FF::value_type sigma=FF::value_type(N/5);
00488                 FF func(sigma,FF::value_type(N/(2*sigma)));
00489                 std::cout << func.Name()<<std::endl;
00490                 Vtl::Plf::Kernel::FKern<float> ker(func);
00491                 for( Vtl::Plf::Kernel::FKern<float>::const_iterator it=ker.begin(); it!=ker.end(); ++it)
00492                     std::cout << *it << "  ";
00493                 std::cout << std::endl;
00494                 save(&ker);
00495             }
00496             {
00497                 typedef Vtl::ImAlg::WndFun::Sinc<float,0> FF;
00498                 FF func(4,3);
00499                 std::cout << func.Name()<<std::endl;
00500                 Vtl::Plf::Kernel::FKern<float> ker(func);
00501                 for( Vtl::Plf::Kernel::FKern<float>::const_iterator it=ker.begin(); it!=ker.end(); ++it)
00502                     std::cout << *it << "  ";
00503                 std::cout << std::endl;
00504                 save(&ker);
00505             }
00506             std::cout << "=== Finite support, N=" << N <<std::endl;
00507             {
00508                 typedef Vtl::ImAlg::WndFun::Hann<float,0> FF;
00509                 FF func(N);
00510                 std::cout << func.Name()<<std::endl;
00511                 Vtl::Plf::Kernel::FKern<float> ker(func);
00512                 for( Vtl::Plf::Kernel::FKern<float>::const_iterator it=ker.begin(); it!=ker.end(); ++it)
00513                     std::cout << *it << "  ";
00514                 std::cout << std::endl;
00515                 save(&ker);
00516             }
00517             std::cout << "" <<std::endl;
00518             {
00519                 typedef Vtl::ImAlg::WndFun::Hamming<float,0> FF;
00520                 FF func(N);
00521                 std::cout << func.Name()<<std::endl;
00522                 Vtl::Plf::Kernel::FKern<float> ker(func);
00523                 for( Vtl::Plf::Kernel::FKern<float>::const_iterator it=ker.begin(); it!=ker.end(); ++it)
00524                     std::cout << *it << "  ";
00525                 std::cout << std::endl;
00526                 save(&ker);
00527             }
00528             {
00529                 typedef Vtl::ImAlg::WndFun::Kaiser<float,0> FF;
00530                 FF func(N,FF::value_type(3));
00531                 std::cout << func.Name()<<std::endl;
00532                 Vtl::Plf::Kernel::FKern<float> ker(func);
00533                 for( Vtl::Plf::Kernel::FKern<float>::const_iterator it=ker.begin(); it!=ker.end(); ++it)
00534                     std::cout << *it << "  ";
00535                 std::cout << std::endl;
00536                 save(&ker);
00537             }
00538             {
00539                 typedef Vtl::ImAlg::WndFun::Blackman<float,0> FF;
00540                 FF func(N);
00541                 std::cout << func.Name()<<std::endl;
00542                 Vtl::Plf::Kernel::FKern<float> ker(func);
00543                 for( Vtl::Plf::Kernel::FKern<float>::const_iterator it=ker.begin(); it!=ker.end(); ++it)
00544                     std::cout << *it << "  ";
00545                 std::cout << std::endl;
00546                 save(&ker);
00547             }
00548             {
00549                 typedef Vtl::ImAlg::WndFun::Nuttall<float,0> FF;
00550                 FF func(N);
00551                 std::cout << func.Name()<<std::endl;
00552                 Vtl::Plf::Kernel::FKern<float> ker(func);
00553                 for( Vtl::Plf::Kernel::FKern<float>::const_iterator it=ker.begin(); it!=ker.end(); ++it)
00554                     std::cout << *it << "  ";
00555                 std::cout << std::endl;
00556                 save(&ker);
00557             }
00558             {
00559                 typedef Vtl::ImAlg::WndFun::Bartlett<float,0> FF;
00560                 FF func(N);
00561                 std::cout << func.Name()<<std::endl;
00562                 Vtl::Plf::Kernel::FKern<float> ker(func);
00563                 for( Vtl::Plf::Kernel::FKern<float>::const_iterator it=ker.begin(); it!=ker.end(); ++it)
00564                     std::cout << *it << "  ";
00565                 std::cout << std::endl;
00566                 save(&ker);
00567             }
00568             std::cout << "=== Finite support table" <<std::endl;
00569             {
00570                 typedef Vtl::ImAlg::WndFun::Laws5<float>::E5 FF;
00571                 FF func;
00572                 std::cout << func.Name()<<std::endl;
00573                 Vtl::Plf::Kernel::FKern<float> ker(func);
00574                 for( Vtl::Plf::Kernel::FKern<float>::const_iterator it=ker.begin(); it!=ker.end(); ++it)
00575                     std::cout << *it << "  ";
00576                 std::cout << std::endl;
00577                 save(&ker);
00578             }
00579             std::cout << "=== Compare conv,corr & win kernels" <<std::endl;
00580             {
00581                 typedef Vtl::ImAlg::WndFun::Nuttall<float,1> FF;
00582                 FF func(N);
00583                 std::cout << func.Name()<<std::endl;
00584                 std::cout << "Conv"<<std::endl;
00585                 {
00586                     Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Conv> ker(func);
00587                     for( Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Conv>::const_iterator it=ker.begin(); it!=ker.end(); ++it)
00588                         std::cout << *it << "  ";
00589                     std::cout << std::endl;
00590                 }
00591                 std::cout << "Corr"<<std::endl;
00592                 {
00593                     Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Corr> ker(func);
00594                     for( Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Corr>::const_iterator it=ker.begin(); it!=ker.end(); ++it)
00595                         std::cout << *it << "  ";
00596                     std::cout << std::endl;
00597                 }
00598                 std::cout << "Win"<<std::endl;
00599                 {
00600                     Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Win> ker(func,N);
00601                     for( Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Win>::const_iterator it=ker.begin(); it!=ker.end(); ++it)
00602                         std::cout << *it << "  ";
00603                     std::cout << std::endl;
00604                 }
00605             }
00606
00607         }
00608
00609         return 0;
00610     }
00611 }//namespace Tests
00612


Pipe Line Filters: test_plf_strip_buffer.cpp

  • Примеры

test_plf_strip_buffer.cpp

00001 #include <stdio.h>
00002 #include <string>
00003 #include <sstream>
00004
00005 #include "plf_filters.h"
00006
00007 #include "tests.h"
00008
00009 namespace Tests
00010 {
00011     static void printImageRef(Vtl::Plf::ImageRef<int>& ir, int id)
00012     {
00013         printf("------<%d>--------\n",id);
00014         for(int y=-ir.ext().before ; y<=ir.ext().forward; y++ )
00015         {
00016             printf("%c  ",(y==0)?'c':'-');
00017             int x=-ir.ext().left;
00018             for( ; x<0; x++)
00019                 printf("%2d",ir[y][x]);
00020             printf(" | ");
00021             for( ; x<ir.w() ; x++)
00022                 printf("%2d",ir[y][x]);
00023             printf(" | ");
00024             for( ; x < (ir.w()+ir.ext().right) ; x++)
00025                 printf("%2d",ir[y][x]);
00026             printf("\n");
00027         }
00028     }
00029
00030     int test_plf_StripBuffer(int argc, char* argv[])
00031     {
00032         typedef Vtl::Plf::StripBuffer<int> SBuffer;
00033         SBuffer buf;
00034         const int w=5;
00035         const int h=7;
00036         Vtl::Plf::Extent ex(3,2,1,2);
00037         buf.init_1(Vtl::Plf::ImgSize(w,h));
00038         buf.init_2(ex);
00039         buf.init_3(0);
00040         buf.init_4();
00041
00042         for(int y=0,yy=0; buf.Y()< h ; )
00043         {
00044             if(buf.Y_wait()<h)
00045             {
00046                 buf.InsertNextLineStart();
00047                 SBuffer::Iter_Line it=buf.begin_line_insert();
00048                 int y=buf.Y_wait(); //Номер закладываемой строки
00049                 for(int x=0,d=1; x<w; x++)
00050                 {
00051                     *it++=y+d;
00052         #if 0
00053                     if(x<w/2)
00054                         ++d;
00055                     else
00056                         --d;
00057         #endif
00058                 }
00059                 buf.InsertNextLineFinished();
00060             }
00061             else //if(buf.is_TailData())
00062             {
00063                 buf.PopTail();
00064             }
00065
00066             if(buf.Y()>=0)
00067             {
00068                 Vtl::Plf::ImageRef<int> ir=buf.getImg();
00069                 printImageRef(ir, yy++);
00070             }
00071
00072         }
00073         return 0;
00074     }
00075 }//namespace Tests
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: test_spec_functions.cpp

  • Примеры

test_spec_functions.cpp

Примеры как работать со специальными функциями мат. физики

00001 #include <stdio.h>
00002 #include <string>
00003 #include <sstream>
00004 #include <iostream>
00005 #include <iomanip>
00006 #include <memory> //auto_ptr()
00007
00008 #include "spec_functions.h"
00009 #include "tests.h"
00010
00011
00012 #define EXT_INFO
00013 namespace Tests
00014 {
00015     typedef double XandRes[2];
00016     static double  NoMult(double x)
00017     {
00018         return 1;
00019     }
00020     template<class F,class M> double chkFun(F fun,const XandRes *p,int len,M mult=NoMult)
00021     {
00022         double e=0;
00023         for(int i=0; i<len ; ++i)
00024         {
00025             double x=p[i][0];
00026             double r=fun(float(x));
00027             e=std::max(e,fabs( r*mult(x) - p[i][1] ) );
00028         }
00029         return e;
00030     }
00031     template<class F> double chkFun(F fun,const XandRes *p,int len)
00032     {
00033         return chkFun(fun,p,len,NoMult);
00034     }
00035     bool info(double e,double eps,const char *name)
00036     {
00037         if(e<eps)
00038         {
00039             std::cout << name << " is OK!" ;
00040             #ifdef EXT_INFO
00041             std::cout << "   eps="<<e;
00042             #endif
00043             std::cout << std::endl;
00044             return true;
00045         }
00046         else
00047         {
00048             std::cout << name << " is BAD!!!!!  Real error=" << e << "  Theor. error=" << eps << std::endl;
00049             return false;
00050         }
00051     }
00052
00053     bool check_J0()
00054     {
00055         static const XandRes d[]=  //data from Abramovitz-Stegun
00056         {
00057             { 0. ,+1.},
00058             { 0.5,+0.938469807240813},
00059             { 1.0,+0.765197686557967},
00060             { 4.0,-0.397149809863847},
00061             { 8.0,+0.171650807137554},
00062             {10.0,-0.245935764451348},
00063             {15.0,-0.014224472826781}
00064         };
00065         double e=chkFun(Vtl::NumAlg::Spf::bess::J<0>,d,sizeof(d)/sizeof(d[0]));
00066         return info(e,2.0e-8,"Vtl::NumAlg::Spf::bess::J<0>");
00067     }
00068     bool check_J1()
00069     {
00070         static const XandRes d[]=  //data from Abramovitz-Stegun
00071         {
00072             { 0. ,+0.},
00073             { 0.5,+0.2422684577},
00074             { 1.0,+0.4400505857},
00075             { 4.0,-0.0660433280},
00076             { 8.0,+0.2346363469},
00077             {10.0,+0.0434727462},
00078             {15.0,+0.2051040386}
00079         };
00080         double e=chkFun(Vtl::NumAlg::Spf::bess::J<1>,d,sizeof(d)/sizeof(d[0]));
00081         return info(e,1.4e-8,"Vtl::NumAlg::Spf::bess::J<1>");
00082     }
00083     bool check_J2()
00084     {
00085         static const XandRes d[]=  //data from Abramovitz-Stegun
00086         {
00087             { 0. ,+0.},
00088             { 0.5,+0.0306040235},
00089             { 1.0,+0.1149034849},
00090             { 4.0,+0.3641281459},
00091             { 8.0,-0.1129917204},
00092             {10.0,+0.2546303137},
00093             {15.0,+0.0415716780}
00094         };
00095         double e=chkFun(Vtl::NumAlg::Spf::bess::J<2>,d,sizeof(d)/sizeof(d[0]));
00096         return info(e,1.4e-8,"Vtl::NumAlg::Spf::bess::J<2>");
00097     }
00098     bool check_Y0()
00099     {
00100         static const XandRes d[]=  //data from Abramovitz-Stegun
00101         {
00102             { 0.1,-1.5342386514},
00103             { 0.5,-0.4445187335},
00104             { 1.0,+0.0882569642},
00105             { 4.0,-0.0169407393},
00106             { 8.0,+0.2235214894},
00107             {10.0,+0.0556711673},
00108             {15.0,+0.2054642960}
00109         };
00110         double e=chkFun(Vtl::NumAlg::Spf::bess::Y<0>,d,sizeof(d)/sizeof(d[0]));
00111         return info(e,4.5e-8,"Vtl::NumAlg::Spf::bess::Y<0>");
00112     }
00113     bool check_Y1()
00114     {
00115         static const XandRes d[]=  //data from Abramovitz-Stegun
00116         {
00117             { 0.1,-6.4589510947},
00118             { 0.5,-1.4714723927},
00119             { 1.0,-0.7812128213},
00120             { 4.0,+0.3979257106},
00121             { 8.0,-0.1580604617},
00122             {10.0,+0.2490154242},
00123             {15.0,+0.0210736280}
00124         };
00125         double e=chkFun(Vtl::NumAlg::Spf::bess::Y<1>,d,sizeof(d)/sizeof(d[0]));
00126         return info(e,9.9e-8,"Vtl::NumAlg::Spf::bess::Y<1>");
00127     }
00128     bool check_Y2()
00129     {
00130         static const XandRes d[]=  //data from Abramovitz-Stegun
00131         {
00132             { 0.1,-127.64478324},
00133             { 0.5,  -5.44137084},
00134             { 1.0,  -1.65068261},
00135             { 4.0,  +0.21590359},
00136             { 8.0,  -0.26303660},
00137             {10.0,  -0.00586808},
00138             {15.0,  -0.20265448}
00139         };
00140         double e=chkFun(Vtl::NumAlg::Spf::bess::Y<2>,d,sizeof(d)/sizeof(d[0]));
00141         return info(e,2.2e-7,"Vtl::NumAlg::Spf::bess::Y<2>");
00142     }
00143 //----------------
00144     static double  I_Mult(double x)
00145     {
00146         return exp(-x);
00147     }
00148     static double  I2_0to5_Mult(double x)
00149     {
00150         return 1./(x*x);
00151     }
00152     bool check_I0()
00153     {
00154         static const XandRes d[]=  //data from Abramovitz-Stegun
00155         {
00156             { 0.0,1.0},
00157             { 0.5,+0.6450352704},
00158             { 1.0,+0.4657596076},
00159             { 4.0,+0.2070018212},
00160             { 8.0,+0.1434317818},
00161             {10.0,+0.1278333371},
00162             {15.0,+0.1038995314}
00163         };
00164         double e=chkFun(Vtl::NumAlg::Spf::bess::I<0>,d,sizeof(d)/sizeof(d[0]),I_Mult);
00165         return info(e,1.0e-7,"Vtl::NumAlg::Spf::bess::I<0>");
00166     }
00167     bool check_I1()
00168     {
00169         static const XandRes d[]=  //data from Abramovitz-Stegun
00170         {
00171             { 0.0, 0.0},
00172             { 0.5, 0.1564208032},
00173             { 1.0, 0.2079104154},
00174             { 4.0, 0.1787508395},
00175             { 8.0, 0.1341424933},
00176             {10.0, 0.1212626814},
00177             {15.0, 0.1003741751}
00178         };
00179         double e=chkFun(Vtl::NumAlg::Spf::bess::I<1>,d,sizeof(d)/sizeof(d[0]),I_Mult);
00180         return info(e,8.0e-9,"Vtl::NumAlg::Spf::bess::I<1>");
00181     }
00182     bool check_I2()
00183     {
00184         static const XandRes d0[]=  //data from Abramovitz-Stegun
00185         {
00186             { 0.0, 0.125},
00187             { 0.5, 0.1276245967},
00188             { 1.0, 0.1357476698},
00189             { 4.0, 0.4013868359},
00190         };
00191         double e=chkFun(Vtl::NumAlg::Spf::bess::I<2>,d0,sizeof(d0)/sizeof(d0[0]),I2_0to5_Mult);
00192
00193         static const XandRes d[]=  //data from Abramovitz-Stegun
00194         {
00195             { 8.0, 0.109896158},
00196             {10.0, 0.103580801},
00197             {15.0, 0.090516308}
00198         };
00199         e=std::max(e,chkFun(Vtl::NumAlg::Spf::bess::I<2>,d,sizeof(d)/sizeof(d[0]),I_Mult));
00200         return info(e,3.9e-8,"Vtl::NumAlg::Spf::bess::I<2>");
00201     }
00202 //----------------
00203     static double  K_Mult(double x)
00204     {
00205         return exp(x);
00206     }
00207     static double  K2_0to5_Mult(double x)
00208     {
00209         return x*x;
00210     }
00211     bool check_K0()
00212     {
00213         static const XandRes d[]=  //data from Abramovitz-Stegun
00214         {
00215             { 0.1,2.6823261023},
00216             { 0.5,1.5241093857},
00217             { 1.0,1.14446307977},
00218             { 4.0,0.6092976693},
00219             { 8.0,0.4366230185},
00220             {10.0,0.3916319344},
00221             {15.0,0.3210023534}
00222         };
00223         double e=chkFun(Vtl::NumAlg::Spf::bess::K<0>,d,sizeof(d)/sizeof(d[0]),K_Mult);
00224         return info(e,1.8e-7,"Vtl::NumAlg::Spf::bess::K<0>");
00225     }
00226     bool check_K1()
00227     {
00228         static const XandRes d[]=  //data from Abramovitz-Stegun
00229         {
00230             { 0.1,10.890182683},
00231             { 0.5, 2.7310097082},
00232             { 1.0, 1.6361534863},
00233             { 4.0, 0.6815759452},
00234             { 8.0, 0.4631490928},
00235             {10.0, 0.4107665704},
00236             {15.0, 0.3315348949}
00237         };
00238         double e=chkFun(Vtl::NumAlg::Spf::bess::K<1>,d,sizeof(d)/sizeof(d[0]),K_Mult);
00239         return info(e,1.6e-7,"Vtl::NumAlg::Spf::bess::K<1>");
00240     }
00241     bool check_K2()
00242     {
00243         static const XandRes d0[]=  //data from Abramovitz-Stegun
00244         {
00245             { 0.1, 1.995039646},
00246             { 0.5, 1.887545888},
00247             { 1.0, 1.624838899},
00248             { 4.0, 0.278422808},
00249         };
00250         double e=chkFun(Vtl::NumAlg::Spf::bess::K<2>,d0,sizeof(d0)/sizeof(d0[0]),K2_0to5_Mult);
00251
00252         static const XandRes d[]=  //data from Abramovitz-Stegun
00253         {
00254             { 8.0, 0.55241029},
00255             {10.0, 0.47378525},
00256             {15.0, 0.36520701}
00257         };
00258         e=std::max(e,chkFun(Vtl::NumAlg::Spf::bess::K<2>,d,sizeof(d)/sizeof(d[0]),K_Mult));
00259         return info(e,6.4e-8,"Vtl::NumAlg::Spf::bess::K<2>");
00260     }
00261
00262     int test_spec_functions(int argc, char* argv[])
00263     {
00264         bool isOk=true;
00265         isOk &= check_J0();
00266         isOk &= check_J1();
00267         isOk &= check_J2();
00268
00269         isOk &= check_Y0();
00270         isOk &= check_Y1();
00271         isOk &= check_Y2();
00272
00273         isOk &= check_I0();
00274         isOk &= check_I1();
00275         isOk &= check_I2();
00276
00277         isOk &= check_K0();
00278         isOk &= check_K1();
00279         isOk &= check_K2();
00280
00281         {
00282             float v;
00283             // test for (x< 8.0 ) and (x>8.0)
00284             v=Vtl::NumAlg::Spf::bess::J<0>(1.0f);
00285             v=Vtl::NumAlg::Spf::bess::J<0>(9.0f);
00286             v=Vtl::NumAlg::Spf::bess::Y<0>(1.0f);
00287             v=Vtl::NumAlg::Spf::bess::Y<0>(9.0f);
00288             v=Vtl::NumAlg::Spf::bess::J<1>(1.0f);
00289             v=Vtl::NumAlg::Spf::bess::J<1>(9.0f);
00290             v=Vtl::NumAlg::Spf::bess::Y<1>(1.0f);
00291             v=Vtl::NumAlg::Spf::bess::Y<1>(9.0f);
00292             v=Vtl::NumAlg::Spf::bess::J<2>(1.0f);
00293             v=Vtl::NumAlg::Spf::bess::J<2>(9.0f);
00294             v=Vtl::NumAlg::Spf::bess::Y<2>(1.0f);
00295             v=Vtl::NumAlg::Spf::bess::Y<2>(9.0f);
00296             v=Vtl::NumAlg::Spf::bess::J<7>(1.0f);
00297             v=Vtl::NumAlg::Spf::bess::J<7>(9.0f);
00298             v=Vtl::NumAlg::Spf::bess::Y<7>(1.0f);
00299             v=Vtl::NumAlg::Spf::bess::Y<7>(9.0f);
00300             // test for (x< 3.75 ) and (x>3.75)
00301             v=Vtl::NumAlg::Spf::bess::I<0>(1.0f);
00302             v=Vtl::NumAlg::Spf::bess::I<0>(4.0f);
00303             v=Vtl::NumAlg::Spf::bess::I<1>(1.0f);
00304             v=Vtl::NumAlg::Spf::bess::I<1>(4.0f);
00305             v=Vtl::NumAlg::Spf::bess::I<2>(1.0f);
00306             v=Vtl::NumAlg::Spf::bess::I<2>(4.0f);
00307             v=Vtl::NumAlg::Spf::bess::I<7>(1.0f);
00308             v=Vtl::NumAlg::Spf::bess::I<7>(4.0f);
00309             // test for (x< 2.0 ) and (x>2.0)
00310             v=Vtl::NumAlg::Spf::bess::K<0>(1.0f);
00311             v=Vtl::NumAlg::Spf::bess::K<0>(3.0f);
00312             v=Vtl::NumAlg::Spf::bess::K<1>(1.0f);
00313             v=Vtl::NumAlg::Spf::bess::K<1>(3.0f);
00314             v=Vtl::NumAlg::Spf::bess::K<2>(1.0f);
00315             v=Vtl::NumAlg::Spf::bess::K<2>(3.0f);
00316             v=Vtl::NumAlg::Spf::bess::K<7>(1.0f);
00317             v=Vtl::NumAlg::Spf::bess::K<7>(3.0f);
00318         }
00319         return 0;
00320     }
00321 }


Pipe Line Filters: test_yxml_ini.cpp

  • Примеры

test_yxml_ini.cpp

Пример как написать код, который изменением одной директивы препроцессора переключается с работы с XML на INI и наоборот. Совместимый интерфейс. Может быть полезно в ситуациях, когда программа хранить свои данные в XML, но может потребоваться сделать версию программы, которая не требует установки библиотек XML. А данные не столь сложны, чтобы было обязательно использовать именно XML (например просто 3 числовых параметра и текстовая строка).

00001 //#pragma warning( disable : 4786 )
00002 #include <iostream>
00003 #include <memory>//auto_ptr
00004 #include <windows.h>//CharToOem()
00005 #include <stdlib.h>//setenv()
00006
00007 #include "ywinini.h"
00008 #include "xml_interface.h"
00009
00010 #include "tests.h"
00011
00012 namespace Tests
00013 {
00014
00015     std::ostream& operator<<(std::ostream& os,const char* str)
00016     {
00017         std::string s(str);
00018         CharToOem(str,(char *)s.c_str());//trust, that string size are equal and no reallocation take place.
00019         os<<s;
00020
00021         return os;
00022     }
00023
00024     std::ostream& operator<<(std::ostream& os,const DataString& str)
00025     {
00026         return os<< (char*)str.c_str();
00027     }
00028
00029     #define USE_XML
00030
00031     #ifdef USE_XML
00032         typedef YXML::DNode TreeNode;
00033     #else
00034         typedef WiNode TreeNode;
00035     #endif
00036
00037
00038     static void CommonIniXmlInterfaceDemo(TreeNode n);
00039
00040
00041
00042
00043
00044     int test_YWinIni(int argc, char* argv[])
00045     {
00046         std::cout << "Demo tree-like data" << std::endl;
00047
00048
00049     #ifdef USE_XML
00050         //YXML правильно понимает пути и имена, заданные с использованием прямого, а не обратного слэша!
00051         //YXML::XMLdoc doc("e:/LIB/SHARED_S/psp.xml","Passport",true);
00052         YXML::XMLdoc doc(".\\psp.xml","Passport",true);
00053     #else
00054         WinIniFile doc(".\\psp.ini");
00055     #endif
00056
00057         TreeNode n=doc.Root();
00058
00059         //Объекты классов YXML::DNode и WiNode малы, поэтому их можно передавать по значению.
00060         //Практически следует передавать по знгачению функциям, изменяющим данные,
00061         //и по константной ссылке функциям, только читающим из файла.
00062         CommonIniXmlInterfaceDemo(n);
00063
00064         //Specific XML demo
00065     #ifdef USE_XML
00066         n=doc.Root()("ImageSet");
00067         n["transf"]="HRPT";
00068         n["device"]="AVHRR";
00069
00070         //Append childs without checking it already in document
00071         for(int i=0; i<5 ; i++)
00072         {
00073             YXML::DNode n2=n.AppendChild(YXML::DNode::ELEMENT,"image");
00074             n2["chan"]=i+1;
00075             n2.AppendChild(YXML::DNode::ELEMENT,"clb")="calibration data";
00076         }
00077
00078         {
00079             std::cout << "Find Element nodes with attr in some bound" << std::endl;
00080             n=doc.Root()("ImageSet");
00081             //Сформировать условия поиска
00082             YXML::DNode::IsCond cond(YXML::IsNameEq("image") && YXML::IsAttr<int,std::less<int> >("chan",3));
00083             //искать элементы, соответствующие условиям
00084             YXML::DNode n2=n.FirstChild(cond);
00085             while(n2.IsNode())
00086             {
00087                 std::cout << "<" << n2.getName() << " chan="<<n2.GetAttr("chan") <<">" << std::endl;
00088                 n2=n2.Next(cond);
00089             }
00090         }
00091         {
00092             std::cout << "Find Element nodes with attr in some bound -another condition" << std::endl;
00093             n=doc.Root()("ImageSet");
00094             //Сформировать условия поиска
00095             YXML::DNode::IsCond cond(YXML::IsNameEq("image") && YXML::IsAttrIn<int>("chan",3,4));
00096             //искать элементы, соответствующие условиям
00097             YXML::DNode n2=n.FirstChild(cond);
00098             while(n2.IsNode())
00099             {
00100                 std::cout << "<" << n2.getName() << " chan="<<n2.GetAttr("chan") <<">" << std::endl;
00101                 n2=n2.Next(cond);
00102             }
00103         }
00104         {
00105             std::cout << "Find Element nodes with attr in some bound -one more complex condition" << std::endl;
00106             n=doc.Root()("ImageSet");
00107             //Сформировать условия поиска
00108             YXML::DNode::IsCond cond=YXML::IsNameEq("image") && ( YXML::IsAttrIn<int>("chan",3,4) || YXML::IsAttr<int,std::equal_to<int> >("chan",1) );
00109             //искать элементы, соответствующие условиям
00110             YXML::DNode n2=n.FirstChild(cond);
00111             while(n2.IsNode())
00112             {
00113                 std::cout << "<" << n2.getName() << " chan="<<n2.GetAttr("chan") <<">" << std::endl;
00114                 n2=n2.Next(cond);
00115             }
00116         }
00117
00118
00119         //Append childs WITH checking it already in document, and modify if exist.
00120         //Two equal name childs differ only by attribute
00121         n=doc.Root();
00122         YXML::DNode n2=n.FirstChild("Station-XML");
00123         if(n2.IsNode())
00124             n=n2; //already exist
00125         else
00126         {//Not exist, insert before "Station"
00127             n2=n.FirstChild("Station");
00128             if(n2.IsNode())
00129             {
00130                 n=n2.InsertBefore(YXML::DNode::ELEMENT,"Station-XML");
00131                 n.InsertBefore(YXML::DNode::COMMENT,"Inserted comment for Station-XML");
00132             }
00133             else
00134                 n=n.AppendChild(YXML::DNode::ELEMENT,"Station-XML");
00135         }
00136         //now n=doc.Root()("Station-XML");
00137         n2=n.FirstChild("name");
00138         bool rusn=false;
00139         bool engn=false;
00140         while(n2.IsNode())
00141         {
00142             if(n2.GetAttr("lang")=="ru")
00143             {
00144                 DataString s=n2;
00145                 n2=s+"_1";
00146                 rusn=true;
00147             }
00148             else if(n2.GetAttr("lang")=="en")
00149             {
00150                 DataString s=n2;
00151                 n2=s+"_2";
00152                 engn=true;
00153             }
00154             n2=n2.Next("name");
00155         }
00156         if(!rusn)
00157         {
00158             n2=n.AppendChild(YXML::DNode::ELEMENT,"name");
00159             n2["lang"]="ru";
00160             n2="Роскартография Москва";
00161         }
00162         if(!engn)
00163         {
00164             n2=n.AppendChild(YXML::DNode::ELEMENT,"name");
00165             n2["lang"]="en";
00166             n2="Roskartographia";
00167         }
00168
00169     //Alternative variant
00170
00171         //Сформировать условия поиска
00172         YXML::DNode::IsCond cond(YXML::IsNameEq("name") && YXML::IsAttr<std::string,std::equal_to<std::string> >("lang","ru"));
00173         //искать элементы, соответствующие условиям
00174         n2=n.FirstChild(cond);
00175         if(n2.IsNode())
00176             std::cout << "Found russian version:" << n2 << std::endl;
00177         //Сформировать условия поиска и искать первый элемент, соответствующий условиям
00178         n2=n.FirstChild(YXML::IsNameEq("name") && YXML::IsAttr<std::string,std::equal_to<std::string> >("lang","en"));
00179         if(n2.IsNode())
00180             std::cout << "Found english version:" << n2 << std::endl;
00181
00182
00183         n2=n.FirstChild("name","lang","ru");
00184         if(n2.IsNode())
00185             std::cout << "Found russian version:" << n2 << std::endl;
00186         n2=n.FirstChild("name","lang","en");
00187         if(n2.IsNode())
00188             std::cout << "Found english version:" << n2 << std::endl;
00189
00190     #endif
00191         return 0;
00192     }
00193
00194
00195
00196     void CommonIniXmlInterfaceDemo(TreeNode root)
00197     {
00198         TreeNode n=root;
00199         n("Program")["AlcorSat"]=1;
00200         n("Program")["version"]="1.3.7";
00201         n("Program")="Текстовое описание программы";
00202
00203
00204         std::string seance("Seance");
00205         std::string image("image");
00206         DataString ds="2003-03-12T19:21:3.65432Z+03:30";
00207         YDataTime dt1=ds;
00208         YDataTime dt2=dt1;
00209         YTimeInterval ti;
00210         ti.Set(0,1,0,0.001);
00211         dt2+=ti;
00212
00213         {
00214             TreeNode n1=n.GetNode(seance).GetNode("Zap");
00215             n1("time1")=dt1;
00216             n1("time2")=dt2;
00217             n1["Trace"]=43331;
00218             n1["corr"]=123.456;
00219             n1(image)["width"]=2048;
00220             n1(image)["height"]=5123;
00221             n1(image)["flip_vert"]=1;
00222             n1(image)["flip_hor"]=0;
00223         }
00224         {
00225             TreeNode n1=n.GetNode(seance).GetNode("Vos");
00226             YTimeInterval ti;
00227             ti.Set(0,1,40,10.001);
00228             dt1-=ti;
00229             dt2+=ti;
00230             n1("time1")=dt1;
00231             n1("time2")=dt2;
00232         }
00233         {
00234             TreeNode n1=n.GetNode("Station");
00235             YDataTime dt;
00236             n1["id"]=17;
00237             dt.Set(0,0,0,3,30,0.0);
00238             n1("time_zone")=dt;
00239             n1("name")("ru")="Роскартография Москва";
00240             n1("name")("en")="Roskartographia";
00241         }
00242
00243         n=n.GetNode(std::string("s1-0")).GetNode(std::string("s1-1"));
00244         n=n.GetNode("s1-2");
00245         n[std::string("i1")]=std::string("data in the item 1");
00246         n["i2"]="data in the item 2";
00247     //-----------
00248         n=root;
00249         n=n("s1-0")("s1-1");
00250         n=n("s1-2");
00251         n["i3"]="data in the item 3";
00252         n["i4"]="data in the item 4";
00253     //-----------
00254         n=root("s1-0");
00255         n=n("s2-1");
00256         n=n("s2-2");
00257         n["i3"]="data in the item 3";
00258         n["i4"]="data in the item 4";
00259     //-----------
00260       n=root("s1-0");
00261         n=n("s1-1");
00262         n=n("s1-2");
00263       n["i5"] = "s1- 0/1/2/ i5";
00264       std::string a1 = DataString(n["i5"]);
00265         n("s1-3")["i6"] = "s1- 0/1/2/3 i5";
00266     //-----------
00267         n=root("s1-0")("s1-1")("s1-2");
00268         n["i1"]="data in the item 1";
00269         n ="asdasdasdqwe_empty";
00270     //  n << "asdasdasdqwe_empty";
00271         root("s1-0")("s1-1")("s1-3")="1234123";
00272     //-----------different output syntax --------------
00273         n=root.GetNode("s1-0");
00274         std::cout << "read from ini:" << n.GetNode("s1-1").GetNode("s1-2")["i1"] << std::endl;
00275         std::cout << "read from ini:" << n("s1-1")("s1-2")["i2"] << std::endl;
00276         std::cout << "read from ini:" << n("s1-1")("s1-2")["i3"] << std::endl;
00277         std::cout << "read from ini:" << n("s1-1")("s1-2")["i4"] << std::endl;
00278         std::cout << "read from ini:" << n.GetNode("s1-1")("s1-2") << std::endl;
00279
00280         std::cout << "read from ini:" << root("Program") << std::endl;
00281         DataString s=root("Program");
00282         std::cout << "read from ini:" << s << std::endl;
00283         const char *ss=s.c_str();
00284         std::cout << "read from ini:" << ss << std::endl;
00285     }
00286
00287
00288 }//namespace Tests
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: test_yxml_learn.cpp

  • Примеры

test_yxml_learn.cpp

Развернутый и хорошо документированный (учебный) пример как работать с XML. екомендуется скомпилировать и пошагово исполнять, читая комментарии в коде. Построен по принципу от простого к сложному. Начинает с упрощенного интерфейса и заканчивается развернутым интерфейсом, который работает с многократно встречающимися одноименными нодами, умеет перебирать их в различном порядке, вставлять и удалять ноды до и/или после указанной, осуществлять поиск с произвольно заданными условиями путем написания надлежащего функтора (шаблонный класс с оператором "круглые скобки")

00001 // xml_test.cpp : Defines the entry point for the console application.
00002 //
00003
00004 #include <iostream>
00005
00006 #include "xml_interface.h"
00007 #include "yfilesys.h"
00008
00009
00010 const char *DocName="ROUTE_ROOT";
00011
00012 const char * PspRoute="PASPORTROUTE";
00013 const char * Kvater="Kvater";
00014 const char * Akco="AKCO";
00015 namespace Tests
00016 {
00017     namespace Test_YXML
00018     {
00019         void fill_quaternions(YXML::DNode n,double q1,double q2,double q3,double q4)
00020         {
00021             // Имя ноды или атрибута должно начинаться с буквы или _ , имя
00022             // атрибута типа "1" - не соответствует стандарту.
00023             n["q1"]=q1;
00024
00025             // Хотим поупражняться в форматировании по-своему:
00026             {
00027                 std::ostringstream os;
00028                 os << float(q2);
00029                 n["q2"]=os.str();
00030             }
00031             {
00032                 std::ostringstream os;
00033                 os << std::setiosflags(std::ios::showpoint |std::ios::fixed) << std::setprecision(6) << q3;
00034                 n["q3"]=os.str();
00035             }
00036             {
00037                 std::ostringstream os;
00038                 os << std::setiosflags(std::ios::showpoint|std::ios::fixed) << std::setprecision(3) ;
00039                 os << q4;
00040                 n["q4"]=os.str();
00041             }
00042         }
00043
00044         void fill_document(YXML::DNode node)
00045         {
00046             // Следующие поля - существуют в единственном экземпляре,
00047             // поэтому можно использовать упрощенный интерфейс.
00048
00049             // Следующие поля - делаем аттрибутами, так как может захотеться в одном файле
00050             // держать большую базу, состоящую из большого количества записей данных такого формата,
00051             // а искать по значениям аттрибутов  - легче.
00052             node["Version"]="1.0.0.0";
00053             node["nNumberKA"]=33;
00054             node["cCodeKA"]="PRS";
00055             node["cCodePPI"]="124";
00056             node["cStation"]="..OPTECS";
00057             node["dDateHeaderFile"]="07/02/2007";
00058             // Следующие поля - мало интересны для поиска, поэтому сделаем их нодами типа ELEMENT,
00059             // данные будут, но не на самом виду.
00060             // Примечание: еще один аргумент делать что-то аттрибутом, а не нодой - это если важно
00061             // точное форматирование, в нодах ELEMENT последовательность любых символов разделителей
00062             // (пробел, табуляция, перевод строки) воспринимается как один пробел.
00063             node("cFormatNamePasport")="REZZP";
00064             node("cOrganization")="GKNPC";
00065             node("cProgramm")="RNII KP .FormSatM";
00066             //Посмотрите как следующая строка будет записана в файле, прочитается она правильно!
00067             //Это правильное поведение в соответствии со стандартом, чтобы можно было хранить любые
00068             //данные и это не запутывало интерпретацию.
00069             node("TEST")="Asdf < фыва > 111 & > / ТЗ ; кавычка \" aa \\ bb (){}|[] end";
00070
00071
00072
00073             YXML::DNode n_route=node(PspRoute);
00074             n_route("cBSEModeType")="ZAP";
00075             n_route("nPickupNum")=1;
00076             n_route("nCycleNum")=1245;
00077             n_route("nCycleRouteNum")=1;
00078             n_route("nWPNum")=4;
00079             n_route("dDateRoute")="07/03/2007";
00080             n_route("tTimeRoutePlan")="05:12:20.600000";
00081             //Хотя рекомендуется хранить время и дату вместе (действительно, например
00082             //при переводе из одного часового пояса в другой могут меняться ОБА параметра
00083             //одновременно, так что это не есть независимые величины).
00084             {
00085                 YDataTime dt(2007,3,7,5,12,20.600123);
00086                 YTimeInterval zone(0,3,0,0);
00087                 // читать можно так
00088                 int day=dt.Day();
00089                 int year_day=dt.YearDay();
00090                 int minutes=dt.Minutes();
00091                 double seconds_from_1_Jan=dt.YearDaySec();
00092                 //собираем вместе время и часовой пояс
00093                 YDataTimeZone dtz(dt,zone);
00094                 // а в XML записать так:
00095                 DataString ds;
00096                 ds.setDataTime_Precision(6);//по стандарту XML - 3 цифры, до миллисекунд,
00097                 //но можно завести свой тип и работать с ним - расширим до микросекунд.
00098                 ds=dtz;
00099                 n_route("DataTime_RoutePlan")=ds;
00100             }
00101
00102             n_route("nDeltaTimeRoute")=600;
00103             n_route("cDevMode")="S";
00104             //А можно писать и так:
00105             node(PspRoute)("nOEPQuantity")=1;
00106             node(PspRoute)("bOEPNumbers")=1;
00107             node(PspRoute)("nCycleCommunic")=2;
00108             //Хотя с точки зрения удобства чтения и интерпретации данных программой
00109             //это лучше записать в файл в виде
00110             node(PspRoute)("cFileType")["Format"]="TIFF";
00111             node(PspRoute)("cFileType")["bits"]=8;
00112             node(PspRoute)("cFileType")["ImageClass"]="GrayScale";//против PALETTE или RGB
00113
00114
00115             n_route("nFactorCompres")=4;
00116             n_route("nFilesNum")=1;
00117             {
00118                 YDataTime dt(2007,3,7,5,12,20.600321);
00119                 YTimeInterval zone(0,3,0,0);
00120                 //собираем вместе время и часовой пояс
00121                 YDataTimeZone dtz(dt,zone);
00122                 // записать в XML :
00123                 DataString ds;
00124                 ds.setDataTime_Precision(6);//по стандарту XML - 3 цифры, до миллисекунд,
00125                 //но можно завести свой тип и работать с ним - расширим до микросекунд.
00126                 ds=dtz;
00127                 n_route("DateZeroBSHV")=ds;
00128             }
00129
00130             n_route("aViewAngle")="000:00:00.000000";
00131
00132             //Далее упрощенный интерфейс не годится, так как мы хотим добавить
00133             // несколько одноименных нод, отличающихся только аттрибутами и в
00134             //определенном порядке.
00135             // ВНИМАНИЕ! Если идет работа с ранее созданным файлом (уже существующим),
00136             // то естественно старые данные не будут стираться, а следующие строки добавят новые.
00137             // ПОэтому, если старые данные надо удалить или изменить - их надо сначала найти.
00138             // Как - см пример чтения файла.
00139             YXML::DNode n_kv=node.AppendChild(YXML::DNode::ELEMENT,Kvater);
00140
00141             for(int i=1; i<=3; i++)
00142             {
00143                 if(i!=1)
00144                     n_kv=n_kv.InsertAfter(YXML::DNode::ELEMENT,Kvater);
00145
00146                 n_kv[Akco]=DataString(i);
00147                 n_kv("nSKOAKCO")["X"]=000.00;
00148                 n_kv("nSKOAKCO")["Y"]=000.00;
00149                 n_kv("nSKOAKCO")["Z"]=000.00;
00150                 n_kv("nAnglPointsQuant")=11;
00151                 //n("bDTime")=1,2,3,4;
00152                 {
00153                     // Создаем первую ноду:
00154                     YXML::DNode nBL=n_kv.AppendChild(YXML::DNode::ELEMENT,"bL");
00155                     nBL["N"]=0;
00156                     fill_quaternions(nBL,0,-0.0000001,0.0000222,1.0);
00157                     // нужна будет следующая одноименная нода, создаем ее
00158                     // сразу после текущей ноды. Присваиваем результат
00159                     // переменной nBL , так что далее nBL - уже новая нода.
00160
00161                     nBL=nBL.InsertAfter(YXML::DNode::ELEMENT,"bL");
00162                     nBL["N"]=1;
00163                     fill_quaternions(nBL,-0.0000001,0.0000222,1.0,0.3);
00164
00165                     nBL=nBL.InsertAfter(YXML::DNode::ELEMENT,"bL");
00166                     nBL["N"]=2;
00167                     fill_quaternions(nBL,-0.0000001,0.0000222,1.0,0.12);
00168
00169                     nBL=nBL.InsertAfter(YXML::DNode::ELEMENT,"bL");
00170                     nBL["N"]=3;
00171                     fill_quaternions(nBL,-0.0000001,0.0000222,1.0,-0.123456);
00172                 }
00173             }
00174             {
00175                 YXML::DNode n_izm=node("StarIZM");
00176                 n_izm["N"]=1;
00177                 n_izm("nSKOStarR")=000.00;
00178                 n_izm("nSKOStarC")=000.00;
00179                 n_izm("nStarPointsQuant")=111;
00180                 //В качестве разделителя лучше использовать пробелы,
00181                 //а не запятые - легче будет читать файл, меньше писать кода.
00182                 std::string separetor=" ";
00183                 {
00184                     std::ostringstream os;
00185                     os << 1 << separetor << 2 << separetor << 3 << separetor << 4 << separetor << 5;
00186                     n_izm("bDTime")=os.str();
00187                 }
00188                 {
00189                     std::ostringstream os;
00190                     os << 1 << separetor << 2 << separetor << 3 << separetor << 4 << separetor << 5;
00191                     n_izm("bX")=os.str();
00192                 }
00193                 {
00194                     std::ostringstream os;
00195                     os << 1 << separetor << 2 << separetor << 3 << separetor << 3 << separetor << 20;
00196                     n_izm("bY")=os.str();
00197                 }
00198                 {
00199                     float bAlfa[]={000000.00f,000000.00f,000000.00f,000000.00f,000000.00f};
00200                     std::ostringstream os;
00201                     os << std::setiosflags(std::ios::showpoint|std::ios::fixed) << std::setprecision(2) ;
00202                     for(int i=0; i<sizeof(bAlfa)/sizeof(bAlfa[0]) ; ++i)
00203                         os << bAlfa[i] <<" ";
00204                     n_izm("bAlfa")=os.str();
00205                 }
00206                 {
00207                     double bDelta[5]={0000.00,0000.00,0000.00,0000.00,0000.00};
00208                     std::ostringstream os;
00209                     for(int i=0; i<5 ; ++i)
00210                         os << bDelta[i] <<" ";
00211                     n_izm("bDelta")=os.str();
00212                 }
00213
00214             }
00215
00216         }
00217
00218         void test_write_file(std::string filename)
00219         {
00220             YXML::XMLdoc doc;
00221             // создаем новый файл, если был старый, то удаляем
00222             // Проверить был ли файл, можно командой:
00223             if(YFileSys::isFileExist(filename))
00224                 std::cout << "File " << filename << " already exist, we'll overwrite it..." <<std::endl;
00225             else
00226                 std::cout << "File " << filename << " NOT exist, we'll create it..." <<std::endl;
00227
00228             doc.Create(filename.c_str(),DocName);
00229             YXML::DNode root=doc.Root();
00230
00231             fill_document(root);
00232
00233             doc.Save(filename.c_str(),true);
00234         }
00235
00236         template<typename T>
00237         struct Ne
00238         {
00239             bool operator()(DataString ds,const T& v)
00240             {
00241                 T va=ds;
00242                 return va!=v;
00243             }
00244         };
00245         void read_document(YXML::DNode node)
00246         {
00247             DataString ds;
00248             //Если нода присутствует в единственном числе, то считать ее содержимое можно так:
00249             ds=node("cFormatNamePasport")="REZZP";
00250             std::cout << ds << std::endl;
00251             // а аттрибут так:
00252             ds=node["dDateHeaderFile"];
00253             std::cout << ds << std::endl;
00254
00255             // Аналогично записи читать тоже можно и так:
00256             ds=node(PspRoute)("nCycleCommunic");
00257             int nCycleCommunic=ds;
00258             std::cout << nCycleCommunic << std::endl;
00259
00260             ds=node(PspRoute)("cFileType")["Format"];
00261             std::cout << ds << std::endl;
00262
00263             //МНОГОКРАТНО ВСТРЕЧАЮЩИЕСЯ НОДЫ:
00264
00265             //Хотим перебрать все ноды с именем "Kvater"
00266             YXML::DNode n_kv=node.FirstChild(Kvater);
00267             while(n_kv.IsNode())
00268             {
00269                 //Делаем с ними то, что хотели
00270                 int i=DataString(n_kv[Akco]);
00271                 std::cout << i << std::endl;
00272                 int nSKOAKCO_Y=DataString(n_kv("nSKOAKCO")["Y"]);
00273                 std::cout << nSKOAKCO_Y << std::endl;
00274
00275                 //Хотим найти ноду "bL" с аттрибутом N=2
00276                 {
00277                     int nn=2;
00278
00279                     YXML::DNode n_bL=n_kv.FirstChild("bL","N",DataString(nn));
00280                     while(n_kv.IsNode())
00281                     {
00282                         std::cout << "bL :" << std::endl;
00283                         std::cout << DataString(n_bL["N"]) << std::endl;
00284                         std::cout << DataString(n_bL["q1"]) << std::endl;
00285                         std::cout << DataString(n_bL["q2"]) << std::endl;
00286                         std::cout << DataString(n_bL["q3"]) << std::endl;
00287                         std::cout << DataString(n_bL["q4"]) << std::endl;
00288
00289                         //Не хотим искать еще одну такую же
00290                         //n_bL=n_bL.Next("bL","N",N);
00291                         break;
00292                     }
00293                 }
00294
00295
00296                 //Хотим найти все ноды "bL" с аттрибутом N!=1 такие, что 1000 > q4 > 0.1
00297                 {
00298                     YXML::DNode::IsCond cond(YXML::IsNameEq("bL")
00299                         && YXML::IsAttr<int,Ne<int> >("N",1)
00300                         && YXML::IsAttrIn<double>("q4",0.1,1000.) );
00301                     //искать элементы, соответствующие условиям
00302                     YXML::DNode n_bL=n_kv.FirstChild(cond);
00303                     while(n_bL.IsNode())
00304                     {
00305                         std::cout << "N=" << DataString(n_bL["N"])
00306                             << " q4=" << DataString(n_bL["q4"]) <<  std::endl;
00307
00308                         n_bL=n_bL.Next(cond);
00309                     }
00310                 }
00311
00312                 //Следующая:
00313                 n_kv=n_kv.Next(Kvater);
00314             }
00315
00316
00317         }
00318
00319         void test_read_file(std::string filename)
00320         {
00321             YXML::XMLdoc doc;
00322             // создаем новый файл, если был старый, то удаляем
00323             // Проверить был ли файл, можно командой:
00324             if(YFileSys::isFileExist(filename))
00325                 std::cout << "Read File " << filename << " exist, we'll read it..." <<std::endl;
00326             else
00327             {
00328                 std::cout << "File " << filename << " NOT exist, can't read it..." <<std::endl;
00329                 return;
00330             }
00331
00332             doc.Load(filename.c_str());
00333             YXML::DNode root=doc.Root();
00334
00335             read_document(root);
00336
00337             doc.Save(filename.c_str(),true);
00338         }
00339     }//namespace Test_YXML
00340
00341     int test_yxml_learn(int argc, char* argv[])
00342     {
00343         try
00344         {
00345             std::string fname="StarSky.xml";
00346
00347             std::cout << "Test writing file" << std::endl;
00348
00349             Test_YXML::test_write_file(fname);
00350
00351             std::cout << "Test reading file" << std::endl;
00352
00353             Test_YXML::test_read_file(fname);
00354         }
00355         catch(std::string msg)
00356         {
00357             std::cout << "Exception occured: " << std::endl << msg << std::endl;
00358         }
00359         catch(const char * msg)
00360         {
00361             std::cout << "Exception occured: " << std::endl << msg << std::endl;
00362         }
00363         catch(...)
00364         {
00365             std::cout << "Unknown Exception occured" << std::endl;
00366             throw; // передать его дальше, может кто-то обработает,
00367             // или программа упадет, а Windows сообщит что-то полезное. Естественно
00368             // в приложениях с графической оболочкой так делать не надо...
00369         }
00370
00371         return 0;
00372     }
00373
00374 }//namespace Tests
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: test_yxml_xml.cpp

  • Примеры

test_yxml_xml.cpp

Простой пример по работе с XML:

00001 #include <stdio.h>
00002 #include <string>
00003 #include <windows.h>
00004 #include "tests.h"
00005 #include "xml_interface.h"
00006
00007 using namespace YXML;
00008
00009 namespace Tests
00010 {
00011     static void offset(int level)
00012     {
00013         while(level--)
00014             printf("  ");
00015     }
00016     void Print(DNode n,int level=0)
00017     {
00018         char buf[256];
00019         offset(level);
00020         ::CharToOem(n.getName().c_str(),buf);
00021         printf("%d:%s",int(n.getType()),buf);
00022         if(DNode::ELEMENT==n.getType())
00023         {
00024             std::string val=n.GetAttr("i1");
00025             if(!val.empty())
00026             printf("{attribute i1=%s, size=%d}",val.c_str(),val.size());
00027         }
00028         else if(DNode::TEXT==n.getType() || DNode::COMMENT==n.getType())
00029         {
00030             ::CharToOem(n.getValue().c_str(),buf);
00031             printf(":%s",buf);
00032         }
00033
00034         printf("\n");
00035         n=n.FirstChild();
00036         while(n.IsNode())
00037         {
00038             Print(n,level+1);
00039             n=n.Next();
00040         }
00041     }
00042
00043     void Print2(DNode n,int level=0)
00044     {
00045         char buf[256];
00046         offset(level);
00047
00048         ::CharToOem(n.getName().c_str(),buf);
00049         printf("%d:%s",int(n.getType()),buf);
00050         if(DNode::ELEMENT==n.getType())
00051         {
00052             std::string val=n.GetAttr("i1");
00053             if(!val.empty())
00054             printf("{attribute i1=%s, size=%d}",val.c_str(),val.size());
00055         }
00056         else if(DNode::TEXT==n.getType() || DNode::COMMENT==n.getType())
00057         {
00058             ::CharToOem(n.getValue().c_str(),buf);
00059             printf(":%s",buf);
00060         }
00061
00062         printf("\n");
00063
00064     /*  NodeList list=n.Childs();
00065
00066         for(NodeList::iterator it=list.begin(); it<list.end(); it.next() )
00067         {
00068             Print(it.get(),level+1);
00069         }
00070     */
00071     }
00072
00073
00074     int test_XML(int argc, char* argv[])
00075     {
00076         XMLdoc doc;
00077         //doc.Create("doc_new.xml","MyDoc");
00078
00079         doc.Load("qq2.xml");
00080         DNode n=doc.Root();
00081         n=n.FirstChild();
00082         while(n.IsNode())
00083         {
00084             if(DNode::ELEMENT==n.getType())
00085                 if(n.getName()==std::string("Program"))
00086                 {
00087                     n.SetAttr("i1","qwerty");
00088                     break;
00089                 }
00090
00091             n=n.Next();
00092         }
00093         Print(doc.Root());
00094     //  Print2(doc.Root());
00095
00096
00097         doc.Save("doc_yxml.xml",true);
00098     //-------------------------------
00099         doc.Create("doc_new.xml","Passport");
00100         //doc.Load("doc_new.xml");
00101         {
00102             DNode n=doc.Root();
00103             DNode n2=n.AppendChild(DNode::ELEMENT,"Sat");
00104             n2.AppendChild(DNode::ELEMENT,"Name").AppendChild(DNode::TEXT,"NOAA 16");
00105             DNode n3=n2.AppendChild(DNode::ELEMENT,"Description");
00106             n3.AppendChild(DNode::TEXT,"NOAA");
00107             n3.SetAttr("number","16");
00108             n2=n.AppendChild(DNode::ELEMENT,"Data");
00109             n2.AppendChild(DNode::COMMENT,"HRPT data for AVHRR");
00110             n2=n2.AppendChild(DNode::ELEMENT,"ImageSet");
00111             n2.SetAttr("type","received");
00112             n2.SetAttr("transf","HRPT");
00113             n2.SetAttr("dev","AVHRR");
00114             for(int i=1; i<=5; i++)
00115             {
00116                 //char buf[256];
00117                 n3=n2.AppendChild(DNode::ELEMENT,"Image");
00118                 {
00119                 //::sprintf(buf,"%d",i);
00120                     std::ostringstream os;
00121                     os << i;
00122                 //n3.SetAttr("chan",buf);
00123                     n3.SetAttr("chan",os.str().c_str());
00124                 }
00125                 std::ostringstream os;
00126                 os << "d43331_" << i << ".oz";
00127                 //::sprintf(buf,"d43331_%d.oz",i);
00128                 DNode n4=n3.AppendChild(DNode::ELEMENT,"file").AppendChild(DNode::TEXT,os.str());
00129                 //DNode n4=n3.AppendChild(DNode::ELEMENT,"file").AppendChild(DNode::TEXT,buf);
00130                 n4=n3.AppendChild(DNode::ELEMENT,"sw").AppendChild(DNode::TEXT,"5456 | 1 5456");
00131                 n4=n3.AppendChild(DNode::ELEMENT,"CalibCof");
00132                 n4.SetAttr("Type",(i<3)?"VISIBLE":"IR");
00133                 n4.AppendChild(DNode::TEXT,"here is data");
00134             }
00135         }
00136         doc.Save("doc_new.xml",true);
00137         doc.Load("doc_new.xml");
00138         {
00139             DNode n=doc.Root();
00140             //find node 'Data'
00141             n=n.FirstChild();
00142             while(n.IsNode())
00143             {
00144                 if(DNode::ELEMENT==n.getType())
00145                 {
00146                     std::string name=n.getName();
00147                     if(name==std::string("Data"))
00148                         break;
00149                 }
00150                 n=n.Next();
00151             }
00152             //find node 'ImageSet'
00153             n=n.FirstChild();
00154             while(n.IsNode())
00155             {
00156                 if(DNode::ELEMENT==n.getType())
00157                     if(n.getName()=="ImageSet")
00158                         break;
00159                 n=n.Next();
00160             }
00161             if(n.IsNode())
00162             {//found ok
00163                 if(n.GetAttr("dev")=="AVHRR" && n.GetAttr("type")=="received")
00164                 {//AVHRR device original data, process
00165                     //find 3 channel data
00166                     DNode n3=n.FirstChild();
00167                     while(n3.IsNode())
00168                     {
00169                         if(DNode::ELEMENT==n3.getType())
00170                         {
00171                             std::string name=n3.getName();
00172                             if(name=="Image")
00173                             {
00174                                 if(n3.GetAttr("chan")=="3")
00175                                 break;
00176                             }
00177                         }
00178                         n3=n3.Next();
00179                     }
00180                     if(n3.IsNode())
00181                     {//found 3 ch node OK
00182                         DNode file=n3.FirstChild();
00183                         while(file.IsNode())
00184                         {
00185                             if(DNode::ELEMENT==file.getType())
00186                             {
00187                                 std::string name=file.getName();
00188                                 if(name=="file")
00189                                 {
00190                                     file.FirstChild().setValue("new_file.tif");
00191                                     break;
00192                                 }
00193                             }
00194                             file=file.Next();
00195                         }
00196
00197                     }
00198                 }
00199             }
00200         }
00201         doc.Save("doc_new2.xml",true);
00202         doc.Load("doc_new2.xml");
00203         {
00204             ::printf(">---FirstChild(name),Next(name) demo:\n");
00205             DNode n=doc.Root();
00206             printf("Name=%s\n",n.getName().c_str());
00207             n=n.FirstChild("Data");
00208             printf("Name=%s\n",n.getName().c_str());
00209             n=n.FirstChild("ImageSet");
00210             printf("Name=%s\n",n.getName().c_str());
00211             n=n.FirstChild("Image");
00212             printf("List of childs named \"%s\"\n","Image");
00213             while(n.IsNode())
00214             {
00215                 char *at="chan";
00216                 ::printf("<%s %s=%s>\n",n.getName().c_str(),at,n.GetAttr(at).c_str());
00217                 n=n.Next("Image");
00218             };
00219
00220         }
00221         doc.Save("doc_new3.xml");
00222
00223         return 0;
00224     }
00225 }//namespace Tests
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: work_with_image.cpp

  • Примеры

work_with_image.cpp

Это пример как работать с изображениями через класс AImage.

00001 // Включить стандартные заголовки, которые будут нужны.
00002 #include <stdio.h>
00003 #include <algorithm>
00004 #include <string>
00005 //Для работы с изображениями включить заголовок
00006 #include "aimage.h"
00010
00011 // при написании консольных приложений имеет смысл включить заголовок
00012 #include "consolap.h"
00013 // Он определяет единственную глобальную переменную indicator, которая является указателем на объект, производный
00014 // от класса ProgressCounter. Это позволяет выводить на экран счетечик прогресса исполнения программы. Это удобно - понятно
00015 // где находится пограмма в данный момент, сколько еще ждать, и не повисла ли... Если для какого то действия выводить прогресс
00016 // не требуется - достаточно в качестве указателя на ProgressCounter передать 0.
00017
00018
00019
00020 int main(int argc, char* argv[])
00021 {
00022         if(argc!=3)
00023         {
00024                 printf("Command string:\n test.exe input_img output_img\n");
00025                 return 1;
00026         }
00027         try
00028         {
00029                 // Загружаем изображение. Внимание! формат определяется по расширению имени файла - правильно
00030                 // его указывайте. По окончании работы объект надо удалить, иначе изображение так и будет висеть в памяти.
00031                 // поэтому сразу полученный указатель прячем в auto_ptr, язык С++ гарантирует, что при выходе из блока любым путем
00032                 // деструктор объекта отработает, и поэтому изображение будет гарантировано удалено из памяти.
00033                 std::auto_ptr<AImage> _im(::AImageLoad(0,true,argv[1],0));
00034
00035                 // auto_ptr вое дело сделает, чтобы с ним не возиться в дальнейшем - получим указатель на загруженное изображение.
00036                 AImage* im=_im.get();
00037
00038                 // теперь можно получить информацию общего характера об изображении. При вычислениях не стоит в циклах напрямую
00039                 // вызывать подобные функции, они виртуальные, поэтому работают долго, лучше сложить то что надо - в локальные переменные.
00040                 int w=im->Width();
00041
00042                 // Надо разобраться, какого типа изображение пришло, и как добираться до пикселей - как они лежат. Да и вообще,
00043                 // наверное порядок обработки серого цветного или палитрового изображения разный, нужны вероятно и разные алгоритмы.
00044                 switch(im->GetImageStore())
00045                 {
00046                 case AImage::IMGS_AImageMem8:
00047                 //if(AImage::IMGS_AImageMem8==im->GetImageStore())
00048                 {
00049                         // Изображение 8-битное, одна цветовая плоскость.
00050                         AImageMem8* img=dynamic_cast<AImageMem8*>(im);
00051                         if(img!=0)
00052                         { // по идее если попали в case AImage::IMGS_AImageMem8 всегда должно быть не нуль,
00053                           // но честный пограммист обязан проверить. А вдруг ошибка?
00054                                 if(AImage::IMGC_GRAYSCALE==img->ImageClass())
00055                                 { // Теперь видим, что изображение серое. Будем с ним работать.
00056                                         int h=img->Height();
00057                                         int y=h-1;
00058                                         int x=w-1;
00059                                         int nls=img->NextLineShift();
00060                                         // До пикселя можно добраться так:
00061                                         (*img)[y][x]=33;
00062                                         // Но это медленно, следующая строка на самом деле вызов виртуальной функции,
00063                                         // но ее результат  обычный указатель.
00064                                         //uint8_t *p=(*img)[y];
00065
00066                                         // Быстрый вариант работы следующий:
00067                                         uint8_t *p=(*img)[0];
00068                                         //красим в черный цвет полосу шириной в половину изображения по центру изображения
00069                                         for(int y=0; y<h; y++)
00070                                         {
00071                                                 for(int x=w/4; x< (w-w/4); x++)
00072                                                         p[x]=0;
00073                                                 p+=nls; // Теперь указатель на следующую строку, точно под пикселем, на который указывал раньше.
00074                                                         // nls может быть и отрицательным, думать об этом не надо.
00075                                                         // Добавление nls - всегда на одну строку вниз.
00076                                                         // (*img)[0] - всегда левый верхний угол.
00077                                         }
00078                                         //Сохраняем результат, правильно указывать расширение файла!
00079                                         //Расширение файла должно соответствовать формату, в который эти данные МОГУТ
00080                                         // быть записаны, например tif или pgm. Серое изображение НЕ может быть сохранено
00081                                         // например в форматах bmp или ppm !
00082                                         ::AImageSave(img,argv[2],0);
00083                                 }
00084                                 else
00085                                 {// вероятная альтернатива - палитровое изображение, проверить Image::IMGC_PALETTE==img->ImageClass()
00086                                  // В этом случае нужны другие алгоритмы. Может быть алгоритм, который работает с палитровыми изображениями,
00087                                  // можно его преобразовать в серое или TrueColor. Это зависит от того, что мы собираемся делать.
00088                                  // В данном примере с такими изображениями работать не будем!
00089                                         throw "Not grayscale image, probably palettered. This program don't work with this type!";
00090                                 }
00091                         }
00092                 }
00093                 break;
00094                 case AImage::IMGS_AImageMem16:
00095                         {
00096                         //      printf("Not realized yet!\n");
00097
00098                         }
00099                         break;
00100                 case AImage::IMGS_AImageMemRgb8:
00101                 //if(AImage::IMGS_AImageMem8==im->GetImageStore())
00102                 {
00103                         AImageMemRgb8* img=dynamic_cast<AImageMemRgb8*>(im);
00104                         if(img!=0)
00105                         {
00106                                 // В целом похоже на работу с серым изображением (выше). TrueColor изображение представляет собой
00107                                 // просто 3 изображения - красное, зеленое и синее. Внимание! Удалять каждое из них не надо! Об это
00108                                 // позаботится объект im.
00109                                 AImageMem8* r=img->GetPlane8(0);
00110                                 AImageMem8* g=img->GetPlane8(1);
00111                                 AImageMem8* b=img->GetPlane8(2);
00112                                 if(r!=0 && g!=0 && b!=0)
00113                                 {
00114                                         // красим только красную плоскость (для примера), вообще - конечно зависит от алгоритма,
00115                                         // который требуется реализовать.
00116                                         int h=r->Height();
00117                                         int y=h-1;
00118                                         int x=w-1;
00119                                         int nls=r->NextLineShift();
00120                                         (*r)[y][x]=33;
00121                                         (*g)[y][x]=133;
00122                                         (*b)[y][x]=3;
00123                                         //uint8_t *p=(*g)[y];
00124
00125                                         indicator->start(0,h-1,"Draw black strip in red channel");
00126                                         uint8_t *p=(*r)[0];
00127                                         for(int y=0; y<h; y++)
00128                                         {
00129                                                 for(int x=w/4; x< (w-w/4); x++)
00130                                                         p[x]=0;
00131                                                 p+=nls;
00132                                                 indicator->current(y);
00133                                         }
00134                                         indicator->finish();
00135                                         ::AImageSave(r,argv[2],indicator); // indicator - Во время записи на диск на экране
00136                                                                            //будет отображаться процент записи.
00137                                 }
00138                         }
00139                 }
00140                 break;
00141                 default:
00142                         printf("Unsupported!\n");
00143                 };
00144
00145         }
00146         catch(AErrorStatusBase& msg )
00147         {
00148                 printf("Exception: \nIn class %s\n In Derived class %s\n IN file %s line:%d\n Error message%s\n",
00149                     msg.ClassName(),msg.DerivedClassName(),msg.File(),msg.Line(),msg.Msg());
00150         }
00151         catch(std::string msg)
00152         {
00153                 printf("Exception: %s\n",msg.c_str());
00154         }
00155         catch(const char *msg)
00156         {
00157                 printf("Exception: %s\n",msg);
00158         }
00159         return 0;
00160 }


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- _ -

  • __iclass2store_table : imagemem.cpp
  • _calcRowLen() : bmp.cpp
  • _CreateDir() : yfilesys.cpp
  • _dfpmin() : DFPMinimization.h
  • _dir_separator() : yfilesys.cpp
  • _USE_MATH_DEFINES : windowing_fun.h , StatDiff.h , DrawEllipse.h , imalg_tools.h , numalg.h , imalg_resampling.h , alexandresku.h , num_linalg.h


Pipe Line Filters: Алфавитный указатель тематических описаний

  • Примеры

Pipe Line Filters Описания

Полный список дополнительных описаний.
  • How to ... Доступ до пикселей в С#
  • How to ... Доступ до пикселей в режиме отображения файла на память
  • History
  • How to ... Как сделать разную реализацию шаблона для типов с плавающей точкой и целых
  • How to ... Совмещение изображений (Image Registration)
  • How to ... некоторые примеры
  • How to ... Использование численных алгоритмов
  • How to ... Работа с изображениями в библиотеке AImage
  • How to ... Работать с XML и INI файлами
  • How to ... писать потоковые фильтры
  • Литература
  • Потоковая фильтрация изображений
  • ReadMe
  • Использование библиотеки и настройки компилятора
  • Тестовая страница


Pipe Line Filters: How to ... Доступ до пикселей в С#

  • Примеры

How to ... Доступ до пикселей в С#

Пишется DLL (сборка .NET) на языке Managed C++. В нем размещается класс SomeClass, который будет виден из программ на C# и других языках .NET. В примере показана функция этого класса, которая принимает объект типа Bitmap и выполняет над ним некоторую работу.

void DoSomJobOnPixelsRgb8_inCpp(unsigned char * rgb,int w,int h,int nls)
{
    // Это обычная функция С++, которая выполняет действия с пикселями
    // в обычном стиле С++. Это также может быть обычный С++ класс.
    // Он может находиться в том же проекте, что и рассматриваемая DLL.
}

public __gc class SomeClass
{
      public: fun(System::Drawing::Bitmap * bmp)
      {
            // Возможно здесь лишние __pin , однако проверять работоспособность
            // убирая их не правильно. Дело в том, что в документации сказано,
            // что достаточно крупные блоки памяти никогда не перемещаются.
            // Но размер, с которого они считаются большими, хоть и специфицирован,
            // может быть изменен в следующих версиях .NET в любую сторону, поэтому
            // закладки на это - череваты проблемами в будущем.
            System::Drawing::Bitmap __pin * _bmp=bmp;
            System::Drawing::Imaging::BitmapData* bdata=_bmp->LockBits(
                  System::Drawing::Rectangle(0,0,bmp->Width,bmp->Height),
                  System::Drawing::Imaging::ImageLockMode::ReadWrite,
                  System::Drawing::Imaging::PixelFormat::Format24bppRgb);
            System::Drawing::Imaging::BitmapData __pin * bmd=bdata;
            int w=bmd->Width;
            int h=bmd->Height;
            int nls=bmd->Stride;
            switch(bmd->PixelFormat)
            {
            case System::Drawing::Imaging::PixelFormat::Format24bppRgb:
                  {
                         unsigned char * rgb=(unsigned char * )((void *)bmd->Scan0);
                        DoSomJobOnPixelsRgb8_inCpp (rgb,w,h,nls);
                  }
                  break;
                  default:
                  MessageBox::Show(String::Concat("Pixel format ",
                              __box(bmd->PixelFormat)->ToString()," not supported in this program!"));
            };
            _bmp->UnlockBits(bdata); // Обязательно надо освободить !!!
                                     // То, что захвачено __pin - будет освобождено
                                     // по выходу из области видимости (за фигурные скобки).
            //this->pictureBox1->Refresh(); // Если это изображение в окне, то после изменения
                                            // данных надо сказать Windows, что данные
                                            // изменились и их надо перерисовать.
      }
}


Pipe Line Filters: How to ... Доступ до пикселей в режиме отображения файла на память

  • Примеры

How to ... Доступ до пикселей в режиме отображения файла на память

В случае, когда структура файла, хранящего изхображения простая, без сжатия, пиксели хранятся по-сути в виде массива, скопированного на диск в бинарном виде может быть полезно работать с данными в режиме прямого отображения файла на память. Это особенно актуально при значительном размере изображения (десятки, сотни менгабайт, гигабайты.
Примечание: в 32-битной архитектуре размер такого масива ограничен 4 гигабайтами, а в архитектуре Intel-Pentium - 2 Гб.
В качестве примера форматов, с которыми возможна такая работа следует привести PGM, PPM (варианты P5 и P6 соответственно), формат BMP, формат IMG/HDR (raw), поддерживаемый ENVI и широко распространенный в среде университетских разработок, связанных с обработкой аэрокосмических изображений и геоинформационными системами.
Как это сделать в системе Windows, показано ниже. Следует обратить внимание на капсуляцию специфического кода в классе FileAsArray, при переходе на другую операционную систему, например UNIX или его варианты, достаточно будет подменить этот класс, а его интерфейс и правила работы с ним останутся неизменными (если конечно ОС поддерживает режим отображения файла на память).

#include <windows.h>
    // Возможно здесь лишние __pin , однако проверять
    // убирая их не правильно. Дело в том, что в документации
class FileAsArray
{
    HANDLE hFile;
    HANDLE hFileMapping;
    uint8_t *ptr;
    size_t file_size;
public:
    FileAsArray(const char *fname)
        :hFile(INVALID_HANDLE_VALUE),hFileMapping(0)
        ,ptr(0), file_size(0)
    {
    // Открыть файл, показано как для чтения, если требуется
    // создать новый и/или писать в него -другие опции
        hFile = CreateFile( fname, GENERIC_READ, 0, NULL,             OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
        if(hFile!=INVALID_HANDLE_VALUE)
        {
            // Можно узнать его размер, т.е размер массива
            file_size = GetFileSize(hFile, NULL);
            // Выполнение отображения на память
            hFileMapping = CreateFileMapping(hFile, NULL,PAGE_READONLY, 0, 0, NULL);
            if(hFileMapping !=0)
                ptr = (uint8_t *) MapViewOfFile(hFileMapping,FILE_MAP_READ, 0, 0, 0);
            // Если ошибка - то ptr останется равным нулю
        }
    }
    virtual ~FileAsArray() {close();}
    // Отдельная функция close(), что бы дать возможность
    // закрыть файл до вызова деструктора. Естественно указатель     // становится невалидным и его использовать нельзя.
    void close()
    {
        if(ptr!=0)
        UnmapViewOfFile(ptr);
        if(hFileMapping!=0)
        {
            CloseHandle(hFileMapping);
            hFileMapping=0;
        }
        if(hFile!=INVALID_HANDLE_VALUE)
        {
            CloseHandle(hFile);
            hFile=INVALID_HANDLE_VALUE;
        }
    }
    // Получить указатель, с которым можно работать стандартным
    // образом, тогда как на самом деле идет работа с файлом.
    size_t size() const { return file_size;}
    const void* GetPtr() const {return ptr}
    // реализация аналога функции read() из стандартной
    // библиотеки С
    size_t read(size_t offset,void* data,size_t len)
    {
        memcpy(data,ptr+offset,len);
        return len;
    }
};

//Использование:
void main()
{
    FileAsArray fa("c:/mydir/my_file.img");
    // Мы знаем что в файле записаны в бинарной форме 2-байтовые
    // целые числа без знака, тогда:
    const uint16_t * img=( const uint16_t *)fa.GetPtr() ;
    // теперь меожно вычислить например их сумму, работая
    // как с обычным массивом.
    unsigned sum;
    int len=fa.size()/sizeof(img[0]);
    for(int i=0 ; i<100 ; i++)
        sum+=img[i];
    printf("sum=%d"(int)sum);
    // Следующая строка  вызовет ошибку времени исполнения,
    // т.к. писать в этот массив нельзя -
    // надо было открывать файл с другими правами доступа и
    // то же самое касается отображения на память. См. код
    // конструктора класса.
    img[len/2]=12123;
}


Pipe Line Filters: History

  • Примеры

History

14.10.2008 Изменен интерфейс класса Vtl::Plf::Kernel::FKern

03.10.2008 В пространство имен Vtl::ImAlg::Tools добавлено namespace findMax: средства поиска точки на изображении, с максимальным значением по локальной окрестности.

Протранство имен Vtl::Plf::F с функторами разбито на ряд других пространств, в которые сгруппированы функторы с одинаковыми сигнатурами.

В пространство имен namespace Vtl::ImAlg::C, содержащее функторы для преобразования цветовых пространств добавлено цветовое пространство E-E_lambda-E_lambda_lambda (namespace EElEll), соответствующее цветовым инвариантам.

Изменен интерфейс клаccов в Vtl::ImAlg::Registration.

Добавлено namespace Vtl::NumAlg::Lin содержащее шаблонные функции линейной алгебры: разложения Cholesky, EigenValue, QR, SVD, LUю Работа с матрицами осуществляется теперь с помощью библиотеки uBLAS, входещей в состав библиотеки BOOST (см. www.boost.org).

02.03.2008 Добавлен класс FastGaussConvolve быстрого вычисления свертки с функцией Гаусса и ее первыми 3 производными. Добавлено пространство имен Vtl::ImAlg::Tools и заголовочный файл imalg_tools.h

21.02.2008

Преобразовано пространство имен Plf::Kernel : функторы оконных функций вынесены из классов в глобальную область видимости в заголовок nummet plf_windowing_fun.h и пространство имен Plf::Kernel::F. Введена обобщенная реализация для функтора окна Гаусса и его производных, добавлено много различных оконных функций.

В пространстве имен Plf::Kernel введен класс FKern, который для любого функтора строит ядро свертки. Ядра Гаусса и Ханна удалены. Теперь следует использовать ядро FKern, передавая ему соответствующий функтор. Размеры и прочие параметры ядра содержатся в функторе. О правилах написания функторов - см. описание пространства имен Plf::Kernel::F, соблюдение всех правил чрезвычайно важно, так как именно на них основана автоматическая обработка этого функтора при решении прикладных задач.

14.02.2008

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

В подбиблиотеку nummet добавлено протранство имен NumAlg::Spf, содержащее специальные функции (Бесаеля, Гамма, и.т.д)


Pipe Line Filters: How to ... Как сделать разную реализацию шаблона для типов с плавающей точкой и целых

  • Примеры

How to ... Как сделать разную реализацию шаблона для типов с плавающей точкой и целых

#include <string>
#include <memory>
#include <vector>
//#include <list>
#include <cmath>
//#include <ctime>
#include <iostream>

#include "vtl_types.h"
#include "examples.h"

namespace Examples
{
template<typename T,unsigned spec> class implKernel;
template<typename T> class implKernel<T,Vtl::Types::IntOrReal::Int>
{
protected:
    implKernel() {}
    const char* Get() const {return "implKernel: implementation for integers";}
public:
    int Divisor() const {return 255;}
    void Convolve()
    {
        std::cout << Get() << "  Divisor=" << Divisor() <<std::endl;
    }
};
template<typename T> class implKernel<T,Vtl::Types::IntOrReal::Real>
{
protected:
    const char* Get() const {return "implKernel: implementation for floats";}
public:
    void Convolve()
    {
        std::cout << Get() <<std::endl;
            //<< "Divisor=" << Divisor() <<std::endl; //such function not implemented!
    }
};

template<typename T>
class Kernel
    : public implKernel<T,Vtl::Types::isIntOrReal<T>::Result>
{
public:
    Kernel()
    {
    }
    void Run()
    {
        Convolve();
    }
};

template<typename T>
class DoSomeJob
{
private:
    class ConvKernel;
    T mean_(T* data,int len,Vtl::Types::Int2Type<Vtl::Types::SUIntOrReal::SInt> v)
    {//Функция, которая должна вызываться для знаковых целочисленных типов
        T sum=0;
        if(len>0)
        {
            for(int i=0; i<len; i++)
                sum+=abs(*data++);
            sum=(sum+(len>>1))/len;
        }
        return sum;
    }
    T mean_(T* data,int len,Vtl::Types::Int2Type<Vtl::Types::SUIntOrReal::UInt> v)
    {//Функция, которая должна вызываться для БЕЗзнаковых целочисленных типов
        T sum=0;
        if(len>0)
        {
            for(int i=0; i<len; i++)
                sum+=*data++;
            sum=(sum+(len>>1))/len;
        }
        return sum;
    }
    T mean_(T* data,int len,Vtl::Types::Int2Type<Vtl::Types::SUIntOrReal::Real> v)
    {//Функция, которая должна вызываться для вещественных типов
        T sum=0;
        if(len>0)
        {
            for(int i=0; i<len; i++)
                sum+=*data++;
            sum=sum/len;
        }
        return sum;
    }
//  Для прочих типов - специализацию (перегруженную функцию)не определяем
//    поэтому при подстановке в качестве параметра шаблона типа, не являющегося
//  ни встроенным целым, ни встроенным с плавающей точкой компилятор выдаст ошибку
//  - не удается найти функцию (специализация не определена)
//  T mean_(T* data,int len,Vtl::Types::Int2Type<Vtl::Types::IntOrReal::Unknown> v)
//  {
//  }
//
public:
    T mean(T* data,int len)
    {//Вызов нужной функции,если тип T не целое число и не вещественное
     //- то ошибка
        return mean_(data,len,Vtl::Types::Int2Type<Vtl::Types::isSUIntOrReal<T>::Result>() );
    }

};
};//namespace Examples
using namespace Examples;
void HowTo_MakeDifferentRealizationForIntegersAnsFloats()
{
    std::cout<<  "==============================================" << std::endl;
    std::cout<<  "void HowTo_MakeDifferentRealizationForIntegersAnsFloats()" << std::endl;

    float f[]={1,-2,3,4};
    DoSomeJob<float> dsj_1;
    float fr=dsj_1.mean(f,sizeof(f)/sizeof(f[0]));
    std::cout<< "float mean of {1,-2,3,4}="<< fr << std::endl;
    short s[]={1,-2,3,4};
    DoSomeJob<short> dsj_2;
    short sr=dsj_2.mean(s,sizeof(s)/sizeof(s[0]));
    std::cout<< "short mean of {1,-2,3,4}="<< sr << std::endl;
    unsigned u[]={1,2,3,4};
    DoSomeJob<unsigned > dsj_3;
    unsigned  ur=dsj_3.mean(u,sizeof(u)/sizeof(u[0]));
    std::cout<< "unsigned mean of {1,2,3,4}="<< ur << std::endl;

    Kernel<long double> k1;
    k1.Run();
    Kernel<short> k2;
    k2.Run();
    Kernel<__int64> k3;
    k3.Run();
    Kernel<signed char> k4;
    k4.Run();
    Kernel<float> k5;
    k5.Run();
    std::cout<<  "==============================================" << std::endl;
}


Pipe Line Filters: How to ... Совмещение изображений (Image Registration)

  • Примеры

How to ... Совмещение изображений (Image Registration)

Примеры как работать с совмещением изображений по алгоритмам [ReddyChatterji ] [Yurin_RegBushBroom2008] на основе преобразования Хартли .

test_color_registration::cpp поиск преобразования подобия

test_image_registration_via_fft::cpp поиск перекоса.

Пример как работать с совмещением изображений по алгоритмам оптического потока [KLT_TK] , [KLT_ST] , [Zokai_Wolberg_2005] . test_image_registration_via_oflow::cpp


Pipe Line Filters: How to ... некоторые примеры

  • Примеры

How to ... некоторые примеры

Пример использования алгоритмов Брезенхэма.

test_alg_bresenham::cpp

Примеры работы с объектом DataString.

test__datastring::cpp

Примеры использования средств в стиле [Loki]

test_alexandresku::cpp


Pipe Line Filters: How to ... Использование численных алгоритмов

  • Примеры

How to ... Использование численных алгоритмов

Примеры как работать с преобразованиями Фурье/Хартли .

test_Integral_Transforms::cpp

Примеры как работать со специальными функциями мат. физики

test_spec_functions::cpp

Пример как работать с векторами, матрицами и алгоритмами линейной алгебры. test_boost_mtr::cpp


Pipe Line Filters: How to ... Работа с изображениями в библиотеке AImage

  • Примеры

How to ... Работа с изображениями в библиотеке AImage

Ниже приводится простой пример как работать с изображениями, используя библиотеку AImage.

work_with_image::cpp

Вообще говоря для рациональной реализации, поддерживающей работу с разными типами данных AImage::IMGS_AImageMem8, AImage::IMGS_AImageMem16, AImage::IMGS_AImageMemRgb8, AImage::IMGS_AImageMemFloat следует пользоваться шаблонами. Приведем пример построения негативного изображения:

invert::cpp


Pipe Line Filters: How to ... Работать с XML и INI файлами

  • Примеры

How to ... Работать с XML и INI файлами

Для работы с XML на машину должна быть установлена библиотека IBM-XERCES. Как - см. Использование библиотеки и настройки компилятора

Есть развернутый интерфейс XML, основанный на модели DOM (Document Object Model) - весь документ находится в памяти в виде древовидной структуры. Функции создания, загрузки в память сохранения на диск. Удобный интерфейс С++ для работы с этой структурой.

Есть урезанный интерфейс, полностью совместимый с интерфейсом для работы с Windows ШТШ файлами. В этом случае работают следующие ограничения: -- в XML файле не может быть двух нод на одном уровне, имеющих одинаковое имя как с идентичными так и отличающимися аттрибутами (точнее должен отличасться полный путь от корня к ноде). -- если такое все таки имеет место, то всен обращения будут к первой встретившейся, добраться до других не возможно.

Пример:

Допустимая конфигурация файла XML при использовании совместимого с INI упрощенного интерфейса:

    <?xml version="1.0" encoding="windows-1251" standalone="no" ?>
    <MyRoot>

      <secA version="1.3.7">Текстовое описание программы</secA>

      <secB my_attr="какой либо аттрибут">
        <secC>Содержание ноды</secC>
      </secB>
      <secD>
        <secC>
            Нода secC здесь допустима, так как до нее путь MyRoot->secD->secC ,
            а до предыдущей MyRoot->secB->secC , т.е. разные пути
        </secC>
      </secD>

    </MyRoot>

НЕ допустимая конфигурация файла XML, при использовании совместимого с INI упрощенного интерфейса, но расширенный интерфейс с ним естественно работаеет и предоставляет массу удобных возможностей:

    <?xml version="1.0" encoding="windows-1251" standalone="no" ?>
    <MyRoot>

      <secA version="1.3.7">Текстовое описание программы</secA>

      <secB my_attr="какой либо аттрибут">
        <secC>Содержание ноды</secC>
        <sec_x>
          содержание
        </sec_x>
        <secC my_attr="какой либо аттрибут 2">
            Нода secC здесь НЕ допустима, так как до нее путь MyRoot->secB->secC
            ПОЛНОСТЬЮ СОВПАДАЕТ с путем до предыдцщей ноды secC . Упрощенный
            интерфейс ВСЕГДА будет работать с предыдущей нодой, как с первой встретившейся, а до
            этой добраться будет невозможно.
            ОДНАКО: можно одновременно использовать ОБА интерфейса, надо только понимать что именно надо
            собираетесь сделать!
        </secC>
      </secB>
      <secD>
        <secC> Содержание ноды</secC>
      </secD>

    </MyRoot>

Простой пример по работе с XML:
test_yxml_xml::cpp

Развернутый и хорошо документированный (учебный) пример как работать с XML. екомендуется скомпилировать и пошагово исполнять, читая комментарии в коде. Построен по принципу от простого к сложному. Начинает с упрощенного интерфейса и заканчивается развернутым интерфейсом, который работает с многократно встречающимися одноименными нодами, умеет перебирать их в различном порядке, вставлять и удалять ноды до и/или после указанной, осуществлять поиск с произвольно заданными условиями путем написания надлежащего функтора (шаблонный класс с оператором "круглые скобки")
test_yxml_learn::cpp

Пример как написать код, который изменением одной директивы препроцессора переключается с работы с XML на INI и наоборот. Совместимый интерфейс. Может быть полезно в ситуациях, когда программа хранить свои данные в XML, но может потребоваться сделать версию программы, которая не требует установки библиотек XML. А данные не столь сложны, чтобы было обязательно использовать именно XML (например просто 3 числовых параметра и текстовая строка).
test_yxml_ini::cpp


Pipe Line Filters: How to ... писать потоковые фильтры

  • Примеры

How to ... писать потоковые фильтры

Библиотека потоковой фильтрации предназначена для написания фильтров удовлетворяющих следующим условиям:
  • значения пикселей на выходноых изображениях вычисляются по некоторой ограниченной окрестности этого пикселя входного изображения (если размеры изображений различны, то под теми же координатами следует понимать отношение координаты к размеру изображения, x/width, y/height)\т
  • фильтр состоит из нескольких блоков элементарных фильтров, например для Канни:

Написание системы:

Используется класс Plf::FiltersSystem;

Создаются фильтры источники и приемники (plf_io_filter.h), используемые объекты элементарных фильтров (plf_filters.h). С помощью функции Plf::FiltersSystem::Assign(...) системе указываются источники и приемники. По вызову этой функции система выполняет некоторую подготовительную работу. После этого у выходных портов (как правило одного) приемников можно с помощью функции getImageSize() узнать размер требуемого изображения куда будет помещаться результат и с помощью функции входного порта InPort<T>::setDstImage() дать реальный объект-изображение этим портам. После чего можно вызывать функцию Plf::FiltersSystem::Run(). По окончании работы результат (изображение/я) можно сохранить на диск. Например, для фильтра Канни, блок-схема которого приведена выше следует записать:

#include "plf_sys.h"
#include "plf_filters.h"
#include "plf_io_filter.h"

// Два аргумента командной строки: имя входного файла и имя выходного файла,
// файлы должны содержать серые изображения, поэтому формат например *.pgm

int test_plf_Filter(int argc, char* argv[])
{
//------ load_images ---------------------
    std::auto_ptr<AImage> _in(::AImageLoad(0,true,argv[1],indicator));
    AImageMem8 *in=dynamic_cast<AImageMem8 *>(_in.get());
    if(in==0)
        return 1;
    const int bits=in->Bits();
//------ create sources ------------------
    Plf::PlfSrc_AImageMem8<float> src("src",in);
    Plf::PlfDst_AImageMem8<float> dst("dst");
// Classic Canny
//------ create filters ------------------
    float sigma=1.0f;
    const Plf::ConvKernelGauss<float> gauss(sigma,2.5f);
    const Plf::ConvKernelGauss1Deriv<float> gauss_deriv(sigma,2.5f);
    Plf::ConvolveHorz<float> h_conv("H-conv",&gauss);
    Plf::ConvolveVert<float> v_conv("V-conv",&gauss);
    Plf::ConvolveHorz<float> h_conv_d("H-conv-d",&gauss_deriv);
    Plf::ConvolveVert<float> v_conv_d("V-conv-d",&gauss_deriv);
    const Plf::F::sqrtOfSumSqr<float> ssqr;
    Plf::FilterPixByPix2to1<float,Plf::F::sqrtOfSumSqr<float> > sum_sqr("SumSqr",ssqr);

    Plf::F::GammaCorMult<float> gam_mult(float((1<<bits)-1),2.2,sqrt(2.0f*3.1415926f)*sigma);
    Plf::FilterLevels<float,Plf::F::GammaCorMult<float> > gamma_m("gamma_mult",gam_mult);
//------ create graph --------------------
    src.out.ConnectTo(&h_conv.in);
    src.out.ConnectTo(&h_conv_d.in);
    h_conv.out.ConnectTo(&v_conv_d.in);
    h_conv_d.out.ConnectTo(&v_conv.in);
    v_conv.out.ConnectTo(&sum_sqr.in_1);
    v_conv_d.out.ConnectTo(&sum_sqr.in_2);
    sum_sqr.out.ConnectTo(&gamma_m.in);
    gamma_m.out.ConnectTo(&dst.in);

//--- Create system object
    Plf::FiltersSystem sys;
//------ Assing task------------------------
    sys.Assign(&src,&dst);

//------ Initialize destinations -----------
    Plf::ImgSize is=dst.in.getImageSize();
    std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::YImageClass::IMGC_GRAYSCALE
                                    ,is.width,is.height,in->Bits()));
    AImageMem8 *out=dynamic_cast<AImageMem8 *>(_out.get());
    if(out==0)
        return 1;
    dst.setDstImage(out);

//----- Run filter
    sys.Run();
// Save data to file
    ::AImageSave(out,argv[2],indicator);

    return 0;
}

Для написания какого либо элементарного фильтра, необходимо наследоваться от класса Plf::FilterElementary и переопределить конструктор, виртуальную функцию Plf::FilterElementary::processLine() и, если размер выходного изображения этого фильтра отличается от размера входного - переопределить виртуальную функцию Plf::FilterElementary::set_OutPortsImagesSizeAndInPortsExtents(), произведя в ней вычисление размеров выходного изображения на базе известных к этому моменту через входные порты размеров входных изображений. Последнюю функцию также следует переопределять, если размер окрестности (Plf::Extent) этого фильтра вычисляемый, например зависит от размера входных изображений.

В конструкторе надо создать входные и выходные порты (Inport<T>, OutPort<T>) и зарегистрировать их в этом фильтре с помощью функции Plf::FilterElementary::AddPort().

Сложные фильтры, представляющие собой соединение элементарных и/или сложных фильтров следуеи объединять в сложный фильтр. Он должен наследоваться от класса Plf::FilterComplex. примеры см. в файле plf_filter_complex.h

Примеры использования см. в файлах:


Pipe Line Filters: Литература

  • Примеры

Литература

[Forsythe80]

Дж.Форсайт, М.Малькольм, К.Моулер. Машинные методы математических вычислений. // М.:Мир. 1980. 280 стр. Пер. с англ. Х.Д.Икрамова.
Оригинал: George E. Forsythe, Michael A. Malcolm. Cleve B. Moler. Computer Methods for Mathematical Computations. //Prentice-hall, inc. Englrwood clifs, N.J. 07632. 1977.

[Loki]

А. Александреску Современное проектирование на С++. Серия С++ In-Depth, т.3.:Пер. с англ. -М.:Издательский дом "Вильямс",2002. -336 с. ил. -Парал. тит. англ. ISBN 5-8459-035103 (рус.).

[NRC2]

Press et al, "Numerical recipes in C", Cambridge University Press, 1992.

[Cormen2005]

Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн. Алгоритмы. Построение и анализ. 2-е издание. Издательство: Вильямс, 2005 г. 1296 стр. ISBN 5-8459-0857-4, 0-07-013151-1

[Pratt82]

У. Прэтт. Цифровая обработка изображений: Пер с англ. -М.:Мир,1982. 790 C. в 2 т.

[Yaroslavsky87]

Л.П.Ярославский, Цифровая обработка сигналов в оптике и голографии. Введение в цифровую оптику. -М.:Радио и связь, 1987. 296 с.:ил. УДК 681.3:535.

[Brace90]

Брэйсуэлл Р., "Преобразование Хартли. Теория и приложения", Москва "Мир", 1990, ISBN 5-03-001632-5

[Harris88]

C. G. Harris and M. Stephens, "A combined corner and edge detector," In Proc. 4th Alvey Vision Conf., Manchester, pages 147-151, 1988.

[Canny86]

Canny J. A computational approach to edge detection // IEEE Trans. PAMI. 1986. V. 8. P. 34-43.

[DiZenzo86]

Di Zenzo S. "A note on the gradient of multi-image", Computer Vision Graphics Image Process, Vol. 33. pp. 116-125, 1986

[RSeg2002]

Mintchenkov M.V., Yurin D.V., Helvas A.V. Unsupervised Algorithm for Images Segmentation on the Base of the Rayleigh 2D Objects Boundaries Detector. // In Conference Proc. 12-th International Conference on Computer Graphics GraphiCon'2002 -P. 243-250. Nizhny Novgorod, Sept. 16-21, 2002. http://www.graphicon.ru/2002/pdf/Mintchenkov_Re.pdf.

[RImg2006]

Кравцов А.A., Сидоркина О.C., Юрин Д.В. Модифицированный рэлеевский детектор слабоконтрастных границ двумерных объектов на изображении //Труды конференции Графикон 2006, 16-я международная конференция по компьютерной графике и ее приложениям. Изд. отдел ф-та ВМиК МГУ им. М.В.Ломоносова. 2006. -C.351-354.

[HImg2003]

Jing, F., Li, M., Zhang, H.J., Zhang, B. Unsupervised Im-age Segmentation Using Local Homogeneity Analysis. // Proc. IEEE International Symposium on Circuits and Systems, 2003. http://citeseer.ist.psu.edu/jing03unsupervised.html

[Tomasi98bilateral]

Carlo Tomasi,Roberto Manduchi. Bilateral Filtering for Gray and Color Images. //In Proc. of the Sixth International Conference on Computer Vision (ICCV), Bombay, India, January 1998. -P.839-846, http://citeseer.ist.psu.edu/tomasi98bilateral.html

[Wilton]

Уилтон Р. Видеосистемы персональных компьютеров IBM PC и PS/2. Руководство по программированию/ Пер. с англ. К.Г.Смирнова; Под ред. В.Л.Григорьева. — М.: Радио и связь, 1994. -384 с.:ил.

[ReddyChatterji ]

B.S. Reddy, B.N. Chatterji, "An FFT-based technique for translation, rotation, and scale-invariant image registration", IEEE PAMI, Vol 5(8), pp. 1266-1271, August, 1996.

[Yurin_RegBushBroom2008]

Dmitry Yurin. Image Registration: Color Image Synthesis from Data Obtained from Satellites Pushbroom Cameras In Conference Proc. The 18th International Conference on Computer Graphics and Vision GraphiCon’2008, June 23-27, 2008, Moscow, Russia. -P.142-150. http://www.graphicon.ru/2002/pdf/Mintchenkov_Re.pdf.

[KLT_TK]

C. Tomasi and T. Kanade. Shape and Motion from Image Streams: a Factorization Method - Part 3 Detection and Tracking of Point Features. //Tech. report CMU-CS-91-132, Computer Science Department, Carnegie Mellon University, April, 1991. http://www.ri.cmu.edu/pub_files/pub2/tomasi_c_1991_1/tomasi_c_1991_1.pdf

[KLT_ST]

Jianbo Shi and Carlo Tomasi, "Good features to track", IEEE Conference on Computer Vision and Pattern Recognition (CVPR'94) (Seattle), June 1994, P. 593-600. http://citeseer.ist.psu.edu/shi94good.html J. Shi and C. Tomasi. Good features to track. Technical Report TR-93-1399, Cornell University, November 1993. http://ecommons.library.cornell.edu/bitstream/1813/6177/1/93-1399.pdf

[Young_Vliet_1995]

I.T. Young, L.J. van Vliet “Recursive implementation of the gaussian filter” // Signal Processing (44), pp. 139–151, 1995.

[Zokai_Wolberg_2005]

Siavash Zokai, George Wolberg. Image Registration Using Log-Polar Mappings for Recovery of Large-Scale Similarity and Projective Transformations //IEEE Transactions on Image Processing, Vol. 14, No. 10, October 2005. http://www-cs.engr.ccny.cuny.edu/~wolberg/pub/tip05.pdf

[Luke_Y_L__M_Mir_1980]

Ю.Люк. Специальные математические функции и их аппроксимации. /Пер. с англ. Г.П.Бабенко под ред К.И.Бабенко. -М.:Мир 1980. -608 с.

[Geusebroek 2001 Color Invariance]

Jan-Mark Geusebroek, Rein van den Boomgaard, Arnold W.M. Smeulders, and Hugo Geerts. Color Invariance. IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 23, NO. 12, DECEMBER 2001, P.1338-1350.

[Hartley, Zisserman 2004]

Hartley R., Zisserman A. Multiple View Geometry in Computer Vision. - Cambridge University Press, 2004. - 672 p., ISBN: 0521540518.

[Henry S. Warren, Jr. 2002]

Г.Уоррен, мл. Алгоритмические трюки для программистов //Пкр с англ. -М.:Изд. Дом "Вильямс", 2003. 288 с.:ил. -Парал. тит. англ.


Pipe Line Filters: Потоковая фильтрация изображений

  • Примеры

Потоковая фильтрация изображений

Потоковая фильтрация изображений (Pipe Line Filtering)

Потоковая фильтрация изображений (Pipe Line Filtering)

Потоковая фильтрация изображений (Pipe Line Filtering)

Суть проблемы и основания для разработки системы потоковой фильтрации

Краткий обзор архитектуры системы

Полосовой буфер

Предварительная обработка графа, топологическая сортировка

Балансирование задержек

Суть проблемы и основания для разработки системы потоковой фильтрации

Довольно широкий класс фильтров изображений работает по следующей схеме:

На входе фильтра – N ≥ 1 изображений, возможно разного размера и типа, на выходе M ≥ 1 изображений, тоже возможно различных размеров и типов. Для построения значения выходного изображения m в пикселе с координатами (x,y) требуется значения пикселей на входных изображениях (части или на всех) в точке с координатами (x’,y’) и ее некоторой окрестности. Координаты (x’,y’) вычисляются для каждого используемого входного изображения как функция от (x,y), причем наиболее распространенный и важный случай – линейная зависимость:

Так как вокруг любой окрестности может быть описан прямоугольник, то достаточно рассмотреть случай прямоугольной окрестности точки.

Приведем примеры:

В указанную схему укладываются:

ü преобразование пиксель в пиксель, например гистограммные преобразования, гамма коррекция, эквализация, получение негатива;

ü линейные фильтрации, осуществляемые как свертка с некоторой функцией имеющей компактный носитель: гауссово сглаживание (blur), среднее по окрестности, sharpening, emboss;

ü нелинейные фильтры, такие как операторы Робертса, Собеля, Превитта, Канни, DiZenzo, H‑image, R‑Image, статистическое дифференцирование;

ü медианная фильтрация и все ранговые алгоритмы, включая скользящую эквализацию и Bilateral filtering;

ü вычисление многих текстурных признаков, например по матрице смежности, Лоэва и др.

ü масштабирование изображения (zoom, resize) алгоритмами ближайшего соседа, билинейной, смещенной билинейной, бикубической интерполяциями, интерполяция B-сплайнами и др.

ü построение пирамиды детальности (гауссовой пирамиды, Scale Space);

и многие другие.

В указанную схему НЕ укладываются:

ü интегральные преобразования изображений (Фурье, Хартли, Хафа);

ü вейвлет преобразование;

ü поворот изображения (если угол поворота φ значителен, так, что width* sin(φ) ≥ 10-60;

ü резиновые искажения (тоже в случае если они значительны), такие как например Wave, Ripple, преобразование спутниковых изображений в географическую проекцию.

Рассмотренная ситуация на первый взгляд кажется тривиальной, однако при практической реализации подобных фильтраций возникают ряд существенных проблем. Основная из них – то, что такая одиночная фильтрация как правило не представляет интереса, а интерес представляет последовательность фильтраций, образующая некоторый маршрут. Например, упомянутый выше детектор краев Канни на самом деле представляет собой такую цепочку из элементарных фильтраций (эффективная вычислительная реализация основывается на сепарабельности функции Гаусса):

Таким образом получается достаточно сложная схема. Прямолинейная реализация состоит в построении промежуточных изображений (показаны желтым цветом). Более того, несмотря на то, что исходное изображение обычно 8-битное, промежуточные изображения целесообразно строить как изображения с пикселями в виде чисел с плавающей точкой, как минимум 32-битного float. Таким образом, кроме исходного и результирующего изображений одинакового размера, в памяти необходимо дополнительно держать 6 изображений в 4 раза большего размера! С помощью техники повторного использования, количество таких массивов памяти можно снизить с 6 до 4-5, но не меньше (учитывая, что изображение «направлений» градиента удобнее хранить по компонентам). Таким образом видно, что даже достаточно простая схема фильтрации в разработке достаточно сложна и требует большого количества ресурсов, а их экономия усложняет схему и делает каждую такую разработку уникальной, мало пригодной для повторного использования фрагментов кода в других задачах. Следует еще упомянуть, что при вычислении сверток возникает альтернатива либо не обрабатывать изображения в районе его краев, что по мере последовательных фильтраций ведет к неуклонному уменьшению обработанной части изображения , либо как то дополнять изображения за пределами краев, в данном случае на половину размера носителя Гауссовой функции (обычно она полагается нулем за пределами 2 сигма). Это ведет к созданию еще одной копии исходного изображения и некоторому увеличению размера промежуточных изображений, дополнение обычно осуществляется методом зеркального отражения изображения относительно краев.

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

В качестве примера был рассмотрен детектор границ Канни, однако есть много других алгоритмов, сложность которых несопоставимо выше, но укладывается в указанную схему. В качестве примера можно упомянуть алгоритм совмещения изображений (Image Registration) [@Dufour], частью которого является обнаружение и сопоставление (correspondence problem) характеристических точек в пространстве переменного разрешения (Scale Space) путем построения и сравнения вектора признаков из дифференциальных инвариантов для каждой обнаруженной точки. Заметим, что под переменной размерностью в данном случае понимается построение набора изображений отличающихся масштабом, охватывающих диапазон масштабов около 6 раз с шагом в 1.1-1.2 раза, т.е около 25-40 изображений по каждому из которых надо вычислять свертки с различными производными функции Гаусса.

Краткий обзор архитектуры системы

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

Архитектура системы выбрана следующая:

ü Основой системы является полосовой буфер (StripBuffer).

ü Все фильтры порождаются от общего базового класса FilterBase.

ü Каждый фильтр имеет входы и выходы, которые представляются классами InPort и OutPort.

ü Выход может быть подключен к любому количеству входов, а вход может быть подключен только к одному выходу.

ü Полосовой буфер является членом класса OutPort

ü Входами системы (поставщиками данных-изображений) являются фильтры у которых 0 входов и ≥1 выходов.

ü Приемниками данных являются фильтры у которых 0 выходов и ≥1 входов.

Полосовой буфер

Основой системы Потоковой фильтрации (Pipe Line Filtering) является полосовой буфер (StripBuffer). Выходом каждого выходного порта фильтра OutPort является по определению одна строка нового изображения. Однако, чтобы ее вычислить для ряда обработок надо знать некоторую окрестность для каждого пикселя соответствующей входной строки.

Будем считать, что для вычисления значения пикселя в точке с координатами (x,y) на выходном изображении требуется знание данных в окрестности точки с координатами (x’,y’) на входном изображении фильтра; размер окрестности задается структурой:

    struct Extent
    {
        int  left;
        int  right;
        int  before;
        int  forward;
    };

Поэтому помимо строки с таким же номером входного изображения (виртуального) в буфере должны быть

ü before строк до нее

ü forward строк после нее.

Здесь сразу возникает проблема, что при на краях изображения окрестность будет выходить за фактические пределы изображения. Поэтому требуется дополнять изображение за краями на before строк вверх, на forward строк вниз, на left столбцов влево и на right столбцов вправо.

Таким образом размер буфера должен быть

Схематически буфер представлен на рис. @BufPic . Белым цветом показано виртуальное изображение, представляемое буфером, в зелено-голубой гамме – текущее положение буфера на этом виртуальном изображении. Только те данные, которые в данный момент попадают в буфер реально существуют в памяти компьютера, предыдущие строки виртуального изображения уже забыты, а последующие – еще неизвестны. Цветом на рисунке также показано дополнение виртуального изображения и буфера на величины, задаваемые структурой Extent.

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

,

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

Рис. @BufPic . Виртуальное изображение и полосовой буфер.

Дополнение вверх и вниз – не тривиально, так как строки поступают в буфер по одной. Если [image] , то получив одну строку буфер готов к обработке следующим фильтром, однако если это не так, то следующий фильтр сможет работать только после того, как буфер получит [image] строк, где

Таким образом можно говорить, что буфер создает задержку в потоке данных в системе фильтрации.

Полагается, что данные лежат в буфере как и в изображении (его полосе высотой [image] ) в одномерном массиве пиксел за пикселом, строка за строкой.

Примем нумерацию строк в буфере относительно центральной строки (соответствующей как если бы [image] ).

При переходе к следующей строке – содержимое имеющееся в буфере сдвигается на 1 строку вверх с помощью memmove() и новая строка записывается в конец, в строку с номером forward относительно центра.

Однако в начале работы ситуация другая.

Первая поступившая строка укладывается в центральную строку буфера, Вторая поступившая строка укладывается в строки буфера с номерами y=1 и y=-1 относительно центра, и т.д. до тех пор, пока номер строки не достигнет [image] . Далее до достижения номера строки [image] поступившая строка должна укладываться в строку +/-y в зависимости от того, что больше, before или forward. Существенным является следующее обстоятельство: если [image] , то после закладки в буфер before+1 строк, буфер готов к выдаче данных и это происходит с задержкой delay=before. Однако следующие before‑forward строк буфер уже содержит в себе и может выдать без закладки в него дополнительных данных путем внутренней переорганизации: сдвиг вверх на 1 строку с помещением уходящей строки в конец. Задержка выдаче данных при этом уменьшается каждый раз на единицу. Это создаст серьезные проблемы при балансировке системы фильтров (см. ниже), поэтому размер буфера всегда подстраивается следующим образом:

Затем, как описывалось ранее – идет обработка центральных строк изображения, т.е. сдвиг в массиве и дописывание очередной строки в конец.

Когда достигаются последние строки изображения – ситуация меняется. Новых данных уже поступить не может, и для отражения вниз надо использовать то, что уже есть в буфере. Если [image] то проблем нет. Сдвигая буфер на строку вверх скопировать одну строку из буфера вниз в качестве «нового поступления». Точнее в строку с номером forward относительно центра надо положить строку с номером (новым, после сдвижки) forward-2k (k=1,2,…), k – номер шага. Такая операция должна быть проделана forward раз и последняя вкладываемая строка должны браться со смещения forward-2*forward=-forward. Для работоспособности указанной схемы требуется, чтобы эта строка существовала в буфере, т.е.

before>=forward.

Так как в большинстве практически интересных фильтров окрестность симметрична, или ассиметрична не более чем на 1, можно было бы идти на возможные накладные расходы и поддерживать буфер из 2*max(before,forward)+1 строк.

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

В этом случае – памяти все равно потребуется 2*max(before,forward)+1 строк.

Однако сдвижку на 1 строку всего этого буфера потребуется выполнять только для нескольких последних поступивших строк, а для остальных выполнять сдвижку с помощью mommove() только before+forward строк на 1 строку.

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

Еще одной особенностью полосового буфера является возможность его множественного использования, несколько фильтров может читать данные из одного и того же буфера. Действительно, если несколько фильтров подключены к выходу одного буфера, и все они требуют для работы разные окрестности (Extent), то достаточно установить размер расширения буфера равным максимальным по каждой компоненте Extent величинам. При этом все условия будут соблюдены. Однако проявляется дополнительный эффект: задержка теперь для разных входов может быть различной и одновременно любой величиной из некоторого диапазона:

Такой буфер можно назвать резиновым.

Предварительная обработка графа, топологическая сортировка

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

Предлагается следующее решение:

Системе предъявляются только фильтры источники и приемники;

Система от ситочников к приемникам прослеживает по графу построенной системы задействованные фильтры и формирует внутри себя их массив, что является принятым представлением графа, когда вершины пронумерованы и однозначно за O(1) операций находятся по номеру. В ходе поиска задействованных вершин проверяется, что все приемники достигнуты, иначе происходит генерация исключительной ситуации, с сообщением какая именно вершина не была достигнута, что помогает в поиске ошибок. В этом же процессе выполняется топологическая сортировка графа системы. И поиск петель и циклов, которые по определению системы запрещены. Результат может быть выведен в формате .dot системы GraphViz, что позволяет визуально представить построенную систему. Особенностью является построение работы так, что вывод отладочного файла *.dot происходит до генерации исключения, что особенно важно при отладке. Если все прошло успешно выполняется обратный поиск от приемников к источникам, в ходе которого проверяется, что нет узлов (фильтров) которые не были ранее включены в граф (обычно – это ошибка, что указаны не все источники). В ходе этих проверок не могут быть выявлены только ошибки, связанные с тем, что

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

- При связывании фильтров между собой, часть связей (ссылок) невалидна, например, система была построена из нескольких фильтров, после один из фильтров - объект C++ удален операцией delete, а после этого источники и приемники были переданы системе. Но такая ситуация по- вообще трудно поддается обработке в рамках С++ и приводит к устойчивому падению программы, что также является надежным и легко диагностируемым способом поиска ошибки.

Алгоритм построения графа системы и топологической сортировки по предъявленным источникам и приемникам основан на поиске в ширину [@Cormen2005] и состоит в следующем:

Алгоритм 1

Балансирование задержек

После топологической сортировки вершины графа хранятся в массиве, и верно следующее утверждение:

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

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

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

Список литературы

  1. [@Cormen2005] Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн. Алгоритмы. Построение и анализ. 2-е издание. //Издательство: Вильямс, 2005 г. 1296 стр. ISBN 5-8459-0857-4, 0-07-013151-1
  2. [@Canny] Canny J. A computational approach to edge detection // IEEE Trans. PAMI. 1986. V. 8. P. 34-43.
  3. [@DiZenzo] Di Zenzo S. “A note on the gradient of multi-image”, Computer Vision Graphics Image Process, Vol. 33. pp. 116-125, 1986
  4. [@RSeg] Mintchenkov M.V., Yurin D.V., Helvas A.V. Unsupervised Algorithm for Images Segmentation on the Base of the Rayleigh 2D Objects Boundaries Detector. // In Conference Proc. 12-th International Conference on Computer Graphics GraphiCon'2002 -P. 243-250. Nizhny Novgorod, Sept. 16-21, 2002. http://www.graphicon.ru/2002/pdf/Mintchenkov_Re.pdf.
  5. [@Kraftsov] Кравцов А.A. ,Сидоркина О.C., Юрин Д.В. Модифицированный рэлеевский детектор слабоконтрастных границ двумерных объектов на изображении. // Труды конференции Графикон 2006, 16-я международная конференция по компьютерной графике и ее приложениям, ‑‑C.351-354.
  6. [@JSeg] Deng Y., Manjunath B.S., Shin H. Color Image Segmentation // IEEE Computer Society Conference on Computer Vision and Pattern Recognition, CVPR '99 — 1999 — V.2. — P.446–451. http://vision.ece.ucsb.edu/publications/99CVPRSeg.pdf.
  7. [@HSeg] Jing, F., Li, M., Zhang, H.J., Zhang, B. Unsupervised Image Segmentation Using Local Homogeneity Analysis. // Proc. IEEE International Symposium on Circuits and Sys-tems, 2003. http://citeseer.ist.psu.edu/jing03unsupervised.html
  8. [@Harris] C. G. Harris and M. Stephens, "A combined corner and edge detector," In Proc. 4th Alvey Vision Conf., Manchester, pages 147-151, 1988.
  9. [@Dufour] Y. Dufournaud, C. Schmid, and R. Horaud, "Matching images with different resolutions", Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR’00), 2000 (Hilton Head Island, SC, USA). ‑V. 1, ‑P. 612-618. ISBN: 0-7695-0662-3. http://citeseer.ist.psu.edu/dufournaud00matching.html
  10. [@Lindeberg] Tony Lindeberg: Scale-Space Theory in Computer Vision, Kluwer Academic Publishers, Dordrecht, Netherlands, 1994. См. также http://www.nada.kth.se/%7Etony/earlyvision.html.
  11. [@Schmid] C. Schmid, R. Mohr. Local Grayvalue Invariants for Image Retrieval. //IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI) 1997, ‑V. 19, ‑No. 5, ‑P. 530-534. http://citeseer.ist.psu.edu/schmid97local.html


Pipe Line Filters: ReadMe

  • Примеры

ReadMe

========================================================================
    CONSOLE APPLICATION : PipeLineFilters Project Overview
========================================================================

/////////////////////////////////////////////////////////////////////////////
Other notes:

===========================================================
Входной порт (InPort) может находиться в одном из 3 состояний:
1) Ожидать поступления данных
2) Не ожидать поступления данных
    2.1) Ожидать обработки (пока считают)
    2.2) Больше данных не требуется

    Начальное состояние - 1)
    Фильтр после обработки данных, когда они больше не нужны,
    сбрасывает в состояние 2.1
    А когда обработал все - во состояние 2.2

    При переходе в состояния 2.* - он сигнализирует подключенному OutPortNoPostProc.
    ---
    OutPortNoPostProc при поступлении сигнала 2.1:
    - проверяет все ли подключенные InPort об этом просигналили
    Если ДА то
    ЕСЛИ буфер в режиме TailData
    ТО немедленно выталкивает следующую строку и изменяет
    состояние всех подключенных InPort на "ОжиданиеОбработки"
    ИНАЧЕ ЕСЛИ OutPortNoPostProc в режиме EndData
    ТО изменяет состояние всех подключенных InPort на "Конец данных"
    ИНАЧЕ
    переходит в состояние WaitData
    ---
    OutPortNoPostProc при поступлении сигнала 2.1:
    Исключает соответствующий InPort из списка подключенных
    Если список пуст - то переходит в состояние EndData
    и сигнализирует филььтру.
    Если у фильтра все выходные порты в этом состоянии,
    то он переходит в состояние Finished, а все свои входные порты в состояние 2.2

===========================================================
Выходной порт (OutPortNoPostProc) может находиться в одном из 3 состояний:
1) Ожидать записи данных
    - функция is_WaitData()
2) Ожидать, пока эти данные будут прочитаны всеми подключенными к нему ВХОДНЫМи портами
    - функция is_WaitRead()
3) Закончить работу: больше не чего туда записывать и все имеющиеся там данные
прочитаны (Внимание! Полосовой буфер работает с задержкой, и после того как
порт принял все данные он может выдавать еще некоторое время содержащиеся в нем данные!) .
    - функция is_EndData()
                - wait for insert data       ---- Wait for processed by connected inports
                / yes                        / yes
    is_WaitData <          - is_WaitRead()---<
                \ no     /                   \ no
                -------<                     ----- is_AllDataRead()
                        \
                        -  is_AllDataReceived()
===========================================================
Элементарный фильтр устроен так, что по однократному вызову
функции processLine() должен выдавать на выход (все выходы)
не более 1 строки (если выход 1 - то ровно 1 строку).
В том случае, когда из имеющихся во входных буферах данных следует выдать
много строк (например при растяжении изображения в 3 раза билинейной интерполяцией
из двух строк во входном буфере следует выдать 3 строки, после чего попросить входной
буфер сдвинуться на 1 строку), функция processLine() все равно должна укладывать в
выходной буфер за 1 вызов 1 строку, но тогда устанавливать для входа флаг "обработан"
только раз в 3 вызова.
В обратной ситуации, когда, например выполняется сжатие изображения в 3 раза,
одна строка должна записываться на выход только на каждый 3-й вызов,
в остальных вызовах просто для вхолдных данных ставится флаг "обработан".

Тогда:
Функция processLine() должна вызываться, если
1) есть куда писать, т.е. выходные порты готовы принимать данные
2) есть данные, которые обрабатывать

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

Когда данные в выходных буферах кончились - фильтр закончил работу.

Фильтр может находиться в состояниях
1) Готов выполнить квант действия
    В этом случае должна вызываться функция processLine()
    Готов когда
            -все InPort в состоянии 2.1) Ожидать обработки либо
                2.2) Больше данных не требуется
            -высе OutPortNoPostProc в состоянии 1) Ожидать записи данных
2) Не готов
3) Надо доотдать обработанные данные
3) Закончил работу

===========================================================

/////////////////////////////////////////////////////////////////////////////


Pipe Line Filters: Использование библиотеки и настройки компилятора

  • Примеры

Использование библиотеки и настройки компилятора

Краткое описание библиотеки Shared**.zip

Основные (для использования) каталоги следующие:

----------------------------------------------

SHARED\general - общего назначения, все включать в проект КРОМЕ
xml_interface_imp.cpp

SHARED\image   - собственно работа с изображениями. Кратко - в проект
  включается все (файлы zoomfact.h virtdib.h virtdib.cpp - только в случае,
если надо отрисовывать изображения под Windows). При использовании
 библиотеки в качестве #include  включаются ТОЛЬКО aimage.h (и zoomfact.h
 virtdib.h если есть отрисовка), оставльные *.h из этого каталога нужны для
 внутреннего функционировани, никакие прототипы из них на прямую НЕ
 ИСПОЛЬЗОВАТЬ! Стратегия - для создания, загрузки, удаления изображений есть
 3 функции AImageCreate(), AImageLoad(), AImageSave(). Они возвращают (или
 модифицируют) указатель типа AImage* img. По окончании работы его НАДО
 УДАЛИТЬ операцией delete img; лучше использовать std::auto_ptr<AImage> .
Для
 доступа к пикселю надо узнать у объекта AImage какого он типа (
 GetImageStore()   и преобразовать указатель к этому типу с помощью
 dynamic_cast<>.

 SHARED\imgproc - некоторые примитивные обработки изображений, скорее
 сего  - не надо. Больше- в качестве примера.
 SHARED\nummet  - некоторые численные методы. Если надо - линковать все,
 включать nummet.h , другой заголовок - это реализация шаблонов и будет
 включен автоматически.
--------------------------------------------------------------
 SHARED\consolap - включать только в консольные приложения. Реализует
 ProgressCounter в виде печати на экран процента исполнения.

---------------------------------------------------------------
 SHARED\doc здесь документация, строится с помощью программы doxygen.

---------------------------------------------------------------
 SHARED\yxml_drv - нужен для поддержки работы с XML. DLL должна быть в
 каталоге, где находится исполнимый модуль. Dll - только переходник к
 библиотеке -XERCES-IBM, (необходимые файлы и инструкция по установке - в
 приложении). К программе НИЧЕГО НЕ ЛИНКОВАТЬ!

 Для хранения своиз настроечных данных (в своих программах) сильно рекомендую использовать
 формат XML ли хотя бы INI - с помощью поддержки
SHARED\general\xml_interface.h
SHARED\general\ywinini.h
Там все сделано удобно. Не изобретайте своих нестандартных форматов!

 Про работу с изображениями - основные особенности:
======================================================
1) Формат при считывании и при сохранении определяется ТОЛЬКО расширением
файла - оно должно быть правильным.

2) Поддерживаются следующие форматы:
  tif - 8-bit grayscale, 16-bitgrayscale, 8-bit palette
  bmp - 8-bit palette, RGB-8-bit (i.e. 24-bit)
  pgm - 8-bit grayscale
  ppm - RGB-8-bit (i.e. 24-bit)
  oz - 9-16 -bit grayscale (non standard)
  fim - 32-bit float (non standard, only for temorary or test usage)

 3) преобразования класса изображения (grayscale, palette, RGB, float)
 автоматически НЕ ПРОИЗВОДИТСЯ, поэтому, например, попытка загрузить
 палитровое изображение с серой палитрой и работать с ним как с grayscale не
 проходит. Точно также попытка сохранить например серое изображение в формат
 например bmp не пройдет, так как формат bmp не допускает хранения
 изображений типа grayscale. См. п. 2.

 4) Классы AImage, AImageMem... реализуют хранение изображения в виде
 одномерного массива данных + информацию о том как по этому массиву ходить.
 Для смещения на строку вниз к указателю надо прибавлять не Width(), а
 NextLineShift(), так как эти параметры не всегда совпадают, в частности для
 фрагментов изображений.

 5) Конечно библиотека разработана давно, когда компиляторы генерили по
 шаблонам медленный код и морально устарела. Однако на ней много написано и
 изменения тяжелы из соображений совместимости. Предлагаю следующий способ:
 после того, как появилось изображение - получить указатель на данные и
 информацию и по ним сформировать свой шаблонный класс-оболочку, через
 которую и работать. А AImage  - пусть висит как истинное место хранения, и
 когда данные будут не нужны - его надо будет удалить.

Настройки компилятора для Visual Studio:
===================================================
C/C++ -> Language->Force Conformance In For Loope Scope : YES (/Zc:forScope)
-язык должен быть современный стандарт, переменная, объявленная внутри круглых скобок
for - не видна после закрывающей фигурной скобки

C/C++ -> Language->Enable Run-Time Type Info : YES (/GR)
- библиотека активно использует dynamic_cast<>() , естественно это не может работать,
если в run-time не доступна инфолрмация о типах!

C/C++ -> Precompiled Headers : NOT USING
по крайней мере на библиотечных файлах. Использование их - приводит к необходимости включать в
библиотечные файлы заголовок StdAfx.h, который КРИВОЙ, число открывающих и закрывающих директив
условной компиляуии (#if #endif) в нем не равно друг другу! Поэтому написать корректный и переносимый
код (ограничив его включение случаем платформы Microsoft и опцией Procompiled Headers не представляеется
возможным (Как заключить в условную компиляцию блок, который не есть синтаксически нормальный блок?).
Поэтому, чем поганить код и делать его непереносимым на другие компиляторы и UNIX - проще отключать
эту опцию в проекте. Кстати замедления компиляции библиотечных и использующих их файлов из-за этого не
происходит, так как библиотека использует только минимально необходимые заголовки - просмотр
прекомпилированного файла может быть дольше, чем скомпилировать заново небольшое количество строк.

C/C++ -> Code Generation -> Enable C++ Exceptions : YES
Должен нормально работать С++, если сворачивается стэк,не важно по exceptions или по return - деструкторы должны вызываться!

C/C++ -> General -> Detect 64-bits Portability Issues : NO
Это не обязательно, но имеет смысл. Очень трудно написать 32-битную программу, которая без малейших изменений пойдет на
32-битной архитектуре. Поэтому будут Warning-и. Среди них можно не углядеть действительно важные.
Если эта опция отключена - программа не должна выдавать НИ ОДНОГО WARNING. Если это не так - устраняйте ошибку у себя!

При включении библиотеки в проект - рекомендуется скопировать нужные подкаталоги в свой проект
с сохранением структуры подкаталогов, в проекте (VisualStodio, sln) создать одноименные папки
в разделах Source Files и Header Files. Включить туда нужные файлы из одноименных директорий на диске.

===================================================
Категорически запрещается самостоятельно вносить ЛЮБЫЕ изменения в файлы библиотеки.
Библиотекой пользуются многие и много написано на ней - будет путаница.
В случае обнаружения ошибки - немедленно пишите на yurin@list.ru
При желании внести изменения, дополнения, улучшения - пишите предложения и высылайте на yurin@list.ru,
если предложения разумные и не ломают совместимость с уже написанным кодом - я их включу в библиотеку.
В частности - есть потребность в документации, если что-то документируете - будет польза для всех!

 Юрин.


Pipe Line Filters: Тестовая страница

  • Примеры

Тестовая страница

Some graph diagramm:


Pipe Line Filters: Исходный файл _imtransf.h

  • Файлы
  • Список членов всех файлов

_imtransf.h

См. документацию.
00001
00002 #ifndef _IMPL_IMTRANSF_H
00003 #define _IMPL_IMTRANSF_H
00004
00005 #include <assert.h>
00006 #include <algorithm>
00007
00008 #include "ymem.h"
00009
00010 class ImageTransformCellImpl;
00011
00012 class TransformCell
00013 {
00014 public:
00015     TransformCell( ImageTransformCellImpl& transform, int x, int y);
00016
00017     const YPoint<double>* getCellPICS() const;
00018     const YPoint<double>* getCellICS() const;
00019     const YPoint<double>* getCellRCS() const;
00020     const YPoint<double>* getCellPRCS() const;
00021 private:
00022     void fill(int x, int y);
00023
00024     ImageTransformCellImpl& transform_;
00025
00026     YPoint<double> pics_[4];
00027     YPoint<double> ics_[4];
00028     YPoint<double> rcs_[4];
00029     YPoint<double> prcs_[4];
00030 };
00031
00032 struct DMatrixElem
00033 {
00034     DMatrixElem* next;
00035     YPoint<int> p;
00036 };
00037
00038 class DistributionMatrix
00039 {
00040 public:
00041     DistributionMatrix( int width = 0, int height = 0, size_t capacity = 0)
00042     { clear(); setSize(width,height,capacity); }
00043     void clear() { matrix_.clear(); allocator_.DeInit(); }
00044     void setSize( int width, int height, size_t capacity)
00045     {
00046         w_ = width;
00047         h_ = height;
00048         matrix_.resize(w_*h_,0);
00049         if(capacity)
00050             allocator_.Init( sizeof(DMatrixElem), capacity);
00051     }
00052     void add( const YPoint<int>& cell, const YPoint<int>& p)
00053     {
00054         if( cell.x < 0 || cell.x >= w_ || cell.y < 0 || cell.y >= h_ )
00055             return;
00056         DMatrixElem* pElem = static_cast<DMatrixElem*>(allocator_.malloc());
00057         DMatrixElem** ppMElem = at(cell);
00058         pElem->next = *ppMElem;
00059         pElem->p = p;
00060         *ppMElem = pElem;
00061     }
00062     std::vector<const DMatrixElem*> collectRaduis(
00063         const YPoint<int>&prp, int r, int* pn = 0) const;
00064     bool empty( const YPoint<int>& p) const
00065     { return 0 == *at(p); }
00066 private:
00067     DMatrixElem** at( const YPoint<int>& p)
00068     {
00069         assert( p.x >= 0 && p.x < w_ && p.y >= 0 && p.y < h_ );
00070         return &matrix_[p.y*w_+p.x];
00071     }
00072     DMatrixElem* const * at( const YPoint<int>& p) const
00073     {
00074         assert( p.x >= 0 && p.x < w_ && p.y >= 0 && p.y < h_ );
00075         return &matrix_[p.y*w_+p.x];
00076     }
00077     inline void collectCell(
00078         std::vector<const DMatrixElem*>& elems, const DMatrixElem* elem) const;
00079 private:
00080     std::vector<DMatrixElem*> matrix_;
00081     YSmallAllocLtd allocator_;
00082     int w_;
00083     int h_;
00084 };
00085
00086 class CoverageMatrix
00087 {
00088 public:
00089     CoverageMatrix( int width = 0, int height = 0)
00090     { clear(); setSize(width,height); }
00091     void clear() { matrix_.clear(); zoomMatrix_.clear(); }
00092     void setSize( int width, int height)
00093     {
00094         w_ = width;
00095         h_ = height;
00096         matrix_.resize(w_*h_, YPoint<int>(-1,-1));
00097         zoomMatrix_.resize(w_*h_,-1);
00098     }
00099     void set( const YPoint<int>& cell, const YPoint<int>& value, double zoomValue)
00100     {
00101         if( cell.x < 0 || cell.x >= w_ || cell.y < 0 || cell.y >= h_ )
00102             return;
00103         if( getZoom(cell) != -1 && getZoom(cell) > zoomValue )
00104             return;
00105         matrix_[cell.y*w_+cell.x] = value;
00106         zoomMatrix_[cell.y*w_+cell.x] = zoomValue;
00107     }
00108     void set( const YRect<int>& area, const YPoint<int>& value, double zoomValue)
00109     {
00110         int bottom = area.bottom();
00111         int right = area.right();
00112         for( int y = area.top(); y <= bottom; ++y)
00113             for( int x = area.left(); x <= right; ++x)
00114                 set( YPoint<int>(x,y), value, zoomValue);
00115     }
00116     void set(
00117         const YPoint<double>* cell,
00118         const YRect<int>& area,
00119         const YPoint<int>& value,
00120         double zoomValue);
00121     const YPoint<int>& get( const YPoint<int>& cell) const
00122     {
00123         return matrix_[cell.y*w_+cell.x];
00124     }
00125     double getZoom( const YPoint<int>& cell) const
00126     {
00127         return zoomMatrix_[cell.y*w_+cell.x];
00128     }
00129     bool empty( const YPoint<int>& cell) const
00130     {
00131 //      return matrix_[cell.y*w_+cell.x].x == -1;
00132         return zoomMatrix_[cell.y*w_+cell.x] == -1;
00133     }
00134 private:
00135     std::vector<YPoint<int> > matrix_;
00136     std::vector<double> zoomMatrix_;
00137     int w_;
00138     int h_;
00139 };
00140
00141 class ProcessMatrix
00142 {
00143 public:
00144     ProcessMatrix( int width = 0, int height = 0)
00145         : matrix_(0) { clear(); setSize(width,height); }
00146     ~ProcessMatrix() { clear(); }
00147     void clear() { delete[] matrix_; matrix_ = 0; }
00148     void setSize( int width, int height)
00149     {
00150         w_ = width;
00151         h_ = height;
00152         if(matrix_)
00153             clear();
00154         matrix_ = new bool[w_*h_];
00155         std::fill(&matrix_[0],&matrix_[w_*h_],false);
00156     }
00157     void set( const YPoint<int>& cell, bool value)
00158     {
00159         if( cell.x < 0 || cell.x >= w_ || cell.y < 0 || cell.y >= h_ )
00160             return;
00161         matrix_[cell.y*w_+cell.x] = value;
00162     }
00163     void set( const YRect<int>& area, bool value)
00164     {
00165         int bottom = area.bottom();
00166         int right = area.right();
00167         for( int y = area.top(); y <= bottom; ++y)
00168             for( int x = area.left(); x <= right; ++x)
00169                 set( YPoint<int>(x,y), value);
00170     }
00171     const bool& at( const YPoint<int>& cell) const
00172     {
00173         return matrix_[cell.y*w_+cell.x];
00174     }
00175     bool& at( const YPoint<int>& cell)
00176     {
00177         return matrix_[cell.y*w_+cell.x];
00178     }
00179 private:
00180     bool* matrix_;
00181     int w_;
00182     int h_;
00183 };
00184
00185
00186 typedef std::vector<YPoint<double> > ITPolygon;
00187
00188 class ImageTransformImpl
00189 {
00190 public:
00191     ImageTransformImpl();
00192     virtual ~ImageTransformImpl() {}
00193
00194     virtual bool run(
00195         ImageProxyVector* outputVector,
00196         const YRect<int>& outputFragment,
00197         ProgressCounter* indicator) = 0;
00198     virtual bool calculateOutputData( ProgressCounter* indicator) = 0;
00199
00200     void setBackgroundColor( bool doCorrect, int value);
00201     void setErrorColor( bool doCorrect, int value);
00202     void setFlipHorizontal( bool value);
00203     void setFlipVertical( bool value);
00204     void setGridAdjustment( const YPoint<double>& gridNode);
00205     int width() const;
00206     int height() const;
00207     std::vector<int> bits() const;
00208     std::vector<AImage::YImageClass> imageClass() const;
00209     YPoint<double> base() const;
00210     bool init(
00211         const ImageProxyVector* vector,
00212         const YRect<int>& inputFragment,
00213         const CoordArray2D* coords,
00214         const ATransformFunction& transformFunction,
00215         double scale,
00216         ProgressCounter* indicator = 0,
00217         const ImageTransform::EdgeMethod& edgeMethod = ImageTransform::None);
00218
00219     void checkInputParameters(
00220         const ImageProxyVector* vector,
00221         const YRect<int>& inputFragment,
00222         const CoordArray2D* coords,
00223         const ATransformFunction& transformFunction,
00224         double scale,
00225         const ImageTransform::EdgeMethod& edgeMethod) const;
00226     void acceptInputParameters(
00227         const ImageProxyVector* vector,
00228         const YRect<int>& inputFragment,
00229         const CoordArray2D* coords,
00230         const ATransformFunction& transformFunction,
00231         double scale,
00232         const ImageTransform::EdgeMethod& edgeMethod);
00233     void calculateOutputCoords();
00234
00235     inline void fillOutputPixel( AImageProxy* out, int x, int y, int value);
00236
00237     // coordinate transform functions
00238     YPoint<double> RCStoPRCS( const YPoint<double>& p) const;
00239     YPoint<int> RCStoPRCSr( const YPoint<double>& p) const;
00240     YPoint<double> PRCStoRCS( const YPoint<int>& p) const;
00241     YPoint<double> PRCStoRCS( const YPoint<double>& p) const;
00242     bool canICStoRCS( const YPoint<double>& p) const;
00243     bool canRCStoICS( const YPoint<double>& p) const;
00244     YPoint<double> ICStoRCS( const YPoint<double>& p) const;
00245     YPoint<double> RCStoICS( const YPoint<double>& p) const;
00246     YPoint<double> ICStoPICS(
00247         const YPoint<double>& ip,
00248         const YPoint<int>* pip4,
00249         const YPoint<double>* ip4) const;
00250     inline YPoint<double> PICStoICS( const YPoint<int>& p) const;
00251     inline bool canPICStoICS( const YPoint<int>& p) const;
00252 public:
00253     // input parameters
00254     const ImageProxyVector* inputVector_;
00255     YRect<int> inputFragment_;
00256     const CoordArray2D* inputCoords_;
00257     std::auto_ptr<const ATransformFunction> transformFunction_;
00258     double scale_;
00259     int inputWidth_;
00260     int inputHeight_;
00261     int inputImageWidth_;
00262     int inputImageHeight_;
00263     // output data
00264     size_t outputWidth_;
00265     size_t outputHeight_;
00266     YRect<double> outputArea_;
00267     ImageProxyVector* outputVector_;
00268     YRect<int> outputFragment_;
00269     CoordArray2D outputCoords_;
00270     // algorithm behavior
00271     bool flipH_;
00272     bool flipV_;
00273     int backgroundColor_;
00274     bool edgeH_;
00275     bool edgeV_;
00276     int errorColor_;
00277     bool enableGridAdjustment_;
00278     YPoint<double> gridNode_;
00279 //  std::auto_ptr<AImageMemRgb8> debugImg;
00280 private:
00281     ImageTransformImpl( const ImageTransformImpl& );
00282     ImageTransformImpl& operator=( const ImageTransformImpl& );
00283 };
00284
00285 class ImageTransformCellImpl: public ImageTransformImpl
00286 {
00287 public:
00288     ImageTransformCellImpl() {}
00289     virtual ~ImageTransformCellImpl() {}
00290
00291     bool run(
00292         ImageProxyVector* outputVector,
00293         const YRect<int>& outputFragment,
00294         ProgressCounter* indicator);
00295     bool calculateOutputData( ProgressCounter* indicator);
00296 public:
00297     ProcessMatrix processed_;
00298 };
00299
00300 class ImageTransformMatrixImpl: public ImageTransformImpl
00301 {
00302     enum
00303     {
00304         MaxFindRadius = 20
00305     };
00306 public:
00307     ImageTransformMatrixImpl();
00308     virtual ~ImageTransformMatrixImpl() {}
00309
00310     bool run(
00311         ImageProxyVector* outputVector,
00312         const YRect<int>& outputFragment,
00313         ProgressCounter* indicator);
00314
00315     void calculateInputPolygon();
00316     bool calculateOutputData( ProgressCounter* indicator);
00317
00318     YRect<int> makeCellRect( const YPoint<double>* pOutputCoordsPoint);
00319     void makeCellPoly(
00320         const YPoint<double>* pOutputCoordsPoint, YPoint<double>* poly4 );
00321     virtual void initMatrices();
00322     virtual void fillMatricesCell(
00323         const YPoint<double>* it, YPoint<double>* resit, const YPoint<int>& p);
00324     bool hasError( const YPoint<int>& p) const;
00325
00326     void processPixel( const YPoint<int>& prp);
00327     double computeZoom( const YPoint<double>* pOutputCoordsPoint) const;
00328     virtual double estimateZoom( const YPoint<int>& prp);
00329     virtual bool isFilledPixel( const YPoint<int>& prp);
00330     virtual bool getAnchor( const YPoint<int>& prp, YPoint<int>& pip);
00331 //  YPoint<int> findNearest(
00332 //      const YPoint<double>& ip,
00333 //      const YPoint<int>& pipAnchor) const;
00334     bool findNearest(
00335         const YPoint<int>& prp,
00336         const YPoint<double>& ip,
00337         YPoint<int>& pip,
00338         int rMax) const;
00339     bool findCell(
00340         const YPoint<double>& ip,
00341         const YPoint<int>& pipNearest,
00342         YPoint<int>* pip4,
00343         YPoint<double>* ip4 ) const;
00344     bool findCellAtRadius(
00345         const YPoint<double>& ip,
00346         YPoint<int>* pip4,
00347         YPoint<double>* ip4,
00348         int radius) const;
00349     bool shiftCell(
00350         int shiftX, int shiftY,
00351         YPoint<int>* pip4,
00352         YPoint<double>* ip4 ) const;
00353     bool interpolateAverage( const YPoint<int>& prp, size_t radius = 0);
00354     void fillPixelsWithAverages(
00355         const YPoint<int>& prp,
00356         std::vector<const DMatrixElem*>::const_iterator begin,
00357         std::vector<const DMatrixElem*>::const_iterator end,
00358         int size);
00359     void interpolateBicubical(
00360         const YPoint<int>& prp,
00361 //      const YPoint<int> basePip,
00362         const YPoint<double> pip);
00363 public:
00364     // implementation data
00365     DistributionMatrix distributionMatrix_;
00366     ITPolygon polygon_;
00367 };
00368
00369 class ImageTransformMatrixFastImpl: public ImageTransformMatrixImpl
00370 {
00371 public:
00372     virtual void fillMatricesCell(
00373         const YPoint<double>* it, YPoint<double>* resit, const YPoint<int>& p);
00374     virtual bool isFilledPixel( const YPoint<int>& prp);
00375     virtual double estimateZoom( const YPoint<int>& prp);
00376     virtual bool getAnchor( const YPoint<int>& prp, YPoint<int>& pip);
00377     virtual void initMatrices();
00378 public:
00379     CoverageMatrix coverageMatrix_;
00380 };
00381
00382 bool isBadCell( const YPoint<double>* cell );
00383
00384 #endif // _IMPL_IMTRANSF_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл _num_boost_adds.h

  • Файлы
  • Список членов всех файлов

_num_boost_adds.h

См. документацию.
00001 #ifndef _NUM_BOOST_ADDS_H
00002 #define _NUM_BOOST_ADDS_H
00004 namespace Vtl
00005 {
00006 namespace NumAlg
00007 {
00008 namespace Lin
00009 {
00015     template<class Iter>
00016     Iter max_abs_element(Iter begin,Iter end)
00017     {
00018         Iter m=begin;
00019         typedef Iter::value_type T;
00020         T a=std::abs(*begin++);
00021         for( ; begin!=end ; ++begin )
00022         {
00023             T b=std::abs(*begin);
00024             if(b > a)
00025             {
00026                 m=begin;
00027                 a=b;
00028             }
00029         }
00030         return m;
00031     }
00040     template<class M,class V>
00041     void prod_diag(ublas::matrix_container<M> & A,const ublas::vector_container<V>&  diag_matrix)
00042     {
00043         typedef M* M_PTR;
00044         typedef const V* V_PTR;
00045         const size_t n=(*static_cast<M_PTR>(&A)).size2();
00046         for(size_t i=0; i< n ; ++i)
00047         {
00048             ublas::matrix_column<M>(*static_cast<M_PTR>(&A),i)*=(*static_cast<V_PTR>(&diag_matrix))[i];
00049         }
00050     }
00059     template<class V,class M>
00060     void prod_diag(const ublas::vector_container<V>&  diag_matrix,ublas::matrix_container<M> & A)
00061     {
00062         typedef M* M_PTR;
00063         typedef const V* V_PTR;
00064         const size_t n=(*static_cast<M_PTR>(&A)).size1();
00065         for(size_t i=0; i< n; ++i)
00066         {
00067             ublas::matrix_row<M>(*static_cast<M_PTR>(&A),i)*=(*static_cast<V_PTR>(&diag_matrix))[i];
00068         }
00069     }
00077     template<typename T>
00078     class PseudoInverseElemPositive
00079     {
00080        T eps;   // The value to multiply by
00081     public:
00082        PseudoInverseElemPositive( const T& _eps ) : eps( _eps ) {  }
00083        void operator ( ) ( T& elem ) const
00084        {
00085             elem =(elem >= eps ) ? 1/elem : 0;
00086        }
00087     };
00093     template<typename T>
00094     class PseudoInverseElem
00095     {
00096        T eps;   // The value to multiply by
00097     public:
00098        PseudoInverseElem( const T& _eps ) : eps( _eps ) {  }
00099        void operator ( ) ( T& elem ) const
00100        {
00101            elem =(std::abs(elem) >= eps ) ? 1/elem : 0;
00102        }
00103     };
00112     template<class VectorW>
00113     static void inverse_diag_matrix_positive(VectorW& W,double relerr)
00114     {
00115         typedef VectorW::value_type T;
00116         T tau=*std::max_element(W.begin(),W.end());
00117         tau*=T(relerr);
00118         std::for_each(W.begin(),W.end(), PseudoInverseElemPositive<T>(tau) );
00119     }
00120
00129     template<class VectorW>
00130     static void inverse_diag_matrix(VectorW& W,double relerr)
00131     {
00132         typedef VectorW::value_type T;
00133         T tau=std::abs(*max_abs_element(W.begin(),W.end()));
00134         tau*=T(relerr);
00135         std::for_each(W.begin(),W.end(), PseudoInverseElem<T>(tau) );
00136     }
00141     template<class M>
00142     typename M::value_type matrix_max_abs_element(M & A)
00143     {
00144         const int m = A.size1();
00145         const int n = A.size2();
00146         typename M::value_type max_el=std::abs(A(0,0));
00147         for(int i=0; i<m; ++i)
00148         for(int j=0; j<n; ++j)
00149             max_el=std::max(max_el,std::abs(A(i,j)));
00150         return max_el;
00151     }
00152
00153
00154
00156 }//namespace Lin
00157 }//namespace NumAlg
00158 }//namespace Vtl
00160 #endif //_NUM_BOOST_ADDS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл _num_cholesky.h

  • Файлы
  • Список членов всех файлов

_num_cholesky.h

См. документацию.
00001 #ifndef _NUM_CHOLESKY_H
00002 #define _NUM_CHOLESKY_H
00004 namespace Vtl
00005 {
00006 namespace NumAlg
00007 {
00008 namespace Lin
00009 {
00011
00038     class cholesky
00039     {
00040     public:
00047         template<class Matrix>
00048         static bool decomp(const Matrix &A,Matrix &L_)
00049         {
00050             typedef Matrix::value_type Real;
00051
00052             int m = A.size1();
00053             int n = A.size2();
00054
00055             bool isspd = (m == n);
00056
00057             if (m != n)
00058                 throw "Cholseky decomposition require square matrix!";
00059
00060               // Main loop.
00061              for (int j = 0; j < n; j++)
00062              {
00063                 Real d(0);
00064                 for (int k = 0; k < j; k++)
00065                 {
00066                     Real s(0);
00067                     for (int i = 0; i < k; i++)
00068                     {
00069                        s += L_(k,i)*L_(j,i);
00070                     }
00071                     L_(j,k) = s = (A(j,k) - s)/L_(k,k);
00072                     d = d + s*s;
00073                     isspd = isspd && (A(k,j) == A(j,k));
00074                  }
00075                  d = A(j,j) - d;
00076                  isspd = isspd && (d > 0);
00077                  L_(j,j) = std::sqrt(d > 0 ? d : Real(0) );
00078                  for (int k = j+1; k < n; k++)
00079                     L_(j,k) = 0;
00080
00081             }
00082              return isspd ;
00083         }
00095         template<class Matrix,class Vector>
00096         static void solve(Matrix &L,const Vector &x)
00097         {
00098             int n = L_.size1();
00099             if (x.size() != n)
00100                 throw "cholesky::solve: Matrix and vectors dimansions are different";
00101             // Solve L*y = b;
00102             for (int k = 0; k < n; k++)
00103             {
00104                 for (int i = 0; i < k; i++)
00105                     x[k] -= x[i]*L(k,i);
00106                 x[k] /= L(k,k);
00107             }
00108             // Solve L'*X = Y;
00109             for (int k = n-1; k >= 0; k--)
00110             {
00111                 for (int i = k+1; i < n; i++)
00112                     x[k] -= x[i]*L(i,k);
00113                 x[k] /= L(k,k);
00114             }
00115         }
00125         template<class Matrix,class Matrix2>
00126         static void solve(const Matrix& L,const Matrix2 &X)
00127         {
00128             int n = L.size1();
00129             if (x.size1() != n)
00130                 throw "";
00131
00132             int nx = X.size2();
00133
00134             // Solve L*y = b;
00135             for (int j=0; j< nx; j++)
00136             {
00137                 for (int k = 0; k < n; k++)
00138                 {
00139                     for (int i = 0; i < k; i++)
00140                         X(k,j) -= X(i,j)*L(k,i);
00141                     X(k,j) /= L(k,k);
00142                 }
00143             }
00144             // Solve L'*X = Y;
00145             for (int j=0; j<nx; j++)
00146             {
00147                 for (int k = n-1; k >= 0; k--)
00148                 {
00149                     for (int i = k+1; i < n; i++)
00150                         X(k,j) -= X(i,j)*L(i,k);
00151                     X(k,j) /= L(k,k);
00152                 }
00153             }
00154         }
00155     };
00157 }//namespace Lin
00158 }//namespace NumAlg
00159 }//namespace Vtl
00161 #endif //_NUM_CHOLESKY_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл _num_eigen.h

  • Файлы
  • Список членов всех файлов

_num_eigen.h

См. документацию.
00001 #ifndef _NUM_EIGEN_H
00002 #define _NUM_EIGEN_H
00004 namespace Vtl
00005 {
00006 namespace NumAlg
00007 {
00008 namespace Lin
00009 {
00011
00062     template<typename T> T hypot(T x,T y) { return T(::_hypot(x,y)); }
00063
00064     class eigen
00065     {
00072        template<class Vec,class Mat>
00073        static void tred2(int n,Vec& d,Vec& e,Mat& V)
00074        {
00075            typedef typename Mat::value_type Real;
00076
00077
00078           for (int j = 0; j < n; j++) {
00079              d[j] = V(n-1,j);
00080           }
00081
00082           // Householder reduction to tridiagonal form.
00083
00084           for (int i = n-1; i > 0; i--) {
00085
00086              // Scale to avoid under/overflow.
00087
00088              Real scale = 0.0;
00089              Real h = 0.0;
00090              for (int k = 0; k < i; k++) {
00091                 scale = scale + abs(d[k]);
00092              }
00093              if (scale == 0.0) {
00094                 e[i] = d[i-1];
00095                 for (int j = 0; j < i; j++) {
00096                    d[j] = V(i-1,j);
00097                    V(i,j) = 0.0;
00098                    V(j,i) = 0.0;
00099                 }
00100              } else {
00101
00102                 // Generate Householder vector.
00103
00104                 for (int k = 0; k < i; k++) {
00105                    d[k] /= scale;
00106                    h += d[k] * d[k];
00107                 }
00108                 Real f = d[i-1];
00109                 Real g = sqrt(h);
00110                 if (f > 0) {
00111                    g = -g;
00112                 }
00113                 e[i] = scale * g;
00114                 h = h - f * g;
00115                 d[i-1] = f - g;
00116                 for (int j = 0; j < i; j++) {
00117                    e[j] = 0.0;
00118                 }
00119
00120                 // Apply similarity transformation to remaining columns.
00121
00122                 for (int j = 0; j < i; j++) {
00123                    f = d[j];
00124                    V(j,i) = f;
00125                    g = e[j] + V(j,j) * f;
00126                    for (int k = j+1; k <= i-1; k++) {
00127                       g += V(k,j) * d[k];
00128                       e[k] += V(k,j) * f;
00129                    }
00130                    e[j] = g;
00131                 }
00132                 f = 0.0;
00133                 for (int j = 0; j < i; j++) {
00134                    e[j] /= h;
00135                    f += e[j] * d[j];
00136                 }
00137                 Real hh = f / (h + h);
00138                 for (int j = 0; j < i; j++) {
00139                    e[j] -= hh * d[j];
00140                 }
00141                 for (int j = 0; j < i; j++) {
00142                    f = d[j];
00143                    g = e[j];
00144                    for (int k = j; k <= i-1; k++) {
00145                       V(k,j) -= (f * e[k] + g * d[k]);
00146                    }
00147                    d[j] = V(i-1,j);
00148                    V(i,j) = 0.0;
00149                 }
00150              }
00151              d[i] = h;
00152           }
00153
00154           // Accumulate transformations.
00155
00156           for (int i = 0; i < n-1; i++) {
00157              V(n-1,i) = V(i,i);
00158              V(i,i) = 1.0;
00159              Real h = d[i+1];
00160              if (h != 0.0) {
00161                 for (int k = 0; k <= i; k++) {
00162                    d[k] = V(k,i+1) / h;
00163                 }
00164                 for (int j = 0; j <= i; j++) {
00165                    Real g = 0.0;
00166                    for (int k = 0; k <= i; k++) {
00167                       g += V(k,i+1) * V(k,j);
00168                    }
00169                    for (int k = 0; k <= i; k++) {
00170                       V(k,j) -= g * d[k];
00171                    }
00172                 }
00173              }
00174              for (int k = 0; k <= i; k++) {
00175                 V(k,i+1) = 0.0;
00176              }
00177           }
00178           for (int j = 0; j < n; j++) {
00179              d[j] = V(n-1,j);
00180              V(n-1,j) = 0.0;
00181           }
00182           V(n-1,n-1) = 1.0;
00183           e[0] = 0.0;
00184        }
00185
00192        template<class Vec,class Mat>
00193        static void tql2(int n,Vec& d,Vec& e,Mat& V)
00194        {
00195            using namespace std;
00196
00197            typedef typename Mat::value_type Real;
00198
00199
00200           for (int i = 1; i < n; i++) {
00201              e[i-1] = e[i];
00202           }
00203           e[n-1] = 0.0;
00204
00205           Real f = 0.0f;
00206           Real tst1 = 0.0f;
00207           Real eps = pow(2.0f,-52.0f);
00208           for (int l = 0; l < n; l++) {
00209
00210              // Find small subdiagonal element
00211
00212               tst1 = std::max(tst1,abs(d[l]) + abs(e[l]));
00213              int m = l;
00214
00215             // Original while-loop from Java code
00216              while (m < n) {
00217                 if (abs(e[m]) <= eps*tst1) {
00218                    break;
00219                 }
00220                 m++;
00221              }
00222
00223
00224              // If m == l, d[l] is an eigenvalue,
00225              // otherwise, iterate.
00226
00227              if (m > l) {
00228                 int iter = 0;
00229                 do {
00230                    iter = iter + 1;  // (Could check iteration count here.)
00231
00232                    // Compute implicit shift
00233
00234                    Real g = d[l];
00235                    Real p = (d[l+1] - g) / (2 * e[l]);
00236                    Real r = hypot(p,Real(1));
00237                    if (p < 0) {
00238                       r = -r;
00239                    }
00240                    d[l] = e[l] / (p + r);
00241                    d[l+1] = e[l] * (p + r);
00242                    Real dl1 = d[l+1];
00243                    Real h = g - d[l];
00244                    for (int i = l+2; i < n; i++) {
00245                       d[i] -= h;
00246                    }
00247                    f = f + h;
00248
00249                    // Implicit QL transformation.
00250
00251                    p = d[m];
00252                    Real c = 1;
00253                    Real c2 = c;
00254                    Real c3 = c;
00255                    Real el1 = e[l+1];
00256                    Real s = 0.0;
00257                    Real s2 = 0.0;
00258                    for (int i = m-1; i >= l; i--) {
00259                       c3 = c2;
00260                       c2 = c;
00261                       s2 = s;
00262                       g = c * e[i];
00263                       h = c * p;
00264                       r = hypot(p,e[i]);
00265                       e[i+1] = s * r;
00266                       s = e[i] / r;
00267                       c = p / r;
00268                       p = c * d[i] - s * g;
00269                       d[i+1] = h + s * (c * g + s * d[i]);
00270
00271                       // Accumulate transformation.
00272
00273                       for (int k = 0; k < n; k++) {
00274                          h = V(k,i+1);
00275                          V(k,i+1) = s * V(k,i) + c * h;
00276                          V(k,i) = c * V(k,i) - s * h;
00277                       }
00278                    }
00279                    p = -s * s2 * c3 * el1 * e[l] / dl1;
00280                    e[l] = s * p;
00281                    d[l] = c * p;
00282
00283                    // Check for convergence.
00284
00285                 } while (abs(e[l]) > eps*tst1);
00286              }
00287              d[l] = d[l] + f;
00288              e[l] = 0.0;
00289           }
00290
00291           // Sort eigenvalues and corresponding vectors.
00292
00293           for (int i = 0; i < n-1; i++) {
00294              int k = i;
00295              Real p = d[i];
00296              for (int j = i+1; j < n; j++) {
00297                 if (d[j] < p) {
00298                    k = j;
00299                    p = d[j];
00300                 }
00301              }
00302              if (k != i) {
00303                 d[k] = d[i];
00304                 d[i] = p;
00305                 for (int j = 0; j < n; j++) {
00306                    p = V(j,i);
00307                    V(j,i) = V(j,k);
00308                    V(j,k) = p;
00309                 }
00310              }
00311           }
00312        }
00313
00314         // Nonsymmetric reduction to Hessenberg form.
00315         //
00316         //  This is derived from the Algol procedures orthes and ortran,
00317         //  by Martin and Wilkinson, Handbook for Auto. Comp.,
00318         //  Vol.ii-Linear Algebra, and the corresponding
00319         //  Fortran subroutines in EISPACK.
00320        template<class Vec,class Mat>
00321        static void orthes(int n,Vec& d,Vec& e,Mat& V,Mat& H,Vec& ort)
00322        {
00323            typedef typename Mat::value_type Real;
00324
00325           int low = 0;
00326           int high = n-1;
00327
00328           for (int m = low+1; m <= high-1; m++) {
00329
00330              // Scale column.
00331
00332              Real scale = 0.0;
00333              for (int i = m; i <= high; i++) {
00334                 scale = scale + abs(H(i,m-1));
00335              }
00336              if (scale != 0.0) {
00337
00338                 // Compute Householder transformation.
00339
00340                 Real h = 0.0;
00341                 for (int i = high; i >= m; i--) {
00342                    ort[i] = H(i,m-1)/scale;
00343                    h += ort[i] * ort[i];
00344                 }
00345                 Real g = sqrt(h);
00346                 if (ort[m] > 0) {
00347                    g = -g;
00348                 }
00349                 h = h - ort[m] * g;
00350                 ort[m] = ort[m] - g;
00351
00352                 // Apply Householder similarity transformation
00353                 // H = (I-u*u'/h)*H*(I-u*u')/h)
00354
00355                 for (int j = m; j < n; j++) {
00356                    Real f = 0.0;
00357                    for (int i = high; i >= m; i--) {
00358                       f += ort[i]*H(i,j);
00359                    }
00360                    f = f/h;
00361                    for (int i = m; i <= high; i++) {
00362                       H(i,j) -= f*ort[i];
00363                    }
00364                }
00365
00366                for (int i = 0; i <= high; i++) {
00367                    Real f = 0.0;
00368                    for (int j = high; j >= m; j--) {
00369                       f += ort[j]*H(i,j);
00370                    }
00371                    f = f/h;
00372                    for (int j = m; j <= high; j++) {
00373                       H(i,j) -= f*ort[j];
00374                    }
00375                 }
00376                 ort[m] = scale*ort[m];
00377                 H(m,m-1) = scale*g;
00378              }
00379           }
00380
00381           // Accumulate transformations (Algol's ortran).
00382
00383           for (int i = 0; i < n; i++) {
00384              for (int j = 0; j < n; j++) {
00385                 V(i,j) = (i == j ? 1.0f : 0.0f);
00386              }
00387           }
00388
00389           for (int m = high-1; m >= low+1; m--) {
00390              if (H(m,m-1) != 0)
00391              {
00392                 for (int i = m+1; i <= high; i++) {
00393                    ort[i] = H(i,m-1);
00394                 }
00395                 for (int j = m; j <= high; j++) {
00396                    Real g = 0;
00397                    for (int i = m; i <= high; i++) {
00398                       g += ort[i] * V(i,j);
00399                    }
00400                    // Double division avoids possible underflow
00401                    g = (g / ort[m]) / H(m,m-1);
00402                    for (int i = m; i <= high; i++) {
00403                       V(i,j) += g * ort[i];
00404                    }
00405                 }
00406              }
00407           }
00408        }
00409
00410        // Complex scalar division.
00411         template <class Real>
00412         static void cdiv(Real xr, Real xi, Real yr, Real yi,Real& cdivr,Real& cdivi)
00413         {
00414           Real r,d;
00415           if (abs(yr) > abs(yi)) {
00416              r = yi/yr;
00417              d = yr + r*yi;
00418              cdivr = (xr + r*xi)/d;
00419              cdivi = (xi - r*xr)/d;
00420           } else {
00421              r = yr/yi;
00422              d = yi + r*yr;
00423              cdivr = (r*xr + xi)/d;
00424              cdivi = (r*xi - xr)/d;
00425           }
00426         }
00427
00428
00429         // Nonsymmetric reduction from Hessenberg to real Schur form.
00430         //
00431         //  This is derived from the Algol procedure hqr2,
00432         //  by Martin and Wilkinson, Handbook for Auto. Comp.,
00433         //  Vol.ii-Linear Algebra, and the corresponding
00434         //  Fortran subroutine in EISPACK.
00435        template<class Vec,class Mat>
00436        static void hqr2(int n_this,Vec& d,Vec& e,Mat& V,Mat& H)
00437        {
00438            using namespace std;
00439            typedef typename Mat::value_type Real;
00440
00441           // Initialize
00442
00443           int nn = n_this;
00444           int n = nn-1;
00445           int low = 0;
00446           int high = nn-1;
00447           Real eps = pow(2.0f,-52.0f);
00448           Real exshift = 0;
00449           Real p=0,q=0,r=0,s=0,z=0,t,w,x,y;
00450
00451           Real cdivr, cdivi;
00452
00453           // Store roots isolated by balanc and compute matrix norm
00454
00455           Real norm = 0;
00456           for (int i = 0; i < nn; i++) {
00457              if ((i < low) || (i > high)) {
00458                 d[i] = H(i,i);
00459                 e[i] = 0;
00460              }
00461              for (int j = max(i-1,0); j < nn; j++) {
00462                 norm = norm + abs(H(i,j));
00463              }
00464           }
00465
00466           // Outer loop over eigenvalue index
00467
00468           int iter = 0;
00469           while (n >= low) {
00470
00471              // Look for single small sub-diagonal element
00472
00473              int l = n;
00474              while (l > low) {
00475                 s = abs(H(l-1,l-1)) + abs(H(l,l));
00476                 if (s == 0.0) {
00477                    s = norm;
00478                 }
00479                 if (abs(H(l,l-1)) < eps * s) {
00480                    break;
00481                 }
00482                 l--;
00483              }
00484
00485              // Check for convergence
00486              // One root found
00487
00488              if (l == n) {
00489                 H(n,n) = H(n,n) + exshift;
00490                 d[n] = H(n,n);
00491                 e[n] = 0.0;
00492                 n--;
00493                 iter = 0;
00494
00495              // Two roots found
00496
00497              } else if (l == n-1) {
00498                 w = H(n,n-1) * H(n-1,n);
00499                 p = (H(n-1,n-1) - H(n,n)) / 2;
00500                 q = p * p + w;
00501                 z = sqrt(abs(q));
00502                 H(n,n) = H(n,n) + exshift;
00503                 H(n-1,n-1) = H(n-1,n-1) + exshift;
00504                 x = H(n,n);
00505
00506                 // Real pair
00507
00508                 if (q >= 0) {
00509                    if (p >= 0) {
00510                       z = p + z;
00511                    } else {
00512                       z = p - z;
00513                    }
00514                    d[n-1] = x + z;
00515                    d[n] = d[n-1];
00516                    if (z != 0.0) {
00517                       d[n] = x - w / z;
00518                    }
00519                    e[n-1] = 0.0;
00520                    e[n] = 0.0;
00521                    x = H(n,n-1);
00522                    s = abs(x) + abs(z);
00523                    p = x / s;
00524                    q = z / s;
00525                    r = sqrt(p * p+q * q);
00526                    p = p / r;
00527                    q = q / r;
00528
00529                    // Row modification
00530
00531                    for (int j = n-1; j < nn; j++) {
00532                       z = H(n-1,j);
00533                       H(n-1,j) = q * z + p * H(n-1,j);
00534                       H(n-1,j) = q * H(n-1,j) - p * z;
00535                    }
00536
00537                    // Column modification
00538
00539                    for (int i = 0; i <= n; i++) {
00540                       z = H(i,n-1);
00541                       H(i,n-1) = q * z + p * H(i,n);
00542                       H(i,n) = q * H(i,n) - p * z;
00543                    }
00544
00545                    // Accumulate transformations
00546
00547                    for (int i = low; i <= high; i++) {
00548                       z = V(i,n-1);
00549                       V(i,n-1) = q * z + p * V(i,n);
00550                       V(i,n) = q * V(i,n) - p * z;
00551                    }
00552
00553                 // Complex pair
00554
00555                 } else {
00556                    d[n-1] = x + p;
00557                    d[n] = x + p;
00558                    e[n-1] = z;
00559                    e[n] = -z;
00560                 }
00561                 n = n - 2;
00562                 iter = 0;
00563
00564              // No convergence yet
00565
00566              } else {
00567
00568                 // Form shift
00569
00570                 x = H(n,n);
00571                 y = 0;
00572                 w = 0;
00573                 if (l < n) {
00574                    y = H(n-1,n-1);
00575                    w = H(n,n-1) * H(n-1,n);
00576                 }
00577
00578                 // Wilkinson's original ad hoc shift
00579
00580                 if (iter == 10) {
00581                    exshift += x;
00582                    for (int i = low; i <= n; i++) {
00583                       H(i,i) -= x;
00584                    }
00585                    s = abs(H(n,n-1)) + abs(H(n-1,n-2));
00586                    x = y = 0.75f * s;
00587                    w = -0.4375f * s * s;
00588                 }
00589
00590                 // MATLAB's new ad hoc shift
00591
00592                 if (iter == 30) {
00593                     s = (y - x) / 2;
00594                     s = s * s + w;
00595                     if (s > 0) {
00596                         s = sqrt(s);
00597                         if (y < x) {
00598                            s = -s;
00599                         }
00600                         s = x - w / ((y - x) / 2 + s);
00601                         for (int i = low; i <= n; i++) {
00602                            H(i,i) -= s;
00603                         }
00604                         exshift += s;
00605                         x = y = w = 0.964f;
00606                     }
00607                 }
00608
00609                 iter = iter + 1;   // (Could check iteration count here.)
00610
00611                 // Look for two consecutive small sub-diagonal elements
00612
00613                 int m = n-2;
00614                 while (m >= l) {
00615                    z = H(m,m);
00616                    r = x - z;
00617                    s = y - z;
00618                    p = (r * s - w) / H(m+1,m) + H(m,m+1);
00619                    q = H(m+1,m+1) - z - r - s;
00620                    r = H(m+2,m+1);
00621                    s = abs(p) + abs(q) + abs(r);
00622                    p = p / s;
00623                    q = q / s;
00624                    r = r / s;
00625                    if (m == l) {
00626                       break;
00627                    }
00628                    if (abs(H(m,m-1)) * (abs(q) + abs(r)) <
00629                       eps * (abs(p) * (abs(H(m-1,m-1)) + abs(z) +
00630                       abs(H(m+1,m+1))))) {
00631                          break;
00632                    }
00633                    m--;
00634                 }
00635
00636                 for (int i = m+2; i <= n; i++) {
00637                    H(i,i-2) = 0.0;
00638                    if (i > m+2) {
00639                       H(i,i-3) = 0.0;
00640                    }
00641                 }
00642
00643                 // Double QR step involving rows l:n and columns m:n
00644
00645                 for (int k = m; k <= n-1; k++) {
00646                    int notlast = (k != n-1);
00647                    if (k != m) {
00648                       p = H(k,k-1);
00649                       q = H(k+1,k-1);
00650                       r = (notlast ? H(k+2,k-1) : 0);
00651                       x = abs(p) + abs(q) + abs(r);
00652                       if (x != 0.0) {
00653                          p = p / x;
00654                          q = q / x;
00655                          r = r / x;
00656                       }
00657                    }
00658                    if (x == 0.0) {
00659                       break;
00660                    }
00661                    s = sqrt(p * p + q * q + r * r);
00662                    if (p < 0) {
00663                       s = -s;
00664                    }
00665                    if (s != 0) {
00666                       if (k != m) {
00667                          H(k,k-1) = -s * x;
00668                       } else if (l != m) {
00669                          H(k,k-1) = -H(k,k-1);
00670                       }
00671                       p = p + s;
00672                       x = p / s;
00673                       y = q / s;
00674                       z = r / s;
00675                       q = q / p;
00676                       r = r / p;
00677
00678                       // Row modification
00679
00680                       for (int j = k; j < nn; j++) {
00681                          p = H(k,j) + q * H(k+1,j);
00682                          if (notlast) {
00683                             p = p + r * H(k+2,j);
00684                             H(k+2,j) = H(k+2,j) - p * z;
00685                          }
00686                          H(k,j) = H(k,j) - p * x;
00687                          H(k+1,j) = H(k+1,j) - p * y;
00688                       }
00689
00690                       // Column modification
00691
00692                       for (int i = 0; i <= min(n,k+3); i++) {
00693                          p = x * H(i,k) + y * H(i,k+1);
00694                          if (notlast) {
00695                             p = p + z * H(i,k+2);
00696                             H(i,k+2) = H(i,k+2) - p * r;
00697                          }
00698                          H(i,k) = H(i,k) - p;
00699                          H(i,k+1) = H(i,k+1) - p * q;
00700                       }
00701
00702                       // Accumulate transformations
00703
00704                       for (int i = low; i <= high; i++) {
00705                          p = x * V(i,k) + y * V(i,k+1);
00706                          if (notlast) {
00707                             p = p + z * V(i,k+2);
00708                             V(i,k+2) = V(i,k+2) - p * r;
00709                          }
00710                          V(i,k) = V(i,k) - p;
00711                          V(i,k+1) = V(i,k+1) - p * q;
00712                       }
00713                    }  // (s != 0)
00714                 }  // k loop
00715              }  // check convergence
00716           }  // while (n >= low)
00717
00718           // Backsubstitute to find vectors of upper triangular form
00719
00720           if (norm == 0.0) {
00721              return;
00722           }
00723
00724           for (n = nn-1; n >= 0; n--) {
00725              p = d[n];
00726              q = e[n];
00727
00728              // Real vector
00729
00730              if (q == 0) {
00731                 int l = n;
00732                 H(n,n) = 1.0;
00733                 for (int i = n-1; i >= 0; i--) {
00734                    w = H(i,i) - p;
00735                    r = 0.0;
00736                    for (int j = l; j <= n; j++) {
00737                       r = r + H(i,j) * H(j,n);
00738                    }
00739                    if (e[i] < 0.0) {
00740                       z = w;
00741                       s = r;
00742                    } else {
00743                       l = i;
00744                       if (e[i] == 0.0) {
00745                          if (w != 0.0) {
00746                             H(i,n) = -r / w;
00747                          } else {
00748                             H(i,n) = -r / (eps * norm);
00749                          }
00750
00751                       // Solve real equations
00752
00753                       } else {
00754                          x = H(i,i+1);
00755                          y = H(i+1,i);
00756                          q = (d[i] - p) * (d[i] - p) + e[i] * e[i];
00757                          t = (x * s - z * r) / q;
00758                          H(i,n) = t;
00759                          if (abs(x) > abs(z)) {
00760                             H(i+1,n) = (-r - w * t) / x;
00761                          } else {
00762                             H(i+1,n) = (-s - y * t) / z;
00763                          }
00764                       }
00765
00766                       // Overflow control
00767
00768                       t = abs(H(i,n));
00769                       if ((eps * t) * t > 1) {
00770                          for (int j = i; j <= n; j++) {
00771                             H(j,n) = H(j,n) / t;
00772                          }
00773                       }
00774                    }
00775                 }
00776
00777              // Complex vector
00778
00779              } else if (q < 0) {
00780                 int l = n-1;
00781
00782                 // Last vector component imaginary so matrix is triangular
00783
00784                 if (abs(H(n,n-1)) > abs(H(n-1,n))) {
00785                    H(n-1,n-1) = q / H(n,n-1);
00786                    H(n-1,n) = -(H(n,n) - p) / H(n,n-1);
00787                 } else {
00788                    cdiv(0.0,-H(n-1,n),H(n-1,n-1)-p,q,cdivr,cdivi);
00789                    H(n-1,n-1) = cdivr;
00790                    H(n-1,n) = cdivi;
00791                 }
00792                 H(n,n-1) = 0.0;
00793                 H(n,n) = 1.0;
00794                 for (int i = n-2; i >= 0; i--) {
00795                    Real ra,sa,vr,vi;
00796                    ra = 0.0;
00797                    sa = 0.0;
00798                    for (int j = l; j <= n; j++) {
00799                       ra = ra + H(i,j) * H(j,n-1);
00800                       sa = sa + H(i,j) * H(j,n);
00801                    }
00802                    w = H(i,i) - p;
00803
00804                    if (e[i] < 0.0) {
00805                       z = w;
00806                       r = ra;
00807                       s = sa;
00808                    } else {
00809                       l = i;
00810                       if (e[i] == 0) {
00811                          cdiv(-ra,-sa,w,q,cdivr,cdivi);
00812                          H(i,n-1) = cdivr;
00813                          H(i,n) = cdivi;
00814                       } else {
00815
00816                          // Solve complex equations
00817
00818                          x = H(i,i+1);
00819                          y = H(i+1,i);
00820                          vr = (d[i] - p) * (d[i] - p) + e[i] * e[i] - q * q;
00821                          vi = (d[i] - p) * 2 * q;
00822                          if ((vr == 0.0) && (vi == 0.0)) {
00823                             vr = eps * norm * (abs(w) + abs(q) +
00824                             abs(x) + abs(y) + abs(z));
00825                          }
00826                          cdiv(x*r-z*ra+q*sa,x*s-z*sa-q*ra,vr,vi,cdivr,cdivi);
00827                          H(i,n-1) = cdivr;
00828                          H(i,n) = cdivi;
00829                          if (abs(x) > (abs(z) + abs(q))) {
00830                             H(i+1,n-1) = (-ra - w * H(i,n-1) + q * H(i,n)) / x;
00831                             H(i+1,n) = (-sa - w * H(i,n) - q * H(i,n-1)) / x;
00832                          } else {
00833                             cdiv(-r-y*H(i,n-1),-s-y*H(i,n),z,q,cdivr,cdivi);
00834                             H(i+1,n-1) = cdivr;
00835                             H(i+1,n) = cdivi;
00836                          }
00837                       }
00838
00839                       // Overflow control
00840
00841                       t = max(abs(H(i,n-1)),abs(H(i,n)));
00842                       if ((eps * t) * t > 1) {
00843                          for (int j = i; j <= n; j++) {
00844                             H(j,n-1) = H(j,n-1) / t;
00845                             H(j,n) = H(j,n) / t;
00846                          }
00847                       }
00848                    }
00849                 }
00850              }
00851           }
00852
00853           // Vectors of isolated roots
00854
00855           for (int i = 0; i < nn; i++) {
00856              if (i < low || i > high) {
00857                 for (int j = i; j < nn; j++) {
00858                    V(i,j) = H(i,j);
00859                 }
00860              }
00861           }
00862
00863           // Back transformation to get eigenvectors of original matrix
00864
00865           for (int j = nn-1; j >= low; j--) {
00866              for (int i = low; i <= high; i++) {
00867                 z = 0.0;
00868                 for (int k = low; k <= min(j,high); k++) {
00869                    z = z + V(i,k) * H(k,j);
00870                 }
00871                 V(i,j) = z;
00872              }
00873           }
00874        }
00875
00876     public:
00877         template<class MatrixType>
00878         bool isSymmetric(const MatrixType& A)
00879         {
00880             bool issymmetric = true;
00881             const int n=A.size1();
00882             for (int j = 0; (j < n) && issymmetric; j++)
00883             for (int i = 0; (i < n) && issymmetric; i++)
00884                 issymmetric = (A(i,j) == A(j,i));
00885             return issymmetric;
00886         }
00887
00898         template<class MatrixType,class VectorType>
00899         static void decomp(MatrixType &V,VectorType& eig,VectorType& work)
00900         {//СИММЕТРИЧНАЯ
00901             if( V.size2()!=V.size1() )
00902             throw "eigen: Matrix A must be square !";
00903
00904             int n = V.size2();
00905             // Tridiagonalize.
00906             tred2(n,eig,work,V);
00907             // Diagonalize.
00908             tql2(n,eig,work,V);
00909         }
00926         template<class MatrixType,class VectorType>
00927         static void decomp(MatrixType &V,VectorType& eig_real,VectorType& eig_imag,MatrixType &H,VectorType& work)
00928         {//НЕСИММЕТРИЧНАЯ
00929             if( A.size2()!=A.size1() )
00930                 throw "eigen: Matrix A must be square !";
00931             int n = A.size2();
00932             H=V;
00933             // Reduce to Hessenberg form.
00934             orthes(n,eig_real,eig_imag,V,H,work);
00935             // Reduce Hessenberg to real Schur form.
00936             hqr2(n,d,e,V,H);
00937         }
00938         template<class MatrixType,class VectorType>
00939         static void inverse(MatrixType& Ainv,MatrixType& V,VectorType& lambda,double relerr)
00940         {
00941             inverse_diag_matrix(lambda,relerr);
00942             Ainv=V;
00943             prod_diag(Ainv,lambda);
00944             Ainv=prod(Ainv,trans(V));
00945         }
00946     };
00947
00948
00950 }//namespace Lin
00951 }//namespace NumAlg
00952 }//namespace Vtl
00954 #endif // _NUM_EIGEN_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл _num_implicit.h

  • Файлы
  • Список членов всех файлов

_num_implicit.h

См. документацию.
00001 #ifndef _NUM_IMPLICIT_H
00002 #define _NUM_IMPLICIT_H
00004 #include "_num_boost_adds.h"
00006
00007 namespace Vtl
00008 {
00009 namespace NumAlg
00010 {
00013 namespace Implicit
00014 {
00015     namespace Pred
00016     {
00018         template<class T>
00019         struct gt;
00021         template<class T>
00022         struct lt;
00024         template<class T_,int N_>
00025         struct gt<Vtl::NumAlg::Lin::ublas::c_vector<T_,N_> >
00026         {
00027             enum {N=N_};
00028             typedef T_ value_type;
00029             typedef Vtl::NumAlg::Lin::ublas::c_vector<T_,N_> Vector;
00030             const Vector& v;
00031
00032             gt(const Vector & vec) : v(vec) {}
00033             bool operator()(int elem1,int elem2) const
00034             {
00035                 return v[elem1] > v[elem2];
00036             }
00037         };
00039         template<class T_,int N_>
00040         struct lt<Vtl::NumAlg::Lin::ublas::c_vector<T_,N_> >
00041         {
00042             enum {N=N_};
00043             typedef T_ value_type;
00044             typedef Vtl::NumAlg::Lin::ublas::c_vector<T_,N_> Vector;
00045
00046             const Vector& v;
00047             lt(const Vector & vec) : v(vec) {}
00048             bool operator()(int elem1,int elem2) const
00049             {
00050                 return v[elem1] < v[elem2];
00051             }
00052         };
00053     }//namespace Pred
00057     template<int N_>
00058     class Sort_base
00059     {
00060     public:
00061         enum {N=N_};
00062     private:
00063         int index[N];
00064     public:
00065         template<class Pred2_>
00066         Sort_base(const Pred2_& p,int )
00067         {
00068             Vtl::Meta::set_seq<N>(index,0);
00069             std::sort(index,index+N,p);
00070         }
00071         int operator[](int i) const {return index[i];}
00072         operator const int*() const {return index;}
00073     };
00076     template<>
00077     class Sort_base<0>
00078     {
00079     public:
00080         const int N;
00081     private:
00082         std::vector<int> index;
00083     public:
00084         template<class Pred2_>
00085         Sort_base(const Pred2_& p,int n)
00086             : N(n)
00087         {
00088             index.resize(N);
00089             for(int i=0; i<N; ++i)
00090                 index[i]=i;
00091             std::sort(index.begin(),index.end(),p);
00092         }
00093         int operator[](int i) const {return index[i];}
00094         operator const int*() const {return &(index[0]);}
00095     };
00096
00097
00105     template<class T_,class Pred_=Pred::lt<T_> >
00106     struct Sort;
00107
00155     template<class T_,int N_,class Pred_>
00156     class Sort<Vtl::NumAlg::Lin::ublas::c_vector<T_,N_>,Pred_>
00157         : public Sort_base<((N_>30)?0:N_)> // Если вектор большой - то использовать динамический массив и инициализовывать его циклом, а не рекурсивной подстановкой!
00158     {
00159     public:
00160         typedef T_ value_type;
00161         typedef Vtl::NumAlg::Lin::ublas::c_vector<T_,N_> Vector;
00162     public:
00163         Sort(const Vector& v)
00164             : Sort_base(Pred_(v),N_)
00165         {
00166         }
00167         template<class Pred2_>
00168         Sort(const Vector& v,const Pred2_& p)
00169             : Sort_base(p,N_)
00170         {
00171         }
00172     };
00176     template<typename T,size_t M,size_t N> //,class T_Vector,class T_Predictor>
00177     inline void sort_columns(Vtl::NumAlg::Lin::ublas::c_matrix<T,M,N>& U_sorted
00178                 ,Vtl::NumAlg::Lin::ublas::c_matrix<T,M,N>& U_in
00179                 ,const int* s )
00180     {
00181         using namespace boost::numeric::ublas;
00182         typedef typename c_matrix<T, N, N> Matrix;
00183         for(int i=0; i<N; ++i)
00184         {
00185             matrix_column<Matrix> c( U_sorted, i );
00186             c=column<Matrix>( U_in, s[i] );
00187         }
00188     }
00192     template<typename T> //,class T_Vector,class T_Predictor>
00193     inline void sort_columns(Vtl::NumAlg::Lin::ublas::matrix<T>& U_sorted
00194                 ,const Vtl::NumAlg::Lin::ublas::matrix<T>& U_in
00195                 ,const int* s )
00196     {
00197         using namespace boost::numeric::ublas;
00198         typedef typename matrix<T> Matrix;
00199         if( ( U_sorted.size1() != U_in.size1() )
00200          || ( U_sorted.size2() != U_in.size2() ) )
00201          throw "Vtl::NumAlg::Implicit::sort() : Error: matrices are of different size.";
00202         for(int i=0; i < U_in.size2() ; ++i)
00203         {
00204             matrix_column<Matrix> c( U_sorted, i );
00205             c=column<Matrix>( U_in, s[i] );
00206         }
00207     }
00211     template<typename T,size_t N> //,class T_Vector,class T_Predictor>
00212     inline void sort(Vtl::NumAlg::Lin::ublas::c_vector<T,N>& V_sorted
00213                 ,const Vtl::NumAlg::Lin::ublas::c_vector<T,N>& V_in
00214                 ,const int* s )
00215     {
00216         using namespace boost::numeric::ublas;
00217         for(int i=0; i<N; ++i)
00218             V_sorted(i)= V_in(s[i]);
00219     }
00223     template<typename T> //,class T_Vector,class T_Predictor>
00224     inline void sort(Vtl::NumAlg::Lin::ublas::vector<T>& V_sorted
00225                 ,const Vtl::NumAlg::Lin::ublas::vector<T>& V_in
00226                 ,const int* s )
00227     {
00228         using namespace boost::numeric::ublas;
00229         if ( U_sorted.size() != U_in.size() )
00230          throw "Vtl::NumAlg::Implicit::sort() : Error: vectors are of different size.";
00231         for(int i=0; i<U_in.size() ; ++i)
00232             V_sorted(i)= V_in(s[i]);
00233     }
00234 }//namespace Implicit
00235 }//namespace NumAlg
00236 }//namespace Vtl
00237
00239 #endif //_NUM_IMPLICIT_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл _num_qr.h

  • Файлы
  • Список членов всех файлов

_num_qr.h

См. документацию.
00001 #ifndef _NUM_QR_H
00002 #define _NUM_QR_H
00004 namespace Vtl
00005 {
00006 namespace NumAlg
00007 {
00008 namespace Lin
00009 {
00033 class QR
00034 {
00035
00040 //   TNT::Array2D<Real> QR_;
00041
00046 //   int m, n;
00047
00051 //   TNT::Array1D<Real> Rdiag;
00052
00053
00054 public:
00055
00063 //      template<class MatrixU,class MatrixV,class VectorW,class VectorRV1 >
00064     template<class MatrixQR,class VectorR>
00065     static void decomp(MatrixQR & QR_,VectorR &Rdiag)
00066     {
00067
00068       assert( QR_.size2()==Rdiag.size() );
00069       typedef typename MatrixQR::value_type T;
00070       const int m = QR_.size1();
00071       const int n = QR_.size2();
00072 //      Rdiag = TNT::Array1D<Real>(n);
00073
00074       int i=0, j=0, k=0;
00075
00076       // Main loop.
00077       for (k = 0; k < n; k++) {
00078          // Compute 2-norm of k-th column without under/overflow.
00079          T nrm = 0;
00080          for (i = k; i < m; i++) {
00081             nrm = hypot(nrm,QR_(i,k));
00082          }
00083
00084          if (nrm != 0.0) {
00085             // Form k-th Householder vector.
00086             if (QR_(k,k) < 0) {
00087                nrm = -nrm;
00088             }
00089             for (i = k; i < m; i++) {
00090                QR_(i,k) /= nrm;
00091             }
00092             QR_(k,k) += 1.0;
00093
00094             // Apply transformation to remaining columns.
00095             for (j = k+1; j < n; j++) {
00096                T s = 0.0;
00097                for (i = k; i < m; i++) {
00098                   s += QR_(i,k)*QR_(i,j);
00099                }
00100                s = -s/QR_(k,k);
00101                for (i = k; i < m; i++) {
00102                   QR_(i,j) += s*QR_(i,k);
00103                }
00104             }
00105          }
00106          Rdiag[k] = -nrm;
00107       }
00108    }
00109     template<class MatrixQR,class MatrixQ,class MatrixR,class VectorR>
00110     static void decomp(MatrixQR & QR_,MatrixQ& Q,MatrixR& R,VectorR &Rdiag)
00111     {
00112         decomp(QR_,Rdiag);
00113         getR(QR_,Rdiag,R);
00114         getQ(QR_,Rdiag,Q);
00115     }
00116
00123     template<class MatrixQR,class MatrixR,class VectorR>
00124     static void getR(const MatrixQR & QR_,const VectorR &Rdiag,MatrixR& R)
00125     {
00126         assert( R.size1() == R.size2() );
00127         assert( R.size1() == QR_.size2() );
00128         assert( QR_.size2()==Rdiag.size() );
00129
00130         typedef typename MatrixQR::value_type T;
00131
00132         const int n = QR_.size2();
00133
00134       for (int i = 0; i < n; i++)
00135       {
00136          for (int j = 0; j < n; j++)
00137          {
00138             if (i < j)
00139                R(i,j) = QR_(i,j);
00140             else if (i == j)
00141                R(i,j) = Rdiag[i];
00142             else
00143                R(i,j) = 0.0;
00144          }
00145       }
00146    }
00147
00148
00149
00158     template<class MatrixQR,class MatrixQ,class VectorR>
00159     static void getQ(const MatrixQR & QR_,const VectorR &Rdiag,MatrixQ& Q)
00160     {
00161         assert( Q.size1() == QR_.size1() );
00162         assert( Q.size2() == QR_.size2() );
00163         assert( QR_.size2()==Rdiag.size() );
00164
00165         typedef typename MatrixQR::value_type T;
00166
00167         const int m = QR_.size1();
00168         const int n = QR_.size2();
00169
00170         for (int k = n-1; k >= 0; k--)
00171         {
00172             for (int i = 0; i < m; i++)
00173                 Q(i,k) = 0.0;
00174             Q(k,k) = 1.0;
00175             for (int j = k; j < n; j++)
00176             {
00177                 if (QR_(k,k) != 0)
00178                 {
00179                     T s = 0.0;
00180                     for (int i = k; i < m; i++)
00181                         s += QR_(i,k)*Q(i,j);
00182                     s = -s/QR_(k,k);
00183                     for (int i = k; i < m; i++)
00184                         Q(i,j) += s*QR_(i,k);
00185                 }
00186             }
00187         }
00188    }
00189
00190
00196     template<class VectorR>
00197     static bool isFullRank(const VectorR &Rdiag)
00198     {
00199
00200       const int n = Rdiag.size();
00201       for (int j = 0; j < n; j++)
00202       {
00203          if (Rdiag[j] == 0)
00204             return false;
00205       }
00206       return true;
00207     }
00214     template<class MatrixQR,class MatrixH>
00215     static void getHouseholder(const MatrixQR & QR_,MatrixH& H)
00216     {
00217         assert( H.size1() == QR_.size1() );
00218         assert( H.size2() == QR_.size2() );
00219
00220         //      typedef typename MatrixQR::value_type T;
00221
00222         const int m = QR_.size1();
00223         const int n = QR_.size2();
00224
00225         // note: H is completely filled in by algorithm, so
00226         // initializaiton of H is not necessary.
00227         for (int i = 0; i < m; i++)
00228         {
00229             for (int j = 0; j < n; j++)
00230                 H(i,j) = (i >= j) ? QR_(i,j) : 0;
00231         }
00232     }
00233
00234
00235 #if 0
00236
00237
00238
00239
00240
00241
00242
00243
00251    TNT::Array1D<Real> solve(const TNT::Array1D<Real> &b) const
00252    {
00253       if (b.dim1() != m)        /* arrays must be conformant */
00254         return TNT::Array1D<Real>();
00255
00256       if ( !isFullRank() )      /* matrix is rank deficient */
00257       {
00258         return TNT::Array1D<Real>();
00259       }
00260
00261       TNT::Array1D<Real> x = b.copy();
00262
00263       // Compute Y = transpose(Q)*b
00264       for (int k = 0; k < n; k++)
00265       {
00266             Real s = 0.0;
00267             for (int i = k; i < m; i++)
00268             {
00269                s += QR_(i,k)*x[i];
00270             }
00271             s = -s/QR_(k,k);
00272             for (int i = k; i < m; i++)
00273             {
00274                x[i] += s*QR_(i,k);
00275             }
00276       }
00277       // Solve R*X = Y;
00278       for (int k = n-1; k >= 0; k--)
00279       {
00280          x[k] /= Rdiag[k];
00281          for (int i = 0; i < k; i++) {
00282                x[i] -= x[k]*QR_(i,k);
00283          }
00284       }
00285
00286
00287       /* return n x nx portion of X */
00288       TNT::Array1D<Real> x_(n);
00289       for (int i=0; i<n; i++)
00290             x_[i] = x[i];
00291
00292       return x_;
00293    }
00294
00302    TNT::Array2D<Real> solve(const TNT::Array2D<Real> &B) const
00303    {
00304       if (B.dim1() != m)        /* arrays must be conformant */
00305         return TNT::Array2D<Real>(0,0);
00306
00307       if ( !isFullRank() )      /* matrix is rank deficient */
00308       {
00309         return TNT::Array2D<Real>(0,0);
00310       }
00311
00312       int nx = B.dim2();
00313       TNT::Array2D<Real> X = B.copy();
00314       int i=0, j=0, k=0;
00315
00316       // Compute Y = transpose(Q)*B
00317       for (k = 0; k < n; k++) {
00318          for (j = 0; j < nx; j++) {
00319             Real s = 0.0;
00320             for (i = k; i < m; i++) {
00321                s += QR_(i,k)*X[i][j];
00322             }
00323             s = -s/QR_(k,k);
00324             for (i = k; i < m; i++) {
00325                X[i][j] += s*QR_(i,k);
00326             }
00327          }
00328       }
00329       // Solve R*X = Y;
00330       for (k = n-1; k >= 0; k--) {
00331          for (j = 0; j < nx; j++) {
00332             X[k][j] /= Rdiag[k];
00333          }
00334          for (i = 0; i < k; i++) {
00335             for (j = 0; j < nx; j++) {
00336                X[i][j] -= X[k][j]*QR_(i,k);
00337             }
00338          }
00339       }
00340
00341
00342       /* return n x nx portion of X */
00343       TNT::Array2D<Real> X_(n,nx);
00344       for (i=0; i<n; i++)
00345         for (j=0; j<nx; j++)
00346             X_[i][j] = X[i][j];
00347
00348       return X_;
00349    }
00350
00351 #endif
00352
00353 };
00354
00355
00357 }//namespace Lin
00358 }//namespace NumAlg
00359 }//namespace Vtl
00361 #endif //_NUM_QR_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл _num_svd.h

  • Файлы
  • Список членов всех файлов

_num_svd.h

См. документацию.
00001 #ifndef _NUM_SVD_H
00002 #define _NUM_SVD_H
00004 namespace Vtl
00005 {
00006 namespace NumAlg
00007 {
00008 namespace Lin
00009 {
00010
00011     template<typename T> inline T sing_fortran(T x1,T x2) { return (x2 >= 0) ? std::abs(x1) : -std::abs(x1); }
00012     class svd
00013     {
00015         template<typename T,class MatrixU,class VectorW,class VectorRV1 >
00016         static void hausholder(T& G,T& ANORM,VectorW& W,MatrixU& UU,VectorRV1& RV1)
00017         {
00018             const int M=UU.size1();
00019             const int N=UU.size2();
00020             G=0.;
00021             T SCALE=0.;
00022             ANORM=0.;
00023         //
00024
00025             for(int i=0; i < N ; ++i )
00026             {
00027                 int L=i+1;
00028                 RV1[i]=SCALE*G;
00029                 G=0.;
00030                 T S=0.;
00031                 SCALE=0.;
00032                 if( i < M )
00033                 {
00034                     for(int k=i; k < M; ++k)
00035                     {
00036                         SCALE=SCALE+std::abs(UU(k,i));
00037                     }
00038                     if( SCALE != 0. )
00039                     {
00040                         for(int k=i; k < M; ++k)
00041                         {
00042                             UU(k,i)=UU(k,i)/SCALE;
00043                             T t=UU(k,i);
00044                             S=S+t*t;
00045                         }
00046                         T F=UU(i,i);
00047                         G=-sing_fortran(std::sqrt(S),F);
00048                         T H=F*G-S;
00049                         UU(i,i)=F-G;
00050                         if( i != (N-1) )
00051                         {
00052                             for(int j=L; j < N; ++j )
00053                             {
00054                                 S=0.;
00055                                 for(int k=i; k < M; ++k)
00056                                 {
00057                                     S=S+UU(k,i)*UU(k,j);
00058                                 }
00059                                 T F=S/H;
00060                                 for(int k=i; k < M; ++k)
00061                                 {
00062                                     UU(k,j)=UU(k,j)+F*UU(k,i);
00063                                 }
00064                             }
00065                         }
00066                         for(int k=i; k < M; ++k)
00067                         {
00068                             UU(k,i)=SCALE*UU(k,i);
00069                         }
00070                     }
00071                 }
00072                 W[i]=SCALE*G;
00073                 G=0.;
00074                 S=0.;
00075                 SCALE=0.;
00076                 if( !(i >= M || i == (N-1)) )
00077                 {
00078                     for(int k=L; k < N; ++k)
00079                     {
00080                         SCALE=SCALE+std::abs(UU(i,k));
00081                     }
00082                     if( SCALE != 0. )
00083                     {
00084                         for(int k=L; k < N; ++k)
00085                         {
00086                             UU(i,k)=UU(i,k)/SCALE;
00087                             T t=UU(i,k);
00088                             S=S+t*t;
00089                         }
00090                         T F=UU(i,L);
00091                         G=-sing_fortran(std::sqrt(S),F);
00092                         T H=F*G-S;
00093                         UU(i,L)=F-G;
00094                         for( int k=L; k < N; ++k)
00095                         {
00096                             RV1[k]=UU(i,k)/H;
00097                         }
00098                         if( i != (M-1) )
00099                         {
00100                             for( int j=L; j < M; ++j )
00101                             {
00102                                 S=0.;
00103                                 for( int k=L; k < N; ++k)
00104                                 {
00105                                     S=S+UU(j,k)*UU(i,k);
00106                                 }
00107                                 for( int k=L; k < N; ++k)
00108                                 {
00109                                     UU(j,k)=UU(j,k)+S*RV1[k];
00110                                 }
00111                             }
00112                         }
00113                         for( int k=L; k < N; ++k )
00114                         {
00115                             UU(i,k)=SCALE*UU(i,k);
00116                         }
00117                     }
00118                 }
00119                 ANORM=std::max(ANORM,std::abs(W[i])+std::abs(RV1[i]));
00120             }
00121         }
00122     public:
00189         template<class MatrixU,class MatrixV,class VectorW,class VectorRV1 >
00190         static int decomp(MatrixU& UU,VectorW& W,MatrixV& VV,VectorRV1& RV1,bool calcU=true,bool calcV=true)
00191         {
00192             typedef typename MatrixU::value_type T;
00193         //  int NM;
00194             const int M=UU.size1();
00195             const int N=UU.size2();
00196             if( UU.size2()!=VV.size1() || UU.size2()!=VV.size2())
00197                 throw "svd: Matrix V must be square with N equal to number of columns of matrix A!";
00198             if( UU.size2()!=W.size() )
00199                 throw "svd: Vector W must have size equal to number of columns of matrix A!";
00200         //------< хаусхолдерово приведение к двухдиагональной форме >----
00201             T G=0.;
00202             T ANORM=0.;
00203             hausholder(G,ANORM,W,UU,RV1);
00204         //---------< накопление правосторонних преобразований >--
00205             if( calcV )
00206             {// для I=N с шагом -1 до 1 выполнить
00207                 int L;
00208                 for( int ii=0; ii < N; ++ii )
00209                 {
00210                     int i=N-1-ii;
00211                     if( i != (N-1) )
00212                     {
00213                         if( G != 0.)
00214                         {
00215                             for( int j=L; j < N; ++j)
00216                                 VV(j,i)=(UU(i,j)/UU(i,L))/G; //< двойное деление обходит возможный машинный нуль
00217                             for( int j=L; j < N; j ++)
00218                             {
00219                                 T S=0.;
00220                                 for( int k=L; k < N; ++k )
00221                                     S += UU(i,k)*VV(k,j);
00222                                 for( int k=L; k < N; ++k )
00223                                     VV(k,j) += S*VV(k,i);
00224                             }
00225                         }
00226                         for( int j=L; j < N; ++j)
00227                         {
00228                             VV(i,j)=0.;
00229                             VV(j,i)=0.;
00230                         }
00231                     }
00232                     VV(i,i)=1.;
00233                     G=RV1[i];
00234                     L=i;
00235                 }
00236             }
00237         //--------< накопление левосторонних преобразований >--
00238             if( calcU )
00239             { //для I=min{ N,M } с шагом -1 до 1 выполнить
00240                 const int MN=std::min(M,N);
00241         //
00242                 for( int ii=0; ii < MN; ++ii )
00243                 {
00244                     int i=MN-1-ii;
00245                     int L=i+1;
00246                     G=W[i];
00247                     if( i != (N-1) )
00248                     {
00249                         for( int j=L; j < N; ++j )
00250                              UU(i,j)=0.;
00251                     }
00252                     if( G == 0. )
00253                     {
00254                         for( int j=i; j < M; ++j)
00255                             UU(j,i)=0.;
00256                     }
00257                     else
00258                     {
00259                         if( i != (MN-1) )
00260                         {
00261                             for( int j=L; j < N; ++j)
00262                             {
00263                                 T S=0.;
00264                                 for( int k=L; k < M; ++k )
00265                                     S += UU(k,i)*UU(k,j);
00266                     //--------------< двойное деление обходит возможный машинный нуль >---
00267                                 T F=(S/UU(i,i))/G;
00268                                 for( int k=i; k < M; ++k )
00269                                     UU(k,j) += F*UU(k,i);
00270                             }
00271                         }
00272                         for( int j=i; j < M; ++j)
00273                             UU(j,i)=UU(j,i)/G;
00274                     }
00275                     UU(i,i) += 1.0f;
00276                 }
00277             }
00278         //------< диагонализация двухдиагональной формы >---
00279         //--------< для K=N с шагом -1 до 1 выполнить - >---
00280
00281                 int ITS;
00282                 for(int kk=0; kk <  N ; ++kk)
00283                 {
00284                     const int K1=N-1-kk;
00285                     int K=K1+1;
00286                     ITS=0;
00287         //--------< проверка возможности расщепления. Для L=K
00288         //          с шагом -1 до 1 выполнить >----
00289         L520:
00290
00291                     int L;
00292                     int L1;
00293                     for(int LL=0; LL < K; ++LL )
00294                     {
00295                         L=K-1-LL;
00296                         L1=L-1;
00297                         if( std::abs(RV1[L])+ANORM == ANORM ) goto L565;
00298                         // RV1(0) всегда равно нулю, поэтому выхода через конец цикла не будет.
00299                         if( std::abs(W[L1])+ANORM == ANORM ) break;
00300                     }
00301         // если L больше, чем 1, то RV1(L-1) присваивается 0.
00302                     T C=0.;
00303                     T S=1.;
00304                     for(int i=L; i < K; ++i )
00305                     {
00306                         T F=S*RV1[i];
00307                         RV1[i]=C*RV1[i];
00308                         if( std::abs(F)+ANORM == ANORM ) goto L565;
00309                         G=W[i];
00310                         T H=std::sqrt(F*F+G*G);
00311                         W[i]=H;
00312                         C=G/H;
00313                         S=-F/H;
00314                         if( calcU )
00315                         {
00316                             for(int j=0; j < M ; ++j )
00317                             {
00318                                  T Y=UU(j,L1);
00319                                  T Z=UU(j,i);
00320                                  UU(j,L1) = Y*C+Z*S;
00321                                  UU(j,i) = -Y*S+Z*C;
00322                             }
00323                         }
00324                     }
00325         //-------<  проверка сходимости  >------
00326         L565:
00327                     T Z=W[K-1];
00328                     if( (L+1) != K )
00329                     { // сдвиг выбирается из нижнего углового минора порядка 2.
00330                         if( ITS == 30 )
00331                         {
00332                             // установить значение признака ошибки - после 30 итераций
00333                             // нет сходимости к сингулярному числу.
00334                             return K;//(IERR)
00335                         }
00336                         ITS=ITS+1;
00337                         T X=W[L];
00338                         T Y=W[K1-1];
00339                         G=RV1[K1-1];
00340                         T H=RV1[K-1];
00341                         T F=((Y-Z)*(Y+Z)+(G-H)*(G+H))/(2*H*Y);
00342                         G=std::sqrt(F*F+1);
00343                         F=((X-Z)*(X+Z)+H*(Y/(F+sing_fortran(G,F))-H))/X;
00344             //-------< следующее QR-преобразование >---
00345                         T C=1.;
00346                         T S=1.;
00347                         for(int i1=L; i1 < K1; ++i1 )
00348                         {
00349                             int i=i1+1;
00350                             G=RV1[i];
00351                             Y=W[i];
00352                             H=S*G;
00353                             G=C*G;
00354                             Z=std::sqrt(F*F+H*H);
00355                             RV1[i1]=Z;
00356                             C=F/Z;
00357                             S=H/Z;
00358                             F=X*C+G*S;
00359                             G=-X*S+G*C;
00360                             H=Y*S;
00361                             Y=Y*C;
00362                             if( calcV )
00363                             {
00364                                 for( int j=0; j < N ; ++j )
00365                                 {
00366                                     X=VV(j,i1);
00367                                     Z=VV(j,i);
00368                                     VV(j,i1)=X*C+Z*S;
00369                                     VV(j,i)=-X*S+Z*C;
00370                                 }
00371                             }
00372                             Z=std::sqrt(F*F+H*H);
00373                             W[i1]=Z;
00374                             //---< Вращение может быть произвольным, если Z равно нулю >--
00375                             if( Z != 0. )
00376                             {
00377                                 C=F/Z;
00378                                 S=H/Z;
00379                             }
00380                             F =  C*G+S*Y;
00381                             X = -S*G+C*Y;
00382                             if( calcU )
00383                             {
00384                                 for( int j=0; j < M; ++j )
00385                                 {
00386                                     Y=UU(j,i1);
00387                                     Z=UU(j,i);
00388                                     UU(j,i1) =  Y*C+Z*S;
00389                                     UU(j,i)  = -Y*S+Z*C;
00390                                 }
00391                             }
00392                         }
00393             //
00394                         RV1[L]=0.;
00395                         RV1[K-1]=F;
00396                         W[K-1]=X;
00397                         goto L520;
00398                     }
00399         //-------< сходимость >----
00400                     if( Z < 0. )
00401                     {// W[K-1] делается неотрицательным
00402                         W[K-1]=-Z;
00403                         if( calcV )
00404                         {
00405                             for( int j=0; j < N ; ++j )
00406                                 VV(j,K-1)=-VV(j,K-1);
00407                         }
00408                     }
00409                 }
00410             return 0;//(IERR=0)
00411         }
00413         template<class MatrixU,class MatrixV,class VectorW>
00414         static void comp(MatrixU& A,MatrixU& UU,VectorW& W,MatrixV& VV)
00415         {
00416             A=UU;
00417             prod_diag(A,W);
00418             A=prod(A,trans(VV));
00419         }
00420         /*
00421          * \brief Вычисляет псевдообратную матрицу.
00422          *
00423          * На входе -результаты сингулярного разложения UU, S, VV.
00424          *
00425          * На выходе - псевдообратная матрица Ainv.
00426          *
00427          * ПОРТИТ данные в W и V
00428          *
00429          * Ainv и UU могут совпадать.
00430          *
00431          *********************************************************************************/
00432         template<class MatrixAinv,class MatrixU,class VectorS,class MatrixV>
00433         static void inverse(MatrixAinv& Ainv,MatrixU& UU,VectorS& W,MatrixV& VV,double relerr)
00434         {
00435             inverse_diag_matrix_positive(W,relerr);
00436             prod_diag(VV,W);
00437             Ainv=prod(VV,trans(UU));
00438         }
00439         /*
00440          * \brief Вычисляет псевдообратную матрицу.
00441          *
00442          * На входе -матрица A. Выполняет сингулярное разложение.
00443          *
00444          * На выходе - псевдообратная матрица Ainv.
00445          *
00446          * ПОРТИТ данные в A
00447          * Ainv и A НЕ должеы совпадать.
00448          *
00449          *********************************************************************************/
00450         template<typename T,size_t M,size_t N>
00451         static void inverse(ublas::c_matrix<T,N,M>& Ainv,ublas::c_matrix<T,M,N>& A,double relerr)
00452         {
00453             ublas::c_matrix<T,N,N> V;
00454             ublas::c_vector<T,N> s;
00455             ublas::c_vector<T,N> rv1;
00456             decomp(A,s,V,rv1);
00457             inverse(Ainv,A,s,V,relerr);
00458         }
00459         /*
00460          * \brief Вычисляет псевдообратную матрицу.
00461          *
00462          * На входе -матрица A. Выполняет сингулярное разложение.
00463          *
00464          * На выходе - псевдообратная матрица Ainv.
00465          *
00466          * НЕ ПОРТИТ данные в A
00467          * Ainv и A могут совпадать.
00468          *
00469          *********************************************************************************/
00470         template<typename T,size_t M,size_t N>
00471         static void inverse_save(ublas::c_matrix<T,N,M>& Ainv,ublas::c_matrix<T,M,N> A,double relerr)
00472         {
00473             inverse(Ainv,A,relerr);
00474         }
00475         /*
00476          * \brief Вычисляет псевдообратную матрицу.
00477          *
00478          * На входе -матрица A. Выполняет сингулярное разложение.
00479          *
00480          * Возвращает - псевдообратную матрицу.
00481          *
00482          * ПОРТИТ данные в A
00483          *
00484          *********************************************************************************/
00485         template<typename T,size_t M,size_t N>
00486         static ublas::c_matrix<T,N,M> inverse(ublas::c_matrix<T,M,N>& A,double relerr)
00487         {
00488             ublas::c_matrix<T,N,M> Ainv;
00489             inverse(Ainv,A,relerr);
00490             return Ainv;
00491         }
00492         /*
00493          * \brief Вычисляет псевдообратную матрицу.
00494          *
00495          * На входе -матрица A. Выполняет сингулярное разложение.
00496          *
00497          * Возвращает - псевдообратную матрицу.
00498          *
00499          * НЕ ПОРТИТ данные в A
00500          *
00501          *********************************************************************************/
00502         template<typename T,size_t M,size_t N>
00503         static ublas::c_matrix<T,N,M> inverse_save(ublas::c_matrix<T,M,N> A,double relerr)
00504         {
00505             return inverse(A,relerr);
00506         }
00507         template<class VectorRes,class VectorB,class MatrixU,class VectorS,class MatrixV>
00508         static void solve(VectorRes& result,VectorB& b,MatrixU& U,VectorS& S,MatrixV& V,double relerr)
00509         {
00510             inverse_diag_matrix(S,relerr);
00511             result=prod(trans(U),b);
00512             result=element_prod(S,result);
00513             result=prod(V,result);
00514         }
00515         template<typename T,size_t M,size_t N>
00516         static void solve(ublas::c_vector<T,N>& x,ublas::c_matrix<T,M,N>& A,ublas::c_vector<T,M>& b,double relerr)
00517         {
00518             ublas::c_matrix<T,N,N> V;
00519             ublas::c_vector<T,N> s;
00520             decomp(A,s,V,x);
00521             solve(x,b,A,s,V,relerr);
00522         }
00523         template<typename T,size_t M,size_t N>
00524         static void solve_save(ublas::c_vector<T,N>& x,ublas::c_matrix<T,M,N> A,ublas::c_vector<T,M> b,double relerr)
00525         {
00526             solve(x,A,b,relerr);
00527         }
00528         template<typename T,size_t M,size_t N>
00529         static ublas::c_vector<T,N> solve(ublas::c_matrix<T,M,N>& A,ublas::c_vector<T,M>& b,double relerr)
00530         {
00531             ublas::c_vector<T,N> x;
00532             solve(x,A,b,relerr);
00533             return x;
00534         }
00535         template<typename T,size_t M,size_t N>
00536         static ublas::c_vector<T,N> solve_save(ublas::c_matrix<T,M,N> A,ublas::c_vector<T,M> b,double relerr)
00537         {
00538             return solve(A,b,relerr);
00539         }
00540
00542         template<typename T,size_t N>
00543         static void sort(Vtl::NumAlg::Lin::ublas::c_matrix<T,N,N>& U
00544                     ,Vtl::NumAlg::Lin::ublas::c_vector<T,N>& W
00545                     ,Vtl::NumAlg::Lin::ublas::c_matrix<T,N,N>& V)
00546         {
00547             using namespace Vtl::NumAlg::Lin::ublas;
00548             //using namespace Vtl::NumAlg::Implicit;
00549             using namespace Vtl::NumAlg;
00550
00551             typedef typename c_matrix<T, N, N> Matrix;
00552             typedef typename c_vector<T,N> Vector;
00553             typedef typename Matrix::value_type value_type;
00554
00555             Implicit::Sort<Vector,Implicit::Pred::gt<Vector> > s(W);
00556             Matrix C;
00557             C=U;
00558             Implicit::sort_columns(U,C,s);
00559             C=V;
00560             Implicit::sort_columns(V,C,s);
00561             Vector Ct(W);
00562             Implicit::sort(W,Ct,s);
00563         }
00564     };
00566 }//namespace Lin
00567 }//namespace NumAlg
00568 }//namespace Vtl
00570 #endif //_NUM_SVD_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл AbsDifference.h

  • Файлы
  • Список членов всех файлов

AbsDifference.h

См. документацию.
00001 #ifndef ABS_DIFFERENCE_H
00002 #define ABS_DIFFERENCE_H
00003
00004 // library includings
00005 #include "aimage.h"
00006 #include "imalg_resampling.h"
00007 #include "imalg_tools.h"
00008 #include "consolap.h"
00009
00010 namespace Basics3D
00011 {
00012     class C_AbsDifference
00013     {
00014     private:
00015         const AImageMem8* m_im1;
00016         const AImageMem8* m_im2;
00017         AImageMem8* m_dif;
00018
00019     public:
00020         C_AbsDifference(const AImageMem8* in_im1,
00021                                         const AImageMem8* in_im2);
00022
00023         void Apply();
00024
00025         void Save(const char *in_filename);
00026
00027         //~C_AbsDifference();
00028     };
00029 }
00030 #endif // ABS_DIFFERENCE_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл AbsoluteDualQuadric.h

  • Файлы
  • Список членов всех файлов

AbsoluteDualQuadric.h

См. документацию.
00001 #ifndef ABSOLUTE_DUAL_QUADRIC_H
00002 #define ABSOLUTE_DUAL_QUADRIC_H
00003
00004 // library includings
00005 #include "num_linalg.h"
00006
00007 // own includings
00008 #include "MatrixOperations.h"
00009 #include "Func.h"
00010 #include "SolveEq.h"
00011
00012 namespace Basics3D
00013 {
00014     class AbsoluteDualQuadric
00015     {
00016     private:
00017         void CreateSystem(Vtl::NumAlg::Lin::ublas::c_matrix<double, 8, 10> &out_s,
00018                             const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4> &in_P,
00019                             const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4> &in_P1);
00020
00021         int SolveDet0(Vtl::NumAlg::Lin::ublas::c_matrix<double, 4, 16> &out_Q,
00022                          const Vtl::NumAlg::Lin::ublas::c_matrix<double, 8, 10> &in_s);
00023
00024     public:
00025         int Get(Vtl::NumAlg::Lin::ublas::c_matrix<double, 4, 16> &out_Q,
00026                    const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4> &in_P,
00027                      const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4> &in_P1);
00028     };
00029 }
00030
00031 #endif // ABSOLUTE_DUAL_QUADRIC_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл aimage.h

  • Файлы
  • Список членов всех файлов

aimage.h

См. документацию.
00001 #ifndef _AIMAGE_H
00002 #define _AIMAGE_H
00003 #include <string.h>
00004 #include <assert.h>
00005 #include "ytypes.h"
00006 #include "progrcnt.h"
00007
00011 typedef uint8_t    Pixel8;
00012 typedef Pixel8 *  Pixel8Ptr;
00013 typedef uint16_t     Pixel16;
00014 typedef Pixel16 * Pixel16Ptr;
00015 typedef float     PixelFloat;
00016 typedef PixelFloat * PixelFloatPtr;
00017
00018
00020 class AImage;
00021 typedef AImage*         AImagePtr;
00022 class AImageMem8;
00023 typedef AImageMem8*     AImageMem8Ptr;
00024 class AImageMem16;
00025 typedef AImageMem16*    AImageMem16Ptr;
00026 class AImageMemFloat;
00027 typedef AImageMemFloat* AImageMemFloatPtr;
00028 class AImageMemRgb8;
00029 typedef AImageMemRgb8*  AImageMemRgb8Ptr;
00030 class AImageMemRgb16;
00031 typedef AImageMemRgb16* AImageMemRgb16Ptr;
00032
00092
00115 AImage * AImageLoad(AImage *img,bool replace,const char *fname,ProgressCounter* indicator=0);
00133 void AImageSave(const AImage * img,const char *fname,ProgressCounter* indicator=0);
00135 // class AImage
00138 class AImage
00139 {
00140 public:
00141 //TYPES
00142     class Error
00143     :public ErrorStatusBase
00144     {
00145         char message[512];
00146     public:
00147         Error(const char *fname,int nline,const AImage *obj,const char *msgfmt,...);
00148     };
00149     struct Rgb
00150     {
00151         Pixel8 r;
00152         Pixel8 g;
00153         Pixel8 b;
00154     };
00155     struct Bgr
00156     {
00157         Pixel8 b;
00158         Pixel8 g;
00159         Pixel8 r;
00160     };
00162     enum YImageClass
00163     {
00164         IMGC_UNKNOWN,
00165         IMGC_BILEVEL,
00166         IMGC_GRAYSCALE,
00167         IMGC_PALETTE,
00168         IMGC_RGB,
00169         IMGC_FLOAT
00170     };
00173     enum YImageStore
00174     {
00175         IMGS_Unknown,
00176         IMGS_AImageMem8,
00177         IMGS_AImageMem16,
00178         IMGS_AImageMemFloat,
00179         IMGS_AImageMemRgb8,
00180         IMGS_AImageMemRgb16
00181     };
00187     struct Info
00188     {
00189         int width;
00190         int height;
00191         int bits;
00192         YImageClass iclass;
00193         YImageStore istore;
00194     };
00195 //object identification
00196     static  const char * ImageStoreName(YImageStore istore);
00197     static  const char * ImageClassName(YImageClass iclass);
00198   static  const char * ThisClassName();
00199   virtual const char * ClassName() const { return ThisClassName(); }
00200 //store
00204     virtual AImage * GetFullImage() const { return 0;}
00205     virtual AImage::YImageStore GetImageStore() const=0;
00206 //Creation/destroying   ,load/Save, verification
00207     AImage() {}
00208     virtual ~AImage() {}
00209     virtual bool IsOk() const=0;
00210 //  virtual void Load(const char *filename,ProgressCounter* indicator=0)
00211 //      {::AImageLoad(this,false,filename,indicator);}
00212 //  virtual void Save(const char *filename,ProgressCounter* indicator=0) const
00213 //      {::AImageSave(this,filename,indicator);}
00214   virtual bool Create(short width,short height,short bitsPerPix,bool hasPalette=false)=0;
00215   virtual void Clear()=0;
00216 // Image info
00217     virtual int Width()  const=0;
00218     virtual int Height() const=0;
00219   virtual int Bits()   const=0;
00220   virtual int NextLineShift() const=0;
00221     virtual int NumPlanes() const { return 1;}
00222   virtual AImage  * GetPlane(int plane) { return this;}
00223   virtual const AImage  * GetPlane(int plane) const { return this;}
00224     virtual YImageClass  ImageClass() const=0;
00225     virtual const char * ImageStore() const {   return AImage::ImageStoreName(GetImageStore()); }
00226     virtual const char * ImageClassName() const {   return AImage::ImageClassName(ImageClass()); }
00227     Info GetImageInfo() const
00228     {
00229         Info inf;
00230         inf.width=Width();
00231         inf.height=Height();
00232         inf.bits=Bits();
00233         inf.iclass=ImageClass();
00234         inf.istore=GetImageStore();
00235         return inf;
00236     }
00237
00238     static bool CopyPalette(AImage* to,const AImage* from); //if cant copy - returns false
00239     virtual int GetPaletteEntries() const { return 0;}
00240     virtual AImage::Rgb *Palette() const { return 0;}
00241     virtual void read(int x,int y,Pixel16 *data,int len) const=0;
00243     virtual void ChangeBits(int bits) { }
00245     virtual void ChangeHeight(short new_height)
00246         { Create(short(Width()),new_height,short(Bits()),ImageClass()==IMGC_PALETTE);   }
00247 };
00248
00250 bool AImageIsCompatible(AImage *img,AImage::YImageClass iclass,short width,short height,short bitsPerPix);
00277 AImage *AImageCreate(AImage *img,AImage::YImageClass iclass,short width,short height,short bitsPerPix);
00278 inline AImage *AImageCreate(AImage *img,AImage::Info inf)
00279 {
00280     return AImageCreate(img,inf.iclass,inf.width,inf.height,inf.bits);
00281 }
00283
00285 // class AImageMem8
00288 class AImageMem8
00289 : virtual public AImage
00290 {
00291 public:
00292     typedef Pixel8 Pixel;
00293   static const char *ThisClassName();
00294   virtual const char *ClassName() const { return ThisClassName(); }
00295     virtual AImage::YImageStore GetImageStore() const { return AImage::IMGS_AImageMem8; }
00296     AImageMem8() {}
00297   virtual ~AImageMem8() {}
00298   virtual Pixel8 * operator[](int y) const=0;
00299     static void SetTo(AImageMem8* img,Pixel8 color);
00300   virtual void SetTo(Pixel8 color) {SetTo(this,color);}
00301 };
00303 // class AImageMem16
00306 class AImageMem16
00307 : virtual public AImage
00308 {
00309 private:
00310     AImageMem16(const AImageMem16& im);
00311 public:
00312     typedef Pixel16 Pixel;
00313   static const char *ThisClassName();
00314   virtual const char *ClassName() const { return ThisClassName(); }
00315     virtual AImage::YImageStore GetImageStore() const { return AImage::IMGS_AImageMem16; }
00316     AImageMem16() {}
00317     virtual ~AImageMem16() { }
00318   virtual Pixel16* operator[](int y) const=0;
00319     static void SetTo(AImageMem16* img,Pixel16 color);
00320   virtual void SetTo(Pixel16 color) {SetTo(this,color);}
00321 };
00322
00324 // class AImageMemFloat
00327 class AImageMemFloat
00328 : virtual public AImage
00329 {
00330 public:
00331     typedef PixelFloat Pixel;
00332   static const char *ThisClassName();
00333   virtual const char *ClassName() const { return ThisClassName(); }
00334     virtual AImage::YImageStore GetImageStore() const { return AImage::IMGS_AImageMemFloat; }
00335     AImageMemFloat() {}
00336   virtual ~AImageMemFloat() {}
00337   virtual PixelFloat * operator[](int y) const=0;
00338   virtual void SetTo(PixelFloat color)=0;
00339 };
00340
00342 // class AImageMemRgb8
00345 class AImageMemRgb8
00346 : virtual public AImage
00347 {
00348 public:
00349     typedef AImageMem8 PlaneImageType;
00350     typedef Pixel8 Pixel;
00351   static const char *ThisClassName();
00352   virtual const char *ClassName() const { return ThisClassName(); }
00353     virtual AImage::YImageStore GetImageStore() const { return AImage::IMGS_AImageMemRgb8; }
00354     AImageMemRgb8() {}
00355   virtual ~AImageMemRgb8() {}
00356     virtual int NumPlanes() const { return 3;}
00357   virtual AImageMem8  * GetPlane8(int plane) const=0;
00358   virtual AImage* GetPlane( int plane) { return GetPlane8(plane); }
00359   virtual const AImage* GetPlane( int plane) const { return GetPlane8(plane); }
00360     static void SetTo(AImageMemRgb8* img,Rgb color);
00361     virtual void SetTo(Rgb color) {SetTo(this,color);}
00362 };
00363
00365 // class AImageMemRgb16
00368 class AImageMemRgb16
00369 : virtual public AImage
00370 {
00371 public:
00372     typedef AImageMem16 PlaneImageType;
00373     typedef Pixel16 Pixel;
00374   static const char *ThisClassName();
00375   virtual const char *ClassName() const { return ThisClassName(); }
00376     virtual AImage::YImageStore GetImageStore() const { return AImage::IMGS_AImageMemRgb16; }
00377     AImageMemRgb16() {}
00378   virtual ~AImageMemRgb16() {}
00379     virtual int NumPlanes() const { return 3;}
00380 //  virtual AImageMem8  * operator[](int plane) const=0;
00381   virtual AImageMem16  * GetPlane16(int plane) const=0;
00382   virtual AImage* GetPlane( int plane) { return GetPlane16(plane); }
00383   virtual const AImage* GetPlane( int plane) const { return GetPlane16(plane); }
00384   virtual void SetTo(Rgb color)=0;
00385 };
00386
00390 template<class ImgT>
00391 class tplAImageReference
00392 : public ImgT
00393 {
00394 protected:
00395     ImgT *img;
00396 public:
00397     virtual AImage * GetFullImage() const { return img;}
00398   virtual const char * ClassName() const { return (img)?img->ThisClassName():0; }
00399     virtual AImage::YImageStore GetImageStore() const {return (img)?img->GetImageStore(): AImage::IMGS_Unknown;}
00400
00401     tplAImageReference() { img=0;}
00402     virtual ~tplAImageReference() {}
00403     virtual void Init(ImgT *_img) {img=_img;}
00404
00405     virtual bool IsOk() const { return (img)?img->IsOk():false;}
00406   virtual void Load(const char *filename,ProgressCounter* indicator=0)
00407         {}
00408   virtual void Save(const char *filename,ProgressCounter* indicator=0) const
00409         {}
00410   virtual bool Create(short width,short height,short bitsPerPix,bool hasPalette=false)
00411         {return false;}
00412   virtual void Clear() {}
00413     virtual int Width()  const {return (img)?img->Width() :0;}
00414     virtual int Height() const {return (img)?img->Height() :0;}
00415   virtual int Bits()   const {return (img)?img->Bits():0;}
00416   virtual int NextLineShift() const {return (img)?img->NextLineShift():0;}
00417     virtual int NumPlanes() const {return (img)?img->NumPlanes():0;}
00418     virtual AImage::YImageClass  ImageClass() const {return (img)?img->ImageClass() : AImage::IMGC_UNKNOWN;}
00419     virtual int GetPaletteEntries() const {return (img)?img->GetPaletteEntries():0;}
00420     virtual AImage::Rgb *Palette() const {return (img)?img->Palette():0;}
00421 private:
00422     virtual void ChangeHeight(short new_height) { }
00423     virtual void read(int x,int y,Pixel16 *data,int len) const {if(img) img->read(x,y,data,len); }
00424 };
00428 template<class ImgT>
00429 class tplAImageFragment
00430 : public tplAImageReference<ImgT>
00431 {
00432 protected:
00433     int fx;
00434     int fy;
00435     int fwidth;
00436     int fheight;
00437 public:
00438 //  AImageFragment() : tplAImageReference() {}
00439     tplAImageFragment():tplAImageReference<ImgT>() { _Init(0);}
00440     virtual ~tplAImageFragment() {}
00441     virtual void Init(ImgT *_img) {tplAImageReference<ImgT>::Init(_img);}
00442     virtual void Init(int x,int y,int width,int height) {   _Init(tplAImageReference<ImgT>::GetFullImage(),x,y,width,height);}
00443     virtual void Init(ImgT *_img,int x,int y,int width,int height) {Init(_img); Init(x,y,width,height); }
00444     virtual int Width()  const { return fwidth;}
00445     virtual int Height() const { return fheight;}
00446     virtual int Bits()   const { return (tplAImageReference<ImgT>::img)?tplAImageReference<ImgT>::img->Bits():0;}
00447     virtual int NextLineShift() const { return (tplAImageReference<ImgT>::img)?tplAImageReference<ImgT>::img->NextLineShift():0;}
00448 private:
00449 protected:
00450     void _Init(const AImage *img)
00451     {
00452         fx=fy=0;
00453         if(img && img->IsOk())
00454         {
00455             fwidth=img->Width();
00456             fheight=img->Height();
00457         }
00458         else
00459         {
00460             fwidth=fheight=0;
00461         }
00462     }
00463     void _Init(const AImage *img,int x,int y,int width,int height)
00464     {
00465         if(img)
00466         {
00467             fx=IN_BOUNDS(x,0,img->Width()-1);
00468             fy=IN_BOUNDS(y,0,img->Height()-1);
00469             fwidth =fx+MAX(width,0);
00470             fheight=fy+MAX(height,0);
00471             fwidth =IN_BOUNDS(fwidth ,0,img->Width()) -fx;
00472             fheight=IN_BOUNDS(fheight,0,img->Height())-fy;
00473         }
00474         else
00475         {
00476             fx=fy=fwidth=fheight=0;
00477         }
00478     }
00479 };
00480
00482 // class ImageFragment8
00485 class ImageFragment8
00486 : public tplAImageFragment<AImageMem8>
00487 {
00488 public:
00489   static const char *ThisClassName();
00490   virtual const char *ClassName() const { return ThisClassName(); }
00491     ImageFragment8() {}
00492     virtual ~ImageFragment8() {}
00493     //
00494   virtual Pixel8 * operator[](int y) const { return (img)?((*img)[y+fy]+fx):0;}
00495   virtual void SetTo(Pixel8 color) {  AImageMem8::SetTo(this,color); }
00496     virtual void read(int x,int y,Pixel16 *data,int len) const {if(img) img->read(x+fx,y+fy,data,len); }
00497 };
00498
00500 // class ImageFragment16
00503 class ImageFragment16
00504 : public tplAImageFragment<AImageMem16>
00505 {
00506 public:
00507   static const char *ThisClassName();
00508   virtual const char *ClassName() const { return ThisClassName(); }
00509     ImageFragment16() {}
00510     virtual ~ImageFragment16() {}
00511   virtual Pixel16 * operator[](int y) const { return (img)?((*img)[y+fy]+fx):0;}
00512   virtual void SetTo(Pixel16 color) {  AImageMem16::SetTo(this,color); }
00513     virtual void read(int x,int y,Pixel16 *data,int len) const {if(img) img->read(x+fx,y+fy,data,len); }
00514 };
00519 class ImageFragmentRgb8
00520 : public tplAImageFragment<AImageMemRgb8>
00521 {
00522     ImageFragment8 _pl[3];
00523     AImageMem8 *pl[3];
00524 public:
00525   static const char *ThisClassName();
00526   virtual const char *ClassName() const { return ThisClassName(); }
00527     ImageFragmentRgb8() {}
00528     virtual ~ImageFragmentRgb8() {}
00529     virtual void Init(AImageMemRgb8 *_img)
00530     {
00531         tplAImageReference<AImageMemRgb8>::Init(_img);
00532         _pl[0].Init(_img->GetPlane8(0)); pl[0]=&(_pl[0]);
00533         _pl[1].Init(_img->GetPlane8(1)); pl[1]=&(_pl[1]);
00534         _pl[2].Init(_img->GetPlane8(2)); pl[2]=&(_pl[2]);
00535     }
00536     virtual void Init(int x,int y,int width,int height)
00537     {
00538         _Init(GetFullImage(),x,y,width,height);
00539         _pl[0].Init(x,y,width,height);
00540         _pl[1].Init(x,y,width,height);
00541         _pl[2].Init(x,y,width,height);
00542     }
00543   virtual AImageMem8  * GetPlane8(int plane) const { return pl[plane];}
00544   virtual void SetTo(Rgb color) {  AImageMemRgb8::SetTo(this,color); }
00545     virtual void read(int x,int y,Pixel16 *data,int len) const {if(img) img->read(x+fx,y+fy,data,len); }
00546 };
00547
00552 class ImageMem16Stuff
00553 : public AImageMem16
00554 {
00555     short wid;
00556   short len;
00557   short bits;
00558   Pixel16 *data;
00559 private:
00560     ImageMem16Stuff(const ImageMem16Stuff& im);
00561 public:
00562   static const char *ThisClassName();
00563   virtual const char *ClassName() const { return ThisClassName(); }
00564
00565     ImageMem16Stuff(Pixel16 *_extern_data,short width,short height,short bitsPerPixel=10)
00566   {
00567         data=_extern_data;
00568     wid=width;
00569     len=height;
00570     bits=bitsPerPixel;
00571   }
00572     virtual ~ImageMem16Stuff() {}
00573
00574     virtual bool IsOk() const { return (data!=0); }
00575   virtual void Load(const char *ozfilename,ProgressCounter* indicator=0);
00576 //  virtual void Save(const char *ozfilename,ProgressCounter* indicator=0) const{}
00577   virtual bool Create(short width,short height,short bitsPerPix,bool hasPalette=false);
00578   virtual void Clear();
00579     virtual int Width()  const { return wid;}
00580     virtual int Height() const { return len;}
00581   virtual int Bits()   const { return bits;}
00582   virtual int NextLineShift() const { return wid;}
00583     virtual YImageClass  ImageClass() const { return (data)?IMGC_GRAYSCALE:IMGC_UNKNOWN;}
00584     //
00585   virtual Pixel16 * operator[](int y) const {return (data+long(wid)*y); }//{ return line[y]; } //@@need test bounds and NULL
00586     virtual void read(int x,int y,Pixel16 *data2,int len) const { ::memcpy(data2,operator[](y)+x,len); }
00587 //Exceptions
00588   class Error
00589   : public ErrorStatusBase
00590     {
00591     public:
00592     enum ErrorStatus
00593     {
00594       errOK,
00595       errInsufficientMemory,
00596       errCantLoadObject,
00597       errCantCreateObject,
00598       errCantClearObject,
00599       errUnknown=0xFFFF
00600     };
00601   private:
00602     ErrorStatus err;
00603     public:
00604         Error(const char *fname,int nline,const ImageMem16Stuff *obj,bool del_msg,ErrorStatus id_err,const char *msgfmt,...);
00605         virtual ~Error() {}
00606     ErrorStatus   ErrorID() { return err;}
00607     };
00608 };
00609
00610 #define IMAGE_MAX_FRAME 64
00611
00613 // class YImageFrame
00618 class YImageFrame
00619 {
00620 public:
00621     typedef uint16_t Pixel;
00622 private:
00623     const AImage *img;
00624     Pixel  buf[IMAGE_MAX_FRAME*(IMAGE_MAX_FRAME+1)];
00625     int     sz; //frame size is square, not larger than IMAGE_MAX_FRAME
00626               // data placed as array size of 'sz*sz', the remaing space not used.
00627     int x_cent,y_cent;//frame center in the original image coordinates.
00628     //int shift_to_leftup;
00629     int last_line_offset;//offset from start buffer to last line first byte
00630     int dx,dy;
00631     int dx2,dy2;
00632     int height;
00633     int width;
00634 public:
00635     YImageFrame() { img=0; sz=0; }
00636     YImageFrame(const AImage *image,int size) { Init(image,size); }
00637     ~YImageFrame() {}
00638     void Init(const AImage *image,int size)
00639     {
00640         assert(image);
00641         assert(size>0 && size<=IMAGE_MAX_FRAME);
00642         img=image;
00643         sz=size;
00644         width=img->Width();
00645         height=img->Height();
00646         dx=sz/2;//offset from left up to frame center;
00647         dy=sz/2;
00648         dx2=sz-dx-1;
00649         dy2=sz-dy-1;
00650         //shift_to_leftup=-(dy*sz+dx);
00651         last_line_offset=sz*sz;
00652     }
00653
00654
00655     inline const Pixel* getLeftUp() const { return buf+sz; }
00656     inline const Pixel* operator[](int y) const {   return buf+(y+1)*sz;}
00657     int GetFrameSize() const {  return sz; };
00658     inline int X() const { return x_cent; }
00659     inline int Y() const { return y_cent; }
00660
00661     void SetTo(int x,int y)
00662     {
00663         x_cent=x;
00664         y_cent=y;
00665         x-=dx;
00666         y-=dy+1;
00667         Pixel *b=buf;
00668         for(int i=0; i<(sz+1); i++)
00669         {
00670             int yy;
00671             if(y<0)
00672                 yy=-y-1; //(-1) - ДУБЛИРОВАНИЕ ПЕРВОЙ СТРОКИ
00673             else if(y>=height)
00674                 yy=height-(y-height+2);
00675             else
00676                 yy=y;
00677             readSlow(x,yy,b);//,sz);
00678             y++;
00679             b+=sz;
00680         }
00681     }
00682     int NumberFastMove() const { return height-1-(y_cent+dy2);}
00683     int GetLeftRightBorderWidth() const { return (sz+4)/2; }
00684     inline void MoveDown()
00685     {   // вызывать только в центре изображения!
00686         ++y_cent;
00687         ::memmove(buf, buf+sz, sizeof(Pixel)*last_line_offset);
00688         img->read(x_cent-dx,y_cent+dy2,buf+last_line_offset,sz);
00689     }
00690
00691     inline void MoveDownSlow()
00692     {   // вызывать для левого, правого и нижнего краёв!
00693         ++y_cent;
00694         ::memmove(buf, buf+sz, sizeof(Pixel)*last_line_offset);
00695         int y=y_cent+dy2;
00696         if(y<height)
00697             readSlow(x_cent-dx,y,buf+last_line_offset);
00698         else
00699         {
00700             y=sz-(y-height+1)*2+1;//здесь была ошибка... - нужно домножить на двойку!!
00701             //что делать в четном случае??
00702             ::memcpy(buf+last_line_offset,buf+sz*y,sizeof(Pixel)*sz);
00703         }
00704     }
00705     void readSlow(int x,int y,Pixel16 *buf) const
00706     {
00707         if(x<0)
00708         {
00709             int ll=-x;
00710             buf+=ll;
00711             img->read(0,y,buf,sz-ll);
00712             Pixel16 *b=buf;
00713             while(ll--)
00714                 *(--b)=*(buf++);
00715         }
00716         else
00717         {
00718             int s=width-x;//здесь была ошибка... - не нужна минус единица!!!
00719             int rr=sz-s;
00720             if(rr>0)
00721             {
00722                 img->read(x,y,buf,s);
00723                 buf+=s;
00724                 Pixel16 *b=buf;
00725                 while(rr--)
00726                     *(b++)=*(--buf);
00727             }
00728             else
00729                 img->read(x,y,buf,sz);
00730         }
00731     }
00732 }; // end of AbstractImage
00734
00736 #endif // _AIMAGE_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл alexandresku.h

  • Файлы
  • Список членов всех файлов

alexandresku.h

См. документацию.
00001 #ifndef _ALEXANDRESKU_H
00002 #define _ALEXANDRESKU_H
00004 #ifdef __BORLANDC__
00005     #include <system.hpp>
00006     #include <stdint.h>
00007 #elif _MSC_VER
00008     typedef unsigned char        Byte;
00009     #include "stdint.h"
00010 #elif __GNUC__
00011     typedef unsigned char        Byte;
00012     #include <stdint.h>
00013 #else
00014     #error "Unknown compiler"
00015 #endif
00016 #include <sstream>
00017 #include <algorithm>
00018 #define _USE_MATH_DEFINES
00019 #include <cmath>
00020 #include "loki_TypeManip.h"
00021
00037 namespace Vtl
00038 {
00043     //--------General macros:
00044     template<typename T> T sqr(T v) {return v*v;}
00045     //#ifndef MAX3
00046     template<typename T>  T max(T a,T b,T c) {return std::max(std::max(a,b),c);}
00047     //#endif
00048     //#ifndef MAX4
00049     template<typename T>  T max(T a,T b,T c,T d) {return std::max(std::max(a,b),std::max(c,d));}
00050     //#endif
00051     //#ifndef MIN3
00052     template<typename T>  T min(T a,T b,T c) {return std::min(std::min(a,b),c); }
00053     //#endif
00054     //#ifndef MIN4
00055         template<typename T>  T min(T a,T b,T c,T d) {return std::min(std::min(a,b),std::min(c,d)); }
00056     //#endif
00057     template<typename T1,typename T2,typename T3>
00058     T1 ToBounds(T1 var,T2 min,T3 max)  { return (var<min)?min:((var>max)?max:var); }
00059     //------FORTRAN definitions:
00060     // ПЕРЕМЕЩЕНО в "numalg.h"
00061     //template<typename T1,typename T2> T1 sign(T1 x1,T2 x2) { return (x2 >= 0) ? std::abs(x1) : -std::abs(x1); }
00097     namespace Types
00098     {
00101         struct EmptyType {};
00103         class NullType {};
00106         template<int v>
00107         struct Int2Type
00108         {
00109             enum {value=v};
00110         };
00114         template<typename T>
00115         struct Type2Type
00116         {
00117             typedef T OriginalType;
00118         };
00132         template<bool flag,typename Type1,typename Type2>
00133         struct Select
00134         {
00135             typedef Type1 Type;
00136         };
00137         //@cond 0
00138         template<typename Type1,typename Type2>
00139         struct Select<false,Type1,Type2>
00140         {
00141             typedef Type2 Type;
00142         };
00143         //@endcond
00149         template<class T,class U>
00150         class Conversion
00151         {
00152         //@cond 0
00153             typedef char Small;
00154             class Big {Small dummy[2];};
00155             static Small Test(U);
00156             static Big Test(...);
00157             static T MakeT();
00158         //@endcond
00159         public:
00160             enum {exists = sizeof(Test(MakeT()))==sizeof(Small)};
00161             enum {sameType=false};
00162         };
00163         //@cond 0
00164         template<class T>
00165         class Conversion<T,T>
00166         {
00167         public:
00168             enum {exists = true};
00169             enum {sameType=true};
00170         };
00171         //@endcond
00178         template<class T1,class T2> struct isSameType
00179         {
00180             enum {value=0};
00181         };
00182         //@cond 0
00183         template<class T> struct isSameType<T,T>
00184         {
00185             enum {value=1};
00186         };
00187         //@endcond
00188
00196         template<class T, class U>
00197         struct Typelist
00198         {
00199             typedef T Head;
00200             typedef U Tail;
00201         };
00214         #define TYPELIST_1(T1) Vtl::Types::Typelist<T1,Vtl::Types::NullType>
00215         #define TYPELIST_2(T1,T2) Vtl::Types::Typelist<T1,TYPELIST_1(T2) >
00216         #define TYPELIST_3(T1,T2,T3) Vtl::Types::Typelist<T1,TYPELIST_2(T2,T3) >
00217         #define TYPELIST_4(T1,T2,T3,T4) Vtl::Types::Typelist<T1,TYPELIST_3(T2,T3,T4) >
00218         #define TYPELIST_5(T1,T2,T3,T4,T5) Vtl::Types::Typelist<T1,TYPELIST_4(T2,T3,T4,T5) >
00219         #define TYPELIST_6(T1,T2,T3,T4,T5,T6) Vtl::Types::Typelist<T1,TYPELIST_5(T2,T3,T4,T5,T6) >
00220         #define TYPELIST_7(T1,T2,T3,T4,T5,T6,T7) Vtl::Types::Typelist<T1,TYPELIST_6(T2,T3,T4,T5,T6,T7) >
00221         #define TYPELIST_8(T1,T2,T3,T4,T5,T6,T7,T8) Vtl::Types::Typelist<T1,TYPELIST_7(T2,T3,T4,T5,T6,T7,T8) >
00222         #define TYPELIST_9(T1,T2,T3,T4,T5,T6,T7,T8,T9) Vtl::Types::Typelist<T1,TYPELIST_8(T2,T3,T4,T5,T6,T7,T8,T9) >
00223         #define TYPELIST_10(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10) Vtl::Types::Typelist<T1,TYPELIST_9(T2,T3,T4,T5,T6,T7,T8,T9,T10) >
00224         #define TYPELIST_11(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11) Vtl::Types::Typelist<T1,TYPELIST_10(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11) >
00225         #define TYPELIST_12(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12) Vtl::Types::Typelist<T1,TYPELIST_11(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12) >
00226         #define TYPELIST_13(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13) Vtl::Types::Typelist<T1,TYPELIST_12(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13) >
00227         #define TYPELIST_14(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14) Vtl::Types::Typelist<T1,TYPELIST_13(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14) >
00228         #define TYPELIST_15(T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15) Vtl::Types::Typelist<T1,TYPELIST_14(T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15) >
00229
00230         /*!******************************************************************
00231          * \namespace Vtl::Types::TL
00232          * \brief Пространство имен Vtl::Types::TL содержит алгоритмы
00233          * для работы со списками типов, определенными Vtl::Types::Typelist
00234          *
00235          * Пространство имен Vtl::Types::TL содержит алгоритма для
00236          * работы со списками типов. Все алгоритмы, что естественно
00237          * для введенных списков типов, выполняются на этапе компиляции
00238          * и не приводят к генерации исполняемого кода.
00239          *
00240          * Написано с использованием материалоов из книги
00241          *
00242          * А. Александреску Современное проектирование на С++. Серия
00243          * С++ In-Depth, т.3.:Пер. с англ. -М.:Издательский дом "Вильямс",2002. -336 с.
00244          * ил. -Парал. тит. англ. ISBN 5-8459-035103 (рус.).
00245          *
00246          * См. \ref Lit_Alexandresku
00247          *******************************************************************/
00248         namespace TL
00249         {
00260             template
00261             <
00262                 typename T1  = NullType, typename T2  = NullType, typename T3  = NullType,
00263                 typename T4  = NullType, typename T5  = NullType, typename T6  = NullType,
00264                 typename T7  = NullType, typename T8  = NullType, typename T9  = NullType,
00265                 typename T10 = NullType, typename T11 = NullType, typename T12 = NullType,
00266                 typename T13 = NullType, typename T14 = NullType, typename T15 = NullType,
00267                 typename T16 = NullType, typename T17 = NullType, typename T18 = NullType
00268             >
00269             struct MakeTypelist
00270             {
00271             private:
00272                 typedef typename MakeTypelist
00273                 <
00274                     T2 , T3 , T4 ,
00275                     T5 , T6 , T7 ,
00276                     T8 , T9 , T10,
00277                     T11, T12, T13,
00278                     T14, T15, T16,
00279                     T17, T18
00280                 >
00281 				::Result TailResult;
00282
00283             public:
00284                 typedef Typelist<T1, TailResult> Result;
00285             };
00286
00287             template<>
00288             struct MakeTypelist<>
00289             {
00290                 typedef NullType Result;
00291             };
00327             template <class TList> struct Length;
00328             // @cond 0
00329             template <> struct Length<NullType>
00330             {
00331                 enum {value=0};
00332             };
00333             template <class T, class U> struct Length<Typelist<T,U> >
00334             {
00335                 enum {value=1+Length<U>::value};
00336             };
00337             // @endcond
00367             template<class TList, unsigned int index> struct TypeAt;
00368             // @cond 0
00369             template<class Head,class Tail> struct TypeAt<Typelist<Head,Tail>,0>
00370             {
00371                 typedef Head Result;
00372             };
00373             template<class Head,class Tail, unsigned int i> struct TypeAt<Typelist<Head,Tail>,i>
00374             {
00375                 typedef typename TypeAt<Tail,i-1>::Result Result;
00376             };
00397             template <class TList, unsigned int index,
00398                 typename DefaultType = NullType>
00399             struct TypeAtNonStrict
00400             {
00401                 typedef DefaultType Result;
00402             };
00403
00404             template <class Head, class Tail, typename DefaultType>
00405             struct TypeAtNonStrict<Typelist<Head, Tail>, 0, DefaultType>
00406             {
00407                 typedef Head Result;
00408             };
00409
00410             template <class Head, class Tail, unsigned int i, typename DefaultType>
00411             struct TypeAtNonStrict<Typelist<Head, Tail>, i, DefaultType>
00412             {
00413                 typedef typename
00414                     TypeAtNonStrict<Tail, i - 1, DefaultType>::Result Result;
00415             };
00416                 // @endcond
00437             template<class TList, class T> struct IndexOf;
00438             // @cond 0
00439             template<class T> struct IndexOf<NullType,T>
00440             {
00441                 enum {value=-1};
00442             };
00443             template<class T,class Tail> struct IndexOf<Typelist<T,Tail>,T>
00444             {
00445                 enum {value=0};
00446             };
00447             template<class Head,class Tail,class T> struct IndexOf<Typelist<Head,Tail>,T>
00448             {
00449             private:
00450                 enum {temp=IndexOf<Tail,T>::value};
00451             public:
00452                 enum {value=temp==-1?-1:1+temp};
00453             };
00454             // @endcond
00466             template<class TList,class T> struct Append;
00467             // @cond 0
00468             template<> struct Append<NullType,NullType>
00469             {
00470                 typedef NullType Result;
00471             };
00472             template<typename T> struct Append<NullType,T>
00473             {
00474                 typedef TYPELIST_1(T) Result;
00475             };
00476             template<class Head,class Tail> struct Append<NullType,Typelist<Head,Tail> >
00477             {
00478                 typedef Typelist<Head,Tail> Result;
00479             };
00480             template<class Head,class Tail,typename T> struct Append<Typelist<Head,Tail>,T>
00481             {
00482                 typedef Typelist<Head,typename Append<Tail,T>::Result> Result;
00483             };
00484             // @endcond
00486             template<class TList,class U,bool append> struct AppendIf
00487             {
00488                 typedef TList Result;
00489             };
00490             // @cond 0
00491             template<class TList,class U> struct AppendIf<TList,U,true>
00492             {
00493                 typedef typename Append<TList,U>::Result Result;
00494             };
00495             // @endcond
00520             template<class TList, class T,template <class,class> class Comparator> struct FindIf;
00521             // @cond 0
00522             template<class T,template <class,class> class Comparator> struct FindIf<NullType,T,Comparator>
00523             {
00524                 typedef NullType Result;
00525             };
00526             template<class Head,class Tail,class T,template <class,class> class Comparator> struct FindIf<Typelist<Head,Tail>,T,Comparator>
00527             {
00528             private:
00529                 enum { temp=Comparator<Head,T>::value};
00530             public:
00531                 typedef typename AppendIf<typename FindIf<Tail,T,Comparator>::Result,Head,temp>::Result Result;
00532             };
00533             // @endcond
00546             template<class TList,typename T> struct Erase;
00547             // @cond 0
00548             template<typename T> struct Erase<NullType,T>
00549             {
00550                 typedef NullType Result;
00551             };
00552             template<typename T,class Tail> struct Erase<Typelist<T,Tail>,T>
00553             {
00554                 typedef Tail Result;
00555             };
00556             template<class Head,class Tail,typename T> struct Erase<Typelist<Head,Tail>,T>
00557             {
00558                 typedef Typelist<Head,typename Erase<Tail,T>::Result> Result;
00559             };
00560             // @endcond
00573             template<class TList,typename T> struct EraseAll;
00574             // @cond 0
00575             template<typename T> struct EraseAll<NullType,T>
00576             {
00577                 typedef NullType Result;
00578             };
00579             template<typename T,class Tail> struct EraseAll<Typelist<T,Tail>,T>
00580             {
00581                 typedef typename EraseAll<Tail,T>::Result Result;
00582             };
00583             template<class Head,class Tail,typename T> struct EraseAll<Typelist<Head,Tail>,T>
00584             {
00585                 typedef Typelist<Head,typename EraseAll<Tail,T>::Result> Result;
00586             };
00587             // @endcond
00600             template<class TList> struct NoDuplicates;
00601             //@cond 0
00602             template<> struct NoDuplicates<NullType>
00603             {
00604                 typedef NullType Result;
00605             };
00606             template<class Head,class Tail> struct NoDuplicates<Typelist<Head,Tail> >
00607             {
00608             private:
00609                 typedef typename NoDuplicates<Tail>::Result L1;
00610                 typedef typename Erase<L1,Head>::Result L2;
00611             public:
00612                 typedef Typelist<Head,L2> Result;
00613             };
00614             //@endcond
00616             template<class TList,typename T> struct isIn
00617             {
00618                 enum{ Result=(TL::IndexOf<TList,T>::value) >= 0 ? true:false};
00619             };
00633             template<size_t s1,size_t s2> struct GT
00634             {
00635                 enum {value=(s1>s2) };
00636             };
00637             template<size_t s1,size_t s2> struct LT
00638             {
00639                 enum {value=(s1<s2) };
00640             };
00641             template<size_t s1,size_t s2> struct GE
00642             {
00643                 enum {value=(s1>=s2) };
00644             };
00645             template<size_t s1,size_t s2> struct LE
00646             {
00647                 enum {value=(s1<=s2) };
00648             };
00649             template<size_t s1,size_t s2> struct EQ
00650             {
00651                 enum {value=(s1==s2) };
00652             };
00653             template<size_t s1,size_t s2> struct NE
00654             {
00655                 enum {value=(s1!=s2) };
00656             };
00657             template<class TList,size_t s,template<size_t s1,size_t s2> class Comaparator > struct FilteredTypes;
00658             // @cond 0
00659             template<size_t s,template<size_t s1,size_t s2> class Comaparator > struct FilteredTypes<NullType,s,Comaparator>
00660             {
00661                 typedef NullType Result;
00662             };
00663             template<class Head,class Tail,size_t s,template<size_t s1,size_t s2> class Comaparator > struct FilteredTypes<Typelist<Head,Tail>,s,Comaparator>
00664             {
00665                 typedef typename Select<
00666                     Comaparator<sizeof(Head),s>::value
00667                     ,typename Typelist<Head,
00668                         typename FilteredTypes<Tail,s,Comaparator>::Result>
00669                     ,typename FilteredTypes<Tail,s,Comaparator>::Result
00670                     >::Type Result;
00671             };
00672             // @endcond
00685             template<class TList,template<size_t s1,size_t s2> class Comaparator > struct SmallestType;
00686             // @cond 0
00687             template<template<size_t s1,size_t s2> class Comaparator > struct SmallestType<NullType,Comaparator >
00688             {
00689                 enum {size=0};
00690                 typedef NullType Result;
00691             };
00692             template<typename T,template<size_t s1,size_t s2> class Comaparator > struct SmallestType<Typelist<T,NullType>,Comaparator >
00693             {
00694                 enum {size=sizeof(T)};
00695                 typedef T Result;
00696             };
00697             template<typename Head,class Tail,template<size_t s1,size_t s2> class Comaparator> struct SmallestType<Typelist<Head,Tail>,Comaparator >
00698             {
00699                 typedef SmallestType<Tail,Comaparator> NextType;
00700                 typedef typename Select<
00701                     Comaparator<sizeof(Head),NextType::size>::value
00702                     ,Head
00703                     ,typename NextType::Result
00704                     >::Type Result;
00705                 enum {size=sizeof(Result)};
00706             };
00707             // @endcond
00708
00709
00724             template<class TList> struct Print
00725             {//Если произвольный тип
00726                 static std::string str()
00727                 {
00728                     std::ostringstream os;
00729                     os <<"sizeof(" << typeid(TList).name() <<")=" << sizeof(TList) << std::endl;
00730                     return os.str();
00731                 }
00732             };
00733             // @cond 0
00734             template<> struct Print<NullType >
00735             {//Если тип - NullType - конец списка типов
00736                 static std::string str() { return "NullType" ;}
00737             };
00738             template<class Head,class Tail> struct Print<Typelist<Head,Tail> >
00739             {//Если тип - список типов, Typelist
00740                 static std::string str()
00741                 {
00742                     std::ostringstream os;
00743                     os <<"sizeof(" << typeid(Head).name() <<")=" << sizeof(Head) << std::endl << Print<Tail>::str() ;
00744                     return os.str();
00745                 }
00746             };
00747             // @endcond
00748         };
00749
00756
00757         typedef TL::NoDuplicates<TYPELIST_8(signed char,short,int,long,int8_t,int16_t,int32_t,int64_t)>::Result SignedIntegerTypes;
00759         typedef TL::NoDuplicates<TYPELIST_8(unsigned char,unsigned short,unsigned int,unsigned long,uint8_t,uint16_t,uint32_t,uint64_t)>::Result UnsignedIntegerTypes;
00761         typedef TL::NoDuplicates<TYPELIST_3(float,double,long double)>::Result RealTypes;
00763         typedef TL::NoDuplicates<TYPELIST_3(bool,char,wchar_t)>::Result OtherIntegerTypes;
00765         typedef TL::NoDuplicates<TL::Append<SignedIntegerTypes,UnsignedIntegerTypes>::Result>::Result IntegerTypes;
00767         typedef TL::NoDuplicates<TL::Append<IntegerTypes,OtherIntegerTypes>::Result>::Result AllIntegerTypes;
00769         typedef TL::NoDuplicates<TL::Append<SignedIntegerTypes,RealTypes>::Result>::Result SignedTypes;
00771         typedef TL::NoDuplicates<TL::Append<IntegerTypes,RealTypes>::Result>::Result ArithTypes;
00773         typedef TL::NoDuplicates<TL::Append<ArithTypes,OtherIntegerTypes>::Result>::Result AllArithTypes;
00775
00781         template<typename T>
00782         class Traits
00783         {
00784         private:
00785             // @cond 0  -hide from documentation realization details
00786             template<class U> struct PointerTraits
00787             {
00788                 enum {Result=false};
00789                 typedef NullType PointeeType;
00790             };
00791             template<class U> struct PointerTraits<U*>
00792             {
00793                 enum {Result=true};
00794                 typedef U PointeeType;
00795             };
00796             template <class U> struct ReferenceTraits
00797             {
00798                 enum { Result = false };
00799                 typedef U ReferredType;
00800             };
00801
00802             template <class U> struct ReferenceTraits<U&>
00803             {
00804                 enum { Result = true };
00805                 typedef U ReferredType;
00806             };
00807
00808             template <class U> struct PToMTraits
00809             {
00810                 enum { Result = false };
00811             };
00812
00813             template <class U, class V>
00814             struct PToMTraits<U V::*>
00815             {
00816                 enum { Result = true };
00817             };
00818             template <class U> struct UnConst
00819             {
00820                 typedef U Result;
00821                 enum { isConst = 0 };
00822             };
00823
00824             template <class U> struct UnConst<const U>
00825             {
00826                 typedef U Result;
00827                 enum { isConst = 1 };
00828             };
00829             template <class U> struct UnVolatile
00830             {
00831                 typedef U Result;
00832                 enum { isVolatile = 0 };
00833             };
00834
00835             template <class U> struct UnVolatile<volatile U>
00836             {
00837                 typedef U Result;
00838                 enum { isVolatile = 1 };
00839             };
00840             // @endcond
00841         public:
00843             enum {isPointer=PointerTraits<T>::Result};
00847             typedef typename PointerTraits<T>::PointeeType PointeeType;
00849             enum { isReference = ReferenceTraits<T>::Result };
00854             typedef typename ReferenceTraits<T>::ReferredType ReferredType;
00856             enum { isMemberPointer = PToMTraits<T>::Result };
00869             enum { isConst = UnConst<T>::isConst };
00886             typedef typename UnConst<T>::Result NonConstType;
00888             enum { isVolatile = UnVolatile<T>::isVolatile };
00890             typedef typename UnVolatile<T>::Result NonVolatileType;
00891             enum { isQualifiedType = isVolatile||isConst };
00893             typedef typename UnVolatile<typename UnConst<T>::Result>::Result
00894                 UnqualifiedType;
00896             enum {isStdSignedInt=TL::isIn<SignedIntegerTypes,T>::Result};
00898             enum {isStdUnsignedInt=TL::isIn<UnsignedIntegerTypes,T>::Result};
00900             enum {isStdInteger=isStdUnsignedInt||isStdSignedInt};
00902             enum {isStdReal=TL::isIn<RealTypes,T>::Result};
00904             enum {isStdArith=isStdInteger||isStdReal};
00907             enum {isStdOtherInt=TL::isIn<OtherIntegerTypes,T>::Result};
00909             enum {isStdIntegerAll=isStdInteger||isStdOtherInt};
00911             enum {isStdArithAll=isStdArith||isStdOtherInt};
00913             enum {isStdFundamental=isStdArithAll||Conversion<T,void>::sameType};
00914         };
00916         struct IntOrReal
00917         {
00918             enum Types
00919             {
00920                 Int,
00921                 Real,
00922                 Unknown=-1
00923             };
00924         };
00926         struct SUIntOrReal
00927         {
00928             enum Types
00929             {
00930                 SInt,
00931                 UInt,
00932                 Real,
00933                 Unknown=-1
00934             };
00935         };
00936         template<typename T>
00937         class PixelTraits
00938         {
00939             enum { group=isSUIntOrReal<T>::Result };
00940 /*
00941             typedef typename Select<Traits<T>::isStdSignedInt,
00942                 SignedIntegerTypes,
00943                 typename Select<Traits<T>::isStdUnsignedInt,
00944                     UnsignedIntegerTypes,
00945                     typename Select<Traits<T>::isStdReal,
00946                         RealTypes,
00947                         NullType>::Type >::Type >::Type TypesGroup;
00948 */
00949             template<typename P,unsigned types_group> struct LargerTypeSelector;
00950             //Для знаковых целых
00951             template<typename P> struct LargerTypeSelector<P,SUIntOrReal::SInt>
00952             {
00953                 typedef SignedIntegerTypes TypesGroup;
00954             };
00955             //Для беззнаковых целых
00956             template<typename P> struct LargerTypeSelector<P,SUIntOrReal::UInt>
00957             {
00958                 typedef UnsignedIntegerTypes TypesGroup;
00959             };
00960             //Для вещественных чисел
00961             template<typename P> struct LargerTypeSelector<P,SUIntOrReal::Real>
00962             {
00963                 typedef RealTypes TypesGroup;
00964             };
00965         public:
00966             typedef typename LargerTypeSelector<T,group>::TypesGroup TypesGroup;
00967             typedef T PixelType;
00968             typedef typename Vtl::Types::TL::FilteredTypes<TypesGroup,sizeof(PixelType)*2,Vtl::Types::TL::GE>::Result listForSqr;
00969             typedef typename Vtl::Types::TL::SmallestType<listForSqr,Vtl::Types::TL::LT>::Result SqrType;
00970         };
00971
00978
00979         template<typename T> struct isIntOrReal
00980         {
00981             enum{ Result=Traits<T>::isStdInteger
00982                     ?IntOrReal::Int
00983                     :(Traits<T>::isStdReal
00984                         ?IntOrReal::Real
00985                         :IntOrReal::Unknown)
00986                 };
00987         };
00989         template<typename T> struct isSUIntOrReal
00990         {
00991             enum{ Result=Traits<T>::isStdSignedInt
00992                     ?SUIntOrReal::SInt
00993                     :(Traits<T>::isStdUnsignedInt
00994                         ?SUIntOrReal::UInt
00995                         :(Traits<T>::isStdReal
00996                             ?SUIntOrReal::Real
00997                             :SUIntOrReal::Unknown))
00998                 };
00999         };
01000 /*
01001
01002         template<typename T,int X> struct _IntXbytesLarger
01003         {
01004             enum {size=sizeof(T)};
01005             enum {size_X=size+X};
01006
01007         };
01008         template<typename T> struct Sqr;
01009         template<typename T>
01010         struct Sqr
01011         {
01012             typedef NullType Type;
01013         };
01014 */
01015     };
01016
01017     namespace Alg
01018     {
01019
01046         template<unsigned N> struct Factorial
01047         {
01048             enum {value = N*Factorial<N-1>::value};
01049         };
01050         template<> struct Factorial<0>
01051         {
01052             enum {value = 1};
01053         };
01054 //      template<unsigned N,typename T> T n_pow(T x,Vtl::Types::Int2Type<N> );
01055 //      template<typename T> T n_pow(T x,Vtl::Types::Int2Type<0> ) { return 1; }
01056         template<typename T> T n_pow(T x,Vtl::Types::Int2Type<1> ) { return x; }
01057         template<typename T,unsigned N> T n_pow(T x,Vtl::Types::Int2Type<N> ) { return x*n_pow(x,Vtl::Types::Int2Type<N-1>()); }
01064         template<unsigned N> struct isOdd
01065         {
01066             enum {value = N%2 };
01067         };
01072         template<unsigned N,typename T> T minus_if_odd(T x)
01073         {
01074             return Impl::minus_if_odd(x,Loki::Int2Type<isOdd<N>::value>());
01075         }
01080         template<unsigned N,typename T,typename TT> T mult_if_odd(T x,TT mult)
01081         {
01082             return mult_if<bool(isOdd<N>::value)>(x,mult);
01083         }
01088         template<bool do_mult,typename T,typename TT> T mult_if(T x,TT mult)
01089         {
01090             return Impl::mult_if(x,mult,Loki::Int2Type<do_mult>());
01091         }
01092         namespace Impl
01093         {
01094             template<typename T> T minus_if_odd(T x,Loki::Int2Type<isOdd<0>::value> )
01095             {
01096                 return x;
01097             }
01098             template<typename T> T minus_if_odd(T x,Loki::Int2Type<isOdd<1>::value> )
01099             {
01100                 return -x;
01101             }
01102             template<typename T,typename TT> T mult_if(T x,TT mult,Loki::Int2Type<false> )
01103             {
01104                 return x;
01105             }
01106             template<typename T,typename TT> T mult_if(T x,TT mult,Loki::Int2Type<true> )
01107             {
01108                 return x*mult;
01109             }
01110             template<typename T> T sincos(T x,Loki::Int2Type<isOdd<0>::value> )
01111             {
01112                 return std::sin(x);
01113             }
01114             template<typename T> T sincos(T x,Loki::Int2Type<isOdd<1>::value> )
01115             {
01116                 return std::cos(x);
01117             }
01118         }
01126         template<unsigned N,typename T> T sincos(T x)
01127         {
01128             return Impl::sincos(x,Loki::Int2Type<isOdd<(N&1)>::value>() );
01129         }
01140         template<unsigned N,typename T> T dsin(T x)
01141         {
01142             return minus_if_odd<N/2>( sincos<N>(x) );
01143         }
01149         template<unsigned N> struct x_to_N
01150         {
01151             template<typename T> static T value(T x)
01152             {
01153                 return x_to_N__<N,isOdd<N>::value >::v(x);
01154             }
01155         private:
01156             template<unsigned K,unsigned M> struct x_to_N__;
01157             template<unsigned K> struct x_to_N__<K,0> //N is Even
01158             {
01159                 template<typename T> static T sqr(T x) {return x*x;}
01160                 template<typename T> static T v(T x)
01161                 {
01162                     return sqr(x_to_N__<K/2,isOdd<K/2>::value>::v(x));
01163                 }
01164             };
01165             template<unsigned K> struct x_to_N__<K,1> //N is Odd
01166             {
01167                 template<typename T> static T sqr(T x) {return x*x;}
01168                 template<typename T> static T v(T x)
01169                 {
01170                     return x*x_to_N__<K-1,isOdd<K-1>::value>::v(x);
01171                 }
01172             };
01173             template<> struct x_to_N__<1,1> //N is Odd
01174             {
01175                 template<typename T> static T v(T x)
01176                 {
01177                     return x;
01178                 }
01179             };
01180             template<> struct x_to_N__<0,0> //N is Odd
01181             {
01182                 template<typename T> static T v(T x)
01183                 {
01184                     return 1;
01185                 }
01186             };
01187         };
01191         template<typename T>  T Return1stArg(T arg1,T arg2,Loki::Int2Type<true>)  { return arg1;}
01192         template<typename T>  T Return1stArg(T arg1,T arg2,Loki::Int2Type<false>) { return arg2;}
01197         template<bool first,typename T>  T Return1stArg(T arg1,T arg2) { return Return1stArg(arg1,arg2,Loki::Int2Type<first>());}
01198
01203         template<typename T>  T ReturnArg_(T arg1,T arg2,Loki::Int2Type<0>) { return arg1;}
01204         template<typename T>  T ReturnArg_(T arg1,T arg2,Loki::Int2Type<1>) { return arg2;}
01205         template<int n,typename T>  T ReturnArg(T arg1,T arg2) { return ReturnArg_(arg1,arg2,Loki::Int2Type<n>());}
01206         template<typename T>  T ReturnArg_(T arg1,T arg2,T arg3,Loki::Int2Type<0>) { return arg1;}
01207         template<typename T>  T ReturnArg_(T arg1,T arg2,T arg3,Loki::Int2Type<1>) { return arg2;}
01208         template<typename T>  T ReturnArg_(T arg1,T arg2,T arg3,Loki::Int2Type<2>) { return arg3;}
01209         template<int n,typename T>  T ReturnArg(T arg1,T arg2,T arg3) { return ReturnArg_(arg1,arg2,arg3,Loki::Int2Type<n>());}
01210         template<typename T>  T ReturnArg_(T arg1,T arg2,T arg3,T arg4,Loki::Int2Type<0>) { return arg1;}
01211         template<typename T>  T ReturnArg_(T arg1,T arg2,T arg3,T arg4,Loki::Int2Type<1>) { return arg2;}
01212         template<typename T>  T ReturnArg_(T arg1,T arg2,T arg3,T arg4,Loki::Int2Type<2>) { return arg3;}
01213         template<typename T>  T ReturnArg_(T arg1,T arg2,T arg3,T arg4,Loki::Int2Type<3>) { return arg4;}
01214         template<int n,typename T>  T ReturnArg(T arg1,T arg2,T arg3,T arg4) { return ReturnArg_(arg1,arg2,arg3,arg4,Loki::Int2Type<n>());}
01215         template<typename T>  T ReturnArg_(T arg1,T arg2,T arg3,T arg4,T arg5,Loki::Int2Type<0>) { return arg1;}
01216         template<typename T>  T ReturnArg_(T arg1,T arg2,T arg3,T arg4,T arg5,Loki::Int2Type<1>) { return arg2;}
01217         template<typename T>  T ReturnArg_(T arg1,T arg2,T arg3,T arg4,T arg5,Loki::Int2Type<2>) { return arg3;}
01218         template<typename T>  T ReturnArg_(T arg1,T arg2,T arg3,T arg4,T arg5,Loki::Int2Type<3>) { return arg4;}
01219         template<typename T>  T ReturnArg_(T arg1,T arg2,T arg3,T arg4,T arg5,Loki::Int2Type<4>) { return arg4;}
01220         template<int n,typename T>  T ReturnArg(T arg1,T arg2,T arg3,T arg4,T arg5) { return ReturnArg_(arg1,arg2,arg3,arg4,arg5,Loki::Int2Type<n>());}
01221     };
01222
01223 };
01224
01226 #endif //_ALEXANDRESKU_H
01227


Pipe Line Filters: Исходный файл alg_bresenham.h

  • Файлы
  • Список членов всех файлов

alg_bresenham.h

См. документацию.
00001 #ifndef _ALG_BRESENHAM_H
00002 #define _ALG_BRESENHAM_H
00004 #include "alexandresku.h"
00005 namespace Vtl
00006 {
00007 namespace ImAlg
00008 {
00015 namespace Bres
00016 {
00021     template<typename Pixel> class Draw
00022     {
00023         const Pixel _color;
00024     public:
00025         Draw(Pixel color):_color(color)
00026         {
00027         }
00028         void operator()(Pixel* ptr)
00029         {
00030             *ptr=_color;
00031         }
00032     };
00037     template<typename Pixel> class DrawDotted
00038     {
00039         uint32_t _mask;
00040         const Pixel _color1;
00041         const Pixel _color2;
00042     public:
00043         DrawDotted(Pixel color1,Pixel color2=0,unsigned mask=0xFFFF0000)
00044             :_mask(mask),_color1(color1),_color2(color2)
00045         {
00046             _mask=0xFFFF0000;
00047         }
00048         void operator()(Pixel* ptr)
00049         {
00050             *ptr=(_mask&0x80000000)?_color1:_color2;
00051             uint32_t ma=_mask;
00052             __asm {
00053                 rol ma,1;
00054             }
00055             _mask=ma;
00056         }
00057     };
00062     template<typename Pixel> class DrawGradient
00063     {
00064         const Pixel _color1;
00065         const Pixel _color2;
00066         const int _step;
00067         int pos;
00068     public:
00069         DrawGradient(Pixel color1,Pixel color2=0,int step)
00070             :_step(step),_color1(color1),_color2(color2)
00071         {
00072             pos=step;
00073         }
00074         void operator()(Pixel* ptr)
00075         {
00076             *ptr=Pixel(color1*pos+color2*(1-pos));
00077             --pos;
00078             if(pos<=0) pos=step;
00079         }
00080     };
00091     template<typename Pixel,class D> class SetPixelGray
00092     {
00093         Pixel * const _data;
00094         const int _nls;
00095         D _draw;
00096         Pixel * ptr;
00097         int _x;
00098         int _y;
00099     public:
00100         SetPixelGray(Pixel* data,int nls,D draw) : _data(data),_nls(nls),_draw(draw) {}
00102         void Set0(int x,int y)
00103         {
00104             _x=x;
00105             _y=y;
00106             ptr=_data+_nls*y+x;
00107             _draw(ptr);
00108         }
00115         template<int x_inc,int y_inc> void move()
00116         {
00117             ptr+=y_inc*_nls+x_inc;
00118             _draw(ptr);
00119         }
00120     };
00147
00176     template<typename F> class Line
00177     {
00178         F& functor;
00179         int d;
00180         int Aincr;
00181         int Bincr;
00182     public:
00183         Line(F& f) : functor(f)
00184         {
00185         }
00186         void Draw(int dx,int dy)
00187         {
00188             int yincr;
00189             int xincr;
00190             if (dx > 0) // determine increment for x
00191             {
00192                 xincr = 1;
00193             }
00194             else
00195             {
00196                 xincr = -1;
00197                 dx = -dx;
00198             }
00199             if (dy > 0) // determine increment for y
00200             {
00201                 yincr = 1;
00202             }
00203             else
00204             {
00205                 yincr = -1;
00206                 dy = -dy;
00207             }
00208             int vert=dy-dx;
00209             int dxy;
00210             if(vert<=0)
00211             {
00212                 dxy=dx;
00213                 Aincr = 2 * vert;
00214             }
00215             else
00216             {
00217                 dxy=dy;
00218                 Aincr = - 2 * vert;
00219             }
00220             Bincr = Aincr + 2*dxy;
00221             d =Aincr + dxy;
00222             if (xincr >= 0)
00223             {
00224                 if(vert <= 0)
00225                 {
00226                     if(yincr >0) bres<-1,+1,+1>(dxy);
00227                     else         bres<-1,+1,-1>(dxy);
00228                 }
00229                 else
00230                 {
00231                     if(yincr >0) bres<+1,+1,+1>(dxy);
00232                     else         bres<+1,-1,+1>(dxy);
00233                 }
00234
00235             }
00236             else //if(dx < 0)
00237             {
00238                 if(vert <= 0)
00239                 {
00240                     if(yincr >0) bres<-1,-1,+1>(dxy);
00241                     else         bres<-1,-1,-1>(dxy);
00242
00243                 }
00244                 else
00245                 {
00246                     if(yincr >0) bres<+1,+1,-1>(dxy);
00247                     else         bres<+1,-1,-1>(dxy);
00248                 }
00249             }
00250 /*
00251             else //if(dx == 0)
00252             {
00253                 if(dy==0)
00254                 {
00255
00256                 }
00257             }
00258 */
00259         }
00260     private:
00261         template<int is_vert,int plus_dir,int Increment> void move(int stride)
00262         {
00263             if(is_vert <= 0)
00264                 functor.move<plus_dir,Increment>();//x_move
00265             else
00266                 functor.move<Increment,plus_dir>();//y_move
00267         }
00268         template<int is_vert,int plus_dir,int Increment> void bres(int stride)
00269         {
00270             for( int t=0; t< stride; ++t)
00271             {
00272                 if (d >= 0)
00273                 {
00274                     d += Aincr;
00275                     move<is_vert,plus_dir,Increment>(stride);
00276                 }
00277                 else                    // set pixel B
00278                 {
00279                     d += Bincr;
00280                     move<is_vert,plus_dir,0>(stride);
00281                 }
00282             }
00283         }
00284 /*
00285         template<int plus_dir,int Increment> x_bres(int stride)
00286         {
00287             //d=plus_dir*d;
00288             for( int t=0; t< stride; ++t)
00289             {
00290                 if (d >= 0)
00291                 {
00292                     d += Aincr;
00293                     functor.move<plus_dir,Increment>();
00294                 }
00295                 else                    // set pixel B
00296                 {
00297                     d += Bincr;
00298                     functor.move<plus_dir,0>();
00299                 }
00300             }
00301         }
00302         template<int Increment,int plus_dir> y_bres(int stride)
00303         {
00304             for( int t=0; t< stride; ++t)
00305             {
00306                 if (d >= 0)
00307                 {
00308                     d += Aincr;
00309                     functor.move<Increment,plus_dir>();
00310                 }
00311                 else                    // set pixel B
00312                 {
00313                     d += Bincr;
00314                     functor.move<0,plus_dir>();
00315                 }
00316             }
00317         }
00318 */
00319     };
00320
00321
00322
00323
00324
00329     template<class T> class Circle
00330     {
00331         long    Asquared;
00332         long    TwoAsquared;
00333         long    Bsquared;
00334         long    TwoBsquared;
00335         // Listing 7-2
00336         long    d;
00337         long    dx,dy;
00338     public:
00341         Circle(int xc,int yc,int a0 )
00342         {
00343             int x = 0;
00344             int y = a0;
00345
00346             long    a = a0;             // use 32-bit precision
00347
00348             Asquared = a * a;       /* initialize values outside */
00349             TwoAsquared = 2 * Asquared; /*  of loops */
00350
00351             d = Asquared*(1 - a) + Asquared/4;
00352             dx = 0;
00353             dy = TwoAsquared * a;
00354         }
00355         void Draw()
00356         {
00357
00358             while (dx<dy)
00359             {
00360                 Set4Pixels( x, y, xc, yc);
00361
00362                 if (d > 0)
00363                 {
00364                     ++x;
00365                     --y;
00366                     dy -= TwoAsquared;
00367                     d -= dy;
00368                 }
00369                 else
00370                 {
00371                     ++x;
00372                 }
00373                 dx += TwoAsquared;
00374                 d += Asquared + dx;
00375             }
00376
00377
00378             d +=  - (dx+dy)/2;
00379
00380             while (y>=0)
00381             {
00382                 Set4Pixels( x, y, xc, yc);
00383
00384                 if (d < 0L)
00385                 {
00386                     ++x;
00387                     --y;
00388                     dx += TwoAsquared;
00389                     d += dx;
00390                 }
00391                 else
00392                 {
00393                     --y;
00394                 }
00395                 dy -= TwoAsquared;
00396                 d += Asquared - dy;
00397             }
00398         }
00399
00400         void Set4Pixels(int x,int y,int xc,int yc)      /* set pixels by symmetry in 4 quadrants */
00401         {
00402             SetPixel( xc+x, yc+y);
00403             SetPixel( xc-x, yc+y);
00404             SetPixel( xc+x, yc-y);
00405             SetPixel( xc-x, yc-y);
00406         }
00407     };
00413     template<class F> class EllipseH
00414     {
00415         long    Asquared;
00416         long    TwoAsquared;
00417         long    Bsquared;
00418         long    TwoBsquared;
00419         // Listing 7-2
00420         long    d;
00421         long    dx,dy;
00422     public:
00425         EllipseH(int xc,int yc,int a0,int b0 )
00426         {
00427             int x = 0;
00428             int y = b0;
00429
00430             long    a = a0;             // use 32-bit precision
00431             long    b = b0;
00432
00433             Asquared = a * a;       /* initialize values outside */
00434             TwoAsquared = 2 * Asquared; /*  of loops */
00435             Bsquared = b * b;
00436             TwoBsquared = 2 * Bsquared;
00437
00438             d = Bsquared - Asquared*b + Asquared/4L;
00439             dx = 0;
00440             dy = TwoAsquared * b;
00441         }
00442         void Draw()
00443         {
00444
00445             while (dx<dy)
00446             {
00447                 Set4Pixels( x, y, xc, yc);
00448
00449                 if (d > 0L)
00450                 {
00451                     ++x;
00452                     --y;
00453                     dy -= TwoAsquared;
00454                     d -= dy;
00455                 }
00456                 else
00457                 {
00458                     ++x;
00459                 }
00460                 dx += TwoBsquared;
00461                 d += Bsquared + dx;
00462             }
00463
00464
00465             d += (3L*(Asquared-Bsquared)/2L - (dx+dy)) / 2L;
00466
00467             while (y>=0)
00468             {
00469                 Set4Pixels( x, y, xc, yc);
00470
00471                 if (d < 0L)
00472                 {
00473                     ++x;
00474                     --y;
00475                     dx += TwoBsquared;
00476                     d += dx;
00477                 }
00478                 else
00479                 {
00480                     --y;
00481                 }
00482                 dy -= TwoAsquared;
00483                 d += Asquared - dy;
00484             }
00485         }
00486
00487         void Set4Pixels(int x,int y,int xc,int yc)      /* set pixels by symmetry in 4 quadrants */
00488         {
00489             SetPixel( xc+x, yc+y);
00490             SetPixel( xc-x, yc+y);
00491             SetPixel( xc+x, yc-y);
00492             SetPixel( xc-x, yc-y);
00493         }
00494     };
00500     template<class T> class Ellipse
00501     {
00502     };
00507     template<class T> class Fill
00508     {
00509     };
00510 }//namespace Bres
00511 }//namespace ImAlg
00512 }//namespace Vtl
00514 #endif //_ALG_BRESENHAM_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл apipe.h

  • Файлы
  • Список членов всех файлов

apipe.h

См. документацию.
00001 #ifndef _APIPE_H
00002 #define _APIPE_H
00004 #include <string>
00005 #include <vector>
00006 #include <map>
00007 #include <windows.h>
00008
00009
00010 class ReadPipe
00011 {
00012     friend class childPipe;
00013     HANDLE handle_;
00014 private:
00015     ReadPipe() : handle_(INVALID_HANDLE_VALUE) {}
00016     ReadPipe(HANDLE handle) : handle_(handle) {}
00017     ReadPipe(const ReadPipe&);//no body, protect from copy
00018     ReadPipe& operator=(const ReadPipe&);//no body, protect from copy
00019     void open(HANDLE handle)
00020     {
00021         if(handle_!=INVALID_HANDLE_VALUE)
00022             close();
00023         handle_=handle;
00024     }
00025 public:
00026     ~ReadPipe() { close(); }
00027     bool isEof() const {return handle_==INVALID_HANDLE_VALUE;}
00028     void close();
00029     unsigned readNoWait(char *data,unsigned len);
00030     unsigned readWait(char *data,unsigned len);
00031 };
00032
00033 class WritePipe
00034 {
00035     friend class childPipe;
00036     HANDLE handle_;
00037 private:
00038     WritePipe() : handle_(INVALID_HANDLE_VALUE) {}
00039     WritePipe(HANDLE handle) : handle_(handle) {}
00040     WritePipe(const WritePipe&);//no body, protect from copy
00041     WritePipe& operator=(const WritePipe&);//no body, protect from copy
00042     void open(HANDLE handle)
00043     {
00044         if(handle_!=INVALID_HANDLE_VALUE)
00045             close();
00046         handle_=handle;
00047     }
00048 public:
00049     ~WritePipe() { close(); }
00050     bool isEof() const {return handle_==INVALID_HANDLE_VALUE;}
00051     void close();
00052     unsigned writeNoWait(const char *data,unsigned len);
00053     unsigned writeWait(const char *data,unsigned len);
00054 };
00055
00056 class childPipe
00057 {
00058 public://types and constants
00059     enum Flags
00060     {
00061         F_StdIn =0x0001,
00062         F_StdOut=0x0002,//>Если не установленб вывод перенаправляется в NUL
00063         F_StdErr=0x0004,//>Если не установленб вывод перенаправляется в NUL
00064         F_Split =0x0008,//>Имеет смысл только если установлены F_StdOut и F_StdErr. Если флаг F_Split не установлен, оба выхода направляются в F_StdOut
00065         F_StdInOut=F_StdIn|F_StdOut,
00066         F_StdInErr=F_StdIn|F_StdErr,
00067         F_StdOutErr=F_StdOut|F_StdErr,
00068         F_StdOutErrSplit=F_StdOutErr|F_Split,
00069         F_StdInOutErr=F_StdIn|F_StdOut|F_StdErr,
00070         F_StdInOutErrSplit=F_StdInOutErr|F_Split
00071     };
00072     typedef std::map<std::string,std::string> Env;
00073     static size_t envCalcBinBlockSize(const childPipe::Env& env);
00074     static void* BuildEnvBlock(std::vector<char>& e,const childPipe::Env* env);
00075     static void envBuildBinBlock(const childPipe::Env& env,char *e,char delim=0,char delim_line=0);
00076     static void envBuildFromBinBlock(childPipe::Env& env,const char *e);//>ONLY if build with delim=0,delim_line=0
00077     static char * envMakeBinBlock(childPipe::Env* env);
00078     static void envFreeBinBlock(char* env_blk);
00079 private:
00080     PROCESS_INFORMATION pi;
00081     mutable DWORD exitStatus;
00082     WritePipe stdin_;
00083 //    HANDLE hStdin;              // write, child's STDIN
00084     ReadPipe stdout_;             // read, child's STDOUT
00085     ReadPipe stderr_;             // read, child's STDOUT
00086     bool the_same_stderr_stdout;
00087 private:
00088     void nullify();
00089     static bool Is(Flags flags_to_check,Flags flags) {return (flags_to_check&flags)==flags; }
00090 public:
00091     childPipe() {nullify();}
00092     childPipe(std::string command,const Env *env=0,Flags flags=F_StdInOutErr)
00093         {nullify();Init(command ,env,flags );}
00094     ~childPipe() {Close();}
00095     void Init(std::string command,const Env *env=0,Flags flags=F_StdInOutErr);
00096     void Close();
00097     DWORD ExitStatus() {return exitStatus;}
00098     bool isRunning();
00099     void terminate();//принудительно завершить процесс, аварийная ситуация, не гарантирует полную очистку - могут остаться открытые файлы, запущенные процессом дочерние процессы и DLL.
00100     void wait();
00101     WritePipe& Stdin() {return stdin_;}
00102     ReadPipe& Stdout() {return stdout_; }
00103     ReadPipe& Stderr() {return the_same_stderr_stdout ? stdout_:stderr_; }
00104 };
00105
00106 class ReadString
00107 {
00108     ReadPipe& rdpipe_;
00109     const unsigned max_len;
00110     std::vector<char> buffer;
00111     unsigned first_pos2;
00112     unsigned last_pos2;
00113     unsigned pos;
00114     bool null_detected;
00115     bool eof_detected;
00116     char last_char;
00117 private:
00118     void copy();
00119 public:
00120     ReadString(ReadPipe& rdpipe,unsigned max_string_len);
00121     char *gets(char *buf);
00122     bool IsAvail();
00123     bool IsEOF() const {return eof_detected; }
00124 };
00125
00127 #endif //_APIPE_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл AutoCalibration.h

  • Файлы
  • Список членов всех файлов

AutoCalibration.h

См. документацию.
00001 #ifndef AUTO_CALIBRATION_H
00002 #define AUTO_CALIBRATION_H
00003
00004 #include <iostream>
00005
00006 // library includings
00007 #include "num_linalg.h"
00008
00009 // own includings
00010 #include "RQDecomposition.h"
00011 #include "MatrixOperations.h"
00012 #include "EssentialMatrix.h"
00013 #include "AbsoluteDualQuadric.h"
00014 #include "EigenValueDecomp.h"
00015 #include "ProjectiveMatrix.h"
00016 #include "Sort.h"
00017
00018 namespace Basics3D
00019 {
00020     class C_AutoCalibration
00021     {
00022     private:
00023         // Computes focal length (common for both images) with Kruppa equations
00024         // !was not used, not debuged
00025         void FocalLength(double out_f1[2],
00026                            double out_f2[2],
00027                            const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_F);
00028
00029         double DirectSearchOfFocalLenth
00030                                  (const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_F);
00031     public:
00032         // !was not used, not debuged
00033         void DecomposeProjMatr(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_K,
00034                                  Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_R,
00035                              Vtl::NumAlg::Lin::ublas::c_vector<double, 3> &out_t,
00036                                  const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4> &in_P);
00037
00038         int GetH(std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 4, 4>> &out_H,
00039                     const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4> &in_P,
00040                     const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4> &in_P1);
00041
00042         void GetRightP(std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4>> &out_P,
00043                          Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_K,
00044                          Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_K1,
00045                                         Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_E,
00046                                      const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_F);
00047     };
00048 }
00049
00050
00051 #endif //AUTO_CALIBRATION_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл bmp.h

  • Файлы
  • Список членов всех файлов

bmp.h

См. документацию.
00001 #ifndef _BMP_H
00002 #define _BMP_H
00004 #include "yfile.h"
00006 namespace IFF
00007 {
00008
00009 #pragma pack(push,1)
00010 struct BMP_BitMapFileHeader
00011 {
00012     uint16_t bfType;      // always = 0x4d42 ( 'BM')
00013     uint32_t bfSize;      // file size in bytes (disk space)
00014     uint16_t bfReserved1; // =0
00015     uint16_t bfReserved2; // =0
00016     uint32_t bfOffBits;   // offset for raster data beginning
00017 };
00018 #pragma pack(pop)
00019 #pragma pack(push,1)
00020 struct BMP_BitMapInfoHeader
00021 {
00022     uint32_t biSize;          // this structure size,=40. Use for found RgbQuad data.
00023     uint32_t biWidth;
00024     uint32_t biHeight;
00025     uint16_t biPlanes;        // always = 1
00026     uint16_t biBitCount;      // 1,4,8 or 24.
00027     uint32_t biCompression;   // BI_RGB (no compression), BI_RLE8 or BI_RLE4.
00028     uint32_t biSizeImage;     // size of image in bytes, may be 0 for BI_RGB.
00029     uint32_t biXPelsPerMeter; // pixels per meter
00030     uint32_t biYPelsPerMeter;
00031     uint32_t biClrUsed;  // 0 - used all colors
00032     uint32_t biClrImportant; // n - first n colors (index) important, 0 -all.
00033 };
00034 #pragma pack(pop)
00035
00036 #ifndef BI_RGB
00037     #define BI_RGB  0
00038     #define BI_RLE8 1
00039     #define BI_RLE4 2
00040 #endif
00041 #ifndef RgbQuad
00042 #pragma pack(push,1)
00043 struct RgbQuad
00044 {
00045     Byte b;
00046     Byte g;
00047     Byte r;
00048     Byte reserved;
00049 };
00050 #pragma pack(pop)
00051 #endif
00052 //file structure:
00053 // BMP_BitMapFileHeader
00054 // BMP_BitMapInfoHeader
00055 // RgbQuad[0x1FF & (1<<biBitCount)]
00056 // Byte ImadeData[];
00057 // EOF
00058
00059 class BmpRead
00060 : private YFileRead
00061 {
00062 public:
00063     enum Type
00064     {
00065         BT_BILEVEL,
00066         BT_INDEX,
00067         BT_RGB
00068     };
00069 private:
00070     BMP_BitMapFileHeader  header;
00071     BMP_BitMapInfoHeader  info;
00072   uint32_t bytes_per_row;
00073     int pal_entries;
00074     RgbQuad *_pal;
00075     Type img_class;
00076     uint32_t base_offset;
00077 public:
00078     BmpRead(const char *filename);
00079     virtual ~BmpRead();
00080     Type GetType() { return img_class; }
00081     int GetPaletteEntries() const { return pal_entries;}
00082     const RgbQuad *GetPalette() { return _pal;}
00083     int Width()  const {return info.biWidth;}
00084     int Height() const {return info.biHeight;}
00085     int Bits()   const {return info.biBitCount; }
00086     void read(int x, int y,Byte *data,int len);
00087 //  void write(int x, int y,const Byte *data,int len);
00088 };
00089
00090 class BmpWrite
00091 : private YFileWrite
00092 {
00093 public:
00094     enum Type
00095     {
00096         BT_BILEVEL,
00097         BT_INDEX,
00098         BT_RGB
00099     };
00100 private:
00101     BMP_BitMapFileHeader  header;
00102     BMP_BitMapInfoHeader  info;
00103   uint32_t bytes_per_row;
00104     int pal_entries;
00105     uint32_t pal_offset;
00106 //  RgbQuad *_pal;
00107     Type img_class;
00108     uint32_t base_offset;
00109 public:
00110     BmpWrite(const char *filename,int width,int height,IFF::BmpWrite::Type iclass,const RgbQuad *pal);
00111     virtual ~BmpWrite();
00112     Type GetType() { return img_class; }
00113     int GetPaletteEntries() const { return pal_entries;}
00114 //  const RgbQuad *GetPalette() { return _pal;}
00115     int Width()  const {return info.biWidth;}
00116     int Height() const {return info.biHeight;}
00117     int Bits()   const {return info.biBitCount; }
00118 //  void read(int x, int y,Byte *data,int len);
00119     void write(int x, int y,const Byte *data,int len);
00120 };
00121 } //namespace IFF
00123 #endif //_BMP_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Bracketing.h

  • Файлы
  • Список членов всех файлов

Bracketing.h

См. документацию.
00001 #ifndef BRACKETING_H
00002 #define BRACKETING_H
00003
00004 #include <math.h>
00005
00006 // own includings
00007 #include "Func.h"
00008
00009 #define FACTOR 1.05
00010 #define NTRY 50
00011
00012 namespace Basics3D
00013 {
00014     //Given a function func and an initial guessed range x1 to x2, the routine expands the range
00015     //geometrically until a root is bracketed by the returned values x1 and x2 (in which case zbrac
00016     //returns 1) or until the range becomes unacceptably large (in which case zbrac returns 0).
00017     int zbrac(const IFunc *g,
00018                         double *x1,
00019                         double *x2);
00020
00022     //Given a function fx de ned on the interval from x1-x2 subdivide the interval into n equally
00023     //spaced segments, and search for zero crossings of the function. nb is input as the maximum number
00024     //of roots sought, and is reset to the number of bracketing pairs xb1[1..nb], xb2[1..nb]
00025     //that are found.
00026     //void zbrak(float (*fx)(float), float x1, float x2, int n, float xb1[], float xb2[], int *nb);
00027 }
00028 #endif // BRACKETING_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл C-Sharp_pixel_access.hxx

  • Файлы
  • Список членов всех файлов

C-Sharp_pixel_access.hxx

См. документацию.
00001


Pipe Line Filters: Cписок членов класса

AErrorStatusBase Cписок членов класса

Полный список членов класса AErrorStatusBase, включая наследуемые из базового класса

AErrorStatusBase() | AErrorStatusBase | [inline]
ClassName() const=0 | AErrorStatusBase | [pure virtual]
DerivedClassName() const=0 | AErrorStatusBase | [pure virtual]
File() const=0 | AErrorStatusBase | [pure virtual]
Line() const=0 | AErrorStatusBase | [pure virtual]
Msg() const=0 | AErrorStatusBase | [pure virtual]
operator const char *() const | AErrorStatusBase | [inline]
~AErrorStatusBase() | AErrorStatusBase | [inline, virtual]


Pipe Line Filters: Cписок членов класса

AImage Cписок членов класса

Полный список членов класса AImage, включая наследуемые из базового класса

AImage() | AImage | [inline]
Bits() const=0 | AImage | [pure virtual]
ChangeBits(int bits) | AImage | [inline, virtual]
ChangeHeight(short new_height) | AImage | [inline, virtual]
ClassName() const | AImage | [inline, virtual]
Clear()=0 | AImage | [pure virtual]
CopyPalette(AImage *to, const AImage *from) | AImage | [static]
Create(short width, short height, short bitsPerPix, bool hasPalette=false)=0 | AImage | [pure virtual]
GetFullImage() const | AImage | [inline, virtual]
GetImageInfo() const | AImage | [inline]
GetImageStore() const=0 | AImage | [pure virtual]
GetPaletteEntries() const | AImage | [inline, virtual]
GetPlane(int plane) | AImage | [inline, virtual]
GetPlane(int plane) const | AImage | [inline, virtual]
Height() const=0 | AImage | [pure virtual]
ImageClass() const=0 | AImage | [pure virtual]
ImageClassName(YImageClass iclass) | AImage | [static]
ImageClassName() const | AImage | [inline, virtual]
ImageStore() const | AImage | [inline, virtual]
ImageStoreName(YImageStore istore) | AImage | [static]
IMGC_BILEVEL элементы перечисления | AImage |
IMGC_FLOAT элементы перечисления | AImage |
IMGC_GRAYSCALE элементы перечисления | AImage |
IMGC_PALETTE элементы перечисления | AImage |
IMGC_RGB элементы перечисления | AImage |
IMGC_UNKNOWN элементы перечисления | AImage |
IMGS_AImageMem16 элементы перечисления | AImage |
IMGS_AImageMem8 элементы перечисления | AImage |
IMGS_AImageMemFloat элементы перечисления | AImage |
IMGS_AImageMemRgb16 элементы перечисления | AImage |
IMGS_AImageMemRgb8 элементы перечисления | AImage |
IMGS_Unknown элементы перечисления | AImage |
IsOk() const=0 | AImage | [pure virtual]
NextLineShift() const=0 | AImage | [pure virtual]
NumPlanes() const | AImage | [inline, virtual]
Palette() const | AImage | [inline, virtual]
read(int x, int y, Pixel16 *data, int len) const =0 | AImage | [pure virtual]
ThisClassName() | AImage | [static]
Width() const=0 | AImage | [pure virtual]
YImageClass перечисление | AImage |
YImageStore перечисление | AImage |
~AImage() | AImage | [inline, virtual]


Pipe Line Filters: Cписок членов класса

AImage::Error Cписок членов класса

Полный список членов класса AImage::Error, включая наследуемые из базового класса

AErrorStatusBase() | AErrorStatusBase | [inline]
ClassName() const | ErrorStatusBase | [inline, virtual]
DerivedClassName() const | ErrorStatusBase | [inline, virtual]
Error(const char *fname, int nline, const AImage *obj, const char *msgfmt,...) | AImage::Error |
ErrorStatusBase(const char *fname, int nline, const char *_cls_this, const char *_cls, bool del_msg) | ErrorStatusBase |
File() const | ErrorStatusBase | [inline, virtual]
Line() const | ErrorStatusBase | [inline, virtual]
message | AImage::Error | [private]
msg | ErrorStatusBase | [protected]
Msg() const | ErrorStatusBase | [virtual]
msg_need_delete | ErrorStatusBase | [protected]
operator const char *() const | AErrorStatusBase | [inline]
~AErrorStatusBase() | AErrorStatusBase | [inline, virtual]
~ErrorStatusBase() | ErrorStatusBase | [virtual]


Pipe Line Filters: Cписок членов класса

AImageMem8 Cписок членов класса

Полный список членов класса AImageMem8, включая наследуемые из базового класса

AImage() | AImage | [inline]
AImageMem8() | AImageMem8 | [inline]
Bits() const=0 | AImage | [pure virtual]
ChangeBits(int bits) | AImage | [inline, virtual]
ChangeHeight(short new_height) | AImage | [inline, virtual]
ClassName() const | AImageMem8 | [inline, virtual]
Clear()=0 | AImage | [pure virtual]
CopyPalette(AImage *to, const AImage *from) | AImage | [static]
Create(short width, short height, short bitsPerPix, bool hasPalette=false)=0 | AImage | [pure virtual]
GetFullImage() const | AImage | [inline, virtual]
GetImageInfo() const | AImage | [inline]
GetImageStore() const | AImageMem8 | [inline, virtual]
GetPaletteEntries() const | AImage | [inline, virtual]
GetPlane(int plane) | AImage | [inline, virtual]
GetPlane(int plane) const | AImage | [inline, virtual]
Height() const=0 | AImage | [pure virtual]
ImageClass() const=0 | AImage | [pure virtual]
ImageClassName(YImageClass iclass) | AImage | [static]
ImageClassName() const | AImage | [inline, virtual]
ImageStore() const | AImage | [inline, virtual]
ImageStoreName(YImageStore istore) | AImage | [static]
IMGC_BILEVEL элементы перечисления | AImage |
IMGC_FLOAT элементы перечисления | AImage |
IMGC_GRAYSCALE элементы перечисления | AImage |
IMGC_PALETTE элементы перечисления | AImage |
IMGC_RGB элементы перечисления | AImage |
IMGC_UNKNOWN элементы перечисления | AImage |
IMGS_AImageMem16 элементы перечисления | AImage |
IMGS_AImageMem8 элементы перечисления | AImage |
IMGS_AImageMemFloat элементы перечисления | AImage |
IMGS_AImageMemRgb16 элементы перечисления | AImage |
IMGS_AImageMemRgb8 элементы перечисления | AImage |
IMGS_Unknown элементы перечисления | AImage |
IsOk() const=0 | AImage | [pure virtual]
NextLineShift() const=0 | AImage | [pure virtual]
NumPlanes() const | AImage | [inline, virtual]
operator[](int y) const =0 | AImageMem8 | [pure virtual]
Palette() const | AImage | [inline, virtual]
Pixel typedef | AImageMem8 |
read(int x, int y, Pixel16 *data, int len) const =0 | AImage | [pure virtual]
SetTo(AImageMem8 *img, Pixel8 color) | AImageMem8 | [static]
SetTo(Pixel8 color) | AImageMem8 | [inline, virtual]
ThisClassName() | AImageMem8 | [static]
Width() const=0 | AImage | [pure virtual]
YImageClass перечисление | AImage |
YImageStore перечисление | AImage |
~AImage() | AImage | [inline, virtual]
~AImageMem8() | AImageMem8 | [inline, virtual]


Pipe Line Filters: Cписок членов класса

AImageMem16 Cписок членов класса

Полный список членов класса AImageMem16, включая наследуемые из базового класса

AImage() | AImage | [inline]
AImageMem16(const AImageMem16 &im) | AImageMem16 | [private]
AImageMem16() | AImageMem16 | [inline]
Bits() const=0 | AImage | [pure virtual]
ChangeBits(int bits) | AImage | [inline, virtual]
ChangeHeight(short new_height) | AImage | [inline, virtual]
ClassName() const | AImageMem16 | [inline, virtual]
Clear()=0 | AImage | [pure virtual]
CopyPalette(AImage *to, const AImage *from) | AImage | [static]
Create(short width, short height, short bitsPerPix, bool hasPalette=false)=0 | AImage | [pure virtual]
GetFullImage() const | AImage | [inline, virtual]
GetImageInfo() const | AImage | [inline]
GetImageStore() const | AImageMem16 | [inline, virtual]
GetPaletteEntries() const | AImage | [inline, virtual]
GetPlane(int plane) | AImage | [inline, virtual]
GetPlane(int plane) const | AImage | [inline, virtual]
Height() const=0 | AImage | [pure virtual]
ImageClass() const=0 | AImage | [pure virtual]
ImageClassName(YImageClass iclass) | AImage | [static]
ImageClassName() const | AImage | [inline, virtual]
ImageStore() const | AImage | [inline, virtual]
ImageStoreName(YImageStore istore) | AImage | [static]
IMGC_BILEVEL элементы перечисления | AImage |
IMGC_FLOAT элементы перечисления | AImage |
IMGC_GRAYSCALE элементы перечисления | AImage |
IMGC_PALETTE элементы перечисления | AImage |
IMGC_RGB элементы перечисления | AImage |
IMGC_UNKNOWN элементы перечисления | AImage |
IMGS_AImageMem16 элементы перечисления | AImage |
IMGS_AImageMem8 элементы перечисления | AImage |
IMGS_AImageMemFloat элементы перечисления | AImage |
IMGS_AImageMemRgb16 элементы перечисления | AImage |
IMGS_AImageMemRgb8 элементы перечисления | AImage |
IMGS_Unknown элементы перечисления | AImage |
IsOk() const=0 | AImage | [pure virtual]
NextLineShift() const=0 | AImage | [pure virtual]
NumPlanes() const | AImage | [inline, virtual]
operator[](int y) const =0 | AImageMem16 | [pure virtual]
Palette() const | AImage | [inline, virtual]
Pixel typedef | AImageMem16 |
read(int x, int y, Pixel16 *data, int len) const =0 | AImage | [pure virtual]
SetTo(AImageMem16 *img, Pixel16 color) | AImageMem16 | [static]
SetTo(Pixel16 color) | AImageMem16 | [inline, virtual]
ThisClassName() | AImageMem16 | [static]
Width() const=0 | AImage | [pure virtual]
YImageClass перечисление | AImage |
YImageStore перечисление | AImage |
~AImage() | AImage | [inline, virtual]
~AImageMem16() | AImageMem16 | [inline, virtual]


Pipe Line Filters: Cписок членов класса

AImageMemFloat Cписок членов класса

Полный список членов класса AImageMemFloat, включая наследуемые из базового класса

AImage() | AImage | [inline]
AImageMemFloat() | AImageMemFloat | [inline]
Bits() const=0 | AImage | [pure virtual]
ChangeBits(int bits) | AImage | [inline, virtual]
ChangeHeight(short new_height) | AImage | [inline, virtual]
ClassName() const | AImageMemFloat | [inline, virtual]
Clear()=0 | AImage | [pure virtual]
CopyPalette(AImage *to, const AImage *from) | AImage | [static]
Create(short width, short height, short bitsPerPix, bool hasPalette=false)=0 | AImage | [pure virtual]
GetFullImage() const | AImage | [inline, virtual]
GetImageInfo() const | AImage | [inline]
GetImageStore() const | AImageMemFloat | [inline, virtual]
GetPaletteEntries() const | AImage | [inline, virtual]
GetPlane(int plane) | AImage | [inline, virtual]
GetPlane(int plane) const | AImage | [inline, virtual]
Height() const=0 | AImage | [pure virtual]
ImageClass() const=0 | AImage | [pure virtual]
ImageClassName(YImageClass iclass) | AImage | [static]
ImageClassName() const | AImage | [inline, virtual]
ImageStore() const | AImage | [inline, virtual]
ImageStoreName(YImageStore istore) | AImage | [static]
IMGC_BILEVEL элементы перечисления | AImage |
IMGC_FLOAT элементы перечисления | AImage |
IMGC_GRAYSCALE элементы перечисления | AImage |
IMGC_PALETTE элементы перечисления | AImage |
IMGC_RGB элементы перечисления | AImage |
IMGC_UNKNOWN элементы перечисления | AImage |
IMGS_AImageMem16 элементы перечисления | AImage |
IMGS_AImageMem8 элементы перечисления | AImage |
IMGS_AImageMemFloat элементы перечисления | AImage |
IMGS_AImageMemRgb16 элементы перечисления | AImage |
IMGS_AImageMemRgb8 элементы перечисления | AImage |
IMGS_Unknown элементы перечисления | AImage |
IsOk() const=0 | AImage | [pure virtual]
NextLineShift() const=0 | AImage | [pure virtual]
NumPlanes() const | AImage | [inline, virtual]
operator[](int y) const =0 | AImageMemFloat | [pure virtual]
Palette() const | AImage | [inline, virtual]
Pixel typedef | AImageMemFloat |
read(int x, int y, Pixel16 *data, int len) const =0 | AImage | [pure virtual]
SetTo(PixelFloat color)=0 | AImageMemFloat | [pure virtual]
ThisClassName() | AImageMemFloat | [static]
Width() const=0 | AImage | [pure virtual]
YImageClass перечисление | AImage |
YImageStore перечисление | AImage |
~AImage() | AImage | [inline, virtual]
~AImageMemFloat() | AImageMemFloat | [inline, virtual]


Pipe Line Filters: Cписок членов класса

AImageMemRgb8 Cписок членов класса

Полный список членов класса AImageMemRgb8, включая наследуемые из базового класса

AImage() | AImage | [inline]
AImageMemRgb8() | AImageMemRgb8 | [inline]
Bits() const=0 | AImage | [pure virtual]
ChangeBits(int bits) | AImage | [inline, virtual]
ChangeHeight(short new_height) | AImage | [inline, virtual]
ClassName() const | AImageMemRgb8 | [inline, virtual]
Clear()=0 | AImage | [pure virtual]
CopyPalette(AImage *to, const AImage *from) | AImage | [static]
Create(short width, short height, short bitsPerPix, bool hasPalette=false)=0 | AImage | [pure virtual]
GetFullImage() const | AImage | [inline, virtual]
GetImageInfo() const | AImage | [inline]
GetImageStore() const | AImageMemRgb8 | [inline, virtual]
GetPaletteEntries() const | AImage | [inline, virtual]
GetPlane(int plane) | AImageMemRgb8 | [inline, virtual]
GetPlane(int plane) const | AImageMemRgb8 | [inline, virtual]
GetPlane8(int plane) const=0 | AImageMemRgb8 | [pure virtual]
Height() const=0 | AImage | [pure virtual]
ImageClass() const=0 | AImage | [pure virtual]
ImageClassName(YImageClass iclass) | AImage | [static]
ImageClassName() const | AImage | [inline, virtual]
ImageStore() const | AImage | [inline, virtual]
ImageStoreName(YImageStore istore) | AImage | [static]
IMGC_BILEVEL элементы перечисления | AImage |
IMGC_FLOAT элементы перечисления | AImage |
IMGC_GRAYSCALE элементы перечисления | AImage |
IMGC_PALETTE элементы перечисления | AImage |
IMGC_RGB элементы перечисления | AImage |
IMGC_UNKNOWN элементы перечисления | AImage |
IMGS_AImageMem16 элементы перечисления | AImage |
IMGS_AImageMem8 элементы перечисления | AImage |
IMGS_AImageMemFloat элементы перечисления | AImage |
IMGS_AImageMemRgb16 элементы перечисления | AImage |
IMGS_AImageMemRgb8 элементы перечисления | AImage |
IMGS_Unknown элементы перечисления | AImage |
IsOk() const=0 | AImage | [pure virtual]
NextLineShift() const=0 | AImage | [pure virtual]
NumPlanes() const | AImageMemRgb8 | [inline, virtual]
Palette() const | AImage | [inline, virtual]
Pixel typedef | AImageMemRgb8 |
PlaneImageType typedef | AImageMemRgb8 |
read(int x, int y, Pixel16 *data, int len) const =0 | AImage | [pure virtual]
SetTo(AImageMemRgb8 *img, Rgb color) | AImageMemRgb8 | [static]
SetTo(Rgb color) | AImageMemRgb8 | [inline, virtual]
ThisClassName() | AImageMemRgb8 | [static]
Width() const=0 | AImage | [pure virtual]
YImageClass перечисление | AImage |
YImageStore перечисление | AImage |
~AImage() | AImage | [inline, virtual]
~AImageMemRgb8() | AImageMemRgb8 | [inline, virtual]


Pipe Line Filters: Cписок членов класса

AImageMemRgb16 Cписок членов класса

Полный список членов класса AImageMemRgb16, включая наследуемые из базового класса

AImage() | AImage | [inline]
AImageMemRgb16() | AImageMemRgb16 | [inline]
Bits() const=0 | AImage | [pure virtual]
ChangeBits(int bits) | AImage | [inline, virtual]
ChangeHeight(short new_height) | AImage | [inline, virtual]
ClassName() const | AImageMemRgb16 | [inline, virtual]
Clear()=0 | AImage | [pure virtual]
CopyPalette(AImage *to, const AImage *from) | AImage | [static]
Create(short width, short height, short bitsPerPix, bool hasPalette=false)=0 | AImage | [pure virtual]
GetFullImage() const | AImage | [inline, virtual]
GetImageInfo() const | AImage | [inline]
GetImageStore() const | AImageMemRgb16 | [inline, virtual]
GetPaletteEntries() const | AImage | [inline, virtual]
GetPlane(int plane) | AImageMemRgb16 | [inline, virtual]
GetPlane(int plane) const | AImageMemRgb16 | [inline, virtual]
GetPlane16(int plane) const=0 | AImageMemRgb16 | [pure virtual]
Height() const=0 | AImage | [pure virtual]
ImageClass() const=0 | AImage | [pure virtual]
ImageClassName(YImageClass iclass) | AImage | [static]
ImageClassName() const | AImage | [inline, virtual]
ImageStore() const | AImage | [inline, virtual]
ImageStoreName(YImageStore istore) | AImage | [static]
IMGC_BILEVEL элементы перечисления | AImage |
IMGC_FLOAT элементы перечисления | AImage |
IMGC_GRAYSCALE элементы перечисления | AImage |
IMGC_PALETTE элементы перечисления | AImage |
IMGC_RGB элементы перечисления | AImage |
IMGC_UNKNOWN элементы перечисления | AImage |
IMGS_AImageMem16 элементы перечисления | AImage |
IMGS_AImageMem8 элементы перечисления | AImage |
IMGS_AImageMemFloat элементы перечисления | AImage |
IMGS_AImageMemRgb16 элементы перечисления | AImage |
IMGS_AImageMemRgb8 элементы перечисления | AImage |
IMGS_Unknown элементы перечисления | AImage |
IsOk() const=0 | AImage | [pure virtual]
NextLineShift() const=0 | AImage | [pure virtual]
NumPlanes() const | AImageMemRgb16 | [inline, virtual]
Palette() const | AImage | [inline, virtual]
Pixel typedef | AImageMemRgb16 |
PlaneImageType typedef | AImageMemRgb16 |
read(int x, int y, Pixel16 *data, int len) const =0 | AImage | [pure virtual]
SetTo(Rgb color)=0 | AImageMemRgb16 | [pure virtual]
ThisClassName() | AImageMemRgb16 | [static]
Width() const=0 | AImage | [pure virtual]
YImageClass перечисление | AImage |
YImageStore перечисление | AImage |
~AImage() | AImage | [inline, virtual]
~AImageMemRgb16() | AImageMemRgb16 | [inline, virtual]


Pipe Line Filters: Cписок членов класса

AImageProxy Cписок членов класса

Полный список членов класса AImageProxy, включая наследуемые из базового класса

bits() const=0 | AImageProxy | [pure virtual]
clone() const=0 | AImageProxy | [pure virtual]
get(int x, int y) const=0 | AImageProxy | [pure virtual]
height() const=0 | AImageProxy | [pure virtual]
imageClass() const=0 | AImageProxy | [pure virtual]
maxValue() const=0 | AImageProxy | [pure virtual]
set(int x, int y, int value)=0 | AImageProxy | [pure virtual]
width() const=0 | AImageProxy | [pure virtual]
~AImageProxy() | AImageProxy | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ATransformFunction Cписок членов класса

Полный список членов класса ATransformFunction, включая наследуемые из базового класса

canForward(const YPoint< double > &p) const =0 | ATransformFunction | [pure virtual]
canReverse(const YPoint< double > &p) const =0 | ATransformFunction | [pure virtual]
clone() const=0 | ATransformFunction | [pure virtual]
forward(const YPoint< double > &p) const =0 | ATransformFunction | [pure virtual]
reverse(const YPoint< double > &p) const =0 | ATransformFunction | [pure virtual]


Pipe Line Filters: Cписок членов класса

Basics3D::AbsoluteDualQuadric Cписок членов класса

Полный список членов класса Basics3D::AbsoluteDualQuadric, включая наследуемые из базового класса

CreateSystem(Vtl::NumAlg::Lin::ublas::c_matrix< double, 8, 10 > &out_s, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P1) | Basics3D::AbsoluteDualQuadric | [private]
Get(Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 16 > &out_Q, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P1) | Basics3D::AbsoluteDualQuadric |
SolveDet0(Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 16 > &out_Q, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 8, 10 > &in_s) | Basics3D::AbsoluteDualQuadric | [private]


Pipe Line Filters: Cписок членов класса

Basics3D::C_AbsDifference Cписок членов класса

Полный список членов класса Basics3D::C_AbsDifference, включая наследуемые из базового класса

Apply() | Basics3D::C_AbsDifference |
C_AbsDifference(const AImageMem8 *in_im1, const AImageMem8 *in_im2) | Basics3D::C_AbsDifference |
m_dif | Basics3D::C_AbsDifference | [private]
m_im1 | Basics3D::C_AbsDifference | [private]
m_im2 | Basics3D::C_AbsDifference | [private]
Save(const char *in_filename) | Basics3D::C_AbsDifference |


Pipe Line Filters: Cписок членов класса

Basics3D::C_AutoCalibration Cписок членов класса

Полный список членов класса Basics3D::C_AutoCalibration, включая наследуемые из базового класса

DecomposeProjMatr(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_K, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_R, Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &out_t, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P) | Basics3D::C_AutoCalibration |
DirectSearchOfFocalLenth(const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F) | Basics3D::C_AutoCalibration | [private]
FocalLength(double out_f1[2], double out_f2[2], const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F) | Basics3D::C_AutoCalibration | [private]
GetH(std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 4 >> &out_H, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P1) | Basics3D::C_AutoCalibration |
GetRightP(std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 >> &out_P, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_K, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_K1, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_E, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F) | Basics3D::C_AutoCalibration |


Pipe Line Filters: Cписок членов класса

Basics3D::C_Combination Cписок членов класса

Полный список членов класса Basics3D::C_Combination, включая наследуемые из базового класса

C_Combination(const T_ImagesSet< AImageMem8 > &in_img) | Basics3D::C_Combination |
m_comb | Basics3D::C_Combination | [private]
m_img | Basics3D::C_Combination | [private]
Make() | Basics3D::C_Combination |
MarkCorrespondences(const std::vector< T_Points2DSet< C_Point2D >> &in_PointsSet, int in_N) | Basics3D::C_Combination |
MarkCorrespondences(const T_Points2DSet< C_Point2D > &in_PointsSet, int in_n, int in_N) | Basics3D::C_Combination |
Save(const char *in_outputImageName) | Basics3D::C_Combination |
~C_Combination() | Basics3D::C_Combination |


Pipe Line Filters: Cписок членов класса

Basics3D::C_DrawEpipolarLines Cписок членов класса

Полный список членов класса Basics3D::C_DrawEpipolarLines, включая наследуемые из базового класса

Apply(const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_m, const T_Points2DSet< C_Point2D > &in_points, int i) | Basics3D::C_DrawEpipolarLines |
C_DrawEpipolarLines(const AImageMem8 *in_src0, const AImageMem8 *in_src1) | Basics3D::C_DrawEpipolarLines |
DrawLine(AImageMem8 *in_img, const int in_nls, const int in_col, const int in_x1, const int in_y1, const int in_x2, const int in_y2) | Basics3D::C_DrawEpipolarLines |
Ends(const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > &in_Line, const int in_h, const int in_w, int *out_x1, int *out_y1, int *out_x2, int *out_y2) | Basics3D::C_DrawEpipolarLines |
GetRandColor(int *r, int *g, int *b) | Basics3D::C_DrawEpipolarLines |
m_dst0 | Basics3D::C_DrawEpipolarLines | [private]
m_dst1 | Basics3D::C_DrawEpipolarLines | [private]
m_src0 | Basics3D::C_DrawEpipolarLines | [private]
m_src1 | Basics3D::C_DrawEpipolarLines | [private]
Save(const char *in_outputImageName, const int in_i) | Basics3D::C_DrawEpipolarLines |


Pipe Line Filters: Cписок членов класса

Basics3D::C_Epipole Cписок членов класса

Полный список членов класса Basics3D::C_Epipole, включая наследуемые из базового класса

Left(Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &out_e, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F) | Basics3D::C_Epipole | [static]
Normalize(Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &in_out) | Basics3D::C_Epipole | [static]
Right(Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &out_e, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F) | Basics3D::C_Epipole | [static]


Pipe Line Filters: Cписок членов класса

Basics3D::C_FundamentalMatrix Cписок членов класса

Полный список членов класса Basics3D::C_FundamentalMatrix, включая наследуемые из базового класса

ApplyRansac(std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out_matrix, std::vector< T_Points2DSet< C_Point2D >> &out_inliers, std::vector< T_Points2DSet< C_Point2D >> &in_pointsSet, const T_ImagesSet< AImageMem8 > &in_img, const int in_i, const double in_sigma) | Basics3D::C_FundamentalMatrix | [static]
CreateSystem(Vtl::NumAlg::Lin::ublas::matrix< double > &out_M, const T_Points2DSet< C_Point2D > &in_Points) | Basics3D::C_FundamentalMatrix | [static]
CreateSystem(Vtl::NumAlg::Lin::ublas::matrix< double > &out_M, const std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &in_Matrices) | Basics3D::C_FundamentalMatrix | [static]
DerivativeOfMistFunc(Vtl::NumAlg::Lin::ublas::vector< double > &out, const Vtl::NumAlg::Lin::ublas::vector< double > &in_matrix, const C_Point2D &in_p1, const C_Point2D &in_p2) | Basics3D::C_FundamentalMatrix | [static]
Dist(const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > &in_p1, const C_Point2D &in_p2) | Basics3D::C_FundamentalMatrix | [static]
DistThresh(double in_sigma) | Basics3D::C_FundamentalMatrix | [static]
EightPointsAlg(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const Vtl::NumAlg::Lin::ublas::matrix< double > &in_System) | Basics3D::C_FundamentalMatrix | [private, static]
Find(std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out, const Vtl::NumAlg::Lin::ublas::matrix< double > &in_System) | Basics3D::C_FundamentalMatrix | [static]
FromHomographies(std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out_FM, const std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &in_H) | Basics3D::C_FundamentalMatrix | [static]
MistFunc(const Vtl::NumAlg::Lin::ublas::vector< double > &in_matrix, const C_Point2D &in_p1, const C_Point2D &in_p2) | Basics3D::C_FundamentalMatrix | [static]
NormMatrix(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_M, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_M, const double in_err) | Basics3D::C_FundamentalMatrix | [static]
RecomputeWithAllPoints(std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out_matrix, std::vector< T_Points2DSet< C_Point2D >> &out_inliers, std::vector< C_Points2DParamSet > &in_pointsParamSet, const T_ImagesSet< AImageMem8 > &in_img, const int in_i, const double in_sigma, const double in_t) | Basics3D::C_FundamentalMatrix | [static]
SampleSize() | Basics3D::C_FundamentalMatrix | [static]
SevenPointsAlg(std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out, const Vtl::NumAlg::Lin::ublas::matrix< double > &in_System) | Basics3D::C_FundamentalMatrix | [private, static]


Pipe Line Filters: Cписок членов класса

Basics3D::C_HomographyMatrix Cписок членов класса

Полный список членов класса Basics3D::C_HomographyMatrix, включая наследуемые из базового класса

ApplyRansac(std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out_matrix, std::vector< T_Points2DSet< C_Point2D >> &out_inliers, std::vector< T_Points2DSet< C_Point2D >> &in_pointsSet, const T_ImagesSet< AImageMem8 > &in_img, const int in_i, const int in_j, const int in_size, const double in_sigma) | Basics3D::C_HomographyMatrix | [static]
CreateSystem(Vtl::NumAlg::Lin::ublas::matrix< double > &out_M, const T_Points2DSet< C_Point2D > &in_Points) | Basics3D::C_HomographyMatrix | [static]
DerivativeOfMistFunc(Vtl::NumAlg::Lin::ublas::vector< double > &out, const Vtl::NumAlg::Lin::ublas::vector< double > &in_matrix, const C_Point2D &in_p1, const C_Point2D &in_p2) | Basics3D::C_HomographyMatrix | [static]
Dist(const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > &in_p1, const C_Point2D &in_p2) | Basics3D::C_HomographyMatrix | [static]
DistThresh(double in_sigma) | Basics3D::C_HomographyMatrix | [static]
Find(std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out, const Vtl::NumAlg::Lin::ublas::matrix< double > &in_System) | Basics3D::C_HomographyMatrix | [static]
MistFunc(const Vtl::NumAlg::Lin::ublas::vector< double > &in_matrix, const C_Point2D &in_p1, const C_Point2D &in_p2) | Basics3D::C_HomographyMatrix | [static]
NormMatrix(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_M, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_M, const double in_err) | Basics3D::C_HomographyMatrix | [static]
RecomputeWithAllPoints(std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out_matrix, std::vector< T_Points2DSet< C_Point2D >> &out_inliers, std::vector< C_Points2DParamSet > &in_pointsParamSet, const T_ImagesSet< AImageMem8 > &in_img, const int in_i, const int in_j, const double in_sigma, const double in_t) | Basics3D::C_HomographyMatrix | [static]
SampleSize() | Basics3D::C_HomographyMatrix | [static]


Pipe Line Filters: Cписок членов класса

Basics3D::C_Point2D Cписок членов класса

Полный список членов класса Basics3D::C_Point2D, включая наследуемые из базового класса

C_Point2D() | Basics3D::C_Point2D |
C_Point2D(double in_x, double in_y, int in_numb) | Basics3D::C_Point2D |
C_Point2D(std::ifstream inFile) | Basics3D::C_Point2D |
m_numb | Basics3D::C_Point2D | [protected]
m_x | Basics3D::C_Point2D | [protected]
m_y | Basics3D::C_Point2D | [protected]
Matrix(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > *out) const | Basics3D::C_Point2D |
Numb() const | Basics3D::C_Point2D |
operator=(const C_Point2D in_point) | Basics3D::C_Point2D |
Print() const | Basics3D::C_Point2D |
Scale(double in_coef) | Basics3D::C_Point2D |
SetNumb(const int i) | Basics3D::C_Point2D |
Shift(double in_MeanX, double in_MeanY) | Basics3D::C_Point2D |
X() const | Basics3D::C_Point2D |
Y() const | Basics3D::C_Point2D |


Pipe Line Filters: Cписок членов класса

Basics3D::C_Point2DParam Cписок членов класса

Полный список членов класса Basics3D::C_Point2DParam, включая наследуемые из базового класса

C_Point2D() | Basics3D::C_Point2D |
C_Point2D(double in_x, double in_y, int in_numb) | Basics3D::C_Point2D |
C_Point2D(std::ifstream inFile) | Basics3D::C_Point2D |
C_Point2DParam(double in_x, double in_y, int in_numb, double in_sigma, double in_angle, const std::vector< float > &in_param) | Basics3D::C_Point2DParam |
Distance(const C_Point2DParam &in_point) const | Basics3D::C_Point2DParam |
m_angle | Basics3D::C_Point2DParam | [private]
m_numb | Basics3D::C_Point2D | [protected]
m_param | Basics3D::C_Point2DParam | [private]
m_paramNumb | Basics3D::C_Point2DParam | [private, static]
m_sigma | Basics3D::C_Point2DParam | [private]
m_x | Basics3D::C_Point2D | [protected]
m_y | Basics3D::C_Point2D | [protected]
Matrix(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > *out) const | Basics3D::C_Point2D |
Numb() const | Basics3D::C_Point2D |
operator=(const C_Point2D in_point) | Basics3D::C_Point2D |
Param(int i) const | Basics3D::C_Point2DParam |
ParamNumb() | Basics3D::C_Point2DParam | [inline, static]
Print() const | Basics3D::C_Point2D |
Scale(double in_coef) | Basics3D::C_Point2D |
SetNumb(const int i) | Basics3D::C_Point2D |
Shift(double in_MeanX, double in_MeanY) | Basics3D::C_Point2D |
X() const | Basics3D::C_Point2D |
Y() const | Basics3D::C_Point2D |


Pipe Line Filters: Cписок членов класса

Basics3D::C_Points2DParamSet Cписок членов класса

Полный список членов класса Basics3D::C_Points2DParamSet, включая наследуемые из базового класса

C_Points2DParamSet(int i=1) | Basics3D::C_Points2DParamSet |
ClearMeans() | Basics3D::C_Points2DParamSet | [private]
Disable(T_Points2DSet< C_Point2D > &in_Set, int j) | Basics3D::C_Points2DParamSet |
EnableAll() | Basics3D::C_Points2DParamSet |
Load(const char *in_filename, const int in_imHeight) | Basics3D::C_Points2DParamSet |
m_groupSize | Basics3D::C_Points2DParamSet | [private]
m_MeanDev | Basics3D::C_Points2DParamSet | [private]
m_MeanX | Basics3D::C_Points2DParamSet | [private]
m_MeanY | Basics3D::C_Points2DParamSet | [private]
m_Points | Basics3D::C_Points2DParamSet | [private]
MeanDev(int i) | Basics3D::C_Points2DParamSet | [private]
MeanX(int i) | Basics3D::C_Points2DParamSet | [private]
MeanY(int i) | Basics3D::C_Points2DParamSet | [private]
Normalize() | Basics3D::C_Points2DParamSet |
operator[](int i) const | Basics3D::C_Points2DParamSet |
Size() const | Basics3D::C_Points2DParamSet |


Pipe Line Filters: Cписок членов класса

Basics3D::C_ProjectiveMatrix Cписок членов класса

Полный список членов класса Basics3D::C_ProjectiveMatrix, включая наследуемые из базового класса

GetP(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &out_P, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_UWV, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_U, const int in_k, const int in_sgn) | Basics3D::C_ProjectiveMatrix | [private, static]
GetW(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_W) | Basics3D::C_ProjectiveMatrix | [private, static]
Left(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &out) | Basics3D::C_ProjectiveMatrix | [static]
Right(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &out, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F) | Basics3D::C_ProjectiveMatrix | [static]
Right(std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 >> &out_P, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_E) | Basics3D::C_ProjectiveMatrix | [static]
SortColumns(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_M, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_M, const int k[3]) | Basics3D::C_ProjectiveMatrix | [private, static]
SortSV(int k[3]) | Basics3D::C_ProjectiveMatrix | [private, static]


Pipe Line Filters: Cписок членов класса

Basics3D::C_StructureComputation Cписок членов класса

Полный список членов класса Basics3D::C_StructureComputation, включая наследуемые из базового класса

AsimptValue(const double a, const double c, const double f, const double f1) | Basics3D::C_StructureComputation | [private]
BuildModelFaces(const char *in_filename, const char *in_triang) | Basics3D::C_StructureComputation | [private]
BuildModelPoints(const char *in_filename) | Basics3D::C_StructureComputation | [private]
C_StructureComputation(const T_Points2DSet< C_Point2D > &in_points2D, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_F, const int in_width, const int in_height, const double in_sigma) | Basics3D::C_StructureComputation |
ClosestToOriginPoint(Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > out_p, const Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > in_line) | Basics3D::C_StructureComputation | [private]
Correct(const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > in_P, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > in_P1, const Vtl::NumAlg::Lin::ublas::matrix< double > in_points, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 4 > &in_H) | Basics3D::C_StructureComputation | [private]
CostFunction(const double a, const double b, const double c, const double d, const double f, const double f1, const double t) | Basics3D::C_StructureComputation | [private]
m_fundM | Basics3D::C_StructureComputation | [private]
m_maxX | Basics3D::C_StructureComputation | [private]
m_maxY | Basics3D::C_StructureComputation | [private]
m_maxZ | Basics3D::C_StructureComputation | [private]
m_minX | Basics3D::C_StructureComputation | [private]
m_minY | Basics3D::C_StructureComputation | [private]
m_minZ | Basics3D::C_StructureComputation | [private]
m_normPoints2D | Basics3D::C_StructureComputation | [private]
m_points3D | Basics3D::C_StructureComputation | [private]
m_texCoord | Basics3D::C_StructureComputation | [private]
OptimalSolution() | Basics3D::C_StructureComputation | [private]
Reconstruction(const double in_g) | Basics3D::C_StructureComputation |


Pipe Line Filters: Cписок членов класса

Basics3D::C_Transform Cписок членов класса

Полный список членов класса Basics3D::C_Transform, включая наследуемые из базового класса

Apply(const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_M) | Basics3D::C_Transform |
C_Transform(const AImageMem8 *in_src) | Basics3D::C_Transform |
m_dst | Basics3D::C_Transform | [private]
m_src | Basics3D::C_Transform | [private]
Save(char *in_filename) | Basics3D::C_Transform |


Pipe Line Filters: Cписок членов класса

Basics3D::C_TransformMatrices Cписок членов класса

Полный список членов класса Basics3D::C_TransformMatrices, включая наследуемые из базового класса

Identity(MatrixType &out) | Basics3D::C_TransformMatrices | [inline, static]
Normalization(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_MeanX, const double in_MeanY, const double in_MeanDev, const double in_pointErr) | Basics3D::C_TransformMatrices | [static]
NormalizationInverse(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_MeanX, const double in_MeanY, const double in_MeanDev, const double in_pointErr) | Basics3D::C_TransformMatrices | [static]
Rotation(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &in_e) | Basics3D::C_TransformMatrices | [static]
RotationX(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_cos, const double in_sin) | Basics3D::C_TransformMatrices | [static]
RotationY(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_cos, const double in_sin) | Basics3D::C_TransformMatrices | [static]
RotationZ(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_cos, const double in_sin) | Basics3D::C_TransformMatrices | [static]
Scaling(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_coef) | Basics3D::C_TransformMatrices | [static]
SkewSymmetric(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &in_v) | Basics3D::C_TransformMatrices | [static]
Translational(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_X, const double in_Y) | Basics3D::C_TransformMatrices | [static]
TranslationalInverse(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out, const double in_X, const double in_Y) | Basics3D::C_TransformMatrices | [static]


Pipe Line Filters: Cписок членов класса

Basics3D::C_Triangulation Cписок членов класса

Полный список членов класса Basics3D::C_Triangulation, включая наследуемые из базового класса

C_Triangulation(const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 4 > &in_P1) | Basics3D::C_Triangulation |
CreateSystem(Vtl::NumAlg::Lin::ublas::c_matrix< double, 4, 4 > &out_System, const C_Point2D &in_p1, const C_Point2D &in_p2) | Basics3D::C_Triangulation | [private]
Get3DPoint(Vtl::NumAlg::Lin::ublas::c_vector< double, 3 > &out, const C_Point2D &in_p1, const C_Point2D &in_p2) | Basics3D::C_Triangulation |
m_p1 | Basics3D::C_Triangulation | [private]
m_p1_1 | Basics3D::C_Triangulation | [private]
m_p2 | Basics3D::C_Triangulation | [private]
m_p2_1 | Basics3D::C_Triangulation | [private]
m_p3 | Basics3D::C_Triangulation | [private]
m_p3_1 | Basics3D::C_Triangulation | [private]


Pipe Line Filters: Cписок членов класса

Basics3D::Eq4Degree Cписок членов класса

Полный список членов класса Basics3D::Eq4Degree, включая наследуемые из базового класса

Deriv(const double in_t) const | Basics3D::Eq4Degree | [virtual]
Eq4Degree(const double in_a, const double in_b, const double in_c, const double in_d, const double in_e, const int in_n) | Basics3D::Eq4Degree |
Func(const double in_t) const | Basics3D::Eq4Degree | [virtual]
m_a | Basics3D::Eq4Degree | [private]
m_b | Basics3D::Eq4Degree | [private]
m_c | Basics3D::Eq4Degree | [private]
m_d | Basics3D::Eq4Degree | [private]
m_e | Basics3D::Eq4Degree | [private]
m_n | Basics3D::Eq4Degree | [private]
N() const | Basics3D::Eq4Degree |


Pipe Line Filters: Cписок членов класса

Basics3D::Fm2Essential::CameraPoseFromEssential< T > Cписок членов класса

Полный список членов класса Basics3D::Fm2Essential::CameraPoseFromEssential< T >, включая наследуемые из базового класса

build_W() | Basics3D::Fm2Essential::CameraPoseFromEssential< T > | [inline, private, static]
build_W(Matrix_3x3 &w) | Basics3D::Fm2Essential::CameraPoseFromEssential< T > | [inline, private, static]
CameraPoseFromEssential(const Matrix_3x3 E_) | Basics3D::Fm2Essential::CameraPoseFromEssential< T > | [inline]
E | Basics3D::Fm2Essential::CameraPoseFromEssential< T > | [private]
Matrix_3x3 typedef | Basics3D::Fm2Essential::CameraPoseFromEssential< T > | [private]
Matrix_4x3 typedef | Basics3D::Fm2Essential::CameraPoseFromEssential< T > | [private]
mult(const Matrix_3x3 &a, const Matrix_3x3 &b, const Matrix_3x3 &c) | Basics3D::Fm2Essential::CameraPoseFromEssential< T > | [inline, private, static]
N3 элементы перечисления | Basics3D::Fm2Essential::CameraPoseFromEssential< T > | [private]
N4 элементы перечисления | Basics3D::Fm2Essential::CameraPoseFromEssential< T > | [private]
R | Basics3D::Fm2Essential::CameraPoseFromEssential< T > |
R0 | Basics3D::Fm2Essential::CameraPoseFromEssential< T > |
t | Basics3D::Fm2Essential::CameraPoseFromEssential< T > |
t0 | Basics3D::Fm2Essential::CameraPoseFromEssential< T > |
value_type typedef | Basics3D::Fm2Essential::CameraPoseFromEssential< T > | [private]
Vector_3 typedef | Basics3D::Fm2Essential::CameraPoseFromEssential< T > | [private]
Vector_4 typedef | Basics3D::Fm2Essential::CameraPoseFromEssential< T > | [private]
W | Basics3D::Fm2Essential::CameraPoseFromEssential< T > | [private]
WT | Basics3D::Fm2Essential::CameraPoseFromEssential< T > | [private]


Pipe Line Filters: Cписок членов класса

Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > Cписок членов класса

Полный список членов класса Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >, включая наследуемые из базового класса

build_E(value_type focus, int hypothesis) | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [inline, private]
E | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [private]
F | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [private]
find_sing_value_dev(Matrix &E) | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [inline, private]
K1 | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [private]
K2 | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [private]
KruppaEq(const Matrix &Fm) | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [inline]
Matrix typedef | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [private]
n элементы перечисления | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [private]
size_type typedef | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [private]
value_type typedef | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [private]
Vector typedef | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [private]


Pipe Line Filters: Cписок членов класса

Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km Cписок членов класса

Полный список членов класса Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km, включая наследуемые из базового класса

a | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km | [private]
ab_selector(Loki::Int2Type< 0 >) const | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km | [inline, private]
ab_selector(Loki::Int2Type< 1 >) const | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km | [inline, private]
b | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km | [private]
build_equation_coef(value_type *coef) | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km | [inline]
build_expression(value_type multiplier, const Vtl::NumAlg::Lin::ublas::matrix_column< Matrix > &v_1, const Vtl::NumAlg::Lin::ublas::matrix_column< Matrix > &v_2) | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km | [inline]
col() const | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km | [inline, private]
det() | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km | [inline, private]
Km() | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km | [inline]
mul(value_type &a, value_type &b, value_type coef, const Vtl::NumAlg::Lin::ublas::matrix_column< Matrix > v1, const Vtl::NumAlg::Lin::ublas::matrix_column< Matrix > v2) | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km | [inline, private]
print_ab() | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km | [inline]
solve_qe(const value_type *coef, value_type &x1, value_type &x2) | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km | [inline]
to_single_focus(value_type *coef) | Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km | [inline]


Pipe Line Filters: Cписок членов класса

Basics3D::g Cписок членов класса

Полный список членов класса Basics3D::g, включая наследуемые из базового класса

a | Basics3D::g | [private]
b | Basics3D::g | [private]
c | Basics3D::g | [private]
d | Basics3D::g | [private]
Deriv(const double in_t) const | Basics3D::g | [virtual]
f | Basics3D::g | [private]
f1 | Basics3D::g | [private]
Func(const double in_t) const | Basics3D::g | [virtual]
g(const double in_a, const double in_b, const double in_c, const double in_d, const double in_f, const double in_f1, const int in_n) | Basics3D::g |
n | Basics3D::g | [private]
N() | Basics3D::g |


Pipe Line Filters: Cписок членов класса

Basics3D::IFunc Cписок членов класса

Полный список членов класса Basics3D::IFunc, включая наследуемые из базового класса

Func(const double in_t) const =0 Basics3D::IFunc [pure virtual]


Pipe Line Filters: Cписок членов класса

Basics3D::IFuncWithDer Cписок членов класса

Полный список членов класса Basics3D::IFuncWithDer, включая наследуемые из базового класса

Deriv(const double in_t) const =0 | Basics3D::IFuncWithDer | [pure virtual]
Func(const double in_t) const =0 | Basics3D::IFunc | [pure virtual]


Pipe Line Filters: Cписок членов класса

Basics3D::SolveEq Cписок членов класса

Полный список членов класса Basics3D::SolveEq, включая наследуемые из базового класса

Apply(std::vector< double > &out_sol, const IFuncWithDer *in_g, const double in_acc) | Basics3D::SolveEq |
Find(std::vector< double > &out_sol, const IFuncWithDer *in_g, double *io_x1, double *io_x2, int *io_k, const double in_acc) | Basics3D::SolveEq | [private]
MAX | Basics3D::SolveEq | [private, static]


Pipe Line Filters: Cписок членов класса

Basics3D::Structure::Comp3D< T > Cписок членов класса

Полный список членов класса Basics3D::Structure::Comp3D< T >, включая наследуемые из базового класса

Comp3D(const T_Points2DSet< C_Point2D > &in_points2D, Structure::Dlt< value_type > &dlt_) | Basics3D::Structure::Comp3D< T > | [inline]
dlt | Basics3D::Structure::Comp3D< T > | [private]
euclidean2homogeneous(const Vector_3 &v, Vector_4 &result) | Basics3D::Structure::Comp3D< T > | [inline]
homogeneous2euclidean(const Vector_4 &v, Vector_3 &result) | Basics3D::Structure::Comp3D< T > | [inline]
operator()() | Basics3D::Structure::Comp3D< T > | [inline]
points | Basics3D::Structure::Comp3D< T > |
points2D | Basics3D::Structure::Comp3D< T > | [private]
value_type typedef | Basics3D::Structure::Comp3D< T > |
Vector_2 typedef | Basics3D::Structure::Comp3D< T > |
Vector_3 typedef | Basics3D::Structure::Comp3D< T > |
Vector_4 typedef | Basics3D::Structure::Comp3D< T > |


Pipe Line Filters: Cписок членов класса

Basics3D::Structure::ProjectiveToMetric< T > Cписок членов класса

Полный список членов класса Basics3D::Structure::ProjectiveToMetric< T >, включая наследуемые из базового класса

build_Functional(const Vector_3 &p, value_type focus_sqr) const | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private]
build_Functional_derivative(const Vector_3 &p, value_type focus_sqr) const | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private]
build_Functional_derivative_d_focus_sqr(const Vector_3 &p, value_type focus_sqr) const | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private]
build_H(Matrix_4x4 &H, const Vector_3 &p, value_type focus) | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private, static]
build_KKT(Matrix_3x3 &KKT, value_type focus_sqr) | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private, static]
build_KKT_d_focus_sqr(Matrix_3x3 &KKT) | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private, static]
build_PQPT(const Matrix_4x4 &Q, const Matrix_3x4 &P) | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private, static]
build_PQPT_KKT(const Matrix_4x4 &Q, const Matrix_3x4 &P, const Matrix_3x3 &KKT) const | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private]
build_Qoo(const Vector_3 &p, value_type focus_sqr) | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private, static]
build_Qoo(Matrix_4x4 &Q, const Vector_3 &p, value_type focus_sqr) | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private, static]
build_Qoo_d_focus_sqr(const Vector_3 &p) | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private, static]
build_Qoo_d_focus_sqr(Matrix_4x4 &Qd, const Vector_3 &p) | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private, static]
build_Qoo_d_p(const Vector_3 &p, value_type focus_sqr) | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private, static]
build_Qoo_d_p(Matrix_4x4 &Qd, const Vector_3 &p, value_type focus_sqr) | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private, static]
focus_sqr | Basics3D::Structure::ProjectiveToMetric< T > | [private]
frobenius_norm_sqr(const Matrix_3x3 &A) | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private, static]
frobenius_norm_sqr_derivative(const Matrix_3x3 &A, const Matrix_3x3 &A_deriv) | Basics3D::Structure::ProjectiveToMetric< T > | [inline, private, static]
Matrix_3x3 typedef | Basics3D::Structure::ProjectiveToMetric< T > |
Matrix_3x4 typedef | Basics3D::Structure::ProjectiveToMetric< T > |
Matrix_4x4 typedef | Basics3D::Structure::ProjectiveToMetric< T > |
operator()(Matrix_4x4 &H) | Basics3D::Structure::ProjectiveToMetric< T > | [inline]
P1 | Basics3D::Structure::ProjectiveToMetric< T > | [private]
P2 | Basics3D::Structure::ProjectiveToMetric< T > | [private]
ProjectiveToMetric(value_type focus, Matrix_3x4 &P1_, Matrix_3x4 &P2_) | Basics3D::Structure::ProjectiveToMetric< T > | [inline]
value_type typedef | Basics3D::Structure::ProjectiveToMetric< T > |
Vector_3 typedef | Basics3D::Structure::ProjectiveToMetric< T > |
Vector_4 typedef | Basics3D::Structure::ProjectiveToMetric< T > |


Pipe Line Filters: Cписок членов класса

Basics3D::T_ImagesSet< Image > Cписок членов класса

Полный список членов класса Basics3D::T_ImagesSet< Image >, включая наследуемые из базового класса

m_img | Basics3D::T_ImagesSet< Image > | [private]
operator[](int i) const | Basics3D::T_ImagesSet< Image > | [inline]
Size() const | Basics3D::T_ImagesSet< Image > | [inline]
T_ImagesSet(char *in_argv[], int in_N) | Basics3D::T_ImagesSet< Image > | [inline]
~T_ImagesSet() | Basics3D::T_ImagesSet< Image > | [inline]


Pipe Line Filters: Cписок членов класса

Basics3D::T_MatrixOperations Cписок членов класса

Полный список членов класса Basics3D::T_MatrixOperations, включая наследуемые из базового класса

Normalize(MatrixType &out_M, const MatrixType &in_M, const MatrixType &T1_1, const MatrixType &T) | Basics3D::T_MatrixOperations | [inline, static]
Print(const MatrixType &in_M) | Basics3D::T_MatrixOperations | [inline, static]
Save(const MatrixType &in_M, const char *filename) | Basics3D::T_MatrixOperations | [inline, static]
Scale(MatrixType &out_M, const MatrixType &in_M) | Basics3D::T_MatrixOperations | [inline, static]
SortColumns(MatrixType &out_M, const MatrixType &in_M, const SortS< double > in_k[]) | Basics3D::T_MatrixOperations | [inline, static]
TransformIntoNormCoord(std::vector< MatrixType > &out_matrix, const int in_w, const int in_h, const double in_sigma) | Basics3D::T_MatrixOperations | [inline, static]
TransformIntoPixelCoord(std::vector< MatrixType > &out_matrix, const int in_w, const int in_h, const double in_sigma) | Basics3D::T_MatrixOperations | [inline, static]


Pipe Line Filters: Cписок членов класса

Basics3D::T_MistakeFunc< Operations > Cписок членов класса

Полный список членов класса Basics3D::T_MistakeFunc< Operations >, включая наследуемые из базового класса

Derivative(Vtl::NumAlg::Lin::ublas::vector< double > &out_dy, const Vtl::NumAlg::Lin::ublas::vector< double > &in_matrix) | Basics3D::T_MistakeFunc< Operations > | [inline]
Func(const Vtl::NumAlg::Lin::ublas::vector< double > &in_matrix) | Basics3D::T_MistakeFunc< Operations > | [inline]
m_M | Basics3D::T_MistakeFunc< Operations > | [private]
m_Points | Basics3D::T_MistakeFunc< Operations > | [private]
T_MistakeFunc(const T_Points2DSet< C_Point2D > &in_Points, int in_M) | Basics3D::T_MistakeFunc< Operations > | [inline]


Pipe Line Filters: Cписок членов класса

Basics3D::T_Model< Operations > Cписок членов класса

Полный список членов класса Basics3D::T_Model< Operations >, включая наследуемые из базового класса

ComputeMatrices(std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out_Matrices, T_Points2DSet< C_Point2D > &in_sample, const double in_sigma) | Basics3D::T_Model< Operations > | [inline]
CountInliers(T_Points2DSet< C_Point2D > &out_inl, const C_Points2DParamSet &in_points1, const C_Points2DParamSet &in_points2, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_matrix, const double in_sigma, const double in_t) | Basics3D::T_Model< Operations > | [inline]
Denormalize(std::vector< Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 >> &out_Matrices, const double in_err) | Basics3D::T_Model< Operations > | [inline, private]
GetSample(T_Points2DSet< C_Point2D > &out_sample) | Basics3D::T_Model< Operations > | [inline]
IsInlier(const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_Matrix, const int i, const double in_sigma) | Basics3D::T_Model< Operations > | [inline]
m_PointsSet | Basics3D::T_Model< Operations > | [private]
m_T | Basics3D::T_Model< Operations > | [private]
m_T1_1 | Basics3D::T_Model< Operations > | [private]
T_Model() | Basics3D::T_Model< Operations > | [inline]
T_Model(T_Points2DSet< C_Point2D > in_PointsSet) | Basics3D::T_Model< Operations > | [inline]
Transform(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > &out_Point, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_Matrix, const int i) | Basics3D::T_Model< Operations > | [inline]
Transform(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 1 > &out_Point, const Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &in_Matrix, const C_Point2D &in_point) | Basics3D::T_Model< Operations > | [inline]


Pipe Line Filters: Cписок членов класса

Basics3D::T_Points2DSet< Point > Cписок членов класса

Полный список членов класса Basics3D::T_Points2DSet< Point >, включая наследуемые из базового класса

Add(std::vector< Point > &in_p) | Basics3D::T_Points2DSet< Point > | [inline]
Clear() | Basics3D::T_Points2DSet< Point > | [inline]
ClearMeans() | Basics3D::T_Points2DSet< Point > | [inline, private]
Combine(T_Points2DSet< Point > &out, const T_Points2DSet< Point > &in_groups, const T_Points2DSet< Point > &in_pairs, int n) | Basics3D::T_Points2DSet< Point > | [inline, static]
Disable(T_Points2DSet< Point > &in_Set) | Basics3D::T_Points2DSet< Point > | [inline]
EnableAll() | Basics3D::T_Points2DSet< Point > | [inline]
GroupSize() const | Basics3D::T_Points2DSet< Point > | [inline]
InitGroupSize(int i) | Basics3D::T_Points2DSet< Point > | [inline]
Load(const char *in_filename, const double in_t, const int in_imHeight) | Basics3D::T_Points2DSet< Point > | [inline]
m_groupSize | Basics3D::T_Points2DSet< Point > | [private]
m_MeanDev | Basics3D::T_Points2DSet< Point > | [private]
m_MeanX | Basics3D::T_Points2DSet< Point > | [private]
m_MeanY | Basics3D::T_Points2DSet< Point > | [private]
m_Points | Basics3D::T_Points2DSet< Point > | [private]
MeanDev(int i) | Basics3D::T_Points2DSet< Point > | [inline]
MeanX(int i) | Basics3D::T_Points2DSet< Point > | [inline]
MeanY(int i) | Basics3D::T_Points2DSet< Point > | [inline]
Normalize(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_T, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_T1, const double in_sigma) | Basics3D::T_Points2DSet< Point > | [inline]
Normalize(Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_T, Vtl::NumAlg::Lin::ublas::c_matrix< double, 3, 3 > &out_T1, int in_width, int in_height, const double in_sigma) | Basics3D::T_Points2DSet< Point > | [inline]
operator=(const T_Points2DSet< C_Point2D > &in_Set) | Basics3D::T_Points2DSet< Point > | [inline]
operator[](int i) const | Basics3D::T_Points2DSet< Point > | [inline]
Print() const | Basics3D::T_Points2DSet< Point > | [inline]
RemoveGroup(int in_i) | Basics3D::T_Points2DSet< Point > | [inline]
RetPoints(T_Points2DSet< Point > &out_P, int in_c) const | Basics3D::T_Points2DSet< Point > | [inline]
Save(char *in_filenameX, char *in_filenameY, int in_n) | Basics3D::T_Points2DSet< Point > | [inline]
Size() const | Basics3D::T_Points2DSet< Point > | [inline]
T_Points2DSet(int in_groupSize=1) | Basics3D::T_Points2DSet< Point > | [inline]


Pipe Line Filters: Cписок членов класса

Basics3D::test Cписок членов класса

Полный список членов класса Basics3D::test, включая наследуемые из базового класса

a | Basics3D::test | [private]
b | Basics3D::test | [private]
Deriv(const double in_t) const | Basics3D::test | [virtual]
Func(const double in_t) const | Basics3D::test | [virtual]
test(const double in_a, const double in_b) | Basics3D::test |


Pipe Line Filters: Cписок членов класса

childPipe Cписок членов класса

Полный список членов класса childPipe, включая наследуемые из базового класса

BuildEnvBlock(std::vector< char > &e, const childPipe::Env *env) | childPipe | [static]
childPipe() | childPipe | [inline]
childPipe(std::string command, const Env *env=0, Flags flags=F_StdInOutErr) | childPipe | [inline]
Close() | childPipe |
Env typedef | childPipe |
envBuildBinBlock(const childPipe::Env &env, char *e, char delim=0, char delim_line=0) | childPipe | [static]
envBuildFromBinBlock(childPipe::Env &env, const char *e) | childPipe | [static]
envCalcBinBlockSize(const childPipe::Env &env) | childPipe | [static]
envFreeBinBlock(char *env_blk) | childPipe | [static]
envMakeBinBlock(childPipe::Env *env) | childPipe | [static]
exitStatus | childPipe | [mutable, private]
ExitStatus() | childPipe | [inline]
F_Split элементы перечисления | childPipe |
F_StdErr элементы перечисления | childPipe |
F_StdIn элементы перечисления | childPipe |
F_StdInErr элементы перечисления | childPipe |
F_StdInOut элементы перечисления | childPipe |
F_StdInOutErr элементы перечисления | childPipe |
F_StdInOutErrSplit элементы перечисления | childPipe |
F_StdOut элементы перечисления | childPipe |
F_StdOutErr элементы перечисления | childPipe |
F_StdOutErrSplit элементы перечисления | childPipe |
Flags перечисление | childPipe |
Init(std::string command, const Env *env=0, Flags flags=F_StdInOutErr) | childPipe |
Is(Flags flags_to_check, Flags flags) | childPipe | [inline, private, static]
isRunning() | childPipe |
nullify() | childPipe | [private]
pi | childPipe | [private]
Stderr() | childPipe | [inline]
stderr_ | childPipe | [private]
Stdin() | childPipe | [inline]
stdin_ | childPipe | [private]
Stdout() | childPipe | [inline]
stdout_ | childPipe | [private]
terminate() | childPipe |
the_same_stderr_stdout | childPipe | [private]
wait() | childPipe |
~childPipe() | childPipe | [inline]


Pipe Line Filters: Cписок членов класса

Cluster1D< T, DatumType > Cписок членов класса

Полный список членов класса Cluster1D< T, DatumType >, включая наследуемые из базового класса

Cluster1D() | Cluster1D< T, DatumType > | [inline]
Cluster1D(const DatumType &d) | Cluster1D< T, DatumType > | [inline]
data | Cluster1D< T, DatumType > |
Dist(const ItemType &d) | Cluster1D< T, DatumType > | [inline]
Divide() | Cluster1D< T, DatumType > | [inline]
operator+(const DatumType &d) | Cluster1D< T, DatumType > | [inline]
Print() | Cluster1D< T, DatumType > | [inline]
val | Cluster1D< T, DatumType > |


Pipe Line Filters: Cписок членов класса

Cluster2D< T, DatumType > Cписок членов класса

Полный список членов класса Cluster2D< T, DatumType >, включая наследуемые из базового класса

Cluster2D() | Cluster2D< T, DatumType > | [inline]
Cluster2D(const DatumType &d) | Cluster2D< T, DatumType > | [inline]
data | Cluster2D< T, DatumType > |
Dist(const ItemType &d) | Cluster2D< T, DatumType > | [inline]
Divide() | Cluster2D< T, DatumType > | [inline]
operator+(const DatumType &d) | Cluster2D< T, DatumType > | [inline]
Print() | Cluster2D< T, DatumType > | [inline]
x | Cluster2D< T, DatumType > |
y | Cluster2D< T, DatumType > |


Pipe Line Filters: Cписок членов класса

CoordArray2D Cписок членов класса

Полный список членов класса CoordArray2D, включая наследуемые из базового класса

at(int x, int y) const | CoordArray2D | [inline]
begin() const | CoordArray2D | [inline]
begin() | CoordArray2D | [inline]
clear() | CoordArray2D | [inline]
CoordArray2D(int width=0, int height=0) | CoordArray2D | [inline]
end() const | CoordArray2D | [inline]
end() | CoordArray2D | [inline]
h_ | CoordArray2D | [private]
height() const | CoordArray2D | [inline]
p_ | CoordArray2D | [private]
setSize(int width, int height) | CoordArray2D | [inline]
w_ | CoordArray2D | [private]
width() const | CoordArray2D | [inline]


Pipe Line Filters: Cписок членов класса

CoverageMatrix Cписок членов класса

Полный список членов класса CoverageMatrix, включая наследуемые из базового класса

clear() | CoverageMatrix | [inline]
CoverageMatrix(int width=0, int height=0) | CoverageMatrix | [inline]
empty(const YPoint< int > &cell) const | CoverageMatrix | [inline]
get(const YPoint< int > &cell) const | CoverageMatrix | [inline]
getZoom(const YPoint< int > &cell) const | CoverageMatrix | [inline]
h_ | CoverageMatrix | [private]
matrix_ | CoverageMatrix | [private]
set(const YPoint< int > &cell, const YPoint< int > &value, double zoomValue) | CoverageMatrix | [inline]
set(const YRect< int > &area, const YPoint< int > &value, double zoomValue) | CoverageMatrix | [inline]
set(const YPoint< double > *cell, const YRect< int > &area, const YPoint< int > &value, double zoomValue) | CoverageMatrix |
setSize(int width, int height) | CoverageMatrix | [inline]
w_ | CoverageMatrix | [private]
zoomMatrix_ | CoverageMatrix | [private]


Pipe Line Filters: Cписок членов класса

DataString Cписок членов класса

Полный список членов класса DataString, включая наследуемые из базового класса

DataString() | DataString | [inline]
DataString(const char *val) | DataString | [inline]
DataString(const std::string val) | DataString | [inline]
DataString(int val) | DataString | [inline]
DataString(unsigned val) | DataString | [inline]
DataString(float val) | DataString | [inline]
DataString(double val) | DataString | [inline]
DataString(YDataTime val) | DataString | [inline]
DataString(YDataTimeZone val) | DataString | [inline]
Get() const | DataString | [inline, private]
operator double() const | DataString | [inline]
operator float() const | DataString | [inline]
operator int() const | DataString | [inline]
operator unsigned() const | DataString | [inline]
operator YDataTime() const | DataString | [inline]
operator YDataTimeZone() const | DataString | [inline]
operator=(int val) | DataString | [inline]
operator=(unsigned val) | DataString | [inline]
operator=(float val) | DataString | [inline]
operator=(double val) | DataString | [inline]
operator=(YDataTime val) | DataString | [inline]
operator=(YDataTimeZone val) | DataString | [inline]
sec_digits | DataString | [private]
Set(T val) | DataString | [inline, private]
Set(double val) | DataString | [inline, private]
setDataTime_Precision(int digits) | DataString | [inline]
StringToTime(std::string str, YDataTime &val, YTimeInterval &zone) | DataString | [private, static]
TimeToString(YDataTime val, YTimeInterval zone, int sec_digits=3) | DataString | [private, static]


Pipe Line Filters: Cписок членов класса

DatumR< T > Cписок членов класса

Полный список членов класса DatumR< T >, включая наследуемые из базового класса

DatumR(int in_x, int in_y, T in_v) | DatumR< T > | [inline]
DatumR() | DatumR< T > | [inline]
operator=(const DatumR< T > &d) | DatumR< T > | [inline]
sgn | DatumR< T > |
val | DatumR< T > |
x | DatumR< T > |
y | DatumR< T > |


Pipe Line Filters: Cписок членов класса

DatumXY< T > Cписок членов класса

Полный список членов класса DatumXY< T >, включая наследуемые из базового класса

DatumXY(T in_x, T in_y, const DatumR< T > *in_point) | DatumXY< T > | [inline]
p | DatumXY< T > |
x | DatumXY< T > |
y | DatumXY< T > |


Pipe Line Filters: Cписок членов класса

DebugBase Cписок членов класса

Полный список членов класса DebugBase, включая наследуемые из базового класса

Close()=0 | DebugBase | [pure virtual]
DebugBase() | DebugBase | [inline]
printf(const char *format,...) const =0 | DebugBase | [pure virtual]
~DebugBase() | DebugBase | [inline, virtual]


Pipe Line Filters: Cписок членов класса

DebugToFile Cписок членов класса

Полный список членов класса DebugToFile, включая наследуемые из базового класса

Close() | DebugToFile | [virtual]
debug_fname | DebugToFile | [private]
DebugBase() | DebugBase | [inline]
DebugFileName() const | DebugToFile | [inline]
DebugToFile() | DebugToFile |
fp_debug | DebugToFile | [private]
Init(const char *fname) | DebugToFile |
printf(const char *format,...) const | DebugToFile | [virtual]
~DebugBase() | DebugBase | [inline, virtual]
~DebugToFile() | DebugToFile | [virtual]


Pipe Line Filters: Cписок членов класса

DistributionMatrix Cписок членов класса

Полный список членов класса DistributionMatrix, включая наследуемые из базового класса

add(const YPoint< int > &cell, const YPoint< int > &p) | DistributionMatrix | [inline]
allocator_ | DistributionMatrix | [private]
at(const YPoint< int > &p) | DistributionMatrix | [inline, private]
at(const YPoint< int > &p) const | DistributionMatrix | [inline, private]
clear() | DistributionMatrix | [inline]
collectCell(std::vector< const DMatrixElem * > &elems, const DMatrixElem *elem) const | DistributionMatrix | [inline, private]
collectRaduis(const YPoint< int > &prp, int r, int *pn=0) const | DistributionMatrix |
DistributionMatrix(int width=0, int height=0, size_t capacity=0) | DistributionMatrix | [inline]
empty(const YPoint< int > &p) const | DistributionMatrix | [inline]
h_ | DistributionMatrix | [private]
matrix_ | DistributionMatrix | [private]
setSize(int width, int height, size_t capacity) | DistributionMatrix | [inline]
w_ | DistributionMatrix | [private]


Pipe Line Filters: Cписок членов класса

DllModule Cписок членов класса

Полный список членов класса DllModule, включая наследуемые из базового класса

dll | DllModule | [private]
DllModule() | DllModule | [inline]
FreeLibrary() | DllModule |
GetProcAddress(const char *fun_name) const | DllModule |
IsOk() const | DllModule | [inline]
LoadLibrary(const char *dll_full_name) | DllModule |
LoadLibrary(const char *dll_name, const char *dll_path) | DllModule |
~DllModule() | DllModule | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ErrorStatusBase Cписок членов класса

Полный список членов класса ErrorStatusBase, включая наследуемые из базового класса

AErrorStatusBase() | AErrorStatusBase | [inline]
ClassName() const | ErrorStatusBase | [inline, virtual]
cls | ErrorStatusBase | [private]
cls_this | ErrorStatusBase | [private]
DerivedClassName() const | ErrorStatusBase | [inline, virtual]
ErrorStatusBase(const char *fname, int nline, const char *_cls_this, const char *_cls, bool del_msg) | ErrorStatusBase |
File() const | ErrorStatusBase | [inline, virtual]
file | ErrorStatusBase | [private]
line | ErrorStatusBase | [private]
Line() const | ErrorStatusBase | [inline, virtual]
Msg() const | ErrorStatusBase | [virtual]
msg | ErrorStatusBase | [protected]
msg_need_delete | ErrorStatusBase | [protected]
operator const char *() const | AErrorStatusBase | [inline]
~AErrorStatusBase() | AErrorStatusBase | [inline, virtual]
~ErrorStatusBase() | ErrorStatusBase | [virtual]


Pipe Line Filters: Cписок членов класса

FFT_2D Cписок членов класса

Полный список членов класса FFT_2D, включая наследуемые из базового класса

AmpPhase2ReIm(AImageMemFloat *ReAmp, AImageMemFloat *ImPhase) | FFT_2D | [static]
CalcSize(AImage *img, int *Fourier_width, int *Fourier_height) | FFT_2D | [static]
ChekImages(AImage *ReAmp, AImage *ImPhase, bool chekpower) | FFT_2D | [static]
FFT(AImageMemFloat *Re, AImageMemFloat *Im, bool reverse) | FFT_2D | [static]
Float2Image(AImageMemFloat *fi, AImageMem8 *img, bool logarithimic=true, bool autoscale=true, float A=1, float B=0) | FFT_2D | [static]
fourn(float *Redata, float *Imdata, int nn[], bool reverse) | FFT_2D | [private, static]
GetLeftTopPosAtFFT(AImage *img, int *Fourier_left, int *Fourier_top) | FFT_2D | [static]
Image2Float(AImage *img, bool make2power=true) | FFT_2D | [static]
ReIm2AmpPhase(AImageMemFloat *ReAmp, AImageMemFloat *ImPhase) | FFT_2D | [static]
Transform2Power(int size) | FFT_2D | [static]
TransposeQuarters(AImageMemFloat *img) | FFT_2D | [static]


Pipe Line Filters: Cписок членов класса

Gen::Data::SaveFormat Cписок членов класса

Полный список членов класса Gen::Data::SaveFormat, включая наследуемые из базового класса

flags | Gen::Data::SaveFormat | [private]
SaveFormat(std::iostream &stream) | Gen::Data::SaveFormat | [inline]
stream_ | Gen::Data::SaveFormat | [private]
~SaveFormat() | Gen::Data::SaveFormat | [inline]


Pipe Line Filters: Cписок членов класса

Hanina::Check_4_grad_sign_change< T > Cписок членов класса

Полный список членов класса Hanina::Check_4_grad_sign_change< T >, включая наследуемые из базового класса

Check_4_grad_sign_change(int next_line_shift) | Hanina::Check_4_grad_sign_change< T > | [inline]
nls | Hanina::Check_4_grad_sign_change< T > | [private]
operator()(T image, T hx, T hy, const T *grad_x, const T *grad_y) | Hanina::Check_4_grad_sign_change< T > | [inline]
sprod(int ofs, T hx, T hy, const T *grad_x, const T *grad_y) | Hanina::Check_4_grad_sign_change< T > | [inline, private]


Pipe Line Filters: Cписок членов класса

Hanina::Comb_ridge< T1, T2 > Cписок членов класса

Полный список членов класса Hanina::Comb_ridge< T1, T2 >, включая наследуемые из базового класса

Comb_ridge(T2 value) | Hanina::Comb_ridge< T1, T2 > | [inline]
operator()(T1 v1, T2 v2) | Hanina::Comb_ridge< T1, T2 > | [inline]
val | Hanina::Comb_ridge< T1, T2 > | [private]


Pipe Line Filters: Cписок членов класса

Hanina::FillingHessianMatrix3x3 Cписок членов класса

Полный список членов класса Hanina::FillingHessianMatrix3x3, включая наследуемые из базового класса

build_3D_hess(T1 Ixx, T1 Iyy, T1 Ixy, T1 Ixxx, T1 Iyyy, T1 Ixyy, T1 Iyxx, T1 Ixxxx, T1 Iyyyy, T1 Ixxyy) | Hanina::FillingHessianMatrix3x3 | [inline, private]
build_3D_hess_projection(T1 &vx, T1 &vy) | Hanina::FillingHessianMatrix3x3 | [inline, private]
calc_2D_eigmax(T1 Ixx, T1 Ixy, T1 Iyy, T1 &maxeig, T1 &vx, T1 &vy) | Hanina::FillingHessianMatrix3x3 | [inline, private]
eigen | Hanina::FillingHessianMatrix3x3 |
eigen_val_vec_2D_proj_3D(T1 &max_eig, T1 &vx1, T1 &vy1, T1 &vt1, T1 &vx2, T1 &vy2, T1 &vt2) | Hanina::FillingHessianMatrix3x3 | [inline, private]
eigen_val_vec_3D(T1 &max_eig, T1 &vx1, T1 &vy1, T1 &vt1, T1 &vx2, T1 &vy2, T1 &vt2) | Hanina::FillingHessianMatrix3x3 | [inline, private]
FillingHessianMatrix3x3(float sigma) | Hanina::FillingHessianMatrix3x3 | [inline]
m33 | Hanina::FillingHessianMatrix3x3 |
mult | Hanina::FillingHessianMatrix3x3 | [private]
operator()(T1 Ixx, T1 Iyy, T1 Ixy, T1 Ixxx, T1 Iyyy, T1 Ixyy, T1 Iyxx, T1 Ixxxx, T1 Iyyyy, T1 Ixxyy, T1 &max_eig, T1 &vx1, T1 &vy1, T1 &vt1, T1 &vx2, T1 &vy2, T1 &vt2) | Hanina::FillingHessianMatrix3x3 | [inline]
t33 | Hanina::FillingHessianMatrix3x3 |
tmp33 | Hanina::FillingHessianMatrix3x3 |
work | Hanina::FillingHessianMatrix3x3 |


Pipe Line Filters: Cписок членов класса

Hanina::Hessian3D< T > Cписок членов класса

Полный список членов класса Hanina::Hessian3D< T >, включая наследуемые из базового класса

_data | Hanina::Hessian3D< T > | [private]
_Gxx | Hanina::Hessian3D< T > | [private]
_Gxxx | Hanina::Hessian3D< T > | [private]
_Gxxxx | Hanina::Hessian3D< T > | [private]
_Gxxyy | Hanina::Hessian3D< T > | [private]
_Gxy | Hanina::Hessian3D< T > | [private]
_Gxyy | Hanina::Hessian3D< T > | [private]
_Gyxx | Hanina::Hessian3D< T > | [private]
_Gyy | Hanina::Hessian3D< T > | [private]
_Gyyy | Hanina::Hessian3D< T > | [private]
_Gyyyy | Hanina::Hessian3D< T > | [private]
calc_deriv(float sigma) | Hanina::Hessian3D< T > | [inline]
calc_deriv_from(float sigma, const T *data) | Hanina::Hessian3D< T > | [inline]
calc_grad_from(float sigma, const T *data, T *grad_x, T *grad_y) | Hanina::Hessian3D< T > | [inline]
data | Hanina::Hessian3D< T > | [private]
Gxx | Hanina::Hessian3D< T > | [private]
Gxxx | Hanina::Hessian3D< T > | [private]
Gxxxx | Hanina::Hessian3D< T > | [private]
Gxxyy | Hanina::Hessian3D< T > | [private]
Gxy | Hanina::Hessian3D< T > | [private]
Gxyy | Hanina::Hessian3D< T > | [private]
Gyxx | Hanina::Hessian3D< T > | [private]
Gyy | Hanina::Hessian3D< T > | [private]
Gyyy | Hanina::Hessian3D< T > | [private]
Gyyyy | Hanina::Hessian3D< T > | [private]
h | Hanina::Hessian3D< T > | [private]
Hessian3D(const T1 *img, int width, int height, int nls) | Hanina::Hessian3D< T > | [inline]
operator()(float sigma, T1 *max_eig, T1 *vx1, T1 *vy1, T1 *vt1, T1 *vx2, T1 *vy2, T1 *vt2) | Hanina::Hessian3D< T > | [inline]
operator()(float sigma, T1 *max_eig, T1 *vx1, T1 *vy1, T1 *vt1, T1 *vx2, T1 *vy2, T1 *vt2, T *grad_x, T *grad_y) | Hanina::Hessian3D< T > | [inline]
sz | Hanina::Hessian3D< T > | [private]
w | Hanina::Hessian3D< T > | [private]


Pipe Line Filters: Cписок членов класса

Hanina::p33< T, 0, 1 > Cписок членов класса

Полный список членов класса Hanina::p33< T, 0, 1 >, включая наследуемые из базового класса

b() | Hanina::p33< T, 0, 1 > | [inline]
f() | Hanina::p33< T, 0, 1 > | [inline]
nls | Hanina::p33< T, 0, 1 > | [private]
ofs_to_cur | Hanina::p33< T, 0, 1 > | [private]
p33(const Planes_t *plane_, size_t ofs_to_cur_, int nls_) | Hanina::p33< T, 0, 1 > | [inline]
plane | Hanina::p33< T, 0, 1 > | [private]
Planes_t typedef | Hanina::p33< T, 0, 1 > | [private]


Pipe Line Filters: Cписок членов класса

Hanina::p33< T, 0, 2 > Cписок членов класса

Полный список членов класса Hanina::p33< T, 0, 2 >, включая наследуемые из базового класса

b() | Hanina::p33< T, 0, 2 > | [inline]
f() | Hanina::p33< T, 0, 2 > | [inline]
nls | Hanina::p33< T, 0, 2 > | [private]
ofs_to_cur | Hanina::p33< T, 0, 2 > | [private]
p33(const Planes_t *plane_, size_t ofs_to_cur_, int nls_) | Hanina::p33< T, 0, 2 > | [inline]
plane | Hanina::p33< T, 0, 2 > | [private]
Planes_t typedef | Hanina::p33< T, 0, 2 > | [private]


Pipe Line Filters: Cписок членов класса

Hanina::p33< T, 1, 2 > Cписок членов класса

Полный список членов класса Hanina::p33< T, 1, 2 >, включая наследуемые из базового класса

b() | Hanina::p33< T, 1, 2 > | [inline]
f() | Hanina::p33< T, 1, 2 > | [inline]
nls | Hanina::p33< T, 1, 2 > | [private]
ofs_to_cur | Hanina::p33< T, 1, 2 > | [private]
p33(const Planes_t *plane_, size_t ofs_to_cur_, int nls_) | Hanina::p33< T, 1, 2 > | [inline]
plane | Hanina::p33< T, 1, 2 > | [private]
Planes_t typedef | Hanina::p33< T, 1, 2 > | [private]


Pipe Line Filters: Cписок членов класса

Hanina::Planes3< T > Cписок членов класса

Полный список членов класса Hanina::Planes3< T >, включая наследуемые из базового класса

_eig_curr | Hanina::Planes3< T > | [private]
_eig_next | Hanina::Planes3< T > | [private]
_eig_prev | Hanina::Planes3< T > | [private]
_grad_x_curr | Hanina::Planes3< T > | [private]
_grad_x_next | Hanina::Planes3< T > | [private]
_grad_y_curr | Hanina::Planes3< T > | [private]
_grad_y_next | Hanina::Planes3< T > | [private]
_h2_x_curr | Hanina::Planes3< T > | [private]
_h2_x_next | Hanina::Planes3< T > | [private]
_h2_y_curr | Hanina::Planes3< T > | [private]
_h2_y_next | Hanina::Planes3< T > | [private]
_h2_z_curr | Hanina::Planes3< T > | [private]
_h2_z_next | Hanina::Planes3< T > | [private]
_h3_x_curr | Hanina::Planes3< T > | [private]
_h3_x_next | Hanina::Planes3< T > | [private]
_h3_y_curr | Hanina::Planes3< T > | [private]
_h3_y_next | Hanina::Planes3< T > | [private]
_h3_z_curr | Hanina::Planes3< T > | [private]
_h3_z_next | Hanina::Planes3< T > | [private]
_image | Hanina::Planes3< T > | [private]
eig_curr | Hanina::Planes3< T > | [private]
eig_next | Hanina::Planes3< T > | [private]
eig_prev | Hanina::Planes3< T > | [private]
grad_x_curr | Hanina::Planes3< T > | [private]
grad_x_next | Hanina::Planes3< T > | [private]
grad_y_curr | Hanina::Planes3< T > | [private]
grad_y_next | Hanina::Planes3< T > | [private]
h | Hanina::Planes3< T > | [private]
h2_x_curr | Hanina::Planes3< T > | [private]
h2_x_next | Hanina::Planes3< T > | [private]
h2_y_curr | Hanina::Planes3< T > | [private]
h2_y_next | Hanina::Planes3< T > | [private]
h2_z_curr | Hanina::Planes3< T > | [private]
h2_z_next | Hanina::Planes3< T > | [private]
h3_x_curr | Hanina::Planes3< T > | [private]
h3_x_next | Hanina::Planes3< T > | [private]
h3_y_curr | Hanina::Planes3< T > | [private]
h3_y_next | Hanina::Planes3< T > | [private]
h3_z_curr | Hanina::Planes3< T > | [private]
h3_z_next | Hanina::Planes3< T > | [private]
hess3d | Hanina::Planes3< T > | [private]
image | Hanina::Planes3< T > | [private]
operator()() | Hanina::Planes3< T > | [inline]
Planes3(const T1 *img, int width, int height, int nls) | Hanina::Planes3< T > | [inline]
SaveImage(AImageMem8 *img, const T *data, int w, int h, int nls, float sigma, const char *base_name, const char *postfix) | Hanina::Planes3< T > | [inline]
sz | Hanina::Planes3< T > | [private]
w | Hanina::Planes3< T > | [private]


Pipe Line Filters: Cписок членов класса

Hanina::ScaleScan3x3< T > Cписок членов класса

Полный список членов класса Hanina::ScaleScan3x3< T >, включая наследуемые из базового класса

dir_check(const Planes_t *plane, size_t ofs_to_cur, T vx, T vy, T vz) | Hanina::ScaleScan3x3< T > | [inline]
dir_check_max_X(const Planes_t *plane, size_t ofs_to_cur, T vx, T vy, T vz, T &v1, T &v2) | Hanina::ScaleScan3x3< T > | [inline]
dir_check_max_Y(const Planes_t *plane, size_t ofs_to_cur, T vx, T vy, T vz, T &v1, T &v2) | Hanina::ScaleScan3x3< T > | [inline]
dir_check_max_Z(const Planes_t *plane, size_t ofs_to_cur, T vx, T vy, T vz, T &v1, T &v2) | Hanina::ScaleScan3x3< T > | [inline]
Nls() const | Hanina::ScaleScan3x3< T > | [inline]
nls | Hanina::ScaleScan3x3< T > | [private]
operator()(const Planes_t *modul, size_t ofs_to_cur, T v1x, T v1y, T v1z, T v2x, T v2y, T v2z) | Hanina::ScaleScan3x3< T > | [inline]
Planes_t typedef | Hanina::ScaleScan3x3< T > |
ScaleScan3x3(int nls_set) | Hanina::ScaleScan3x3< T > | [inline]
thr | Hanina::ScaleScan3x3< T > | [private]


Pipe Line Filters: Cписок членов класса

Hanina::ZeroCross< T > Cписок членов класса

Полный список членов класса Hanina::ZeroCross< T >, включая наследуемые из базового класса

check(T value, int &pos, int &neg) | Hanina::ZeroCross< T > | [inline, private, static]
ext() const | Hanina::ZeroCross< T > | [inline]
neg | Hanina::ZeroCross< T > | [private]
nls | Hanina::ZeroCross< T > | [private]
operator()(const T *value) | Hanina::ZeroCross< T > | [inline]
pos | Hanina::ZeroCross< T > | [private]
set_IterNextLineShift(int modul_nls) | Hanina::ZeroCross< T > | [inline]
thr | Hanina::ZeroCross< T > | [private]
ZeroCross(T threshold=0) | Hanina::ZeroCross< T > | [inline]


Pipe Line Filters: Cписок членов класса

Hanina::ZeroCrossVisualization< T > Cписок членов класса

Полный список членов класса Hanina::ZeroCrossVisualization< T >, включая наследуемые из базового класса

k | Hanina::ZeroCrossVisualization< T > | [private]
maxval | Hanina::ZeroCrossVisualization< T > | [private]
operator()(T val) const | Hanina::ZeroCrossVisualization< T > | [inline]
ZeroCrossVisualization(T max_value=255, T slope=1) | Hanina::ZeroCrossVisualization< T > | [inline]


Pipe Line Filters: Cписок членов класса

IFF::BmpRead Cписок членов класса

Полный список членов класса IFF::BmpRead, включая наследуемые из базового класса

_close() | YFileRead | [private]
_pal | IFF::BmpRead | [private]
base_offset | IFF::BmpRead | [private]
Bits() const | IFF::BmpRead | [inline]
BmpRead(const char *filename) | IFF::BmpRead |
BT_BILEVEL элементы перечисления | IFF::BmpRead |
BT_INDEX элементы перечисления | IFF::BmpRead |
BT_RGB элементы перечисления | IFF::BmpRead |
bytes_per_row | IFF::BmpRead | [private]
GetFileSize() const | YFileRead | [private]
GetPalette() | IFF::BmpRead | [inline]
GetPaletteEntries() const | IFF::BmpRead | [inline]
GetTime() const | YFileRead | [private]
GetType() | IFF::BmpRead | [inline]
header | IFF::BmpRead | [private]
Height() const | IFF::BmpRead | [inline]
img_class | IFF::BmpRead | [private]
info | IFF::BmpRead | [private]
pal_entries | IFF::BmpRead | [private]
read(int x, int y, Byte *data, int len) | IFF::BmpRead |
YFileRead::read(void *data, int len) | YFileRead | [private]
YFileRead::read(int64_t offset, void *data, int len) | YFileRead | [private]
SetPosition(int64_t offset) | YFileRead | [private]
Type перечисление | IFF::BmpRead |
Width() const | IFF::BmpRead | [inline]
YFileRead(std::string filename) | YFileRead | [inline, private]
YFileRead(const char *filename) | YFileRead | [inline, private]
~BmpRead() | IFF::BmpRead | [virtual]
~YFileRead() | YFileRead | [private, virtual]


Pipe Line Filters: Cписок членов класса

IFF::BmpWrite Cписок членов класса

Полный список членов класса IFF::BmpWrite, включая наследуемые из базового класса

_close() | YFileWrite | [private]
base_offset | IFF::BmpWrite | [private]
Bits() const | IFF::BmpWrite | [inline]
BmpWrite(const char *filename, int width, int height, IFF::BmpWrite::Type iclass, const RgbQuad *pal) | IFF::BmpWrite |
BT_BILEVEL элементы перечисления | IFF::BmpWrite |
BT_INDEX элементы перечисления | IFF::BmpWrite |
BT_RGB элементы перечисления | IFF::BmpWrite |
bytes_per_row | IFF::BmpWrite | [private]
GetPaletteEntries() const | IFF::BmpWrite | [inline]
GetPosition() | YFileWrite | [private]
GetType() | IFF::BmpWrite | [inline]
header | IFF::BmpWrite | [private]
Height() const | IFF::BmpWrite | [inline]
img_class | IFF::BmpWrite | [private]
info | IFF::BmpWrite | [private]
pal_entries | IFF::BmpWrite | [private]
pal_offset | IFF::BmpWrite | [private]
SetPosition(int64_t offset) | YFileWrite | [private]
Type перечисление | IFF::BmpWrite |
Width() const | IFF::BmpWrite | [inline]
write(int x, int y, const Byte *data, int len) | IFF::BmpWrite |
YFileWrite::write(const void *data, int len) | YFileWrite | [private]
YFileWrite::write(int64_t offset, const void *data, int len) | YFileWrite | [private]
YFileWrite(std::string filename) | YFileWrite | [inline, private]
YFileWrite(const char *filename) | YFileWrite | [inline, private]
~BmpWrite() | IFF::BmpWrite | [virtual]
~YFileWrite() | YFileWrite | [private, virtual]


Pipe Line Filters: Cписок членов класса

IFF::FloatImageFile Cписок членов класса

Полный список членов класса IFF::FloatImageFile, включая наследуемые из базового класса

_close() | YFile | [protected]
_open(std::string filename, OpenMode access) | YFile | [inline, protected]
_open(const char *filename, OpenMode access) | YFile | [protected]
_read(int64_t pos, void *data, int32_t len) | YFile | [protected]
_write(int64_t pos, const void *data, int32_t len) | YFile | [protected]
close() | IFF::FloatImageFile |
FloatImageFile() | IFF::FloatImageFile |
GetMode() const | YFile | [inline, protected]
head | IFF::FloatImageFile | [private]
Height() const | IFF::FloatImageFile | [inline]
IsOk() const | YFile | [protected, virtual]
open(const char *szFileName, OpenMode access, int Width=0, int Heigth=0) | IFF::FloatImageFile |
OpenMode перечисление | YFile | [protected]
read(int x, int y, FloatWord *line, int len) | IFF::FloatImageFile |
readHeader() | IFF::FloatImageFile |
UIO_CREATE элементы перечисления | YFile | [protected]
UIO_CREATE_OVERWRITE элементы перечисления | YFile | [protected]
UIO_MODIFY элементы перечисления | YFile | [protected]
UIO_RDONLY элементы перечисления | YFile | [protected]
UIO_UNKNOWN элементы перечисления | YFile | [protected]
Width() const | IFF::FloatImageFile | [inline]
write(int x, int y, const FloatWord *line, int len) | IFF::FloatImageFile |
writeHeader() | IFF::FloatImageFile |
YFile() | YFile | [protected]
~FloatImageFile() | IFF::FloatImageFile | [virtual]
~YFile() | YFile | [protected, virtual]


Pipe Line Filters: Cписок членов класса

IFF::OzFile Cписок членов класса

Полный список членов класса IFF::OzFile, включая наследуемые из базового класса

_close() | YFile | [protected]
_open(std::string filename, OpenMode access) | YFile | [inline, protected]
_open(const char *filename, OpenMode access) | YFile | [protected]
_read(int64_t pos, void *data, int32_t len) | YFile | [protected]
_write(int64_t pos, const void *data, int32_t len) | YFile | [protected]
Bits() const | IFF::OzFile | [inline]
close() | IFF::OzFile |
GetChanel() const | IFF::OzFile |
GetDate(OzWord &year, OzWord &month, OzWord &day) const | IFF::OzFile |
GetHeader(Header *header) const | IFF::OzFile |
GetMode() const | YFile | [inline, protected]
GetTime(OzWord &hour, OzWord &minutes, OzWord &seconds, OzWord &millisec) const | IFF::OzFile |
GetTimeEnd(OzWord &hour, OzWord &minutes, OzWord &seconds, OzWord &millisec) const | IFF::OzFile |
GetTrajectory() const | IFF::OzFile |
head | IFF::OzFile | [private]
IsOk() const | YFile | [protected, virtual]
IsOneSeance(const OzFile &f) const | IFF::OzFile |
Length() const | IFF::OzFile | [inline]
open(const char *szFileName, OpenMode access, int Width=0, int Height=0, int bitsPerPixel=10) | IFF::OzFile |
OpenMode перечисление | YFile | [protected]
OzFile() | IFF::OzFile |
read(int x, int y, OzWord *line, int len) | IFF::OzFile |
readHeader() | IFF::OzFile |
SetChanel(OzWord channel) | IFF::OzFile |
SetDate(OzWord year, OzWord month, OzWord day) | IFF::OzFile |
SetHeader(Header *header) | IFF::OzFile |
SetTime(OzWord hour, OzWord minutes, OzWord seconds, OzWord millisec) | IFF::OzFile |
SetTimeEnd(OzWord hour, OzWord minutes, OzWord seconds, OzWord millisec) | IFF::OzFile |
SetTrajectory(OzWord traject) | IFF::OzFile |
UIO_CREATE элементы перечисления | YFile | [protected]
UIO_CREATE_OVERWRITE элементы перечисления | YFile | [protected]
UIO_MODIFY элементы перечисления | YFile | [protected]
UIO_RDONLY элементы перечисления | YFile | [protected]
UIO_UNKNOWN элементы перечисления | YFile | [protected]
Width() const | IFF::OzFile | [inline]
write(int x, int y, const OzWord *line, int len) | IFF::OzFile |
writeHeader() | IFF::OzFile |
YFile() | YFile | [protected]
~OzFile() | IFF::OzFile | [virtual]
~YFile() | YFile | [protected, virtual]


Pipe Line Filters: Cписок членов класса

IFF::PBMfile Cписок членов класса

Полный список членов класса IFF::PBMfile, включая наследуемые из базового класса

_close() | YFile |
_open(std::string filename, OpenMode access) | YFile | [inline]
_open(const char *filename, OpenMode access) | YFile |
_read(int64_t pos, void *data, int32_t len) | YFile |
_write(int64_t pos, const void *data, int32_t len) | YFile |
Bits() const | IFF::PBMfile | [inline]
bits | IFF::PBMfile | [private]
close() | IFF::PBMfile |
data_offset | IFF::PBMfile | [private]
GetMode() const | YFile | [inline]
height | IFF::PBMfile | [private]
IsOk() const | IFF::PBMfile | [inline, virtual]
Length() const | IFF::PBMfile | [inline]
nullify() | IFF::PBMfile | [private]
open(const char *fname, OpenMode access, int Width=0, int Heigth=0, int bitsPerPixel=8, TYPE _type=PBM_GRAYSCALE) | IFF::PBMfile |
OpenMode перечисление | YFile |
PBM_GRAYSCALE элементы перечисления | IFF::PBMfile |
PBM_RGB элементы перечисления | IFF::PBMfile |
PBM_UNKNOWN элементы перечисления | IFF::PBMfile |
PBMfile() | IFF::PBMfile |
read(int x, int y, Byte *line, int len) | IFF::PBMfile |
readHeader() | IFF::PBMfile | [private]
type | IFF::PBMfile | [private]
Type() const | IFF::PBMfile |
TYPE перечисление | IFF::PBMfile |
UIO_CREATE элементы перечисления | YFile |
UIO_CREATE_OVERWRITE элементы перечисления | YFile |
UIO_MODIFY элементы перечисления | YFile |
UIO_RDONLY элементы перечисления | YFile |
UIO_UNKNOWN элементы перечисления | YFile |
Width() const | IFF::PBMfile | [inline]
width | IFF::PBMfile | [private]
write(int x, int y, const Byte *line, int len) | IFF::PBMfile |
writeHeader() | IFF::PBMfile | [private]
YFile() | YFile |
~PBMfile() | IFF::PBMfile | [virtual]
~YFile() | YFile | [virtual]


Pipe Line Filters: Cписок членов класса

IFF::Tiff8Read Cписок членов класса

Полный список членов класса IFF::Tiff8Read, включая наследуемые из базового класса

_close() | YFileRead |
Bits(void) | IFF::TiffReadIFD | [inline]
buf_alloc | IFF::Tiff8Read | [private]
GetFileSize() const | YFileRead |
GetPalette(uint32_t *palette) | IFF::TiffReadIFD |
GetPaletteLength() const | IFF::TiffReadIFD | [inline]
GetTime() const | YFileRead |
Length(void) | IFF::TiffReadIFD | [inline]
pal_length | IFF::TiffReadIFD | [protected]
pal_offset | IFF::TiffReadIFD | [protected]
read(void *data, int len) | YFileRead |
read(int64_t offset, void *data, int len) | YFileRead |
readImage(Byte *buf) | IFF::Tiff8Read |
readStrip(int nStrip, Byte *buf) | IFF::Tiff8Read |
RowsPerStrip(void) | IFF::TiffReadIFD | [inline]
SetPosition(int64_t offset) | YFileRead |
str_length | IFF::TiffReadIFD | [protected]
str_offset | IFF::TiffReadIFD | [protected]
StripLength | IFF::Tiff8Read | [private]
StripOffset | IFF::Tiff8Read | [private]
StripsPerImage(void) | IFF::TiffReadIFD | [inline]
Tiff8Read(const Tiff8Read &) | IFF::Tiff8Read | [private]
Tiff8Read(const char *filename) | IFF::Tiff8Read |
TiffReadIFD(const char *filename) | IFF::TiffReadIFD |
Width(void) | IFF::TiffReadIFD | [inline]
YFileRead(std::string filename) | YFileRead | [inline]
YFileRead(const char *filename) | YFileRead | [inline]
~Tiff8Read(void) | IFF::Tiff8Read | [virtual]
~TiffReadIFD(void) | IFF::TiffReadIFD | [inline, virtual]
~YFileRead() | YFileRead | [virtual]


Pipe Line Filters: Cписок членов класса

IFF::Tiff8Write Cписок членов класса

Полный список членов класса IFF::Tiff8Write, включая наследуемые из базового класса

_close() | YFileWrite |
GetPosition() | YFileWrite |
Length(void) | IFF::TiffWriteIFD | [inline]
pal_length | IFF::TiffWriteIFD | [protected]
pal_offset | IFF::TiffWriteIFD | [protected]
PutPalette(uint32_t *palette=0) | IFF::TiffWriteIFD |
RowsPerStrip(void) | IFF::TiffWriteIFD | [inline]
SetPosition(int64_t offset) | YFileWrite |
str_length | IFF::TiffWriteIFD | [protected]
str_offset | IFF::TiffWriteIFD | [protected]
StripsPerImage(void) | IFF::TiffWriteIFD | [inline]
Tiff8Write(const Tiff8Write &) | IFF::Tiff8Write | [private]
Tiff8Write(const char *filename, int wid, int len, int bits_ps, uint32_t *paletta) | IFF::Tiff8Write |
TiffWriteIFD(const char *filename, int wid, int len, int bits_ps, uint32_t *palette=0) | IFF::TiffWriteIFD |
Width(void) | IFF::TiffWriteIFD | [inline]
write(const void *data, int len) | YFileWrite |
write(int64_t offset, const void *data, int len) | YFileWrite |
writeImage(Byte *buf) | IFF::Tiff8Write |
writeStrip(int nStrip, Byte *buf) | IFF::Tiff8Write |
YFileWrite(std::string filename) | YFileWrite | [inline]
YFileWrite(const char *filename) | YFileWrite | [inline]
~Tiff8Write(void) | IFF::Tiff8Write | [inline, virtual]
~TiffWriteIFD(void) | IFF::TiffWriteIFD | [inline, virtual]
~YFileWrite() | YFileWrite | [virtual]


Pipe Line Filters: Cписок членов класса

IFF::TiffReadIFD Cписок членов класса

Полный список членов класса IFF::TiffReadIFD, включая наследуемые из базового класса

_close() | YFileRead |
Bits(void) | IFF::TiffReadIFD | [inline]
bits | IFF::TiffReadIFD | [private]
entries | IFF::TiffReadIFD | [private]
GetFileSize() const | YFileRead |
GetPalette(uint32_t *palette) | IFF::TiffReadIFD |
GetPaletteLength() const | IFF::TiffReadIFD | [inline]
GetTime() const | YFileRead |
ifd | IFF::TiffReadIFD | [private]
length | IFF::TiffReadIFD | [private]
Length(void) | IFF::TiffReadIFD | [inline]
pal_length | IFF::TiffReadIFD | [protected]
pal_offset | IFF::TiffReadIFD | [protected]
read(void *data, int len) | YFileRead |
read(int64_t offset, void *data, int len) | YFileRead |
readIFD() | IFF::TiffReadIFD | [private]
RowsPerStrip(void) | IFF::TiffReadIFD | [inline]
rowsPS | IFF::TiffReadIFD | [private]
SetPosition(int64_t offset) | YFileRead |
spi | IFF::TiffReadIFD | [private]
str_length | IFF::TiffReadIFD | [protected]
str_offset | IFF::TiffReadIFD | [protected]
StripsPerImage(void) | IFF::TiffReadIFD | [inline]
TiffReadIFD(const char *filename) | IFF::TiffReadIFD |
width | IFF::TiffReadIFD | [private]
Width(void) | IFF::TiffReadIFD | [inline]
YFileRead(std::string filename) | YFileRead | [inline]
YFileRead(const char *filename) | YFileRead | [inline]
~TiffReadIFD(void) | IFF::TiffReadIFD | [inline, virtual]
~YFileRead() | YFileRead | [virtual]


Pipe Line Filters: Cписок членов класса

IFF::TiffWriteIFD Cписок членов класса

Полный список членов класса IFF::TiffWriteIFD, включая наследуемые из базового класса

_close() | YFileWrite |
bits | IFF::TiffWriteIFD | [private]
entries | IFF::TiffWriteIFD | [private]
fillIFD(void) | IFF::TiffWriteIFD | [private]
GetPosition() | YFileWrite |
ifd | IFF::TiffWriteIFD | [private]
length | IFF::TiffWriteIFD | [private]
Length(void) | IFF::TiffWriteIFD | [inline]
pal_length | IFF::TiffWriteIFD | [protected]
pal_offset | IFF::TiffWriteIFD | [protected]
PutPalette(uint32_t *palette=0) | IFF::TiffWriteIFD |
RowsPerStrip(void) | IFF::TiffWriteIFD | [inline]
rowsPS | IFF::TiffWriteIFD | [private]
SetPosition(int64_t offset) | YFileWrite |
spi | IFF::TiffWriteIFD | [private]
str_length | IFF::TiffWriteIFD | [protected]
str_offset | IFF::TiffWriteIFD | [protected]
StripsPerImage(void) | IFF::TiffWriteIFD | [inline]
TiffWriteIFD(const char *filename, int wid, int len, int bits_ps, uint32_t *palette=0) | IFF::TiffWriteIFD |
Width(void) | IFF::TiffWriteIFD | [inline]
width | IFF::TiffWriteIFD | [private]
write(const void *data, int len) | YFileWrite |
write(int64_t offset, const void *data, int len) | YFileWrite |
writeIFD(void) | IFF::TiffWriteIFD | [private]
YFileWrite(std::string filename) | YFileWrite | [inline]
YFileWrite(const char *filename) | YFileWrite | [inline]
~TiffWriteIFD(void) | IFF::TiffWriteIFD | [inline, virtual]
~YFileWrite() | YFileWrite | [virtual]


Pipe Line Filters: Cписок членов класса

ImageContainer< ImgType > Cписок членов класса

Полный список членов класса ImageContainer< ImgType >, включая наследуемые из базового класса

Add(ImgType img) | ImageContainer< ImgType > | [inline]
Delete(int i) | ImageContainer< ImgType > | [inline]
m_images | ImageContainer< ImgType > | [private]
operator[](int i) | ImageContainer< ImgType > | [inline]
size() const | ImageContainer< ImgType > | [inline]


Pipe Line Filters: Cписок членов класса

ImageFragment8 Cписок членов класса

Полный список членов класса ImageFragment8, включая наследуемые из базового класса

_Init(const AImage *img) | tplAImageFragment< AImageMem8 > | [inline, protected]
_Init(const AImage *img, int x, int y, int width, int height) | tplAImageFragment< AImageMem8 > | [inline, protected]
AImage() | AImage | [inline]
AImageMem8() | AImageMem8 | [inline]
Bits() const | tplAImageFragment< AImageMem8 > | [inline, virtual]
ChangeBits(int bits) | AImage | [inline, virtual]
ClassName() const | ImageFragment8 | [inline, virtual]
Clear() | tplAImageReference< AImageMem8 > | [inline, virtual]
CopyPalette(AImage *to, const AImage *from) | AImage | [static]
Create(short width, short height, short bitsPerPix, bool hasPalette=false) | tplAImageReference< AImageMem8 > | [inline, virtual]
fheight | tplAImageFragment< AImageMem8 > | [protected]
fwidth | tplAImageFragment< AImageMem8 > | [protected]
fx | tplAImageFragment< AImageMem8 > | [protected]
fy | tplAImageFragment< AImageMem8 > | [protected]
GetFullImage() const | tplAImageReference< AImageMem8 > | [inline, virtual]
GetImageInfo() const | AImage | [inline]
GetImageStore() const | tplAImageReference< AImageMem8 > | [inline, virtual]
GetPaletteEntries() const | tplAImageReference< AImageMem8 > | [inline, virtual]
GetPlane(int plane) | AImage | [inline, virtual]
GetPlane(int plane) const | AImage | [inline, virtual]
Height() const | tplAImageFragment< AImageMem8 > | [inline, virtual]
ImageClass() const | tplAImageReference< AImageMem8 > | [inline, virtual]
ImageClassName(YImageClass iclass) | AImage | [static]
ImageClassName() const | AImage | [inline, virtual]
ImageFragment8() | ImageFragment8 | [inline]
ImageStore() const | AImage | [inline, virtual]
ImageStoreName(YImageStore istore) | AImage | [static]
img | tplAImageReference< AImageMem8 > | [protected]
IMGC_BILEVEL элементы перечисления | AImage |
IMGC_FLOAT элементы перечисления | AImage |
IMGC_GRAYSCALE элементы перечисления | AImage |
IMGC_PALETTE элементы перечисления | AImage |
IMGC_RGB элементы перечисления | AImage |
IMGC_UNKNOWN элементы перечисления | AImage |
IMGS_AImageMem16 элементы перечисления | AImage |
IMGS_AImageMem8 элементы перечисления | AImage |
IMGS_AImageMemFloat элементы перечисления | AImage |
IMGS_AImageMemRgb16 элементы перечисления | AImage |
IMGS_AImageMemRgb8 элементы перечисления | AImage |
IMGS_Unknown элементы перечисления | AImage |
Init(AImageMem8 *_img) | tplAImageFragment< AImageMem8 > | [inline, virtual]
Init(int x, int y, int width, int height) | tplAImageFragment< AImageMem8 > | [inline, virtual]
Init(AImageMem8 *_img, int x, int y, int width, int height) | tplAImageFragment< AImageMem8 > | [inline, virtual]
IsOk() const | tplAImageReference< AImageMem8 > | [inline, virtual]
Load(const char *filename, ProgressCounter *indicator=0) | tplAImageReference< AImageMem8 > | [inline, virtual]
NextLineShift() const | tplAImageFragment< AImageMem8 > | [inline, virtual]
NumPlanes() const | tplAImageReference< AImageMem8 > | [inline, virtual]
operator[](int y) const | ImageFragment8 | [inline, virtual]
Palette() const | tplAImageReference< AImageMem8 > | [inline, virtual]
Pixel typedef | AImageMem8 |
read(int x, int y, Pixel16 *data, int len) const | ImageFragment8 | [inline, virtual]
Save(const char *filename, ProgressCounter *indicator=0) const | tplAImageReference< AImageMem8 > | [inline, virtual]
SetTo(Pixel8 color) | ImageFragment8 | [inline, virtual]
tplAImageFragment< AImageMem8 >::SetTo(AImageMem8 *img, Pixel8 color) | AImageMem8 | [static]
ThisClassName() | ImageFragment8 | [static]
tplAImageFragment() | tplAImageFragment< AImageMem8 > | [inline]
tplAImageReference() | tplAImageReference< AImageMem8 > | [inline]
Width() const | tplAImageFragment< AImageMem8 > | [inline, virtual]
YImageClass перечисление | AImage |
YImageStore перечисление | AImage |
~AImage() | AImage | [inline, virtual]
~AImageMem8() | AImageMem8 | [inline, virtual]
~ImageFragment8() | ImageFragment8 | [inline, virtual]
~tplAImageFragment() | tplAImageFragment< AImageMem8 > | [inline, virtual]
~tplAImageReference() | tplAImageReference< AImageMem8 > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageFragment16 Cписок членов класса

Полный список членов класса ImageFragment16, включая наследуемые из базового класса

_Init(const AImage *img) | tplAImageFragment< AImageMem16 > | [inline, protected]
_Init(const AImage *img, int x, int y, int width, int height) | tplAImageFragment< AImageMem16 > | [inline, protected]
AImage() | AImage | [inline]
AImageMem16() | AImageMem16 | [inline]
Bits() const | tplAImageFragment< AImageMem16 > | [inline, virtual]
ChangeBits(int bits) | AImage | [inline, virtual]
ClassName() const | ImageFragment16 | [inline, virtual]
Clear() | tplAImageReference< AImageMem16 > | [inline, virtual]
CopyPalette(AImage *to, const AImage *from) | AImage | [static]
Create(short width, short height, short bitsPerPix, bool hasPalette=false) | tplAImageReference< AImageMem16 > | [inline, virtual]
fheight | tplAImageFragment< AImageMem16 > | [protected]
fwidth | tplAImageFragment< AImageMem16 > | [protected]
fx | tplAImageFragment< AImageMem16 > | [protected]
fy | tplAImageFragment< AImageMem16 > | [protected]
GetFullImage() const | tplAImageReference< AImageMem16 > | [inline, virtual]
GetImageInfo() const | AImage | [inline]
GetImageStore() const | tplAImageReference< AImageMem16 > | [inline, virtual]
GetPaletteEntries() const | tplAImageReference< AImageMem16 > | [inline, virtual]
GetPlane(int plane) | AImage | [inline, virtual]
GetPlane(int plane) const | AImage | [inline, virtual]
Height() const | tplAImageFragment< AImageMem16 > | [inline, virtual]
ImageClass() const | tplAImageReference< AImageMem16 > | [inline, virtual]
ImageClassName(YImageClass iclass) | AImage | [static]
ImageClassName() const | AImage | [inline, virtual]
ImageFragment16() | ImageFragment16 | [inline]
ImageStore() const | AImage | [inline, virtual]
ImageStoreName(YImageStore istore) | AImage | [static]
img | tplAImageReference< AImageMem16 > | [protected]
IMGC_BILEVEL элементы перечисления | AImage |
IMGC_FLOAT элементы перечисления | AImage |
IMGC_GRAYSCALE элементы перечисления | AImage |
IMGC_PALETTE элементы перечисления | AImage |
IMGC_RGB элементы перечисления | AImage |
IMGC_UNKNOWN элементы перечисления | AImage |
IMGS_AImageMem16 элементы перечисления | AImage |
IMGS_AImageMem8 элементы перечисления | AImage |
IMGS_AImageMemFloat элементы перечисления | AImage |
IMGS_AImageMemRgb16 элементы перечисления | AImage |
IMGS_AImageMemRgb8 элементы перечисления | AImage |
IMGS_Unknown элементы перечисления | AImage |
Init(AImageMem16 *_img) | tplAImageFragment< AImageMem16 > | [inline, virtual]
Init(int x, int y, int width, int height) | tplAImageFragment< AImageMem16 > | [inline, virtual]
Init(AImageMem16 *_img, int x, int y, int width, int height) | tplAImageFragment< AImageMem16 > | [inline, virtual]
IsOk() const | tplAImageReference< AImageMem16 > | [inline, virtual]
Load(const char *filename, ProgressCounter *indicator=0) | tplAImageReference< AImageMem16 > | [inline, virtual]
NextLineShift() const | tplAImageFragment< AImageMem16 > | [inline, virtual]
NumPlanes() const | tplAImageReference< AImageMem16 > | [inline, virtual]
operator[](int y) const | ImageFragment16 | [inline, virtual]
Palette() const | tplAImageReference< AImageMem16 > | [inline, virtual]
Pixel typedef | AImageMem16 |
read(int x, int y, Pixel16 *data, int len) const | ImageFragment16 | [inline, virtual]
Save(const char *filename, ProgressCounter *indicator=0) const | tplAImageReference< AImageMem16 > | [inline, virtual]
SetTo(Pixel16 color) | ImageFragment16 | [inline, virtual]
tplAImageFragment< AImageMem16 >::SetTo(AImageMem16 *img, Pixel16 color) | AImageMem16 | [static]
ThisClassName() | ImageFragment16 | [static]
tplAImageFragment() | tplAImageFragment< AImageMem16 > | [inline]
tplAImageReference() | tplAImageReference< AImageMem16 > | [inline]
Width() const | tplAImageFragment< AImageMem16 > | [inline, virtual]
YImageClass перечисление | AImage |
YImageStore перечисление | AImage |
~AImage() | AImage | [inline, virtual]
~AImageMem16() | AImageMem16 | [inline, virtual]
~ImageFragment16() | ImageFragment16 | [inline, virtual]
~tplAImageFragment() | tplAImageFragment< AImageMem16 > | [inline, virtual]
~tplAImageReference() | tplAImageReference< AImageMem16 > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageFragmentRgb8 Cписок членов класса

Полный список членов класса ImageFragmentRgb8, включая наследуемые из базового класса

_Init(const AImage *img) | tplAImageFragment< AImageMemRgb8 > | [inline, protected]
_Init(const AImage *img, int x, int y, int width, int height) | tplAImageFragment< AImageMemRgb8 > | [inline, protected]
_pl | ImageFragmentRgb8 | [private]
AImage() | AImage | [inline]
AImageMemRgb8() | AImageMemRgb8 | [inline]
Bits() const | tplAImageFragment< AImageMemRgb8 > | [inline, virtual]
ChangeBits(int bits) | AImage | [inline, virtual]
ClassName() const | ImageFragmentRgb8 | [inline, virtual]
Clear() | tplAImageReference< AImageMemRgb8 > | [inline, virtual]
CopyPalette(AImage *to, const AImage *from) | AImage | [static]
Create(short width, short height, short bitsPerPix, bool hasPalette=false) | tplAImageReference< AImageMemRgb8 > | [inline, virtual]
fheight | tplAImageFragment< AImageMemRgb8 > | [protected]
fwidth | tplAImageFragment< AImageMemRgb8 > | [protected]
fx | tplAImageFragment< AImageMemRgb8 > | [protected]
fy | tplAImageFragment< AImageMemRgb8 > | [protected]
GetFullImage() const | tplAImageReference< AImageMemRgb8 > | [inline, virtual]
GetImageInfo() const | AImage | [inline]
GetImageStore() const | tplAImageReference< AImageMemRgb8 > | [inline, virtual]
GetPaletteEntries() const | tplAImageReference< AImageMemRgb8 > | [inline, virtual]
GetPlane(int plane) | AImageMemRgb8 | [inline, virtual]
GetPlane(int plane) const | AImageMemRgb8 | [inline, virtual]
GetPlane8(int plane) const | ImageFragmentRgb8 | [inline, virtual]
Height() const | tplAImageFragment< AImageMemRgb8 > | [inline, virtual]
ImageClass() const | tplAImageReference< AImageMemRgb8 > | [inline, virtual]
ImageClassName(YImageClass iclass) | AImage | [static]
ImageClassName() const | AImage | [inline, virtual]
ImageFragmentRgb8() | ImageFragmentRgb8 | [inline]
ImageStore() const | AImage | [inline, virtual]
ImageStoreName(YImageStore istore) | AImage | [static]
img | tplAImageReference< AImageMemRgb8 > | [protected]
IMGC_BILEVEL элементы перечисления | AImage |
IMGC_FLOAT элементы перечисления | AImage |
IMGC_GRAYSCALE элементы перечисления | AImage |
IMGC_PALETTE элементы перечисления | AImage |
IMGC_RGB элементы перечисления | AImage |
IMGC_UNKNOWN элементы перечисления | AImage |
IMGS_AImageMem16 элементы перечисления | AImage |
IMGS_AImageMem8 элементы перечисления | AImage |
IMGS_AImageMemFloat элементы перечисления | AImage |
IMGS_AImageMemRgb16 элементы перечисления | AImage |
IMGS_AImageMemRgb8 элементы перечисления | AImage |
IMGS_Unknown элементы перечисления | AImage |
Init(AImageMemRgb8 *_img) | ImageFragmentRgb8 | [inline, virtual]
Init(int x, int y, int width, int height) | ImageFragmentRgb8 | [inline, virtual]
tplAImageFragment< AImageMemRgb8 >::Init(AImageMemRgb8 *_img, int x, int y, int width, int height) | tplAImageFragment< AImageMemRgb8 > | [inline, virtual]
IsOk() const | tplAImageReference< AImageMemRgb8 > | [inline, virtual]
Load(const char *filename, ProgressCounter *indicator=0) | tplAImageReference< AImageMemRgb8 > | [inline, virtual]
NextLineShift() const | tplAImageFragment< AImageMemRgb8 > | [inline, virtual]
NumPlanes() const | tplAImageReference< AImageMemRgb8 > | [inline, virtual]
Palette() const | tplAImageReference< AImageMemRgb8 > | [inline, virtual]
Pixel typedef | AImageMemRgb8 |
pl | ImageFragmentRgb8 | [private]
PlaneImageType typedef | AImageMemRgb8 |
read(int x, int y, Pixel16 *data, int len) const | ImageFragmentRgb8 | [inline, virtual]
Save(const char *filename, ProgressCounter *indicator=0) const | tplAImageReference< AImageMemRgb8 > | [inline, virtual]
SetTo(Rgb color) | ImageFragmentRgb8 | [inline, virtual]
tplAImageFragment< AImageMemRgb8 >::SetTo(AImageMemRgb8 *img, Rgb color) | AImageMemRgb8 | [static]
ThisClassName() | ImageFragmentRgb8 | [static]
tplAImageFragment() | tplAImageFragment< AImageMemRgb8 > | [inline]
tplAImageReference() | tplAImageReference< AImageMemRgb8 > | [inline]
Width() const | tplAImageFragment< AImageMemRgb8 > | [inline, virtual]
YImageClass перечисление | AImage |
YImageStore перечисление | AImage |
~AImage() | AImage | [inline, virtual]
~AImageMemRgb8() | AImageMemRgb8 | [inline, virtual]
~ImageFragmentRgb8() | ImageFragmentRgb8 | [inline, virtual]
~tplAImageFragment() | tplAImageFragment< AImageMemRgb8 > | [inline, virtual]
~tplAImageReference() | tplAImageReference< AImageMemRgb8 > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageMem8 Cписок членов класса

Полный список членов класса ImageMem8, включая наследуемые из базового класса

AImage() | AImage | [inline]
AImageMem8() | AImageMem8 | [inline]
Bits() const | ImageMem8 | [inline, virtual]
bits | ImageMem8 | [private]
ChangeBits(int _bits) | ImageMem8 | [inline, virtual]
ChangeHeight(short new_height) | AImage | [inline, virtual]
ClassName() const | ImageMem8 | [inline, virtual]
Clear() | ImageMem8 | [virtual]
CopyPalette(AImage *to, const AImage *from) | AImage | [static]
Create(short width, short height, short bitsPerPix=8, bool hasPalette=false) | ImageMem8 | [virtual]
data | ImageMem8 | [private]
GetFullImage() const | AImage | [inline, virtual]
GetImageInfo() const | AImage | [inline]
GetImageStore() const | AImageMem8 | [inline, virtual]
GetPaletteEntries() const | ImageMem8 | [inline, virtual]
GetPlane(int plane) | AImage | [inline, virtual]
GetPlane(int plane) const | AImage | [inline, virtual]
Height() const | ImageMem8 | [inline, virtual]
ImageClass() const | ImageMem8 | [virtual]
ImageClassName(YImageClass iclass) | AImage | [static]
ImageClassName() const | AImage | [inline, virtual]
ImageMem8() | ImageMem8 |
ImageStore() const | AImage | [inline, virtual]
ImageStoreName(YImageStore istore) | AImage | [static]
img_class | ImageMem8 | [private]
IMGC_BILEVEL элементы перечисления | AImage |
IMGC_FLOAT элементы перечисления | AImage |
IMGC_GRAYSCALE элементы перечисления | AImage |
IMGC_PALETTE элементы перечисления | AImage |
IMGC_RGB элементы перечисления | AImage |
IMGC_UNKNOWN элементы перечисления | AImage |
IMGS_AImageMem16 элементы перечисления | AImage |
IMGS_AImageMem8 элементы перечисления | AImage |
IMGS_AImageMemFloat элементы перечисления | AImage |
IMGS_AImageMemRgb16 элементы перечисления | AImage |
IMGS_AImageMemRgb8 элементы перечисления | AImage |
IMGS_Unknown элементы перечисления | AImage |
IsOk() const | ImageMem8 | [inline, virtual]
len | ImageMem8 | [private]
next_line_shift | ImageMem8 | [private]
NextLineShift() const | ImageMem8 | [inline, virtual]
nullify() | ImageMem8 | [private]
NumPlanes() const | AImage | [inline, virtual]
operator[](int y) const | ImageMem8 | [inline, virtual]
pal | ImageMem8 | [private]
pal_entries | ImageMem8 | [private]
Palette() const | ImageMem8 | [inline, virtual]
Pixel typedef | AImageMem8 |
read(int x, int y, Pixel16 *data, int len) const | ImageMem8 | [virtual]
SetTo(AImageMem8 *img, Pixel8 color) | AImageMem8 | [static]
SetTo(Pixel8 color) | AImageMem8 | [inline, virtual]
ThisClassName() | ImageMem8 | [static]
wid | ImageMem8 | [private]
Width() const | ImageMem8 | [inline, virtual]
YImageClass перечисление | AImage |
YImageStore перечисление | AImage |
~AImage() | AImage | [inline, virtual]
~AImageMem8() | AImageMem8 | [inline, virtual]
~ImageMem8() | ImageMem8 | [virtual]


Pipe Line Filters: Cписок членов класса

ImageMem16 Cписок членов класса

Полный список членов класса ImageMem16, включая наследуемые из базового класса

AImage() | AImage | [inline]
AImageMem16() | AImageMem16 | [inline]
bits | ImageMem16 | [private]
Bits() const | ImageMem16 | [inline, virtual]
ChangeBits(int _bits) | ImageMem16 | [inline, virtual]
ChangeHeight(short new_height) | AImage | [inline, virtual]
ClassName() const | ImageMem16 | [inline, virtual]
Clear() | ImageMem16 | [virtual]
CopyPalette(AImage *to, const AImage *from) | AImage | [static]
Create(short width, short height, short bitsPerPix, bool hasPalette=false) | ImageMem16 | [virtual]
data | ImageMem16 | [private]
GetFullImage() const | AImage | [inline, virtual]
GetImageInfo() const | AImage | [inline]
GetImageStore() const | AImageMem16 | [inline, virtual]
GetPaletteEntries() const | ImageMem16 | [inline, virtual]
GetPlane(int plane) | AImage | [inline, virtual]
GetPlane(int plane) const | AImage | [inline, virtual]
Height() const | ImageMem16 | [inline, virtual]
ImageClass() const | ImageMem16 | [virtual]
ImageClassName(YImageClass iclass) | AImage | [static]
ImageClassName() const | AImage | [inline, virtual]
ImageMem16(const ImageMem16 &im) | ImageMem16 | [private]
ImageMem16() | ImageMem16 | [inline]
ImageStore() const | AImage | [inline, virtual]
ImageStoreName(YImageStore istore) | AImage | [static]
IMGC_BILEVEL элементы перечисления | AImage |
IMGC_FLOAT элементы перечисления | AImage |
IMGC_GRAYSCALE элементы перечисления | AImage |
IMGC_PALETTE элементы перечисления | AImage |
IMGC_RGB элементы перечисления | AImage |
IMGC_UNKNOWN элементы перечисления | AImage |
IMGS_AImageMem16 элементы перечисления | AImage |
IMGS_AImageMem8 элементы перечисления | AImage |
IMGS_AImageMemFloat элементы перечисления | AImage |
IMGS_AImageMemRgb16 элементы перечисления | AImage |
IMGS_AImageMemRgb8 элементы перечисления | AImage |
IMGS_Unknown элементы перечисления | AImage |
IsOk() const | ImageMem16 | [inline, virtual]
len | ImageMem16 | [private]
NextLineShift() const | ImageMem16 | [inline, virtual]
nullify() | ImageMem16 | [private]
NumPlanes() const | AImage | [inline, virtual]
operator[](int y) const | ImageMem16 | [inline, virtual]
Palette() const | ImageMem16 | [inline, virtual]
Pixel typedef | AImageMem16 |
read(int x, int y, Pixel16 *data, int len) const | ImageMem16 | [virtual]
SetTo(AImageMem16 *img, Pixel16 color) | AImageMem16 | [static]
SetTo(Pixel16 color) | AImageMem16 | [inline, virtual]
ThisClassName() | ImageMem16 | [static]
wid | ImageMem16 | [private]
Width() const | ImageMem16 | [inline, virtual]
YImageClass перечисление | AImage |
YImageStore перечисление | AImage |
~AImage() | AImage | [inline, virtual]
~AImageMem16() | AImageMem16 | [inline, virtual]
~ImageMem16() | ImageMem16 | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageMem16Stuff Cписок членов класса

Полный список членов класса ImageMem16Stuff, включая наследуемые из базового класса

AImage() | AImage | [inline]
AImageMem16() | AImageMem16 | [inline]
bits | ImageMem16Stuff | [private]
Bits() const | ImageMem16Stuff | [inline, virtual]
ChangeBits(int bits) | AImage | [inline, virtual]
ChangeHeight(short new_height) | AImage | [inline, virtual]
ClassName() const | ImageMem16Stuff | [inline, virtual]
Clear() | ImageMem16Stuff | [virtual]
CopyPalette(AImage *to, const AImage *from) | AImage | [static]
Create(short width, short height, short bitsPerPix, bool hasPalette=false) | ImageMem16Stuff | [virtual]
data | ImageMem16Stuff | [private]
GetFullImage() const | AImage | [inline, virtual]
GetImageInfo() const | AImage | [inline]
GetImageStore() const | AImageMem16 | [inline, virtual]
GetPaletteEntries() const | AImage | [inline, virtual]
GetPlane(int plane) | AImage | [inline, virtual]
GetPlane(int plane) const | AImage | [inline, virtual]
Height() const | ImageMem16Stuff | [inline, virtual]
ImageClass() const | ImageMem16Stuff | [inline, virtual]
ImageClassName(YImageClass iclass) | AImage | [static]
ImageClassName() const | AImage | [inline, virtual]
ImageMem16Stuff(const ImageMem16Stuff &im) | ImageMem16Stuff | [private]
ImageMem16Stuff(Pixel16 *_extern_data, short width, short height, short bitsPerPixel=10) | ImageMem16Stuff | [inline]
ImageStore() const | AImage | [inline, virtual]
ImageStoreName(YImageStore istore) | AImage | [static]
IMGC_BILEVEL элементы перечисления | AImage |
IMGC_FLOAT элементы перечисления | AImage |
IMGC_GRAYSCALE элементы перечисления | AImage |
IMGC_PALETTE элементы перечисления | AImage |
IMGC_RGB элементы перечисления | AImage |
IMGC_UNKNOWN элементы перечисления | AImage |
IMGS_AImageMem16 элементы перечисления | AImage |
IMGS_AImageMem8 элементы перечисления | AImage |
IMGS_AImageMemFloat элементы перечисления | AImage |
IMGS_AImageMemRgb16 элементы перечисления | AImage |
IMGS_AImageMemRgb8 элементы перечисления | AImage |
IMGS_Unknown элементы перечисления | AImage |
IsOk() const | ImageMem16Stuff | [inline, virtual]
len | ImageMem16Stuff | [private]
Load(const char *ozfilename, ProgressCounter *indicator=0) | ImageMem16Stuff | [virtual]
NextLineShift() const | ImageMem16Stuff | [inline, virtual]
NumPlanes() const | AImage | [inline, virtual]
operator[](int y) const | ImageMem16Stuff | [inline, virtual]
Palette() const | AImage | [inline, virtual]
Pixel typedef | AImageMem16 |
read(int x, int y, Pixel16 *data2, int len) const | ImageMem16Stuff | [inline, virtual]
SetTo(AImageMem16 *img, Pixel16 color) | AImageMem16 | [static]
SetTo(Pixel16 color) | AImageMem16 | [inline, virtual]
ThisClassName() | ImageMem16Stuff | [static]
wid | ImageMem16Stuff | [private]
Width() const | ImageMem16Stuff | [inline, virtual]
YImageClass перечисление | AImage |
YImageStore перечисление | AImage |
~AImage() | AImage | [inline, virtual]
~AImageMem16() | AImageMem16 | [inline, virtual]
~ImageMem16Stuff() | ImageMem16Stuff | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageMem16Stuff::Error Cписок членов класса

Полный список членов класса ImageMem16Stuff::Error, включая наследуемые из базового класса

AErrorStatusBase() | AErrorStatusBase | [inline]
ClassName() const | ErrorStatusBase | [inline, virtual]
DerivedClassName() const | ErrorStatusBase | [inline, virtual]
err | ImageMem16Stuff::Error | [private]
errCantClearObject элементы перечисления | ImageMem16Stuff::Error |
errCantCreateObject элементы перечисления | ImageMem16Stuff::Error |
errCantLoadObject элементы перечисления | ImageMem16Stuff::Error |
errInsufficientMemory элементы перечисления | ImageMem16Stuff::Error |
errOK элементы перечисления | ImageMem16Stuff::Error |
Error(const char *fname, int nline, const ImageMem16Stuff *obj, bool del_msg, ErrorStatus id_err, const char *msgfmt,...) | ImageMem16Stuff::Error |
ErrorID() | ImageMem16Stuff::Error | [inline]
ErrorStatus перечисление | ImageMem16Stuff::Error |
ErrorStatusBase(const char *fname, int nline, const char *_cls_this, const char *_cls, bool del_msg) | ErrorStatusBase |
errUnknown элементы перечисления | ImageMem16Stuff::Error |
File() const | ErrorStatusBase | [inline, virtual]
Line() const | ErrorStatusBase | [inline, virtual]
Msg() const | ErrorStatusBase | [virtual]
msg | ErrorStatusBase | [protected]
msg_need_delete | ErrorStatusBase | [protected]
operator const char *() const | AErrorStatusBase | [inline]
~AErrorStatusBase() | AErrorStatusBase | [inline, virtual]
~Error() | ImageMem16Stuff::Error | [inline, virtual]
~ErrorStatusBase() | ErrorStatusBase | [virtual]


Pipe Line Filters: Cписок членов класса

ImageMemFloat Cписок членов класса

Полный список членов класса ImageMemFloat, включая наследуемые из базового класса

AImage() | AImage | [inline]
AImageMemFloat() | AImageMemFloat | [inline]
bits | ImageMemFloat |
Bits() const | ImageMemFloat | [inline, virtual]
ChangeBits(int bits) | AImage | [inline, virtual]
ChangeHeight(short new_height) | AImage | [inline, virtual]
ClassName() const | ImageMemFloat | [inline, virtual]
Clear() | ImageMemFloat | [virtual]
CopyPalette(AImage *to, const AImage *from) | AImage | [static]
Create(short width, short height, short bitsPerPix=8 *sizeof(PixelFloat), bool hasPalette=false) | ImageMemFloat | [virtual]
data | ImageMemFloat |
GetFullImage() const | AImage | [inline, virtual]
GetImageInfo() const | AImage | [inline]
GetImageStore() const | AImageMemFloat | [inline, virtual]
GetPaletteEntries() const | AImage | [inline, virtual]
GetPlane(int plane) | AImage | [inline, virtual]
GetPlane(int plane) const | AImage | [inline, virtual]
Height() const | ImageMemFloat | [inline, virtual]
ImageClass() const | ImageMemFloat | [inline, virtual]
ImageClassName(YImageClass iclass) | AImage | [static]
ImageClassName() const | AImage | [inline, virtual]
ImageMemFloat() | ImageMemFloat |
ImageStore() const | AImage | [inline, virtual]
ImageStoreName(YImageStore istore) | AImage | [static]
IMGC_BILEVEL элементы перечисления | AImage |
IMGC_FLOAT элементы перечисления | AImage |
IMGC_GRAYSCALE элементы перечисления | AImage |
IMGC_PALETTE элементы перечисления | AImage |
IMGC_RGB элементы перечисления | AImage |
IMGC_UNKNOWN элементы перечисления | AImage |
IMGS_AImageMem16 элементы перечисления | AImage |
IMGS_AImageMem8 элементы перечисления | AImage |
IMGS_AImageMemFloat элементы перечисления | AImage |
IMGS_AImageMemRgb16 элементы перечисления | AImage |
IMGS_AImageMemRgb8 элементы перечисления | AImage |
IMGS_Unknown элементы перечисления | AImage |
IsOk() const | ImageMemFloat | [inline, virtual]
len | ImageMemFloat |
NextLineShift() const | ImageMemFloat | [inline, virtual]
nullify() | ImageMemFloat |
NumPlanes() const | AImage | [inline, virtual]
operator[](int y) const | ImageMemFloat | [inline, virtual]
Palette() const | AImage | [inline, virtual]
Pixel typedef | AImageMemFloat |
read(int x, int y, Pixel16 *data, int len) const | ImageMemFloat | [virtual]
SetTo(PixelFloat color) | ImageMemFloat | [virtual]
ThisClassName() | ImageMemFloat | [static]
wid | ImageMemFloat |
Width() const | ImageMemFloat | [inline, virtual]
YImageClass перечисление | AImage |
YImageStore перечисление | AImage |
~AImage() | AImage | [inline, virtual]
~AImageMemFloat() | AImageMemFloat | [inline, virtual]
~ImageMemFloat() | ImageMemFloat | [virtual]


Pipe Line Filters: Cписок членов класса

ImageMemRgb8 Cписок членов класса

Полный список членов класса ImageMemRgb8, включая наследуемые из базового класса

AImage() | AImage | [inline]
AImageMemRgb8() | AImageMemRgb8 | [inline]
bits | ImageMemRgb8 | [private]
Bits() const | ImageMemRgb8 | [inline, virtual]
ChangeBits(int bits) | AImage | [inline, virtual]
ChangeHeight(short new_height) | AImage | [inline, virtual]
ClassName() const | ImageMemRgb8 | [inline, virtual]
Clear() | ImageMemRgb8 | [virtual]
CopyPalette(AImage *to, const AImage *from) | AImage | [static]
Create(short width, short height, short bitsPerPix=8, bool hasPalette=false) | ImageMemRgb8 | [virtual]
data8 | ImageMemRgb8 | [private]
GetFullImage() const | AImage | [inline, virtual]
GetImageInfo() const | AImage | [inline]
GetImageStore() const | AImageMemRgb8 | [inline, virtual]
GetPaletteEntries() const | AImage | [inline, virtual]
GetPlane(int plane) | AImageMemRgb8 | [inline, virtual]
GetPlane(int plane) const | AImageMemRgb8 | [inline, virtual]
GetPlane8(int plane) const | ImageMemRgb8 | [virtual]
Height() const | ImageMemRgb8 | [inline, virtual]
ImageClass() const | ImageMemRgb8 | [virtual]
ImageClassName(YImageClass iclass) | AImage | [static]
ImageClassName() const | AImage | [inline, virtual]
ImageMemRgb8(const ImageMemRgb8 &im) | ImageMemRgb8 | [private]
ImageMemRgb8() | ImageMemRgb8 | [inline]
ImageStore() const | AImage | [inline, virtual]
ImageStoreName(YImageStore istore) | AImage | [static]
IMGC_BILEVEL элементы перечисления | AImage |
IMGC_FLOAT элементы перечисления | AImage |
IMGC_GRAYSCALE элементы перечисления | AImage |
IMGC_PALETTE элементы перечисления | AImage |
IMGC_RGB элементы перечисления | AImage |
IMGC_UNKNOWN элементы перечисления | AImage |
IMGS_AImageMem16 элементы перечисления | AImage |
IMGS_AImageMem8 элементы перечисления | AImage |
IMGS_AImageMemFloat элементы перечисления | AImage |
IMGS_AImageMemRgb16 элементы перечисления | AImage |
IMGS_AImageMemRgb8 элементы перечисления | AImage |
IMGS_Unknown элементы перечисления | AImage |
IsOk() const | ImageMemRgb8 | [virtual]
len | ImageMemRgb8 | [private]
NextLineShift() const | ImageMemRgb8 | [inline, virtual]
nullify() | ImageMemRgb8 | [private]
NumPlanes() const | AImageMemRgb8 | [inline, virtual]
Palette() const | AImage | [inline, virtual]
Pixel typedef | AImageMemRgb8 |
PlaneImageType typedef | AImageMemRgb8 |
read(int x, int y, Pixel16 *data, int len) const | ImageMemRgb8 | [virtual]
SetTo(AImageMemRgb8 *img, Rgb color) | AImageMemRgb8 | [static]
SetTo(Rgb color) | AImageMemRgb8 | [inline, virtual]
ThisClassName() | ImageMemRgb8 | [static]
wid | ImageMemRgb8 | [private]
Width() const | ImageMemRgb8 | [inline, virtual]
YImageClass перечисление | AImage |
YImageStore перечисление | AImage |
~AImage() | AImage | [inline, virtual]
~AImageMemRgb8() | AImageMemRgb8 | [inline, virtual]
~ImageMemRgb8() | ImageMemRgb8 | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageProxy< ImageT > Cписок членов класса

Полный список членов класса ImageProxy< ImageT >, включая наследуемые из базового класса

bits() const | ImageProxy< ImageT > | [inline, virtual]
clone() const | ImageProxy< ImageT > | [inline, virtual]
get(int x, int y) const | ImageProxy< ImageT > | [inline, virtual]
height() const | ImageProxy< ImageT > | [inline, virtual]
image_ | ImageProxy< ImageT > | [private]
imageClass() const | ImageProxy< ImageT > | [inline, virtual]
ImageProxy(ImageT *image) | ImageProxy< ImageT > | [inline]
ImageProxy(const ImageProxy &src) | ImageProxy< ImageT > | [inline]
max_ | ImageProxy< ImageT > | [private]
maxValue() const | ImageProxy< ImageT > | [inline, virtual]
set(int x, int y, int value) | ImageProxy< ImageT > | [inline, virtual]
width() const | ImageProxy< ImageT > | [inline, virtual]
~AImageProxy() | AImageProxy | [inline, virtual]
~ImageProxy() | ImageProxy< ImageT > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageProxyConst< ImageT > Cписок членов класса

Полный список членов класса ImageProxyConst< ImageT >, включая наследуемые из базового класса

bits() const | ImageProxyConst< ImageT > | [inline, virtual]
clone() const | ImageProxyConst< ImageT > | [inline, virtual]
get(int x, int y) const | ImageProxyConst< ImageT > | [inline, virtual]
height() const | ImageProxyConst< ImageT > | [inline, virtual]
image_ | ImageProxyConst< ImageT > | [private]
imageClass() const | ImageProxyConst< ImageT > | [inline, virtual]
ImageProxyConst(const ImageT *image) | ImageProxyConst< ImageT > | [inline]
ImageProxyConst(const ImageProxyConst &src) | ImageProxyConst< ImageT > | [inline]
max_ | ImageProxyConst< ImageT > | [private]
maxValue() const | ImageProxyConst< ImageT > | [inline, virtual]
set(int x, int y, int value) | ImageProxyConst< ImageT > | [inline, virtual]
width() const | ImageProxyConst< ImageT > | [inline, virtual]
~AImageProxy() | AImageProxy | [inline, virtual]
~ImageProxyConst() | ImageProxyConst< ImageT > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageProxyVector Cписок членов класса

Полный список членов класса ImageProxyVector, включая наследуемые из базового класса

add(AImage *image) | ImageProxyVector |
add(const AImage *image) | ImageProxyVector |
add(const AImageProxy &imageProxy) | ImageProxyVector |
begin() | ImageProxyVector | [inline]
begin() const | ImageProxyVector | [inline]
bits() const | ImageProxyVector | [inline]
bits_ | ImageProxyVector | [private]
const_iterator typedef | ImageProxyVector |
countImage() const | ImageProxyVector | [inline]
countProxy() const | ImageProxyVector | [inline]
end() | ImageProxyVector | [inline]
end() const | ImageProxyVector | [inline]
height() const | ImageProxyVector | [inline]
height_ | ImageProxyVector | [private]
imageClass() const | ImageProxyVector | [inline]
imageClass_ | ImageProxyVector | [private]
ImageProxyVector() | ImageProxyVector | [inline]
ImageProxyVector(const AImage *image) | ImageProxyVector | [inline]
ImageProxyVector(AImage *image) | ImageProxyVector | [inline]
ImageProxyVector(const ImageProxyVector &src) | ImageProxyVector |
iterator typedef | ImageProxyVector |
operator=(const ImageProxyVector &src) | ImageProxyVector |
proxies_ | ImageProxyVector | [private]
width() const | ImageProxyVector | [inline]
width_ | ImageProxyVector | [private]
~ImageProxyVector() | ImageProxyVector | [virtual]


Pipe Line Filters: Cписок членов класса

ImageResample Cписок членов класса

Полный список членов класса ImageResample, включая наследуемые из базового класса

Bits() const | ImageResample | [inline, virtual]
Height() const | ImageResample | [inline, virtual]
ImageClass() const | ImageResample | [inline, virtual]
ImageResample() | ImageResample | [inline]
imAuto элементы перечисления | ImageResample |
imAverage элементы перечисления | ImageResample |
imBicubical элементы перечисления | ImageResample |
imBilinear элементы перечисления | ImageResample |
imHistMax элементы перечисления | ImageResample |
imNearest элементы перечисления | ImageResample |
imUnknown элементы перечисления | ImageResample |
init(ImageResampleParams _prms) | ImageResample | [private]
initResize(const AImage *input_image, InterpolationMethod method, int new_width, int new_height=0) | ImageResample |
initRotate(const AImage *input_image, InterpolationMethod method, double angle, bool radians=true, bool fill_empty_space=true, int fill_intensity=0) | ImageResample |
InterpolationMethod перечисление | ImageResample |
ModifyType перечисление | ImageResample |
mtResize элементы перечисления | ImageResample |
mtRotate элементы перечисления | ImageResample |
nullify() | ImageResample | [inline, private]
nullifyPrms() | ImageResample | [private]
prms | ImageResample | [private]
Run(AImage *output_image, ProgressCounter *indicator=0) | ImageResample | [virtual]
Width() const | ImageResample | [inline, virtual]
~ImageResample() | ImageResample | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageResize Cписок членов класса

Полный список членов класса ImageResize, включая наследуемые из базового класса

Bits() const | ImageResize | [inline, virtual]
Height() const | ImageResize | [inline, virtual]
ImageClass() const | ImageResize | [inline, virtual]
ImageResample() | ImageResample | [inline]
ImageResize() | ImageResize | [inline]
imAuto элементы перечисления | ImageResample |
imAverage элементы перечисления | ImageResample |
imBicubical элементы перечисления | ImageResample |
imBilinear элементы перечисления | ImageResample |
imHistMax элементы перечисления | ImageResample |
imNearest элементы перечисления | ImageResample |
imUnknown элементы перечисления | ImageResample |
init(const AImage *input_image, InterpolationMethod method, int new_width, int new_height=0) | ImageResize | [inline]
initResize(const AImage *input_image, InterpolationMethod method, int new_width, int new_height=0) | ImageResample |
initRotate(const AImage *input_image, InterpolationMethod method, double angle, bool radians=true, bool fill_empty_space=true, int fill_intensity=0) | ImageResample |
InterpolationMethod перечисление | ImageResample |
ModifyType перечисление | ImageResample |
mtResize элементы перечисления | ImageResample |
mtRotate элементы перечисления | ImageResample |
Run(AImage *output_image, ProgressCounter *indicator=0) | ImageResize | [inline, virtual]
Width() const | ImageResize | [inline, virtual]
~ImageResample() | ImageResample | [inline, virtual]
~ImageResize() | ImageResize | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageRotate Cписок членов класса

Полный список членов класса ImageRotate, включая наследуемые из базового класса

Bits() const | ImageRotate | [inline, virtual]
Height() const | ImageRotate | [inline, virtual]
ImageClass() const | ImageRotate | [inline, virtual]
ImageResample() | ImageResample | [inline]
ImageRotate() | ImageRotate | [inline]
imAuto элементы перечисления | ImageResample |
imAverage элементы перечисления | ImageResample |
imBicubical элементы перечисления | ImageResample |
imBilinear элементы перечисления | ImageResample |
imHistMax элементы перечисления | ImageResample |
imNearest элементы перечисления | ImageResample |
imUnknown элементы перечисления | ImageResample |
init(const AImage *input_image, InterpolationMethod method, double angle, bool radians=true, bool fill_empty_space=true, int fill_intensity=0) | ImageRotate | [inline]
initResize(const AImage *input_image, InterpolationMethod method, int new_width, int new_height=0) | ImageResample |
initRotate(const AImage *input_image, InterpolationMethod method, double angle, bool radians=true, bool fill_empty_space=true, int fill_intensity=0) | ImageResample |
InterpolationMethod перечисление | ImageResample |
ModifyType перечисление | ImageResample |
mtResize элементы перечисления | ImageResample |
mtRotate элементы перечисления | ImageResample |
Run(AImage *output_image, ProgressCounter *indicator=0) | ImageRotate | [inline, virtual]
Width() const | ImageRotate | [inline, virtual]
~ImageResample() | ImageResample | [inline, virtual]
~ImageRotate() | ImageRotate | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageTransform Cписок членов класса

Полный список членов класса ImageTransform, включая наследуемые из базового класса

base() const | ImageTransform |
bits() const | ImageTransform |
EdgeMethod перечисление | ImageTransform |
height() const | ImageTransform |
imageClass() const | ImageTransform |
ImageTransform(bool fastAlgorithm=true) | ImageTransform | [explicit]
ImageTransform(const ImageTransform &) | ImageTransform | [private]
init(const ImageProxyVector *inputVector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, ProgressCounter *indicator=0, const EdgeMethod &edgeMethod=None) | ImageTransform |
init(const ImageProxyVector *inputVector, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, ProgressCounter *indicator=0, const EdgeMethod &edgeMethod=None) | ImageTransform |
None элементы перечисления | ImageTransform |
operator=(const ImageTransform &) | ImageTransform | [private]
pImpl_ | ImageTransform | [private]
run(ImageProxyVector *outputVector, ProgressCounter *indicator=0) | ImageTransform |
run(ImageProxyVector *outputVector, const YRect< int > &outputFragment, ProgressCounter *indicator=0) | ImageTransform |
setBackgroundColor(bool doCorrect, int value=0) | ImageTransform |
setErrorColor(bool doCorrect, int value=0) | ImageTransform |
setFlipHorizontal(bool value) | ImageTransform |
setFlipVertical(bool value) | ImageTransform |
setGridAdjustment(const YPoint< double > &gridNode) | ImageTransform |
width() const | ImageTransform |
~ImageTransform() | ImageTransform | [virtual]


Pipe Line Filters: Cписок членов класса

ImageTransformCellImpl Cписок членов класса

Полный список членов класса ImageTransformCellImpl, включая наследуемые из базового класса

acceptInputParameters(const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, const ImageTransform::EdgeMethod &edgeMethod) | ImageTransformImpl |
backgroundColor_ | ImageTransformImpl |
base() const | ImageTransformImpl |
bits() const | ImageTransformImpl |
calculateOutputCoords() | ImageTransformImpl |
calculateOutputData(ProgressCounter *indicator) | ImageTransformCellImpl | [virtual]
canICStoRCS(const YPoint< double > &p) const | ImageTransformImpl |
canPICStoICS(const YPoint< int > &p) const | ImageTransformImpl | [inline]
canRCStoICS(const YPoint< double > &p) const | ImageTransformImpl |
checkInputParameters(const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, const ImageTransform::EdgeMethod &edgeMethod) const | ImageTransformImpl |
edgeH_ | ImageTransformImpl |
edgeV_ | ImageTransformImpl |
enableGridAdjustment_ | ImageTransformImpl |
errorColor_ | ImageTransformImpl |
fillOutputPixel(AImageProxy *out, int x, int y, int value) | ImageTransformImpl | [inline]
flipH_ | ImageTransformImpl |
flipV_ | ImageTransformImpl |
gridNode_ | ImageTransformImpl |
height() const | ImageTransformImpl |
ICStoPICS(const YPoint< double > &ip, const YPoint< int > *pip4, const YPoint< double > *ip4) const | ImageTransformImpl |
ICStoRCS(const YPoint< double > &p) const | ImageTransformImpl |
imageClass() const | ImageTransformImpl |
ImageTransformCellImpl() | ImageTransformCellImpl | [inline]
ImageTransformImpl() | ImageTransformImpl |
init(const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, ProgressCounter *indicator=0, const ImageTransform::EdgeMethod &edgeMethod=ImageTransform::None) | ImageTransformImpl |
inputCoords_ | ImageTransformImpl |
inputFragment_ | ImageTransformImpl |
inputHeight_ | ImageTransformImpl |
inputImageHeight_ | ImageTransformImpl |
inputImageWidth_ | ImageTransformImpl |
inputVector_ | ImageTransformImpl |
inputWidth_ | ImageTransformImpl |
outputArea_ | ImageTransformImpl |
outputCoords_ | ImageTransformImpl |
outputFragment_ | ImageTransformImpl |
outputHeight_ | ImageTransformImpl |
outputVector_ | ImageTransformImpl |
outputWidth_ | ImageTransformImpl |
PICStoICS(const YPoint< int > &p) const | ImageTransformImpl | [inline]
PRCStoRCS(const YPoint< int > &p) const | ImageTransformImpl |
PRCStoRCS(const YPoint< double > &p) const | ImageTransformImpl |
processed_ | ImageTransformCellImpl |
RCStoICS(const YPoint< double > &p) const | ImageTransformImpl |
RCStoPRCS(const YPoint< double > &p) const | ImageTransformImpl |
RCStoPRCSr(const YPoint< double > &p) const | ImageTransformImpl |
run(ImageProxyVector *outputVector, const YRect< int > &outputFragment, ProgressCounter *indicator) | ImageTransformCellImpl | [virtual]
scale_ | ImageTransformImpl |
setBackgroundColor(bool doCorrect, int value) | ImageTransformImpl |
setErrorColor(bool doCorrect, int value) | ImageTransformImpl |
setFlipHorizontal(bool value) | ImageTransformImpl |
setFlipVertical(bool value) | ImageTransformImpl |
setGridAdjustment(const YPoint< double > &gridNode) | ImageTransformImpl |
transformFunction_ | ImageTransformImpl |
width() const | ImageTransformImpl |
~ImageTransformCellImpl() | ImageTransformCellImpl | [inline, virtual]
~ImageTransformImpl() | ImageTransformImpl | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageTransformImpl Cписок членов класса

Полный список членов класса ImageTransformImpl, включая наследуемые из базового класса

acceptInputParameters(const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, const ImageTransform::EdgeMethod &edgeMethod) | ImageTransformImpl |
backgroundColor_ | ImageTransformImpl |
base() const | ImageTransformImpl |
bits() const | ImageTransformImpl |
calculateOutputCoords() | ImageTransformImpl |
calculateOutputData(ProgressCounter *indicator)=0 | ImageTransformImpl | [pure virtual]
canICStoRCS(const YPoint< double > &p) const | ImageTransformImpl |
canPICStoICS(const YPoint< int > &p) const | ImageTransformImpl | [inline]
canRCStoICS(const YPoint< double > &p) const | ImageTransformImpl |
checkInputParameters(const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, const ImageTransform::EdgeMethod &edgeMethod) const | ImageTransformImpl |
edgeH_ | ImageTransformImpl |
edgeV_ | ImageTransformImpl |
enableGridAdjustment_ | ImageTransformImpl |
errorColor_ | ImageTransformImpl |
fillOutputPixel(AImageProxy *out, int x, int y, int value) | ImageTransformImpl | [inline]
flipH_ | ImageTransformImpl |
flipV_ | ImageTransformImpl |
gridNode_ | ImageTransformImpl |
height() const | ImageTransformImpl |
ICStoPICS(const YPoint< double > &ip, const YPoint< int > *pip4, const YPoint< double > *ip4) const | ImageTransformImpl |
ICStoRCS(const YPoint< double > &p) const | ImageTransformImpl |
imageClass() const | ImageTransformImpl |
ImageTransformImpl() | ImageTransformImpl |
ImageTransformImpl(const ImageTransformImpl &) | ImageTransformImpl | [private]
init(const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, ProgressCounter *indicator=0, const ImageTransform::EdgeMethod &edgeMethod=ImageTransform::None) | ImageTransformImpl |
inputCoords_ | ImageTransformImpl |
inputFragment_ | ImageTransformImpl |
inputHeight_ | ImageTransformImpl |
inputImageHeight_ | ImageTransformImpl |
inputImageWidth_ | ImageTransformImpl |
inputVector_ | ImageTransformImpl |
inputWidth_ | ImageTransformImpl |
operator=(const ImageTransformImpl &) | ImageTransformImpl | [private]
outputArea_ | ImageTransformImpl |
outputCoords_ | ImageTransformImpl |
outputFragment_ | ImageTransformImpl |
outputHeight_ | ImageTransformImpl |
outputVector_ | ImageTransformImpl |
outputWidth_ | ImageTransformImpl |
PICStoICS(const YPoint< int > &p) const | ImageTransformImpl | [inline]
PRCStoRCS(const YPoint< int > &p) const | ImageTransformImpl |
PRCStoRCS(const YPoint< double > &p) const | ImageTransformImpl |
RCStoICS(const YPoint< double > &p) const | ImageTransformImpl |
RCStoPRCS(const YPoint< double > &p) const | ImageTransformImpl |
RCStoPRCSr(const YPoint< double > &p) const | ImageTransformImpl |
run(ImageProxyVector *outputVector, const YRect< int > &outputFragment, ProgressCounter *indicator)=0 | ImageTransformImpl | [pure virtual]
scale_ | ImageTransformImpl |
setBackgroundColor(bool doCorrect, int value) | ImageTransformImpl |
setErrorColor(bool doCorrect, int value) | ImageTransformImpl |
setFlipHorizontal(bool value) | ImageTransformImpl |
setFlipVertical(bool value) | ImageTransformImpl |
setGridAdjustment(const YPoint< double > &gridNode) | ImageTransformImpl |
transformFunction_ | ImageTransformImpl |
width() const | ImageTransformImpl |
~ImageTransformImpl() | ImageTransformImpl | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageTransformMatrixFastImpl Cписок членов класса

Полный список членов класса ImageTransformMatrixFastImpl, включая наследуемые из базового класса

acceptInputParameters(const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, const ImageTransform::EdgeMethod &edgeMethod) | ImageTransformImpl |
backgroundColor_ | ImageTransformImpl |
base() const | ImageTransformImpl |
bits() const | ImageTransformImpl |
calculateInputPolygon() | ImageTransformMatrixImpl |
calculateOutputCoords() | ImageTransformImpl |
calculateOutputData(ProgressCounter *indicator) | ImageTransformMatrixImpl | [virtual]
canICStoRCS(const YPoint< double > &p) const | ImageTransformImpl |
canPICStoICS(const YPoint< int > &p) const | ImageTransformImpl | [inline]
canRCStoICS(const YPoint< double > &p) const | ImageTransformImpl |
checkInputParameters(const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, const ImageTransform::EdgeMethod &edgeMethod) const | ImageTransformImpl |
computeZoom(const YPoint< double > *pOutputCoordsPoint) const | ImageTransformMatrixImpl |
coverageMatrix_ | ImageTransformMatrixFastImpl |
distributionMatrix_ | ImageTransformMatrixImpl |
edgeH_ | ImageTransformImpl |
edgeV_ | ImageTransformImpl |
enableGridAdjustment_ | ImageTransformImpl |
errorColor_ | ImageTransformImpl |
estimateZoom(const YPoint< int > &prp) | ImageTransformMatrixFastImpl | [virtual]
fillMatricesCell(const YPoint< double > *it, YPoint< double > *resit, const YPoint< int > &p) | ImageTransformMatrixFastImpl | [virtual]
fillOutputPixel(AImageProxy *out, int x, int y, int value) | ImageTransformImpl | [inline]
fillPixelsWithAverages(const YPoint< int > &prp, std::vector< const DMatrixElem * >::const_iterator begin, std::vector< const DMatrixElem * >::const_iterator end, int size) | ImageTransformMatrixImpl |
findCell(const YPoint< double > &ip, const YPoint< int > &pipNearest, YPoint< int > *pip4, YPoint< double > *ip4) const | ImageTransformMatrixImpl |
findCellAtRadius(const YPoint< double > &ip, YPoint< int > *pip4, YPoint< double > *ip4, int radius) const | ImageTransformMatrixImpl |
findNearest(const YPoint< int > &prp, const YPoint< double > &ip, YPoint< int > &pip, int rMax) const | ImageTransformMatrixImpl |
flipH_ | ImageTransformImpl |
flipV_ | ImageTransformImpl |
getAnchor(const YPoint< int > &prp, YPoint< int > &pip) | ImageTransformMatrixFastImpl | [virtual]
gridNode_ | ImageTransformImpl |
hasError(const YPoint< int > &p) const | ImageTransformMatrixImpl |
height() const | ImageTransformImpl |
ICStoPICS(const YPoint< double > &ip, const YPoint< int > *pip4, const YPoint< double > *ip4) const | ImageTransformImpl |
ICStoRCS(const YPoint< double > &p) const | ImageTransformImpl |
imageClass() const | ImageTransformImpl |
ImageTransformImpl() | ImageTransformImpl |
ImageTransformMatrixImpl() | ImageTransformMatrixImpl |
init(const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, ProgressCounter *indicator=0, const ImageTransform::EdgeMethod &edgeMethod=ImageTransform::None) | ImageTransformImpl |
initMatrices() | ImageTransformMatrixFastImpl | [virtual]
inputCoords_ | ImageTransformImpl |
inputFragment_ | ImageTransformImpl |
inputHeight_ | ImageTransformImpl |
inputImageHeight_ | ImageTransformImpl |
inputImageWidth_ | ImageTransformImpl |
inputVector_ | ImageTransformImpl |
inputWidth_ | ImageTransformImpl |
interpolateAverage(const YPoint< int > &prp, size_t radius=0) | ImageTransformMatrixImpl |
interpolateBicubical(const YPoint< int > &prp, const YPoint< double > pip) | ImageTransformMatrixImpl |
isFilledPixel(const YPoint< int > &prp) | ImageTransformMatrixFastImpl | [virtual]
makeCellPoly(const YPoint< double > *pOutputCoordsPoint, YPoint< double > *poly4) | ImageTransformMatrixImpl |
makeCellRect(const YPoint< double > *pOutputCoordsPoint) | ImageTransformMatrixImpl |
outputArea_ | ImageTransformImpl |
outputCoords_ | ImageTransformImpl |
outputFragment_ | ImageTransformImpl |
outputHeight_ | ImageTransformImpl |
outputVector_ | ImageTransformImpl |
outputWidth_ | ImageTransformImpl |
PICStoICS(const YPoint< int > &p) const | ImageTransformImpl | [inline]
polygon_ | ImageTransformMatrixImpl |
PRCStoRCS(const YPoint< int > &p) const | ImageTransformImpl |
PRCStoRCS(const YPoint< double > &p) const | ImageTransformImpl |
processPixel(const YPoint< int > &prp) | ImageTransformMatrixImpl |
RCStoICS(const YPoint< double > &p) const | ImageTransformImpl |
RCStoPRCS(const YPoint< double > &p) const | ImageTransformImpl |
RCStoPRCSr(const YPoint< double > &p) const | ImageTransformImpl |
run(ImageProxyVector *outputVector, const YRect< int > &outputFragment, ProgressCounter *indicator) | ImageTransformMatrixImpl | [virtual]
scale_ | ImageTransformImpl |
setBackgroundColor(bool doCorrect, int value) | ImageTransformImpl |
setErrorColor(bool doCorrect, int value) | ImageTransformImpl |
setFlipHorizontal(bool value) | ImageTransformImpl |
setFlipVertical(bool value) | ImageTransformImpl |
setGridAdjustment(const YPoint< double > &gridNode) | ImageTransformImpl |
shiftCell(int shiftX, int shiftY, YPoint< int > *pip4, YPoint< double > *ip4) const | ImageTransformMatrixImpl |
transformFunction_ | ImageTransformImpl |
width() const | ImageTransformImpl |
~ImageTransformImpl() | ImageTransformImpl | [inline, virtual]
~ImageTransformMatrixImpl() | ImageTransformMatrixImpl | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageTransformMatrixImpl Cписок членов класса

Полный список членов класса ImageTransformMatrixImpl, включая наследуемые из базового класса

acceptInputParameters(const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, const ImageTransform::EdgeMethod &edgeMethod) | ImageTransformImpl |
backgroundColor_ | ImageTransformImpl |
base() const | ImageTransformImpl |
bits() const | ImageTransformImpl |
calculateInputPolygon() | ImageTransformMatrixImpl |
calculateOutputCoords() | ImageTransformImpl |
calculateOutputData(ProgressCounter *indicator) | ImageTransformMatrixImpl | [virtual]
canICStoRCS(const YPoint< double > &p) const | ImageTransformImpl |
canPICStoICS(const YPoint< int > &p) const | ImageTransformImpl | [inline]
canRCStoICS(const YPoint< double > &p) const | ImageTransformImpl |
checkInputParameters(const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, const ImageTransform::EdgeMethod &edgeMethod) const | ImageTransformImpl |
computeZoom(const YPoint< double > *pOutputCoordsPoint) const | ImageTransformMatrixImpl |
distributionMatrix_ | ImageTransformMatrixImpl |
edgeH_ | ImageTransformImpl |
edgeV_ | ImageTransformImpl |
enableGridAdjustment_ | ImageTransformImpl |
errorColor_ | ImageTransformImpl |
estimateZoom(const YPoint< int > &prp) | ImageTransformMatrixImpl | [virtual]
fillMatricesCell(const YPoint< double > *it, YPoint< double > *resit, const YPoint< int > &p) | ImageTransformMatrixImpl | [virtual]
fillOutputPixel(AImageProxy *out, int x, int y, int value) | ImageTransformImpl | [inline]
fillPixelsWithAverages(const YPoint< int > &prp, std::vector< const DMatrixElem * >::const_iterator begin, std::vector< const DMatrixElem * >::const_iterator end, int size) | ImageTransformMatrixImpl |
findCell(const YPoint< double > &ip, const YPoint< int > &pipNearest, YPoint< int > *pip4, YPoint< double > *ip4) const | ImageTransformMatrixImpl |
findCellAtRadius(const YPoint< double > &ip, YPoint< int > *pip4, YPoint< double > *ip4, int radius) const | ImageTransformMatrixImpl |
findNearest(const YPoint< int > &prp, const YPoint< double > &ip, YPoint< int > &pip, int rMax) const | ImageTransformMatrixImpl |
flipH_ | ImageTransformImpl |
flipV_ | ImageTransformImpl |
getAnchor(const YPoint< int > &prp, YPoint< int > &pip) | ImageTransformMatrixImpl | [virtual]
gridNode_ | ImageTransformImpl |
hasError(const YPoint< int > &p) const | ImageTransformMatrixImpl |
height() const | ImageTransformImpl |
ICStoPICS(const YPoint< double > &ip, const YPoint< int > *pip4, const YPoint< double > *ip4) const | ImageTransformImpl |
ICStoRCS(const YPoint< double > &p) const | ImageTransformImpl |
imageClass() const | ImageTransformImpl |
ImageTransformImpl() | ImageTransformImpl |
ImageTransformMatrixImpl() | ImageTransformMatrixImpl |
init(const ImageProxyVector *vector, const YRect< int > &inputFragment, const CoordArray2D *coords, const ATransformFunction &transformFunction, double scale, ProgressCounter *indicator=0, const ImageTransform::EdgeMethod &edgeMethod=ImageTransform::None) | ImageTransformImpl |
initMatrices() | ImageTransformMatrixImpl | [virtual]
inputCoords_ | ImageTransformImpl |
inputFragment_ | ImageTransformImpl |
inputHeight_ | ImageTransformImpl |
inputImageHeight_ | ImageTransformImpl |
inputImageWidth_ | ImageTransformImpl |
inputVector_ | ImageTransformImpl |
inputWidth_ | ImageTransformImpl |
interpolateAverage(const YPoint< int > &prp, size_t radius=0) | ImageTransformMatrixImpl |
interpolateBicubical(const YPoint< int > &prp, const YPoint< double > pip) | ImageTransformMatrixImpl |
isFilledPixel(const YPoint< int > &prp) | ImageTransformMatrixImpl | [virtual]
makeCellPoly(const YPoint< double > *pOutputCoordsPoint, YPoint< double > *poly4) | ImageTransformMatrixImpl |
makeCellRect(const YPoint< double > *pOutputCoordsPoint) | ImageTransformMatrixImpl |
MaxFindRadius элементы перечисления | ImageTransformMatrixImpl | [private]
outputArea_ | ImageTransformImpl |
outputCoords_ | ImageTransformImpl |
outputFragment_ | ImageTransformImpl |
outputHeight_ | ImageTransformImpl |
outputVector_ | ImageTransformImpl |
outputWidth_ | ImageTransformImpl |
PICStoICS(const YPoint< int > &p) const | ImageTransformImpl | [inline]
polygon_ | ImageTransformMatrixImpl |
PRCStoRCS(const YPoint< int > &p) const | ImageTransformImpl |
PRCStoRCS(const YPoint< double > &p) const | ImageTransformImpl |
processPixel(const YPoint< int > &prp) | ImageTransformMatrixImpl |
RCStoICS(const YPoint< double > &p) const | ImageTransformImpl |
RCStoPRCS(const YPoint< double > &p) const | ImageTransformImpl |
RCStoPRCSr(const YPoint< double > &p) const | ImageTransformImpl |
run(ImageProxyVector *outputVector, const YRect< int > &outputFragment, ProgressCounter *indicator) | ImageTransformMatrixImpl | [virtual]
scale_ | ImageTransformImpl |
setBackgroundColor(bool doCorrect, int value) | ImageTransformImpl |
setErrorColor(bool doCorrect, int value) | ImageTransformImpl |
setFlipHorizontal(bool value) | ImageTransformImpl |
setFlipVertical(bool value) | ImageTransformImpl |
setGridAdjustment(const YPoint< double > &gridNode) | ImageTransformImpl |
shiftCell(int shiftX, int shiftY, YPoint< int > *pip4, YPoint< double > *ip4) const | ImageTransformMatrixImpl |
transformFunction_ | ImageTransformImpl |
width() const | ImageTransformImpl |
~ImageTransformImpl() | ImageTransformImpl | [inline, virtual]
~ImageTransformMatrixImpl() | ImageTransformMatrixImpl | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ImageVectorT< Base, Bit8, Bit16 > Cписок членов класса

Полный список членов класса ImageVectorT< Base, Bit8, Bit16 >, включая наследуемые из базового класса

add(Base *image) | ImageVectorT< Base, Bit8, Bit16 > |
Bit16Vector typedef | ImageVectorT< Base, Bit8, Bit16 > |
Bit8Vector typedef | ImageVectorT< Base, Bit8, Bit16 > |
bits() const | ImageVectorT< Base, Bit8, Bit16 > | [inline]
bits_ | ImageVectorT< Base, Bit8, Bit16 > | [private]
height() const | ImageVectorT< Base, Bit8, Bit16 > | [inline]
height_ | ImageVectorT< Base, Bit8, Bit16 > | [private]
imageClass() const | ImageVectorT< Base, Bit8, Bit16 > | [inline]
imageClass_ | ImageVectorT< Base, Bit8, Bit16 > | [private]
ImageVectorT() | ImageVectorT< Base, Bit8, Bit16 > | [inline]
ImageVectorT(const ImageVectorT &) | ImageVectorT< Base, Bit8, Bit16 > | [private]
iterator16 typedef | ImageVectorT< Base, Bit8, Bit16 > |
iterator8 typedef | ImageVectorT< Base, Bit8, Bit16 > |
operator=(const ImageVectorT &) | ImageVectorT< Base, Bit8, Bit16 > | [private]
planesBegin16() | ImageVectorT< Base, Bit8, Bit16 > | [inline]
planesBegin8() | ImageVectorT< Base, Bit8, Bit16 > | [inline]
planesCount16() const | ImageVectorT< Base, Bit8, Bit16 > | [inline]
planesCount8() const | ImageVectorT< Base, Bit8, Bit16 > | [inline]
planesEnd16() | ImageVectorT< Base, Bit8, Bit16 > | [inline]
planesEnd8() | ImageVectorT< Base, Bit8, Bit16 > | [inline]
vec16_ | ImageVectorT< Base, Bit8, Bit16 > | [private]
vec8_ | ImageVectorT< Base, Bit8, Bit16 > | [private]
width() const | ImageVectorT< Base, Bit8, Bit16 > | [inline]
width_ | ImageVectorT< Base, Bit8, Bit16 > | [private]


Pipe Line Filters: Cписок членов класса

LineFun Cписок членов класса

Полный список членов класса LineFun, включая наследуемые из базового класса

areIntersecting(const YPointInt &begin1, const YPointInt &end1, const YPointInt &begin2, const YPointInt &end2, bool strict=false) | LineFun | [static]
areIntersecting(const YPoint< double > &begin1, const YPoint< double > &end1, const YPoint< double > &begin2, const YPoint< double > &end2) | LineFun | [static]
getIntersectionPoint(const YPointInt &begin1, const YPointInt &end1, const YPointInt &begin2, const YPointInt &end2) | LineFun | [static]
getIntersectionPointBres4(const YPointInt &begin1, const YPointInt &end1, const YPointInt &begin2, const YPointInt &end2) | LineFun | [static]
getIntersectionPointBres4X(const YPointInt &begin, const YPointInt &end, int Y) | LineFun | [static]
getIntersectionPointBres4Y(const YPointInt &begin, const YPointInt &end, int X) | LineFun | [static]
isInLine(const YPointInt &begin, const YPointInt &end, const YPointInt &what, bool strict=false) | LineFun | [static]
isInLineBres4(const YPointInt &begin, const YPointInt &end, const YPointInt &p, bool strict=false) | LineFun | [static]
onSameSide(const YPointInt &from, const YPointInt &to, const YPointInt &p1, const YPointInt &p2) | LineFun | [static]


Pipe Line Filters: Cписок членов класса

MImages2Gray Cписок членов класса

Полный список членов класса MImages2Gray, включая наследуемые из базового класса

GetLayers() | MImages2Gray | [inline]
GetNumber() const | MImages2Gray | [inline]
Layers | MImages2Gray | [protected]
MImages2Gray(AImage **src, int Number) | MImages2Gray |
n_out | MImages2Gray | [protected]
~MImages2Gray() | MImages2Gray | [virtual]


Pipe Line Filters: Cписок членов класса

MSlidingEqualization Cписок членов класса

Полный список членов класса MSlidingEqualization, включая наследуемые из базового класса

Bits() | MSlidingEqualization | [inline, virtual]
Bt | MSlidingEqualization | [private]
ClassType | MSlidingEqualization | [private]
Close() | MSlidingEqualization | [inline, virtual]
CloseThis() | MSlidingEqualization | [private]
Height() | MSlidingEqualization | [inline, virtual]
Hi | MSlidingEqualization | [private]
hist | MSlidingEqualization | [private]
ImageClass() | MSlidingEqualization | [inline, virtual]
Init(const AImage *src) | MSlidingEqualization | [virtual]
MSlidingEqualization() | MSlidingEqualization |
N_colors | MSlidingEqualization | [private]
Run(AImage *dst, int Original_XFrmSz, int Original_YFrmSz, ProgressCounter *Ind) | MSlidingEqualization | [virtual]
src_image | MSlidingEqualization | [private]
Wd | MSlidingEqualization | [private]
Width() | MSlidingEqualization | [inline, virtual]
~MSlidingEqualization() | MSlidingEqualization | [inline, virtual]


Pipe Line Filters: Cписок членов класса

PolyFun Cписок членов класса

Полный список членов класса PolyFun, включая наследуемые из базового класса

isPointInPolygon(const YPoint< double > &point, const YPoint< double > *polygon, int polygon_points_number) PolyFun [static]


Pipe Line Filters: Cписок членов класса

ProcessMatrix Cписок членов класса

Полный список членов класса ProcessMatrix, включая наследуемые из базового класса

at(const YPoint< int > &cell) const | ProcessMatrix | [inline]
at(const YPoint< int > &cell) | ProcessMatrix | [inline]
clear() | ProcessMatrix | [inline]
h_ | ProcessMatrix | [private]
matrix_ | ProcessMatrix | [private]
ProcessMatrix(int width=0, int height=0) | ProcessMatrix | [inline]
set(const YPoint< int > &cell, bool value) | ProcessMatrix | [inline]
set(const YRect< int > &area, bool value) | ProcessMatrix | [inline]
setSize(int width, int height) | ProcessMatrix | [inline]
w_ | ProcessMatrix | [private]
~ProcessMatrix() | ProcessMatrix | [inline]


Pipe Line Filters: Cписок членов класса

ProgressCounter Cписок членов класса

Полный список членов класса ProgressCounter, включая наследуемые из базового класса

current(int count_current)=0 | ProgressCounter | [pure virtual]
error(const char *msg)=0 | ProgressCounter | [pure virtual]
finish()=0 | ProgressCounter | [pure virtual]
InProgress() const=0 | ProgressCounter | [pure virtual]
ProgressCounter() | ProgressCounter | [inline]
russian() const=0 | ProgressCounter | [pure virtual]
start(const char *filter_name, int count_start, int count_end)=0 | ProgressCounter | [pure virtual]
~ProgressCounter() | ProgressCounter | [inline, virtual]


Pipe Line Filters: Cписок членов класса

PtrArrayDel< T > Cписок членов класса

Полный список членов класса PtrArrayDel< T >, включая наследуемые из базового класса

clear() | PtrArrayDel< T > | [inline]
Get() | PtrArrayDel< T > | [inline]
Get() const | PtrArrayDel< T > | [inline]
Make(int n) | PtrArrayDel< T > | [inline]
operator[](int i) | PtrArrayDel< T > | [inline]
operator[](int i) const | PtrArrayDel< T > | [inline]
ptr | PtrArrayDel< T > | [private]
PtrArrayDel() | PtrArrayDel< T > | [inline]
Size() const | PtrArrayDel< T > | [inline]
size | PtrArrayDel< T > | [private]
~PtrArrayDel() | PtrArrayDel< T > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

PtrDelete< T > Cписок членов класса

Полный список членов класса PtrDelete< T >, включая наследуемые из базового класса

clear() | PtrDelete< T > | [inline]
Get() const | PtrDelete< T > | [inline]
len | PtrDelete< T > | [private]
Make(int n) | PtrDelete< T > | [inline]
ptr | PtrDelete< T > | [private]
PtrDelete() | PtrDelete< T > | [inline]
PtrDelete(T *p, int n=1) | PtrDelete< T > | [inline]
Set(T *p, int n=1) | PtrDelete< T > | [inline]
Size() const | PtrDelete< T > | [inline]
~PtrDelete() | PtrDelete< T > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

ReadPipe Cписок членов класса

Полный список членов класса ReadPipe, включая наследуемые из базового класса

childPipe class | ReadPipe | [friend]
close() | ReadPipe |
handle_ | ReadPipe | [private]
isEof() const | ReadPipe | [inline]
open(HANDLE handle) | ReadPipe | [inline, private]
operator=(const ReadPipe &) | ReadPipe | [private]
readNoWait(char *data, unsigned len) | ReadPipe |
ReadPipe() | ReadPipe | [inline, private]
ReadPipe(HANDLE handle) | ReadPipe | [inline, private]
ReadPipe(const ReadPipe &) | ReadPipe | [private]
readWait(char *data, unsigned len) | ReadPipe |
~ReadPipe() | ReadPipe | [inline]


Pipe Line Filters: Cписок членов класса

ReadString Cписок членов класса

Полный список членов класса ReadString, включая наследуемые из базового класса

buffer | ReadString | [private]
copy() | ReadString | [private]
eof_detected | ReadString | [private]
first_pos2 | ReadString | [private]
gets(char *buf) | ReadString |
IsAvail() | ReadString |
IsEOF() const | ReadString | [inline]
last_char | ReadString | [private]
last_pos2 | ReadString | [private]
max_len | ReadString | [private]
null_detected | ReadString | [private]
pos | ReadString | [private]
rdpipe_ | ReadString | [private]
ReadString(ReadPipe &rdpipe, unsigned max_string_len) | ReadString |


Pipe Line Filters: Cписок членов класса

Students::Curve::EdgeDetect< T > Cписок членов класса

Полный список членов класса Students::Curve::EdgeDetect< T >, включая наследуемые из базового класса

Canny(int w, int h, int nls, T *edge, T *gx, T *gy, T *fri) | Students::Curve::EdgeDetect< T > | [inline]
DiZenzo(int w, int h, int nls, T *edge, T *gx, T *gy, T *fri, T *tmp, T *tmp2) | Students::Curve::EdgeDetect< T > | [inline]
EdgeDetect(float sigma_, float n_sigmas_in_eviron_=4.0f) | Students::Curve::EdgeDetect< T > | [inline]
f0 | Students::Curve::EdgeDetect< T > | [private]
f1 | Students::Curve::EdgeDetect< T > | [private]
FF0 typedef | Students::Curve::EdgeDetect< T > | [private]
FF1 typedef | Students::Curve::EdgeDetect< T > | [private]
g0 | Students::Curve::EdgeDetect< T > | [private]
g1 | Students::Curve::EdgeDetect< T > | [private]
K0 typedef | Students::Curve::EdgeDetect< T > | [private]
K1 typedef | Students::Curve::EdgeDetect< T > | [private]
ker0 | Students::Curve::EdgeDetect< T > | [private]
ker1 | Students::Curve::EdgeDetect< T > | [private]
n_sigmas_in_eviron | Students::Curve::EdgeDetect< T > | [private]
sigma | Students::Curve::EdgeDetect< T > | [private]


Pipe Line Filters: Cписок членов класса

tplAImageFragment< ImgT > Cписок членов класса

Полный список членов класса tplAImageFragment< ImgT >, включая наследуемые из базового класса

_Init(const AImage *img) | tplAImageFragment< ImgT > | [inline, protected]
_Init(const AImage *img, int x, int y, int width, int height) | tplAImageFragment< ImgT > | [inline, protected]
Bits() const | tplAImageFragment< ImgT > | [inline, virtual]
ClassName() const | tplAImageReference< ImgT > | [inline, virtual]
Clear() | tplAImageReference< ImgT > | [inline, virtual]
Create(short width, short height, short bitsPerPix, bool hasPalette=false) | tplAImageReference< ImgT > | [inline, virtual]
fheight | tplAImageFragment< ImgT > | [protected]
fwidth | tplAImageFragment< ImgT > | [protected]
fx | tplAImageFragment< ImgT > | [protected]
fy | tplAImageFragment< ImgT > | [protected]
GetFullImage() const | tplAImageReference< ImgT > | [inline, virtual]
GetImageStore() const | tplAImageReference< ImgT > | [inline, virtual]
GetPaletteEntries() const | tplAImageReference< ImgT > | [inline, virtual]
Height() const | tplAImageFragment< ImgT > | [inline, virtual]
ImageClass() const | tplAImageReference< ImgT > | [inline, virtual]
img | tplAImageReference< ImgT > | [protected]
Init(ImgT *_img) | tplAImageFragment< ImgT > | [inline, virtual]
Init(int x, int y, int width, int height) | tplAImageFragment< ImgT > | [inline, virtual]
Init(ImgT *_img, int x, int y, int width, int height) | tplAImageFragment< ImgT > | [inline, virtual]
IsOk() const | tplAImageReference< ImgT > | [inline, virtual]
Load(const char *filename, ProgressCounter *indicator=0) | tplAImageReference< ImgT > | [inline, virtual]
NextLineShift() const | tplAImageFragment< ImgT > | [inline, virtual]
NumPlanes() const | tplAImageReference< ImgT > | [inline, virtual]
Palette() const | tplAImageReference< ImgT > | [inline, virtual]
Save(const char *filename, ProgressCounter *indicator=0) const | tplAImageReference< ImgT > | [inline, virtual]
tplAImageFragment() | tplAImageFragment< ImgT > | [inline]
tplAImageReference() | tplAImageReference< ImgT > | [inline]
Width() const | tplAImageFragment< ImgT > | [inline, virtual]
~tplAImageFragment() | tplAImageFragment< ImgT > | [inline, virtual]
~tplAImageReference() | tplAImageReference< ImgT > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

tplAImageReference< ImgT > Cписок членов класса

Полный список членов класса tplAImageReference< ImgT >, включая наследуемые из базового класса

Bits() const | tplAImageReference< ImgT > | [inline, virtual]
ChangeHeight(short new_height) | tplAImageReference< ImgT > | [inline, private, virtual]
ClassName() const | tplAImageReference< ImgT > | [inline, virtual]
Clear() | tplAImageReference< ImgT > | [inline, virtual]
Create(short width, short height, short bitsPerPix, bool hasPalette=false) | tplAImageReference< ImgT > | [inline, virtual]
GetFullImage() const | tplAImageReference< ImgT > | [inline, virtual]
GetImageStore() const | tplAImageReference< ImgT > | [inline, virtual]
GetPaletteEntries() const | tplAImageReference< ImgT > | [inline, virtual]
Height() const | tplAImageReference< ImgT > | [inline, virtual]
ImageClass() const | tplAImageReference< ImgT > | [inline, virtual]
img | tplAImageReference< ImgT > | [protected]
Init(ImgT *_img) | tplAImageReference< ImgT > | [inline, virtual]
IsOk() const | tplAImageReference< ImgT > | [inline, virtual]
Load(const char *filename, ProgressCounter *indicator=0) | tplAImageReference< ImgT > | [inline, virtual]
NextLineShift() const | tplAImageReference< ImgT > | [inline, virtual]
NumPlanes() const | tplAImageReference< ImgT > | [inline, virtual]
Palette() const | tplAImageReference< ImgT > | [inline, virtual]
read(int x, int y, Pixel16 *data, int len) const | tplAImageReference< ImgT > | [inline, private, virtual]
Save(const char *filename, ProgressCounter *indicator=0) const | tplAImageReference< ImgT > | [inline, virtual]
tplAImageReference() | tplAImageReference< ImgT > | [inline]
Width() const | tplAImageReference< ImgT > | [inline, virtual]
~tplAImageReference() | tplAImageReference< ImgT > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

TransformCell Cписок членов класса

Полный список членов класса TransformCell, включая наследуемые из базового класса

fill(int x, int y) | TransformCell | [private]
getCellICS() const | TransformCell |
getCellPICS() const | TransformCell |
getCellPRCS() const | TransformCell |
getCellRCS() const | TransformCell |
ics_ | TransformCell | [private]
pics_ | TransformCell | [private]
prcs_ | TransformCell | [private]
rcs_ | TransformCell | [private]
transform_ | TransformCell | [private]
TransformCell(ImageTransformCellImpl &transform, int x, int y) | TransformCell |


Pipe Line Filters: Cписок членов класса

TriResult Cписок членов класса

Полный список членов класса TriResult, включая наследуемые из базового класса

Build_texture(const Matrix &W, int numpic, Matrix &W_tex) | TriResult |
BuildVRML(const char *fname, const Matrix &X, const Matrix &R, const Matrix &t, const char *texfile, const Matrix &W_tex, const Matrix &g) | TriResult |
ExeTri() | TriResult | [private]
F | TriResult | [private]
Matrix typedef | TriResult | [private]
nCorn | TriResult | [private]
nTri | TriResult | [private]
P | TriResult | [private]
report(struct triangulateio *io) | TriResult | [private]
RunTri(Matrix &W) | TriResult |
tri | TriResult | [private]
uv | TriResult | [private]
vorout | TriResult | [private]


Pipe Line Filters: Cписок членов класса

VirtDib Cписок членов класса

Полный список членов класса VirtDib, включая наследуемые из базового класса

bmiHeaderInit(const Inf &param) | VirtDib | [private]
BMT_GRAY8 элементы перечисления | VirtDib | [private]
BMT_PAL8 элементы перечисления | VirtDib | [private]
BMT_RGB8 элементы перечисления | VirtDib | [private]
Build(const AImageMem8 &img, const RECT &portion, const ZoomFactor2D zoom, const BYTE *map_table) | VirtDib |
Build(const AImageMem16 &img, const RECT &portion, const ZoomFactor2D zoom, const BYTE *map_table) | VirtDib |
Build(const AImageMemRgb8 &img, const RECT &portion, const ZoomFactor2D zoom, const BYTE *map_table) | VirtDib |
BuildViaDecimation(const AImageMem8 &img, const RECT &portion, const ZoomFactor2D zoom, const BYTE *map_table) | VirtDib |
bytes_per_row | VirtDib | [private]
BytesPerRow(short width, short bits) | VirtDib | [private]
data | VirtDib | [private]
data_sz | VirtDib | [private]
DefaultPaint(HWND hWnd, HDC hdc, HBRUSH hBrush, const AImage *img, const ZoomFactor2D &zoom, const BYTE *map_table=0) | VirtDib |
GetPalette() | VirtDib | [inline]
GetPaletteEntries() const | VirtDib | [inline]
Height() | VirtDib | [inline]
inf8pal | VirtDib | [private]
inf8rgb | VirtDib | [private]
info | VirtDib | [private]
last_type | VirtDib | [private]
line_buffer | VirtDib | [private]
line_buffer_sz | VirtDib | [private]
operator[](int y) | VirtDib | [inline]
Paint(HDC hdc, const RECT &rect) | VirtDib |
pal_entries | VirtDib | [private]
SetGrayPalette() | VirtDib |
SetImagePalette(const AImageMem8 *img8) | VirtDib |
Type перечисление | VirtDib | [private]
VirtDib() | VirtDib |
Width() | VirtDib | [inline]
~VirtDib() | VirtDib |


Pipe Line Filters: Cписок членов класса

Vtl::Dbg::TimeElapsed Cписок членов класса

Полный список членов класса Vtl::Dbg::TimeElapsed, включая наследуемые из базового класса

_fin | Vtl::Dbg::TimeElapsed | [private]
_st | Vtl::Dbg::TimeElapsed | [private]
finish() | Vtl::Dbg::TimeElapsed | [inline]
Get() | Vtl::Dbg::TimeElapsed | [inline]
GetString() | Vtl::Dbg::TimeElapsed | [inline]
start() | Vtl::Dbg::TimeElapsed | [inline]
TimeElapsed() | Vtl::Dbg::TimeElapsed | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Bres::Circle< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Bres::Circle< T >, включая наследуемые из базового класса

Asquared | Vtl::ImAlg::Bres::Circle< T > | [private]
Bsquared | Vtl::ImAlg::Bres::Circle< T > | [private]
Circle(int xc, int yc, int a0) | Vtl::ImAlg::Bres::Circle< T > | [inline]
d | Vtl::ImAlg::Bres::Circle< T > | [private]
Draw() | Vtl::ImAlg::Bres::Circle< T > | [inline]
dx | Vtl::ImAlg::Bres::Circle< T > | [private]
dy | Vtl::ImAlg::Bres::Circle< T > | [private]
Set4Pixels(int x, int y, int xc, int yc) | Vtl::ImAlg::Bres::Circle< T > | [inline]
TwoAsquared | Vtl::ImAlg::Bres::Circle< T > | [private]
TwoBsquared | Vtl::ImAlg::Bres::Circle< T > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Bres::Draw< Pixel > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Bres::Draw< Pixel >, включая наследуемые из базового класса

_color | Vtl::ImAlg::Bres::Draw< Pixel > | [private]
Draw(Pixel color) | Vtl::ImAlg::Bres::Draw< Pixel > | [inline]
operator()(Pixel *ptr) | Vtl::ImAlg::Bres::Draw< Pixel > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Bres::DrawDotted< Pixel > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Bres::DrawDotted< Pixel >, включая наследуемые из базового класса

_color1 | Vtl::ImAlg::Bres::DrawDotted< Pixel > | [private]
_color2 | Vtl::ImAlg::Bres::DrawDotted< Pixel > | [private]
_mask | Vtl::ImAlg::Bres::DrawDotted< Pixel > | [private]
DrawDotted(Pixel color1, Pixel color2=0, unsigned mask=0xFFFF0000) | Vtl::ImAlg::Bres::DrawDotted< Pixel > | [inline]
operator()(Pixel *ptr) | Vtl::ImAlg::Bres::DrawDotted< Pixel > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Bres::DrawGradient< Pixel > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Bres::DrawGradient< Pixel >, включая наследуемые из базового класса

_color1 | Vtl::ImAlg::Bres::DrawGradient< Pixel > | [private]
_color2 | Vtl::ImAlg::Bres::DrawGradient< Pixel > | [private]
_step | Vtl::ImAlg::Bres::DrawGradient< Pixel > | [private]
DrawGradient(Pixel color1, Pixel color2=0, int step) | Vtl::ImAlg::Bres::DrawGradient< Pixel > | [inline]
operator()(Pixel *ptr) | Vtl::ImAlg::Bres::DrawGradient< Pixel > | [inline]
pos | Vtl::ImAlg::Bres::DrawGradient< Pixel > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Bres::EllipseH< F > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Bres::EllipseH< F >, включая наследуемые из базового класса

Asquared | Vtl::ImAlg::Bres::EllipseH< F > | [private]
Bsquared | Vtl::ImAlg::Bres::EllipseH< F > | [private]
d | Vtl::ImAlg::Bres::EllipseH< F > | [private]
Draw() | Vtl::ImAlg::Bres::EllipseH< F > | [inline]
dx | Vtl::ImAlg::Bres::EllipseH< F > | [private]
dy | Vtl::ImAlg::Bres::EllipseH< F > | [private]
EllipseH(int xc, int yc, int a0, int b0) | Vtl::ImAlg::Bres::EllipseH< F > | [inline]
Set4Pixels(int x, int y, int xc, int yc) | Vtl::ImAlg::Bres::EllipseH< F > | [inline]
TwoAsquared | Vtl::ImAlg::Bres::EllipseH< F > | [private]
TwoBsquared | Vtl::ImAlg::Bres::EllipseH< F > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Bres::Line< F > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Bres::Line< F >, включая наследуемые из базового класса

Aincr | Vtl::ImAlg::Bres::Line< F > | [private]
Bincr | Vtl::ImAlg::Bres::Line< F > | [private]
bres(int stride) | Vtl::ImAlg::Bres::Line< F > | [inline, private]
d | Vtl::ImAlg::Bres::Line< F > | [private]
Draw(int dx, int dy) | Vtl::ImAlg::Bres::Line< F > | [inline]
functor | Vtl::ImAlg::Bres::Line< F > | [private]
Line(F &f) | Vtl::ImAlg::Bres::Line< F > | [inline]
move(int stride) | Vtl::ImAlg::Bres::Line< F > | [inline, private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >, включая наследуемые из базового класса

_data | Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > | [private]
_draw | Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > | [private]
_nls | Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > | [private]
_x | Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > | [private]
_y | Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > | [private]
move() | Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > | [inline]
ptr | Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > | [private]
Set0(int x, int y) | Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > | [inline]
SetPixelGray(Pixel *data, int nls, D draw) | Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter > |
fromRGB(NormType normalizer=Normalizer< T, EElEll, nDefault >(255, 0, 128)) | Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter > | [inline]
norm | Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter > |
operator()(T r, T g, T b, Iter e, Iter el, Iter ell) const | Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter > |
fromRGB_positive() | Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter > | [inline]
operator()(T r, T g, T b, Iter e, Iter el, Iter ell) const | Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter > |
norm | Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter > |
operator()(T e, T el, T ell, Iter r, Iter g, Iter b) const | Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter > | [inline]
toRGB(NormType normalizer=Normalizer< T, EElEll, nDefault >(255, 0, 128)) | Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > |
f(F w) | Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > | [inline, private, static]
fromRGB(NormType normalizer=Normalizer< T, Lab, nDefault >(255, 0, 128)) | Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > | [inline]
norm | Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > |
operator()(T r, T g, T b, Iter lc, Iter ac, Iter bc) const | Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > | [inline]
T_temp typedef | Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > |
x0 | Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > | [private]
y0 | Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > | [private]
z0 | Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > |
f_rev(F w) | Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > | [inline, private, static]
norm | Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > |
operator()(T lc, T ac, T bc, Iter r, Iter g, Iter b) const | Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > | [inline]
T_temp typedef | Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > |
toRGB(NormType normalizer=Normalizer< T, Lab, nDefault >(255, 0, 128)) | Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > | [inline]
x0 | Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > |
y0 | Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > |
z0 | Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > |


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >, включая наследуемые из базового класса

from01toRGB(TT r01, TT g01, TT b01, T &r, T &g, T &b) const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale > | [inline]
fromRGB(T sample_unnorm) const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale > | [inline]
maxcolor | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale > |
mincolor | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale > |
Mult() const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale > | [inline]
mult01 | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale > |
Normalizer(T MaxColor=T(255), T MinColor=0, T ZeroColor=T(128)) | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale > | [inline]
Offset() const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale > | [inline]
RGBto01(T r, T g, T b, TT &r01, TT &g01, TT &b01) const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale > | [inline]
T_temp typedef | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale > |
toRGB(T rgb_unnorm) const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >, включая наследуемые из базового класса

a | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > | [private]
b | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > | [private]
from01toRGB(TT r01, TT g01, TT b01, T &r, T &g, T &b) | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > | [inline]
fromRGB(T sample_unnorm) | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > | [inline]
maxcolor | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > | [private]
mincolor | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > | [private]
mult01 | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > | [private]
Normalizer(T MaxColor=T(255), T MinColor=0, T ZeroColor=T(128)) | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > | [inline]
Offset(T MaxColor, T MinColor) | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > | [inline]
RGBto01(T r, T g, T b, TT &r01, TT &g01, TT &b01) | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > | [inline]
T_temp typedef | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > | [private]
toRGB(T rgb_unnorm) | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >, включая наследуемые из базового класса

a | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > | [private]
b | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > | [private]
from01toRGB(TT r01, TT g01, TT b01, T &r, T &g, T &b) | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > | [inline]
fromRGB(T sample_unnorm) const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > | [inline]
maxcolor | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > | [private]
mincolor | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > | [private]
Mult() const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > | [inline]
mult01 | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > | [private]
Normalizer(T MaxColor=T(255), T MinColor=0, T ZeroColor=T(128)) | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > | [inline]
Offset() const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > | [inline]
RGBto01(T r, T g, T b, TT &r01, TT &g01, TT &b01) | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > | [inline]
T_temp typedef | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > | [private]
toRGB(T rgb_unnorm) const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >, включая наследуемые из базового класса

a | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > | [private]
b | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > | [private]
from01toRGB(TT r01, TT g01, TT b01, T &r, T &g, T &b) const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > | [inline]
fromRGB(T sample_unnorm) const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > | [inline]
maxcolor | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > | [private]
MaxColor() const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > | [inline]
mincolor | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > | [private]
Mult() const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > | [inline]
mult01 | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > | [private]
Normalizer(T MaxColor_=T(255), T MinColor_=0, T ZeroColor_=T(128)) | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > | [inline]
Offset() const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > | [inline]
RGBto01(T r, T g, T b, TT &r01, TT &g01, TT &b01) const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > | [inline]
T_temp typedef | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > | [private]
toRGB(T rgb_unnorm) const | Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Conv2D Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Conv2D, включая наследуемые из базового класса

conv2D(const T *data_in, int width, int height, int nls_in, T *data_out, int nls_out, С1 &cx, С2 &cy) | Vtl::ImAlg::Conv::Conv2D | [inline, static]
conv2DInplace(T *data, int width, int height, int nls, С1 &cx, С2 &cy) | Vtl::ImAlg::Conv::Conv2D | [inline, static]
Cyclic(const T *data_in, int width, int height, int nls_in, T *data_out, int nls_out, const K1 &ker_x, const K2 &ker_y) | Vtl::ImAlg::Conv::Conv2D | [inline, static]
Cyclic(const T *data_in, int width, int height, int nls_in, T *data_out, int nls_out, const K &ker) | Vtl::ImAlg::Conv::Conv2D | [inline, static]
CyclicInplace(T *data, int width, int height, int nls, const K1 &ker_x, const K2 &ker_y) | Vtl::ImAlg::Conv::Conv2D | [inline, static]
CyclicInplace(T *data, int width, int height, int nls, const K &ker) | Vtl::ImAlg::Conv::Conv2D | [inline, static]
Reflect(const T *data_in, int width, int height, int nls_in, T *data_out, int nls_out, const K1 &ker_x, const K2 &ker_y) | Vtl::ImAlg::Conv::Conv2D | [inline, static]
Reflect(const T *data_in, int width, int height, int nls_in, T *data_out, int nls_out, const K &ker) | Vtl::ImAlg::Conv::Conv2D | [inline, static]
ReflectInplace(T *data, int width, int height, int nls, const K1 &ker_x, const K2 &ker_y) | Vtl::ImAlg::Conv::Conv2D | [inline, static]
ReflectInplace(T *data, int width, int height, int nls, const K &ker) | Vtl::ImAlg::Conv::Conv2D | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Conv< T, K > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Conv< T, K >, включая наследуемые из базового класса

_central(IterIn begin, IterIn end, IterOut out) | Vtl::ImAlg::Conv::Conv< T, K > | [inline, protected]
_left(IterIn begin, IterIn end) | Vtl::ImAlg::Conv::Conv< T, K > | [inline, protected]
_right(IterIn end, IterOut out) | Vtl::ImAlg::Conv::Conv< T, K > | [inline, protected]
buf | Vtl::ImAlg::Conv::Conv< T, K > | [protected]
Conv(const K &kernel) | Vtl::ImAlg::Conv::Conv< T, K > | [inline]
operator()(IterIn begin, IterIn end, IterOut out) | Vtl::ImAlg::Conv::Conv< T, K > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::ConvInplace< T, K > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::ConvInplace< T, K >, включая наследуемые из базового класса

_central(IterIn begin, IterIn end, IterOut out) | Vtl::ImAlg::Conv::Conv< T, K > | [inline, private]
_central_2(Iter begin, Iter end, Iter out) | Vtl::ImAlg::Conv::ConvInplace< T, K > | [inline, private]
_left(IterIn begin, IterIn end) | Vtl::ImAlg::Conv::Conv< T, K > | [inline, private]
_left_2(Iter begin, Iter end, Iter &out) | Vtl::ImAlg::Conv::ConvInplace< T, K > | [inline, private]
_right(IterIn end, IterOut out) | Vtl::ImAlg::Conv::Conv< T, K > | [inline, private]
_right_2(Iter out) | Vtl::ImAlg::Conv::ConvInplace< T, K > | [inline, private]
buf | Vtl::ImAlg::Conv::Conv< T, K > | [private]
Conv(const K &kernel) | Vtl::ImAlg::Conv::Conv< T, K > | [inline, private]
ConvInplace(const K &kernel) | Vtl::ImAlg::Conv::ConvInplace< T, K > | [inline]
operator()(Iter begin, Iter end) | Vtl::ImAlg::Conv::ConvInplace< T, K > | [inline]
operator()(IterIn begin, IterIn end, IterOut out) | Vtl::ImAlg::Conv::ConvInplace< T, K > | [inline]
save | Vtl::ImAlg::Conv::ConvInplace< T, K > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::CyclicConv< T, K > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::CyclicConv< T, K >, включая наследуемые из базового класса

_central(IterIn begin, IterIn end, IterOut out) | Vtl::ImAlg::Conv::CyclicConv< T, K > | [inline, private]
_right_end_left(IterIn begin, IterOut out, IterOut out0) | Vtl::ImAlg::Conv::CyclicConv< T, K > | [inline, private]
_start(IterIn begin) | Vtl::ImAlg::Conv::CyclicConv< T, K > | [inline, private]
buf | Vtl::ImAlg::Conv::CyclicConv< T, K > | [private]
CyclicConv(const K &kernel) | Vtl::ImAlg::Conv::CyclicConv< T, K > | [inline]
operator()(IterIn begin, IterIn end, IterOut out) | Vtl::ImAlg::Conv::CyclicConv< T, K > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::CyclicConvInplace< T, K > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::CyclicConvInplace< T, K >, включая наследуемые из базового класса

_central(Iter begin, Iter end, Iter out) | Vtl::ImAlg::Conv::CyclicConvInplace< T, K > | [inline, private]
_left(Iter begin, Iter end) | Vtl::ImAlg::Conv::CyclicConvInplace< T, K > | [inline, private]
_right(Iter begin, Iter end, Iter out) | Vtl::ImAlg::Conv::CyclicConvInplace< T, K > | [inline, private]
buf | Vtl::ImAlg::Conv::CyclicConvInplace< T, K > | [private]
CyclicConvInplace(const K &kernel) | Vtl::ImAlg::Conv::CyclicConvInplace< T, K > | [inline]
operator()(Iter begin, Iter end) | Vtl::ImAlg::Conv::CyclicConvInplace< T, K > | [inline]
save | Vtl::ImAlg::Conv::CyclicConvInplace< T, K > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::FastGaussConvolve< T, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::FastGaussConvolve< T, D >, включая наследуемые из базового класса

a1 | Vtl::ImAlg::Conv::FastGaussConvolve< T, D > | [private]
a2 | Vtl::ImAlg::Conv::FastGaussConvolve< T, D > | [private]
a3 | Vtl::ImAlg::Conv::FastGaussConvolve< T, D > | [private]
B | Vtl::ImAlg::Conv::FastGaussConvolve< T, D > | [private]
check() | Vtl::ImAlg::Conv::FastGaussConvolve< T, D > | [inline, private, static]
Deriv элементы перечисления | Vtl::ImAlg::Conv::FastGaussConvolve< T, D > |
FastGaussConvolve() | Vtl::ImAlg::Conv::FastGaussConvolve< T, D > | [inline]
FastGaussConvolve(TT sigma) | Vtl::ImAlg::Conv::FastGaussConvolve< T, D > | [inline]
Init(TT sigma) | Vtl::ImAlg::Conv::FastGaussConvolve< T, D > | [inline]
Mult(TT sigma) | Vtl::ImAlg::Conv::FastGaussConvolve< T, D > | [inline, static]
operator()(IterIn begin, IterIn end, IterOut out) | Vtl::ImAlg::Conv::FastGaussConvolve< T, D > | [inline]
operator()(Iter begin, Iter end) | Vtl::ImAlg::Conv::FastGaussConvolve< T, D > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Impl::Buffer< T, K > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Impl::Buffer< T, K >, включая наследуемые из базового класса

Buffer(const K &kernel) | Vtl::ImAlg::Conv::Impl::Buffer< T, K > | [inline]
data | Vtl::ImAlg::Conv::Impl::Buffer< T, K > | [protected]
ker | Vtl::ImAlg::Conv::Impl::Buffer< T, K > |
pop() | Vtl::ImAlg::Conv::Impl::Buffer< T, K > | [inline]
pos | Vtl::ImAlg::Conv::Impl::Buffer< T, K > | [protected]
push(T data_elem) | Vtl::ImAlg::Conv::Impl::Buffer< T, K > | [inline]
rewind() | Vtl::ImAlg::Conv::Impl::Buffer< T, K > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >, включая наследуемые из базового класса

extent(T out, T in_cur, T in_next) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > | [inline]
Forward(T B, T a1, T a2, T a3, T prev_in) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > | [inline]
h | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > | [private]
operator()(T &out, T in_cur, T in_next) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > | [inline]
operator()(T out) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > | [inline]
t | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 >, включая наследуемые из базового класса

B | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 > | [private]
HeadF(T B_, T prev_in) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 > | [inline]
operator()(T cur, T next) const | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >, включая наследуемые из базового класса

B2 | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 > | [private]
HeadF(T B_, T prev_in) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 > | [inline]
operator()(T cur, T next) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 > | [inline]
prev | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >, включая наследуемые из базового класса

B | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 > | [private]
HeadF(T B_, T prev_in) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 > | [inline]
operator()(T cur, T next) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 > | [inline]
prev | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >, включая наследуемые из базового класса

B | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 > | [private]
HeadF(T B_, T prev_in) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 > | [inline]
operator()(T cur, T next) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 > | [inline]
prev | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >, включая наследуемые из базового класса

B | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 > | [private]
HeadR(T B_, T prev_in) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 > | [inline]
operator()(T cur, T next) const | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >, включая наследуемые из базового класса

B | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 > | [private]
HeadR(T B_, T prev_in) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 > | [inline]
operator()(T cur, T next) const | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >, включая наследуемые из базового класса

B | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 > | [private]
HeadR(T B_, T prev_in) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 > | [inline]
operator()(T cur, T next) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 > | [inline]
prev | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >, включая наследуемые из базового класса

B2 | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 > | [private]
HeadR(T B_, T prev_in) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 > | [inline]
operator()(T cur, T next) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 > | [inline]
prev | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D >, включая наследуемые из базового класса

h | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D > | [private]
operator()(T &out, T in_cur, T in_next) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D > | [inline]
operator()(T out) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D > | [inline]
Reverse(T B, T a1, T a2, T a3, T prev_in) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D > | [inline]
t | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >, включая наследуемые из базового класса

a1 | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > | [private]
a2 | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > | [private]
a3 | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > | [private]
operator()() | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > | [inline]
operator()(T v) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > | [inline]
s1 | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > | [private]
s2 | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > | [private]
s3 | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > | [private]
Tail(T a1_, T a2_, T a3_) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >, включая наследуемые из базового класса

den | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 > | [private]
M | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 > | [private]
operator()(double iplus, double &p1, double &p2, double &p3) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 > | [inline]
sum | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 > | [private]
Triggs(double B, double b1, double b2, double b3) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 > | [inline]
TriggsM(double a1, double a2, double a3, double *M) | Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 > | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::SliceIter< T, stride > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::SliceIter< T, stride >, включая наследуемые из базового класса

d | Vtl::ImAlg::Conv::SliceIter< T, stride > | [private]
operator *() const | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]
operator *() | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]
operator!=(const SliceIter &si) const | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]
operator+(int n) const | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]
operator++() | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]
operator++(int) | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]
operator+=(int n) | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]
operator-(int n) const | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]
operator--() | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]
operator--(int) | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]
operator-=(int n) | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]
operator=(const SliceIter< T, stride > &si) | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]
operator==(const SliceIter &si) const | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]
SliceIter(T *data) | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]
SliceIter(const SliceIter< T, stride > &si) | Vtl::ImAlg::Conv::SliceIter< T, stride > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::SliceIter< T, 0 > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::SliceIter< T, 0 >, включая наследуемые из базового класса

d | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [private]
operator *() const | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
operator *() | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
operator!=(const SliceIter &si) const | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
operator+(int n) const | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
operator++() | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
operator++(int) | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
operator+=(int n) | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
operator-(int n) const | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
operator--() | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
operator--(int) | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
operator-=(int n) | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
operator=(const SliceIter< T, 0 > &si) | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
operator==(const SliceIter &si) const | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
SliceIter(T *data, int step) | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
SliceIter(const SliceIter< T, 0 > &si) | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [inline]
stride_var | Vtl::ImAlg::Conv::SliceIter< T, 0 > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::SliceIterConst< T, stride > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::SliceIterConst< T, stride >, включая наследуемые из базового класса

d | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [private]
operator *() const | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [inline]
operator!=(const SliceIterConst &si) const | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [inline]
operator+(int n) const | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [inline]
operator++() | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [inline]
operator++(int) | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [inline]
operator+=(int n) | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [inline]
operator-(int n) const | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [inline]
operator--() | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [inline]
operator--(int) | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [inline]
operator-=(int n) | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [inline]
operator=(const SliceIterConst< T, stride > &si) | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [inline]
operator==(const SliceIterConst &si) const | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [inline]
SliceIterConst(const T *data) | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [inline]
SliceIterConst(const SliceIterConst< T, stride > &si) | Vtl::ImAlg::Conv::SliceIterConst< T, stride > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Conv::SliceIterConst< T, 0 > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Conv::SliceIterConst< T, 0 >, включая наследуемые из базового класса

d | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [private]
operator *() const | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [inline]
operator!=(const SliceIterConst &si) const | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [inline]
operator+(int n) const | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [inline]
operator++() | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [inline]
operator++(int) | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [inline]
operator+=(int n) | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [inline]
operator-(int n) const | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [inline]
operator--() | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [inline]
operator--(int) | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [inline]
operator-=(int n) | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [inline]
operator=(const SliceIterConst< T, 0 > &si) | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [inline]
operator==(const SliceIterConst &si) const | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [inline]
SliceIterConst(const T *data, int step) | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [inline]
SliceIterConst(const SliceIterConst< T, 0 > &si) | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [inline]
stride_var | Vtl::ImAlg::Conv::SliceIterConst< T, 0 > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Edt::EdtEdgeCoord Cписок членов класса

Полный список членов класса Vtl::ImAlg::Edt::EdtEdgeCoord, включая наследуемые из базового класса

edt(T1 *src, int w, int h, int nls_s, T2 *res, int *edgeX, int *edgeY, int nls_d, Functor isEdgeFunc) | Vtl::ImAlg::Edt::EdtEdgeCoord | [inline, static]
edt1D(T2 *dist, int *edgeXrow, int *edgeYrow, int N, T2 MaxValue) | Vtl::ImAlg::Edt::EdtEdgeCoord | [inline, private, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Edt::Meijster Cписок членов класса

Полный список членов класса Vtl::ImAlg::Edt::Meijster, включая наследуемые из базового класса

edt(T1 *src, int w, int h, int nls_s, T2 *res, int nls_d, Functor isEdgeFunc) | Vtl::ImAlg::Edt::Meijster | [inline, static]
edt1D(T2 *dist, int N, T2 MaxValue) | Vtl::ImAlg::Edt::Meijster | [inline, private, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Model::Affine< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Model::Affine< T >, включая наследуемые из базового класса

_D(T x, T y) const | Vtl::ImAlg::Model::Affine< T > | [inline, private]
_setIdentity() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]
A | Vtl::ImAlg::Model::BaseAffine< T > |
b | Vtl::ImAlg::Model::BaseAffine< T > |
Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]
BaseAffine() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]
Dx(T x, T y) const | Vtl::ImAlg::Model::Affine< T > | [inline]
Dy(T x, T y) const | Vtl::ImAlg::Model::Affine< T > | [inline]
getCenter(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCenter(int w, int h, Vector2 &v) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCof(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
getTransf(int w, int h) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
Interp(const Pixel *in, int w, int h, int nls, Pixel *out, int nls_out, Pixel fill=Pixel(0)) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
Inverse() | Vtl::ImAlg::Model::Affine< T > | [inline]
isLinear элементы перечисления | Vtl::ImAlg::Model::BaseAffine< T > |
isStrightLineSaving элементы перечисления | Vtl::ImAlg::Model::BaseAffine< T > |
MatrixA typedef | Vtl::ImAlg::Model::BaseAffine< T > |
max_err_at_rect(BaseAffine &model_2, T x1, T y1, T x2, T y2) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
N элементы перечисления | Vtl::ImAlg::Model::Affine< T > |
set(VectorP theta_) | Vtl::ImAlg::Model::Affine< T > | [inline]
setIdentity() | Vtl::ImAlg::Model::Affine< T > | [inline]
Transf typedef | Vtl::ImAlg::Model::BaseAffine< T > |
UpdateByNewAfterThis(Affine &model_new) | Vtl::ImAlg::Model::Affine< T > | [inline]
value_type typedef | Vtl::ImAlg::Model::Base< T > |
Vector2 typedef | Vtl::ImAlg::Model::Base< T > |
VectorB typedef | Vtl::ImAlg::Model::BaseAffine< T > |
~Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]
~BaseAffine() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Model::Base< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Model::Base< T >, включая наследуемые из базового класса

Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]
getCenter(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCenter(int w, int h, Vector2 &v) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCof(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
value_type typedef | Vtl::ImAlg::Model::Base< T > |
Vector2 typedef | Vtl::ImAlg::Model::Base< T > |
~Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Model::BaseAffine< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Model::BaseAffine< T >, включая наследуемые из базового класса

_setIdentity() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]
A | Vtl::ImAlg::Model::BaseAffine< T > |
b | Vtl::ImAlg::Model::BaseAffine< T > |
Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]
BaseAffine() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]
getCenter(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCenter(int w, int h, Vector2 &v) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCof(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
getTransf(int w, int h) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
Interp(const Pixel *in, int w, int h, int nls, Pixel *out, int nls_out, Pixel fill=Pixel(0)) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
isLinear элементы перечисления | Vtl::ImAlg::Model::BaseAffine< T > |
isStrightLineSaving элементы перечисления | Vtl::ImAlg::Model::BaseAffine< T > |
MatrixA typedef | Vtl::ImAlg::Model::BaseAffine< T > |
max_err_at_rect(BaseAffine &model_2, T x1, T y1, T x2, T y2) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
Transf typedef | Vtl::ImAlg::Model::BaseAffine< T > |
value_type typedef | Vtl::ImAlg::Model::Base< T > |
Vector2 typedef | Vtl::ImAlg::Model::Base< T > |
VectorB typedef | Vtl::ImAlg::Model::BaseAffine< T > |
~Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]
~BaseAffine() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Model::Homography< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Model::Homography< T >, включая наследуемые из базового класса

_D(T x, T y) const | Vtl::ImAlg::Model::Homography< T > | [inline, private]
_D3x(T x, T y) const | Vtl::ImAlg::Model::Homography< T > | [inline, private]
_D3y(T x, T y) const | Vtl::ImAlg::Model::Homography< T > | [inline, private]
A | Vtl::ImAlg::Model::Homography< T > |
Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]
denom(T x, T y) const | Vtl::ImAlg::Model::Homography< T > | [inline, private]
Dx(T x, T y) const | Vtl::ImAlg::Model::Homography< T > | [inline]
Dy(T x, T y) const | Vtl::ImAlg::Model::Homography< T > | [inline]
getCenter(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCenter(int w, int h, Vector2 &v) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCof(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
Interp(T *in, int w, int h, int nls, T *out) const | Vtl::ImAlg::Model::Homography< T > | [inline]
Inverse() | Vtl::ImAlg::Model::Homography< T > | [inline]
isLinear элементы перечисления | Vtl::ImAlg::Model::Homography< T > |
isStrightLineSaving элементы перечисления | Vtl::ImAlg::Model::Homography< T > |
MatrixA typedef | Vtl::ImAlg::Model::Homography< T > |
N элементы перечисления | Vtl::ImAlg::Model::Homography< T > |
set(VectorP theta_) | Vtl::ImAlg::Model::Homography< T > | [inline]
setIdentity() | Vtl::ImAlg::Model::Homography< T > | [inline]
sqr(T v) | Vtl::ImAlg::Model::Homography< T > | [inline, private, static]
Transf typedef | Vtl::ImAlg::Model::Homography< T > |
UpdateByNewAfterThis(Homography &model_new) | Vtl::ImAlg::Model::Homography< T > | [inline]
value_type typedef | Vtl::ImAlg::Model::Homography< T > |
Vector2 typedef | Vtl::ImAlg::Model::Base< T > |
~Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Model::Offset< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Model::Offset< T >, включая наследуемые из базового класса

b | Vtl::ImAlg::Model::Offset< T > |
Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]
Dx(T x, T y) const | Vtl::ImAlg::Model::Offset< T > | [inline]
Dy(T x, T y) const | Vtl::ImAlg::Model::Offset< T > | [inline]
getCenter(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCenter(int w, int h, Vector2 &v) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCof(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
getTransf(int w, int h) const | Vtl::ImAlg::Model::Offset< T > | [inline]
Interp(const Pixel *in, int w, int h, int nls, Pixel *out, int nls_out, Pixel fill=Pixel(0)) const | Vtl::ImAlg::Model::Offset< T > | [inline]
Inverse() | Vtl::ImAlg::Model::Offset< T > | [inline]
isLinear элементы перечисления | Vtl::ImAlg::Model::Offset< T > |
isStrightLineSaving элементы перечисления | Vtl::ImAlg::Model::Offset< T > |
max_err_at_rect(Offset &model_2, T x1, T y1, T x2, T y2) | Vtl::ImAlg::Model::Offset< T > | [inline]
N элементы перечисления | Vtl::ImAlg::Model::Offset< T > |
set(VectorP model_parameters) | Vtl::ImAlg::Model::Offset< T > | [inline]
set(T dx, T dy) | Vtl::ImAlg::Model::Offset< T > | [inline]
setIdentity() | Vtl::ImAlg::Model::Offset< T > | [inline]
Transf typedef | Vtl::ImAlg::Model::Offset< T > |
UpdateByNewAfterThis(Offset &model_new) | Vtl::ImAlg::Model::Offset< T > | [inline]
value_type typedef | Vtl::ImAlg::Model::Base< T > |
Vector2 typedef | Vtl::ImAlg::Model::Base< T > |
VectorB typedef | Vtl::ImAlg::Model::Offset< T > |
~Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Model::Similarity< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Model::Similarity< T >, включая наследуемые из базового класса

_buildMatrix(T phi_, T scale_) | Vtl::ImAlg::Model::Similarity< T > | [inline, private]
_setIdentity() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]
A | Vtl::ImAlg::Model::BaseAffine< T > |
b | Vtl::ImAlg::Model::BaseAffine< T > |
Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]
BaseAffine() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]
getCenter(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCenter(int w, int h, Vector2 &v) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCof(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
getTransf(int w, int h) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
Interp(const Pixel *in, int w, int h, int nls, Pixel *out, int nls_out, Pixel fill=Pixel(0)) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
Inverse() | Vtl::ImAlg::Model::Similarity< T > | [inline]
isLinear элементы перечисления | Vtl::ImAlg::Model::BaseAffine< T > |
isStrightLineSaving элементы перечисления | Vtl::ImAlg::Model::BaseAffine< T > |
MatrixA typedef | Vtl::ImAlg::Model::BaseAffine< T > |
max_err_at_rect(BaseAffine &model_2, T x1, T y1, T x2, T y2) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
N элементы перечисления | Vtl::ImAlg::Model::Similarity< T > |
phi | Vtl::ImAlg::Model::Similarity< T > |
scale | Vtl::ImAlg::Model::Similarity< T > |
set(VectorP theta_) | Vtl::ImAlg::Model::Similarity< T > | [inline]
set(T phi_, T scale_, T dx, T dy) | Vtl::ImAlg::Model::Similarity< T > | [inline]
setIdentity() | Vtl::ImAlg::Model::Similarity< T > | [inline]
Transf typedef | Vtl::ImAlg::Model::BaseAffine< T > |
UpdateByNewAfterThis(Similarity &model_new) | Vtl::ImAlg::Model::Similarity< T > | [inline]
value_type typedef | Vtl::ImAlg::Model::Base< T > |
Vector2 typedef | Vtl::ImAlg::Model::Base< T > |
VectorB typedef | Vtl::ImAlg::Model::BaseAffine< T > |
~Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]
~BaseAffine() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Model::SkewXOffset< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Model::SkewXOffset< T >, включая наследуемые из базового класса

_setIdentity() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]
A | Vtl::ImAlg::Model::BaseAffine< T > |
b | Vtl::ImAlg::Model::BaseAffine< T > |
Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]
BaseAffine() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]
Dx(T x, T y) const | Vtl::ImAlg::Model::SkewXOffset< T > | [inline]
Dy(T x, T y) const | Vtl::ImAlg::Model::SkewXOffset< T > | [inline]
getCenter(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCenter(int w, int h, Vector2 &v) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCof(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
getTransf(int w, int h) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
Interp(const Pixel *in, int w, int h, int nls, Pixel *out, int nls_out, Pixel fill=Pixel(0)) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
Inverse() | Vtl::ImAlg::Model::SkewXOffset< T > | [inline]
isLinear элементы перечисления | Vtl::ImAlg::Model::BaseAffine< T > |
isStrightLineSaving элементы перечисления | Vtl::ImAlg::Model::BaseAffine< T > |
MatrixA typedef | Vtl::ImAlg::Model::BaseAffine< T > |
max_err_at_rect(BaseAffine &model_2, T x1, T y1, T x2, T y2) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
N элементы перечисления | Vtl::ImAlg::Model::SkewXOffset< T > |
offset_by(T2 dx, T3 dy) | Vtl::ImAlg::Model::SkewXOffset< T > | [inline]
set(VectorP theta) | Vtl::ImAlg::Model::SkewXOffset< T > | [inline]
set(T1 skew, T2 dx, T3 dy) | Vtl::ImAlg::Model::SkewXOffset< T > | [inline]
setIdentity() | Vtl::ImAlg::Model::SkewXOffset< T > | [inline]
Transf typedef | Vtl::ImAlg::Model::BaseAffine< T > |
UpdateByNewAfterThis(SkewXOffset &model_new) | Vtl::ImAlg::Model::SkewXOffset< T > | [inline]
value_type typedef | Vtl::ImAlg::Model::Base< T > |
Vector2 typedef | Vtl::ImAlg::Model::Base< T > |
VectorB typedef | Vtl::ImAlg::Model::BaseAffine< T > |
~Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]
~BaseAffine() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Model::SkewYOffset< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Model::SkewYOffset< T >, включая наследуемые из базового класса

_setIdentity() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]
A | Vtl::ImAlg::Model::BaseAffine< T > |
b | Vtl::ImAlg::Model::BaseAffine< T > |
Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]
BaseAffine() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]
Dx(T x, T y) const | Vtl::ImAlg::Model::SkewYOffset< T > | [inline]
Dy(T x, T y) const | Vtl::ImAlg::Model::SkewYOffset< T > | [inline]
getCenter(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCenter(int w, int h, Vector2 &v) const | Vtl::ImAlg::Model::Base< T > | [inline]
getCof(int w, int h) const | Vtl::ImAlg::Model::Base< T > | [inline]
getTransf(int w, int h) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
Interp(const Pixel *in, int w, int h, int nls, Pixel *out, int nls_out, Pixel fill=Pixel(0)) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
Inverse() | Vtl::ImAlg::Model::SkewYOffset< T > | [inline]
isLinear элементы перечисления | Vtl::ImAlg::Model::BaseAffine< T > |
isStrightLineSaving элементы перечисления | Vtl::ImAlg::Model::BaseAffine< T > |
MatrixA typedef | Vtl::ImAlg::Model::BaseAffine< T > |
max_err_at_rect(BaseAffine &model_2, T x1, T y1, T x2, T y2) const | Vtl::ImAlg::Model::BaseAffine< T > | [inline]
N элементы перечисления | Vtl::ImAlg::Model::SkewYOffset< T > |
offset_by(T2 dx, T3 dy) | Vtl::ImAlg::Model::SkewYOffset< T > | [inline]
set(VectorP theta) | Vtl::ImAlg::Model::SkewYOffset< T > | [inline]
set(T1 skew, T2 dx, T3 dy) | Vtl::ImAlg::Model::SkewYOffset< T > | [inline]
setIdentity() | Vtl::ImAlg::Model::SkewYOffset< T > | [inline]
Transf typedef | Vtl::ImAlg::Model::BaseAffine< T > |
UpdateByNewAfterThis(SkewYOffset &model_new) | Vtl::ImAlg::Model::SkewYOffset< T > | [inline]
value_type typedef | Vtl::ImAlg::Model::Base< T > |
Vector2 typedef | Vtl::ImAlg::Model::Base< T > |
VectorB typedef | Vtl::ImAlg::Model::BaseAffine< T > |
~Base() | Vtl::ImAlg::Model::Base< T > | [inline, protected]
~BaseAffine() | Vtl::ImAlg::Model::BaseAffine< T > | [inline, protected]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >, включая наследуемые из базового класса

_img() | Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > | [inline, protected]
_Insert(Vtl::Plf::OutPortNoPostProc< Real_t > *input, Iter src_begin, Iter src_end, Real_t *img, int w, int h, int nls) | Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > | [inline, protected]
Base() | Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > | [inline, protected]
Init(typename Storage_t::Offsets_t &s) | Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > | [inline, protected]
Name(std::string name) | Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > | [inline, protected, static]
storage_ | Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > | [protected]
Storage_t typedef | Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > | [protected]
~Base() | Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > | [inline, protected, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::Container< Real_t > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::Container< Real_t >, включая наследуемые из базового класса

Add(int x, int y, Real_t value) | Vtl::ImAlg::Registration::Container< Real_t > | [inline]
begin() | Vtl::ImAlg::Registration::Container< Real_t > | [inline]
const_Iter typedef | Vtl::ImAlg::Registration::Container< Real_t > |
Container(size_t img_size[], size_t max_size_=8) | Vtl::ImAlg::Registration::Container< Real_t > | [inline]
end() | Vtl::ImAlg::Registration::Container< Real_t > | [inline]
half_height | Vtl::ImAlg::Registration::Container< Real_t > | [private]
half_width | Vtl::ImAlg::Registration::Container< Real_t > | [private]
List typedef | Vtl::ImAlg::Registration::Container< Real_t > |
lst | Vtl::ImAlg::Registration::Container< Real_t > | [private]
max_size | Vtl::ImAlg::Registration::Container< Real_t > | [private]
print() | Vtl::ImAlg::Registration::Container< Real_t > | [inline]
printRatio() | Vtl::ImAlg::Registration::Container< Real_t > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >, включая наследуемые из базового класса

_img() | Vtl::ImAlg::Registration::Base< Real_t, 3 > | [inline, protected]
_Insert(Vtl::Plf::OutPortNoPostProc< Real_t > *input, Iter src_begin, Iter src_end, Real_t *img, int w, int h, int nls) | Vtl::ImAlg::Registration::Base< Real_t, 3 > | [inline, protected]
AfterInsert() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > | [inline, private]
Base() | Vtl::ImAlg::Registration::Base< Real_t, 3 > | [inline, protected]
Hartley() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > | [inline]
img_H() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > | [inline, private]
img_Tmp() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > | [inline, private]
Init(size_t width, size_t height) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > | [inline]
Vtl::ImAlg::Registration::Base< Real_t, 3 >::Init(typename Storage_t::Offsets_t &s) | Vtl::ImAlg::Registration::Base< Real_t, 3 > | [inline, protected]
Insert(Vtl::Plf::OutPortNoPostProc< Real_t > *input, Iter src_begin, Iter src_end) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > | [inline]
Model typedef | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > |
n | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > | [private]
Name(std::string name) | Vtl::ImAlg::Registration::Base< Real_t, 3 > | [inline, protected, static]
Run(Model &model) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > | [inline]
storage_ | Vtl::ImAlg::Registration::Base< Real_t, 3 > | [protected]
Storage_t typedef | Vtl::ImAlg::Registration::Base< Real_t, 3 > | [protected]
~Base() | Vtl::ImAlg::Registration::Base< Real_t, 3 > | [inline, protected, virtual]
~Hartley() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >, включая наследуемые из базового класса

_img() | Vtl::ImAlg::Registration::Base< Real_t, 5 > | [inline, protected]
_Insert(Vtl::Plf::OutPortNoPostProc< Real_t > *input, Iter src_begin, Iter src_end, Real_t *img, int w, int h, int nls) | Vtl::ImAlg::Registration::Base< Real_t, 5 > | [inline, protected]
_RotScaleOffset_1(bool highpass, bool windowing) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [inline, private]
AfterInsert() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [inline, private]
angle_shift_specif(Container< Real_t > &cont, const Model &model) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [inline, private]
Base() | Vtl::ImAlg::Registration::Base< Real_t, 5 > | [inline, protected]
find_rotate_scale(Container< Real_t > &cont_amp1) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [inline, private]
Hartley() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [inline]
img_Amp() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [inline, private]
img_H() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [inline, private]
img_Tmp() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [inline, private]
Init(size_t size, bool is_edged) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [inline]
Vtl::ImAlg::Registration::Base< Real_t, 5 >::Init(typename Storage_t::Offsets_t &s) | Vtl::ImAlg::Registration::Base< Real_t, 5 > | [inline, protected]
Insert(Vtl::Plf::OutPortNoPostProc< Real_t > *input, Iter src_begin, Iter src_end) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [inline]
is_edged | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [private]
lsg | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [private]
MinusMean(const Real_t *data, size_t len, Real_t *out) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [inline, private]
Model typedef | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > |
n | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [private]
Name(std::string name) | Vtl::ImAlg::Registration::Base< Real_t, 5 > | [inline, protected, static]
Run(Model &model, int w, int h) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [inline]
size | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [private]
Size() const | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [inline]
storage_ | Vtl::ImAlg::Registration::Base< Real_t, 5 > | [protected]
Storage_t typedef | Vtl::ImAlg::Registration::Base< Real_t, 5 > | [protected]
~Base() | Vtl::ImAlg::Registration::Base< Real_t, 5 > | [inline, protected, virtual]
~Hartley() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >, включая наследуемые из базового класса

_img() | Vtl::ImAlg::Registration::Base< Real_t, 6 > | [inline, protected]
_Insert(Vtl::Plf::OutPortNoPostProc< Real_t > *input, Iter src_begin, Iter src_end, Real_t *img, int w, int h, int nls) | Vtl::ImAlg::Registration::Base< Real_t, 6 > | [inline, protected]
_SkewOffset_2(float *mat) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | [inline, private]
AfterInsert() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | [inline, private]
Base() | Vtl::ImAlg::Registration::Base< Real_t, 6 > | [inline, protected]
Hartley() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | [inline]
Hough(Real_t angle_from, Real_t angle_to, Real_t *img, Real_t *sino, size_t width, size_t height) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | [inline, private, static]
img_Amp() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | [inline, private]
img_H() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | [inline, private]
img_Sino() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | [inline, private]
img_Tmp() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | [inline, private]
Init(size_t size) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | [inline]
Vtl::ImAlg::Registration::Base< Real_t, 6 >::Init(typename Storage_t::Offsets_t &s) | Vtl::ImAlg::Registration::Base< Real_t, 6 > | [inline, protected]
Insert(Vtl::Plf::OutPortNoPostProc< Real_t > *input, Iter src_begin, Iter src_end) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | [inline]
MinusMean(const Real_t *data, size_t len, Real_t *out) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | [inline, private]
Model typedef | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > |
n | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | [private]
Name(std::string name) | Vtl::ImAlg::Registration::Base< Real_t, 6 > | [inline, protected, static]
Run(Model &model, int w, int h) | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | [inline]
storage_ | Vtl::ImAlg::Registration::Base< Real_t, 6 > | [protected]
Storage_t typedef | Vtl::ImAlg::Registration::Base< Real_t, 6 > | [protected]
~Base() | Vtl::ImAlg::Registration::Base< Real_t, 6 > | [inline, protected, virtual]
~Hartley() | Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >, включая наследуемые из базового класса

B | Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB > | [private]
BuildB(VectorB &B_) | Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB > | [inline]
operator()(VectorB &G, T deltaI, T mask) | Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB > | [inline]
value_type typedef | Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB > |


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >, включая наследуемые из базового класса

B | Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB > | [private]
BuildHB(MatrixH &H_, VectorB &B_) | Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB > | [inline]
H | Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB > | [private]
operator()(VectorB &G, T deltaI, T mask) | Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB > | [inline]
value_type typedef | Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB > |


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >, включая наследуемые из базового класса

build(const Model &model, BuildX &HB, T *I1, T *I2, T *gx, T *gy, size_t w, size_t h, T *mask, float sigma, T fill) | Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T > | [inline, static]
dif(T *data1, T *data2, T *gx, T *gy, int w, int h, float sigma) | Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T > | [inline, static]
ins(S *in, int w, int h, int nls, T *data) | Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T > | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >, включая наследуемые из базового класса

AfterInsert() | Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > | [inline]
ColorPlanes элементы перечисления | Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > |
Insert1(D *data, int w, int h, int nls) | Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > | [inline]
Insert2(D *data, int w, int h, int nls) | Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > | [inline]
mem | Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > | [private]
model | Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > | [private]
OFlow(Model &model_, AllocStrategy &mem_) | Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > | [inline]
T typedef | Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > |
UseMask элементы перечисления | Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > |
~OFlow() | Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >, включая наследуемые из базового класса

ColorPlanes элементы перечисления | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > |
get_Level() const | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline]
gx() | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline]
gy() | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline]
h | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > |
H() const | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline]
I1() | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline]
I2() | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline]
ImgLevel элементы перечисления | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > |
ImgPlane элементы перечисления | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > |
Init(size_t width, size_t height) | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline]
Init(size_t width, size_t height, size_t width_min, size_t height_min) | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline]
It() | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline]
level | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > |
Levels() const | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline]
mask() | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline]
OFlowAllocStrategy() | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline]
ofs | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > |
set_Level(size_t level) | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline]
sizes | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > |
storage_ | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [private]
Storage_t typedef | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > |
UseMask элементы перечисления | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > |
value_type typedef | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > |
W() const | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline]
w | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > |
~OFlowAllocStrategy() | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >, включая наследуемые из базового класса

block() | Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > | [inline]
block() const | Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > | [inline]
data | Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > | [private]
data_ | Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > | [private]
Init(Offsets_t sz) | Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > | [inline]
N элементы перечисления | Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > |
Offsets_t typedef | Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > |
ofs | Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > | [private]
Storage() | Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > | [inline]
~Storage() | Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >, включая наследуемые из базового класса

at(double x, double y) const | Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > | [inline]
blank | Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > | [private]
border() const | Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > | [inline]
data | Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > | [private]
h | Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > | [private]
H() const | Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > | [inline]
InterpBilinear(const Pixel *data_ptr, size_t width, size_t height, size_t next_line_shift, Pixel fill) | Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > | [inline]
nls | Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > | [private]
Nls() const | Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > | [inline]
operator()(double x, double y) const | Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > | [inline]
result_type typedef | Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > |
w | Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > | [private]
W() const | Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Resamp::LinGrid< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Resamp::LinGrid< T >, включая наследуемые из базового класса

LinGrid(T value_min_, T value_max_, size_t N_grid_cells) | Vtl::ImAlg::Resamp::LinGrid< T > | [inline]
n | Vtl::ImAlg::Resamp::LinGrid< T > | [private]
N() const | Vtl::ImAlg::Resamp::LinGrid< T > | [inline]
step | Vtl::ImAlg::Resamp::LinGrid< T > | [private]
value(size_t i) const | Vtl::ImAlg::Resamp::LinGrid< T > | [inline]
value_max | Vtl::ImAlg::Resamp::LinGrid< T > | [private]
value_min | Vtl::ImAlg::Resamp::LinGrid< T > | [private]
values_shift(I i_distance=1) const | Vtl::ImAlg::Resamp::LinGrid< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Resamp::LogGrid< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Resamp::LogGrid< T >, включая наследуемые из базового класса

log_value_step | Vtl::ImAlg::Resamp::LogGrid< T > | [private]
LogGrid() | Vtl::ImAlg::Resamp::LogGrid< T > | [inline]
LogGrid(T value_min_, T value_max_, size_t N_grid_cells) | Vtl::ImAlg::Resamp::LogGrid< T > | [inline]
n | Vtl::ImAlg::Resamp::LogGrid< T > | [private]
N() const | Vtl::ImAlg::Resamp::LogGrid< T > | [inline]
value(size_t i) const | Vtl::ImAlg::Resamp::LogGrid< T > | [inline]
value_max | Vtl::ImAlg::Resamp::LogGrid< T > | [private]
value_min | Vtl::ImAlg::Resamp::LogGrid< T > | [private]
values_ratio(I i_distance=1) const | Vtl::ImAlg::Resamp::LogGrid< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Resamp::PhiGrid< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Resamp::PhiGrid< T >, включая наследуемые из базового класса

from | Vtl::ImAlg::Resamp::PhiGrid< T > | [private]
N() const | Vtl::ImAlg::Resamp::PhiGrid< T > | [inline]
n | Vtl::ImAlg::Resamp::PhiGrid< T > | [private]
PhiGrid(T from_, T to_, size_t N_grid_cells) | Vtl::ImAlg::Resamp::PhiGrid< T > | [inline]
step | Vtl::ImAlg::Resamp::PhiGrid< T > | [private]
value(size_t i) const | Vtl::ImAlg::Resamp::PhiGrid< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Tools::findMax::SetPixel< T, stride > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Tools::findMax::SetPixel< T, stride >, включая наследуемые из базового класса

nls | Vtl::ImAlg::Tools::findMax::SetPixel< T, stride > | [private]
operator()(C x, C y, V v) | Vtl::ImAlg::Tools::findMax::SetPixel< T, stride > | [inline]
SetPixel(T *data_ptr, int nls_) | Vtl::ImAlg::Tools::findMax::SetPixel< T, stride > | [inline]
src | Vtl::ImAlg::Tools::findMax::SetPixel< T, stride > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Transf::Affine< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Transf::Affine< T >, включая наследуемые из базового класса

A | Vtl::ImAlg::Transf::Affine< T > | [private]
Affine() | Vtl::ImAlg::Transf::Affine< T > | [inline]
Affine(Affine &at) | Vtl::ImAlg::Transf::Affine< T > | [inline]
Affine(const MatrixA &A_, const VectorB &b_) | Vtl::ImAlg::Transf::Affine< T > | [inline]
b | Vtl::ImAlg::Transf::Affine< T > | [private]
isStrightLineSaving элементы перечисления | Vtl::ImAlg::Transf::Affine< T > |
MatrixA typedef | Vtl::ImAlg::Transf::Affine< T > |
operator()(T1 x, T2 y, T &x_out, T &y_out) const | Vtl::ImAlg::Transf::Affine< T > | [inline]
operator()(T1 x, T2 y) const | Vtl::ImAlg::Transf::Affine< T > | [inline]
operator()(VectorB x) const | Vtl::ImAlg::Transf::Affine< T > | [inline]
operator<<(std::ostream &os, const Affine< TT > &transf) | Vtl::ImAlg::Transf::Affine< T > | [friend]
operator=(const Affine &at) | Vtl::ImAlg::Transf::Affine< T > | [inline]
value_type typedef | Vtl::ImAlg::Transf::Affine< T > |
VectorB typedef | Vtl::ImAlg::Transf::Affine< T > |


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Transf::Homography< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Transf::Homography< T >, включая наследуемые из базового класса

H | Vtl::ImAlg::Transf::Homography< T > | [private]
Homography() | Vtl::ImAlg::Transf::Homography< T > | [inline]
Homography(Homography &ht) | Vtl::ImAlg::Transf::Homography< T > | [inline]
Homography(const MatrixH &H) | Vtl::ImAlg::Transf::Homography< T > | [inline]
Homography(Offset< T > &ot) | Vtl::ImAlg::Transf::Homography< T > | [inline]
Homography(const Vector2 &b) | Vtl::ImAlg::Transf::Homography< T > | [inline]
Homography(Affine< T > &at) | Vtl::ImAlg::Transf::Homography< T > | [inline]
Homography(const MatrixA &A, const Vector2 &b) | Vtl::ImAlg::Transf::Homography< T > | [inline]
isStrightLineSaving элементы перечисления | Vtl::ImAlg::Transf::Homography< T > |
MatrixA typedef | Vtl::ImAlg::Transf::Homography< T > |
MatrixH typedef | Vtl::ImAlg::Transf::Homography< T > |
operator()(T1 x, T2 y, T &x_out, T &y_out) const | Vtl::ImAlg::Transf::Homography< T > | [inline]
operator()(T1 x, T2 y) const | Vtl::ImAlg::Transf::Homography< T > | [inline]
operator()(Vector2 x) const | Vtl::ImAlg::Transf::Homography< T > | [inline]
operator()(Vector3 x) const | Vtl::ImAlg::Transf::Homography< T > | [inline]
operator=(const Homography &ht) | Vtl::ImAlg::Transf::Homography< T > | [inline]
operator=(Offset< T > &ot) | Vtl::ImAlg::Transf::Homography< T > | [inline]
operator=(Affine< T > &at) | Vtl::ImAlg::Transf::Homography< T > | [inline]
set(const Vector2 &b) | Vtl::ImAlg::Transf::Homography< T > | [inline]
set(const MatrixA &A, const Vector2 &b) | Vtl::ImAlg::Transf::Homography< T > | [inline]
value_type typedef | Vtl::ImAlg::Transf::Homography< T > |
Vector2 typedef | Vtl::ImAlg::Transf::Homography< T > |
Vector3 typedef | Vtl::ImAlg::Transf::Homography< T > |


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Transf::Offset< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Transf::Offset< T >, включая наследуемые из базового класса

b | Vtl::ImAlg::Transf::Offset< T > | [private]
isStrightLineSaving элементы перечисления | Vtl::ImAlg::Transf::Offset< T > |
Offset() | Vtl::ImAlg::Transf::Offset< T > | [inline]
Offset(Offset &ot) | Vtl::ImAlg::Transf::Offset< T > | [inline]
Offset(const VectorB &b_) | Vtl::ImAlg::Transf::Offset< T > | [inline]
operator()(T1 x, T2 y, T &x_out, T &y_out) const | Vtl::ImAlg::Transf::Offset< T > | [inline]
operator()(T1 x, T2 y) const | Vtl::ImAlg::Transf::Offset< T > | [inline]
operator()(VectorB x) const | Vtl::ImAlg::Transf::Offset< T > | [inline]
operator=(const Offset &ot) | Vtl::ImAlg::Transf::Offset< T > | [inline]
value_type typedef | Vtl::ImAlg::Transf::Offset< T > |
VectorB typedef | Vtl::ImAlg::Transf::Offset< T > |


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Bartlett< T, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Bartlett< T, D >, включая наследуемые из базового класса

_size_ | Vtl::ImAlg::WndFun::Bartlett< T, D > | [private]
arg_type typedef | Vtl::ImAlg::WndFun::Bartlett< T, D > |
Bartlett(TT size_) | Vtl::ImAlg::WndFun::Bartlett< T, D > | [inline]
c | Vtl::ImAlg::WndFun::Bartlett< T, D > | [private]
center() const | Vtl::ImAlg::WndFun::Bartlett< T, D > | [inline]
left() const | Vtl::ImAlg::WndFun::Bartlett< T, D > | [inline]
Name() | Vtl::ImAlg::WndFun::Bartlett< T, D > | [inline, static]
operator()(TT x) const | Vtl::ImAlg::WndFun::Bartlett< T, D > | [inline]
result(T x, Loki::Int2Type< 0 >) const | Vtl::ImAlg::WndFun::Bartlett< T, D > | [inline, private]
result(T x, Loki::Int2Type< 1 >) const | Vtl::ImAlg::WndFun::Bartlett< T, D > | [inline, private]
right() const | Vtl::ImAlg::WndFun::Bartlett< T, D > | [inline]
size() const | Vtl::ImAlg::WndFun::Bartlett< T, D > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Blackman< T, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Blackman< T, D >, включая наследуемые из базового класса

arg_type typedef | Vtl::ImAlg::WndFun::common_Trig< T, D, 2 > |
Blackman(TT size_) | Vtl::ImAlg::WndFun::Blackman< T, D > | [inline]
center() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 2 > | [inline]
cof() | Vtl::ImAlg::WndFun::Blackman< T, D > | [inline, private, static]
common_Trig(TT size_, TTT *a) | Vtl::ImAlg::WndFun::common_Trig< T, D, 2 > | [inline]
left() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 2 > | [inline]
Name() | Vtl::ImAlg::WndFun::Blackman< T, D > | [inline, static]
operator()(TT x) const | Vtl::ImAlg::WndFun::common_Trig< T, D, 2 > | [inline]
right() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 2 > | [inline]
size() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 2 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::BlackmanHarris< T, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::BlackmanHarris< T, D >, включая наследуемые из базового класса

arg_type typedef | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > |
BlackmanHarris(TT size_) | Vtl::ImAlg::WndFun::BlackmanHarris< T, D > | [inline]
center() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
cof() | Vtl::ImAlg::WndFun::BlackmanHarris< T, D > | [inline, private, static]
common_Trig(TT size_, TTT *a) | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
left() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
Name() | Vtl::ImAlg::WndFun::BlackmanHarris< T, D > | [inline, static]
operator()(TT x) const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
right() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
size() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::BlackmanNuttall< T, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >, включая наследуемые из базового класса

arg_type typedef | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > |
BlackmanNuttall(TT size_) | Vtl::ImAlg::WndFun::BlackmanNuttall< T, D > | [inline]
center() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
cof() | Vtl::ImAlg::WndFun::BlackmanNuttall< T, D > | [inline, private, static]
common_Trig(TT size_, TTT *a) | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
left() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
Name() | Vtl::ImAlg::WndFun::BlackmanNuttall< T, D > | [inline, static]
operator()(TT x) const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
right() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
size() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::common_Trig< T, D, K > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::common_Trig< T, D, K >, включая наследуемые из базового класса

_size_ | Vtl::ImAlg::WndFun::common_Trig< T, D, K > | [private]
a0 | Vtl::ImAlg::WndFun::common_Trig< T, D, K > | [private]
arg_type typedef | Vtl::ImAlg::WndFun::common_Trig< T, D, K > |
c | Vtl::ImAlg::WndFun::common_Trig< T, D, K > | [private]
center() const | Vtl::ImAlg::WndFun::common_Trig< T, D, K > | [inline]
cm | Vtl::ImAlg::WndFun::common_Trig< T, D, K > | [private]
common_Trig(TT size_, TTT *a) | Vtl::ImAlg::WndFun::common_Trig< T, D, K > | [inline]
left() const | Vtl::ImAlg::WndFun::common_Trig< T, D, K > | [inline]
operator()(TT x) const | Vtl::ImAlg::WndFun::common_Trig< T, D, K > | [inline]
result(T x, Loki::Int2Type< true >) const | Vtl::ImAlg::WndFun::common_Trig< T, D, K > | [inline, private]
result(T x, Loki::Int2Type< false >) const | Vtl::ImAlg::WndFun::common_Trig< T, D, K > | [inline, private]
right() const | Vtl::ImAlg::WndFun::common_Trig< T, D, K > | [inline]
size() const | Vtl::ImAlg::WndFun::common_Trig< T, D, K > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >, включая наследуемые из базового класса

conv_norm_alg элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
Deriv элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
Direct(int size_, int center_, const TT *values) | Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC > | [inline]
finit_support элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
finit_support_left элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
finit_support_right элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
FullName() | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > | [inline, static]
Name() | Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC > | [inline, static]
operator()(TT x) const | Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC > | [inline]
Properties() | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > | [inline, static]
Traits(T size_, T center_) | Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D > | [inline]
vals | Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC > | [private]
value_type typedef | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
~Traits() | Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D > | [inline, protected]
~Traits_common() | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > | [inline, protected]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >, включая наследуемые из базового класса

_size_ | Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > | [private]
arg_type typedef | Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > |
center() const | Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > | [inline]
conv_norm_alg элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
Deriv элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
Direct_Ref(int size_, int center_, const TT *values) | Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > | [inline]
finit_support элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
finit_support_left элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
finit_support_right элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
FullName() | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > | [inline, static]
left() const | Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > | [inline]
Name() | Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > | [inline, static]
operator()(TT x) const | Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > | [inline]
Properties() | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > | [inline, static]
right() const | Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > | [inline]
size() const | Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > | [inline]
Traits(T size_, T center_) | Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D > | [inline]
vals | Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > | [private]
value_type typedef | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
~Traits() | Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D > | [inline, protected]
~Traits_common() | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > | [inline, protected]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::DoG< T, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::DoG< T, D >, включая наследуемые из базового класса

arg_type typedef | Vtl::ImAlg::WndFun::DoG< T, D > |
center() const | Vtl::ImAlg::WndFun::DoG< T, D > | [inline]
DoG(T1 sigma_small, T2 sigma_large, T3 N_sigmas_large) | Vtl::ImAlg::WndFun::DoG< T, D > | [inline]
half_width | Vtl::ImAlg::WndFun::DoG< T, D > | [private]
large2small | Vtl::ImAlg::WndFun::DoG< T, D > | [private]
left() const | Vtl::ImAlg::WndFun::DoG< T, D > | [inline]
Name() | Vtl::ImAlg::WndFun::DoG< T, D > | [inline, static]
operator()(TT x) const | Vtl::ImAlg::WndFun::DoG< T, D > | [inline]
result(T x, Loki::Int2Type< 0 >) const | Vtl::ImAlg::WndFun::DoG< T, D > | [inline, private]
right() const | Vtl::ImAlg::WndFun::DoG< T, D > | [inline]
sigma | Vtl::ImAlg::WndFun::DoG< T, D > | [private]
size() const | Vtl::ImAlg::WndFun::DoG< T, D > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::FlatTop< T, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::FlatTop< T, D >, включая наследуемые из базового класса

arg_type typedef | Vtl::ImAlg::WndFun::common_Trig< T, D, 4 > |
center() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 4 > | [inline]
cof() | Vtl::ImAlg::WndFun::FlatTop< T, D > | [inline, private, static]
common_Trig(TT size_, TTT *a) | Vtl::ImAlg::WndFun::common_Trig< T, D, 4 > | [inline]
FlatTop(TT size_) | Vtl::ImAlg::WndFun::FlatTop< T, D > | [inline]
left() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 4 > | [inline]
Name() | Vtl::ImAlg::WndFun::FlatTop< T, D > | [inline, static]
operator()(TT x) const | Vtl::ImAlg::WndFun::common_Trig< T, D, 4 > | [inline]
right() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 4 > | [inline]
size() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 4 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >, включая наследуемые из базового класса

arg_type typedef | Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > |
center() const | Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > | [inline]
Gauss(TT sigma_, TTT N_sigmas_) | Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > | [inline]
half_width | Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > | [private]
left() const | Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > | [inline]
mult | Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > | [private]
Name() | Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > | [inline, static]
operator()(TT x) const | Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > | [inline]
right() const | Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > | [inline]
sigma | Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > | [private]
size() const | Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Hamming< T, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Hamming< T, D >, включая наследуемые из базового класса

arg_type typedef | Vtl::ImAlg::WndFun::common_Trig< T, D, 1 > |
center() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 1 > | [inline]
cof() | Vtl::ImAlg::WndFun::Hamming< T, D > | [inline, private, static]
common_Trig(TT size_, TTT *a) | Vtl::ImAlg::WndFun::common_Trig< T, D, 1 > | [inline]
Hamming(TT size_) | Vtl::ImAlg::WndFun::Hamming< T, D > | [inline]
left() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 1 > | [inline]
Name() | Vtl::ImAlg::WndFun::Hamming< T, D > | [inline, static]
operator()(TT x) const | Vtl::ImAlg::WndFun::common_Trig< T, D, 1 > | [inline]
right() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 1 > | [inline]
size() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 1 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Hann< T, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Hann< T, D >, включая наследуемые из базового класса

arg_type typedef | Vtl::ImAlg::WndFun::common_Trig< T, D, 1 > |
center() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 1 > | [inline]
cof() | Vtl::ImAlg::WndFun::Hann< T, D > | [inline, private, static]
common_Trig(TT size_, TTT *a) | Vtl::ImAlg::WndFun::common_Trig< T, D, 1 > | [inline]
Hann(TT size_) | Vtl::ImAlg::WndFun::Hann< T, D > | [inline]
left() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 1 > | [inline]
Name() | Vtl::ImAlg::WndFun::Hann< T, D > | [inline, static]
operator()(TT x) const | Vtl::ImAlg::WndFun::common_Trig< T, D, 1 > | [inline]
right() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 1 > | [inline]
size() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 1 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I >, включая наследуемые из базового класса

cm | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I > | [private]
cos_Member(T c, TTT *a) | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I > | [inline]
cos_Member_base(T c, TTT *a) | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I > | [inline]
operator()(T ckx, T cx) const | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I > | [inline]
Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base::operator()(T ckx) const | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K >, включая наследуемые из базового класса

cos_Member(T c, TTT *a) | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K > | [inline]
cos_Member_base(Tc, TTT *a) | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, K > | [inline]
operator()(T ckx, T cx) const | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K > | [inline]
Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, K >::operator()(Tckx) const | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, K > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I >, включая наследуемые из базового класса

b | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I > | [private]
cos_Member_base(T c, TTT *a) | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I > | [inline]
operator()(T ckx) const | Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Kaiser< T, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Kaiser< T, D >, включая наследуемые из базового класса

_size_ | Vtl::ImAlg::WndFun::Kaiser< T, D > | [private]
alpha | Vtl::ImAlg::WndFun::Kaiser< T, D > | [private]
arg_type typedef | Vtl::ImAlg::WndFun::Kaiser< T, D > |
c | Vtl::ImAlg::WndFun::Kaiser< T, D > | [private]
center() const | Vtl::ImAlg::WndFun::Kaiser< T, D > | [inline]
Kaiser(TT size_, T alpha_) | Vtl::ImAlg::WndFun::Kaiser< T, D > | [inline]
left() const | Vtl::ImAlg::WndFun::Kaiser< T, D > | [inline]
Name() | Vtl::ImAlg::WndFun::Kaiser< T, D > | [inline, static]
operator()(TT x) const | Vtl::ImAlg::WndFun::Kaiser< T, D > | [inline]
result(T x, Loki::Int2Type< 0 >) const | Vtl::ImAlg::WndFun::Kaiser< T, D > | [inline, private]
right() const | Vtl::ImAlg::WndFun::Kaiser< T, D > | [inline]
size() const | Vtl::ImAlg::WndFun::Kaiser< T, D > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Nuttall< T, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Nuttall< T, D >, включая наследуемые из базового класса

arg_type typedef | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > |
center() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
cof() | Vtl::ImAlg::WndFun::Nuttall< T, D > | [inline, private, static]
common_Trig(TT size_, TTT *a) | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
left() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
Name() | Vtl::ImAlg::WndFun::Nuttall< T, D > | [inline, static]
Nuttall(TT size_) | Vtl::ImAlg::WndFun::Nuttall< T, D > | [inline]
operator()(TT x) const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
right() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]
size() const | Vtl::ImAlg::WndFun::common_Trig< T, D, 3 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Rect< T, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Rect< T, D >, включая наследуемые из базового класса

Name() | Vtl::ImAlg::WndFun::Rect< T, D > | [inline, static]
operator()(TT x) const | Vtl::ImAlg::WndFun::Rect< T, D > | [inline]
Rect(TT size_) | Vtl::ImAlg::WndFun::Rect< T, D > | [inline]
result(T x, Loki::Int2Type< 0 >) const | Vtl::ImAlg::WndFun::Rect< T, D > | [inline, private]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Sinc< T, 0 > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Sinc< T, 0 >, включая наследуемые из базового класса

arg_type typedef | Vtl::ImAlg::WndFun::Sinc< T, 0 > |
c | Vtl::ImAlg::WndFun::Sinc< T, 0 > | [private]
center() const | Vtl::ImAlg::WndFun::Sinc< T, 0 > | [inline]
half_cent | Vtl::ImAlg::WndFun::Sinc< T, 0 > | [private]
half_width | Vtl::ImAlg::WndFun::Sinc< T, 0 > | [private]
left() const | Vtl::ImAlg::WndFun::Sinc< T, 0 > | [inline]
Name() | Vtl::ImAlg::WndFun::Sinc< T, 0 > | [inline, static]
operator()(TT x) const | Vtl::ImAlg::WndFun::Sinc< T, 0 > | [inline]
right() const | Vtl::ImAlg::WndFun::Sinc< T, 0 > | [inline]
sinc(T x) | Vtl::ImAlg::WndFun::Sinc< T, 0 > | [inline, private, static]
Sinc(TT half_central_size, TTT N_lobes) | Vtl::ImAlg::WndFun::Sinc< T, 0 > | [inline]
size() const | Vtl::ImAlg::WndFun::Sinc< T, 0 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Img::BuildIter1DList< T_Layout > Cписок членов класса

Полный список членов класса Vtl::Img::BuildIter1DList< T_Layout >, включая наследуемые из базового класса

BandsIterator typedef | Vtl::Img::BuildIter1DList< T_Layout > |
IList typedef | Vtl::Img::BuildIter1DList< T_Layout > | [private]
ND элементы перечисления | Vtl::Img::BuildIter1DList< T_Layout > | [private]
Result typedef | Vtl::Img::BuildIter1DList< T_Layout > |
value_type typedef | Vtl::Img::BuildIter1DList< T_Layout > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Img::Image< P, planes, interleave > Cписок членов класса

Полный список членов класса Vtl::Img::Image< P, planes, interleave >, включая наследуемые из базового класса

Bits() const | Vtl::Img::ImageBase< P, planes, interleave > | [inline]
check_idl_propere(ImageDataLayout *idl_) | Vtl::Img::ImageBase< P, planes, interleave > | [inline, protected]
check_img_info_propere() | Vtl::Img::Image< P, planes, interleave > | [inline, private]
Vtl::Img::ImageBase::check_img_info_propere(const ImageInfo &info) | Vtl::Img::ImageBase< P, planes, interleave > | [inline, protected]
check_img_interleave(ImageDataLayout *idl_) | Vtl::Img::ImageBase< P, planes, interleave > | [inline, protected]
GetPlane(int plane) | Vtl::Img::Image< P, planes, interleave > | [inline]
Height() const | Vtl::Img::ImageBase< P, planes, interleave > | [inline]
iClass() const | Vtl::Img::ImageBase< P, planes, interleave > | [inline]
idl | Vtl::Img::ImageBase< P, planes, interleave > | [protected]
Image(ImageDataLayout *idl_) | Vtl::Img::Image< P, planes, interleave > | [inline]
ImageBase(ImageDataLayout *idl_) | Vtl::Img::ImageBase< P, planes, interleave > | [inline]
nls | Vtl::Img::Image< P, planes, interleave > | [private]
operator[](int y) | Vtl::Img::Image< P, planes, interleave > | [inline]
Planes() const | Vtl::Img::ImageBase< P, planes, interleave > | [inline]
raw_data | Vtl::Img::Image< P, planes, interleave > | [private]
Width() const | Vtl::Img::ImageBase< P, planes, interleave > | [inline]
~Image() | Vtl::Img::Image< P, planes, interleave > | [inline, virtual]
~ImageBase() | Vtl::Img::ImageBase< P, planes, interleave > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Img::Image< P, planes, BIP > Cписок членов класса

Полный список членов класса Vtl::Img::Image< P, planes, BIP >, включая наследуемые из базового класса

Bits() const | Vtl::Img::ImageBase< P, planes, BIP > | [inline]
check_idl_propere(ImageDataLayout *idl_) | Vtl::Img::ImageBase< P, planes, BIP > | [inline, protected]
check_img_info_propere(const ImageInfo &info) | Vtl::Img::ImageBase< P, planes, BIP > | [inline, protected]
check_img_interleave(ImageDataLayout *idl_) | Vtl::Img::ImageBase< P, planes, BIP > | [inline, protected]
Height() const | Vtl::Img::ImageBase< P, planes, BIP > | [inline]
iClass() const | Vtl::Img::ImageBase< P, planes, BIP > | [inline]
idl | Vtl::Img::ImageBase< P, planes, BIP > | [protected]
Image(ImageDataLayout *idl_) | Vtl::Img::Image< P, planes, BIP > | [inline]
ImageBase(ImageDataLayout *idl_) | Vtl::Img::ImageBase< P, planes, BIP > | [inline]
Planes() const | Vtl::Img::ImageBase< P, planes, BIP > | [inline]
Width() const | Vtl::Img::ImageBase< P, planes, BIP > | [inline]
~Image() | Vtl::Img::Image< P, planes, BIP > | [inline, virtual]
~ImageBase() | Vtl::Img::ImageBase< P, planes, BIP > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Img::Image< P, planes, SEP > Cписок членов класса

Полный список членов класса Vtl::Img::Image< P, planes, SEP >, включая наследуемые из базового класса

Bits() const | Vtl::Img::ImageBase< P, planes, SEP > | [inline]
check_idl_propere(ImageDataLayout *idl_) | Vtl::Img::ImageBase< P, planes, SEP > | [inline, protected]
check_img_info_propere(const ImageInfo &info) | Vtl::Img::ImageBase< P, planes, SEP > | [inline, protected]
check_img_interleave(ImageDataLayout *idl_) | Vtl::Img::ImageBase< P, planes, SEP > | [inline, protected]
Height() const | Vtl::Img::ImageBase< P, planes, SEP > | [inline]
iClass() const | Vtl::Img::ImageBase< P, planes, SEP > | [inline]
idl | Vtl::Img::ImageBase< P, planes, SEP > | [protected]
Image(ImageDataLayout *idl_) | Vtl::Img::Image< P, planes, SEP > | [inline]
ImageBase(ImageDataLayout *idl_) | Vtl::Img::ImageBase< P, planes, SEP > | [inline]
Planes() const | Vtl::Img::ImageBase< P, planes, SEP > | [inline]
Width() const | Vtl::Img::ImageBase< P, planes, SEP > | [inline]
~Image() | Vtl::Img::Image< P, planes, SEP > | [inline, virtual]
~ImageBase() | Vtl::Img::ImageBase< P, planes, SEP > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Img::ImageBase< P, planes, interleave > Cписок членов класса

Полный список членов класса Vtl::Img::ImageBase< P, planes, interleave >, включая наследуемые из базового класса

Bits() const | Vtl::Img::ImageBase< P, planes, interleave > | [inline]
check_idl_propere(ImageDataLayout *idl_) | Vtl::Img::ImageBase< P, planes, interleave > | [inline, protected]
check_img_info_propere(const ImageInfo &info) | Vtl::Img::ImageBase< P, planes, interleave > | [inline, protected]
check_img_interleave(ImageDataLayout *idl_) | Vtl::Img::ImageBase< P, planes, interleave > | [inline, protected]
Height() const | Vtl::Img::ImageBase< P, planes, interleave > | [inline]
iClass() const | Vtl::Img::ImageBase< P, planes, interleave > | [inline]
idl | Vtl::Img::ImageBase< P, planes, interleave > | [protected]
ImageBase(ImageDataLayout *idl_) | Vtl::Img::ImageBase< P, planes, interleave > | [inline]
Planes() const | Vtl::Img::ImageBase< P, planes, interleave > | [inline]
Width() const | Vtl::Img::ImageBase< P, planes, interleave > | [inline]
~ImageBase() | Vtl::Img::ImageBase< P, planes, interleave > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Img::ImageDataLayoutHolder Cписок членов класса

Полный список членов класса Vtl::Img::ImageDataLayoutHolder, включая наследуемые из базового класса

buf | Vtl::Img::ImageDataLayoutHolder | [private]
idl | Vtl::Img::ImageDataLayoutHolder | [private]
ImageDataLayoutHolder(const ImageInfo &inf) | Vtl::Img::ImageDataLayoutHolder | [inline]
Layout() | Vtl::Img::ImageDataLayoutHolder | [inline]
set_BIL_data(T *data, int samples_per_row) | Vtl::Img::ImageDataLayoutHolder | [inline]
set_BIP_data(T *data, int samples_per_row) | Vtl::Img::ImageDataLayoutHolder | [inline]
set_BSQ_data(T *data, int samples_per_row, int next_band_shift=0) | Vtl::Img::ImageDataLayoutHolder | [inline]
set_Palette() | Vtl::Img::ImageDataLayoutHolder | [inline]
set_SEP_data(int plane, T *data, int samples_per_row) | Vtl::Img::ImageDataLayoutHolder | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy > Cписок членов класса

Полный список членов класса Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >, включая наследуемые из базового класса

idl | Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy > | [private]
ImageHolder(int width, int height, int bits, ImageClass iclass) | Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy > | [inline]
ImageHolder() | Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy > | [inline]
~ImageHolder() | Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Img::ImageNDref< T_SList, T_Layout > Cписок членов класса

Полный список членов класса Vtl::Img::ImageNDref< T_SList, T_Layout >, включая наследуемые из базового класса

data | Vtl::Img::ImageNDref< T_SList, T_Layout > | [private]
ImageNDref(value_type *data_, const T_SList &size_list, const T_Layout &layout_) | Vtl::Img::ImageNDref< T_SList, T_Layout > | [inline]
ImageNDref() | Vtl::Img::ImageNDref< T_SList, T_Layout > | [inline]
Iter1DList typedef | Vtl::Img::ImageNDref< T_SList, T_Layout > | [private]
IterND typedef | Vtl::Img::ImageNDref< T_SList, T_Layout > |
layout | Vtl::Img::ImageNDref< T_SList, T_Layout > | [private]
Ndim элементы перечисления | Vtl::Img::ImageNDref< T_SList, T_Layout > |
NIter() const | Vtl::Img::ImageNDref< T_SList, T_Layout > | [inline]
sizes | Vtl::Img::ImageNDref< T_SList, T_Layout > | [private]
value_type typedef | Vtl::Img::ImageNDref< T_SList, T_Layout > | [private]
value_type typedef | Vtl::Img::ImageNDref< T_SList, T_Layout > | [private]
~ImageNDref() | Vtl::Img::ImageNDref< T_SList, T_Layout > | [inline, virtual]
~ImageNDref() | Vtl::Img::ImageNDref< T_SList, T_Layout > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Img::ImageStorageStrategyNew< T > Cписок членов класса

Полный список членов класса Vtl::Img::ImageStorageStrategyNew< T >, включая наследуемые из базового класса

Create(int size) | Vtl::Img::ImageStorageStrategyNew< T > | [inline]
Destroy(T *data) | Vtl::Img::ImageStorageStrategyNew< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_1D< T, T_stride > Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_1D< T, T_stride >, включая наследуемые из базового класса

data | Vtl::Img::Iterator_1D< T, T_stride > | [private]
Iterator_1D() | Vtl::Img::Iterator_1D< T, T_stride > | [inline]
Iterator_1D(T *data_) | Vtl::Img::Iterator_1D< T, T_stride > | [inline]
operator *() | Vtl::Img::Iterator_1D< T, T_stride > | [inline]
operator *() const | Vtl::Img::Iterator_1D< T, T_stride > | [inline]
operator++() | Vtl::Img::Iterator_1D< T, T_stride > | [inline]
operator+=(offset_type i) | Vtl::Img::Iterator_1D< T, T_stride > | [inline]
operator--() | Vtl::Img::Iterator_1D< T, T_stride > | [inline]
operator-=(offset_type i) | Vtl::Img::Iterator_1D< T, T_stride > | [inline]
operator[](offset_type i) | Vtl::Img::Iterator_1D< T, T_stride > | [inline]
operator[](offset_type i) const | Vtl::Img::Iterator_1D< T, T_stride > | [inline]
stride элементы перечисления | Vtl::Img::Iterator_1D< T, T_stride > |
value_type typedef | Vtl::Img::Iterator_1D< T, T_stride > |


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_1D< T, 0 > Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_1D< T, 0 >, включая наследуемые из базового класса

data | Vtl::Img::Iterator_1D< T, 0 > | [private]
Iterator_1D() | Vtl::Img::Iterator_1D< T, 0 > | [inline]
Iterator_1D(T *data_, offset_type stride_) | Vtl::Img::Iterator_1D< T, 0 > | [inline]
operator *() | Vtl::Img::Iterator_1D< T, 0 > | [inline]
operator *() const | Vtl::Img::Iterator_1D< T, 0 > | [inline]
operator++() | Vtl::Img::Iterator_1D< T, 0 > | [inline]
operator+=(offset_type i) | Vtl::Img::Iterator_1D< T, 0 > | [inline]
operator--() | Vtl::Img::Iterator_1D< T, 0 > | [inline]
operator-=(offset_type i) | Vtl::Img::Iterator_1D< T, 0 > | [inline]
operator[](offset_type i) | Vtl::Img::Iterator_1D< T, 0 > | [inline]
operator[](offset_type i) const | Vtl::Img::Iterator_1D< T, 0 > | [inline]
stride | Vtl::Img::Iterator_1D< T, 0 > |
value_type typedef | Vtl::Img::Iterator_1D< T, 0 > |


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_ND< T_Layout > Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_ND< T_Layout >, включая наследуемые из базового класса

Iterator_ND(T_Layout strides_) Vtl::Img::Iterator_ND< T_Layout > [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >, включая наследуемые из базового класса

data | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > | [protected]
IList typedef | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > |
isGray элементы перечисления | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > |
Iterator_ND_base(T_Layout strides_) | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > | [inline]
MoveXList typedef | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > | [protected]
Ndim элементы перечисления | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > |
offset | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > | [protected]
print() | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > | [inline]
SList typedef | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > |
value_type typedef | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > |
x() | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList, включая наследуемые из базового класса

IList typedef | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList | [private]
ND элементы перечисления | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList | [private]
Result typedef | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList |
value_type typedef | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >, включая наследуемые из базового класса

base | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > | [private]
MoveX(Iterator_ND_base &base_, offset_type) | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > | [inline]
ofs() | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > | [inline, private]
operator!=(const MoveX &rhs) const | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > | [inline]
operator++() | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > | [inline]
operator+=(offset_type move_by) | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > | [inline]
operator--() | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > | [inline]
operator-=(offset_type i) | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > | [inline]
operator==(const MoveX &rhs) const | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >, включая наследуемые из базового класса

base | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > | [private]
MoveX(Iterator_ND_base &base_, offset_type stride_) | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > | [inline]
ofs() | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > | [inline, private]
operator!=(const MoveX &rhs) const | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > | [inline]
operator++() | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > | [inline]
operator+=(offset_type move_by) | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > | [inline]
operator--() | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > | [inline]
operator-=(offset_type i) | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > | [inline]
operator==(const MoveX &rhs) const | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > | [inline]
stride | Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_ND_spec< T_Layout, false, false > Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_ND_spec< T_Layout, false, false >, включая наследуемые из базового класса

BandsIterator typedef | Vtl::Img::Iterator_ND_spec< T_Layout, false, false > |
data | Vtl::Img::Iterator_ND_base< T_Layout, false > | [protected]
IList typedef | Vtl::Img::Iterator_ND_base< T_Layout, false > |
isGray элементы перечисления | Vtl::Img::Iterator_ND_base< T_Layout, false > |
Iter1DList typedef | Vtl::Img::Iterator_ND_spec< T_Layout, false, false > |
Iterator_ND_base(T_Layoutstrides_) | Vtl::Img::Iterator_ND_base< T_Layout, false > | [inline]
Iterator_ND_spec(T_Layout strides_) | Vtl::Img::Iterator_ND_spec< T_Layout, false, false > | [inline]
MoveXList typedef | Vtl::Img::Iterator_ND_base< T_Layout, false > | [protected]
Ndim элементы перечисления | Vtl::Img::Iterator_ND_base< T_Layout, false > |
offset | Vtl::Img::Iterator_ND_base< T_Layout, false > | [protected]
ofs() const | Vtl::Img::Iterator_ND_spec< T_Layout, false, false > | [inline, private]
operator *() | Vtl::Img::Iterator_ND_spec< T_Layout, false, false > | [inline]
print() | Vtl::Img::Iterator_ND_base< T_Layout, false > | [inline]
SList typedef | Vtl::Img::Iterator_ND_base< T_Layout, false > |
value_type typedef | Vtl::Img::Iterator_ND_base< T_Layout, false > |
x() | Vtl::Img::Iterator_ND_base< T_Layout, false > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_ND_spec< T_Layout, false, true > Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_ND_spec< T_Layout, false, true >, включая наследуемые из базового класса

BandsIterator typedef | Vtl::Img::Iterator_ND_spec< T_Layout, false, true > |
data | Vtl::Img::Iterator_ND_base< T_Layout, false > | [protected]
IList typedef | Vtl::Img::Iterator_ND_base< T_Layout, false > |
isGray элементы перечисления | Vtl::Img::Iterator_ND_base< T_Layout, false > |
Iter1DList typedef | Vtl::Img::Iterator_ND_spec< T_Layout, false, true > |
Iterator_ND_base(T_Layoutstrides_) | Vtl::Img::Iterator_ND_base< T_Layout, false > | [inline]
Iterator_ND_spec(T_Layout strides_) | Vtl::Img::Iterator_ND_spec< T_Layout, false, true > | [inline]
MoveXList typedef | Vtl::Img::Iterator_ND_base< T_Layout, false > | [protected]
Ndim элементы перечисления | Vtl::Img::Iterator_ND_base< T_Layout, false > |
offset | Vtl::Img::Iterator_ND_base< T_Layout, false > | [protected]
ofs() const | Vtl::Img::Iterator_ND_spec< T_Layout, false, true > | [inline, private]
operator *() | Vtl::Img::Iterator_ND_spec< T_Layout, false, true > | [inline]
print() | Vtl::Img::Iterator_ND_base< T_Layout, false > | [inline]
SList typedef | Vtl::Img::Iterator_ND_base< T_Layout, false > |
value_type typedef | Vtl::Img::Iterator_ND_base< T_Layout, false > |
x() | Vtl::Img::Iterator_ND_base< T_Layout, false > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_ND_spec< T_Layout, true, false > Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_ND_spec< T_Layout, true, false >, включая наследуемые из базового класса

data | Vtl::Img::Iterator_ND_base< T_Layout, true > | [protected]
IList typedef | Vtl::Img::Iterator_ND_base< T_Layout, true > |
isGray элементы перечисления | Vtl::Img::Iterator_ND_base< T_Layout, true > |
Iterator_ND_base(T_Layoutstrides_) | Vtl::Img::Iterator_ND_base< T_Layout, true > | [inline]
Iterator_ND_spec(T_Layout strides_) | Vtl::Img::Iterator_ND_spec< T_Layout, true, false > | [inline]
MoveXList typedef | Vtl::Img::Iterator_ND_base< T_Layout, true > | [protected]
Ndim элементы перечисления | Vtl::Img::Iterator_ND_base< T_Layout, true > |
offset | Vtl::Img::Iterator_ND_base< T_Layout, true > | [protected]
ofs() const | Vtl::Img::Iterator_ND_spec< T_Layout, true, false > | [inline, private]
operator *() | Vtl::Img::Iterator_ND_spec< T_Layout, true, false > | [inline]
print() | Vtl::Img::Iterator_ND_base< T_Layout, true > | [inline]
SList typedef | Vtl::Img::Iterator_ND_base< T_Layout, true > |
value_type typedef | Vtl::Img::Iterator_ND_base< T_Layout, true > |
x() | Vtl::Img::Iterator_ND_base< T_Layout, true > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_ND_spec< T_Layout, true, true > Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_ND_spec< T_Layout, true, true >, включая наследуемые из базового класса

data | Vtl::Img::Iterator_ND_base< T_Layout, true > | [protected]
IList typedef | Vtl::Img::Iterator_ND_base< T_Layout, true > |
isGray элементы перечисления | Vtl::Img::Iterator_ND_base< T_Layout, true > |
Iterator_ND_base(T_Layoutstrides_) | Vtl::Img::Iterator_ND_base< T_Layout, true > | [inline]
Iterator_ND_spec(T_Layout strides_) | Vtl::Img::Iterator_ND_spec< T_Layout, true, true > | [inline]
MoveXList typedef | Vtl::Img::Iterator_ND_base< T_Layout, true > | [protected]
Ndim элементы перечисления | Vtl::Img::Iterator_ND_base< T_Layout, true > |
offset | Vtl::Img::Iterator_ND_base< T_Layout, true > | [protected]
ofs() const | Vtl::Img::Iterator_ND_spec< T_Layout, true, true > | [inline, private]
operator *() | Vtl::Img::Iterator_ND_spec< T_Layout, true, true > | [inline]
print() | Vtl::Img::Iterator_ND_base< T_Layout, true > | [inline]
SList typedef | Vtl::Img::Iterator_ND_base< T_Layout, true > |
value_type typedef | Vtl::Img::Iterator_ND_base< T_Layout, true > |
x() | Vtl::Img::Iterator_ND_base< T_Layout, true > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Img::pic_plane< pel, stride > Cписок членов класса

Полный список членов класса Vtl::Img::pic_plane< pel, stride >, включая наследуемые из базового класса

operator pel *() | Vtl::Img::pic_plane< pel, stride > | [inline]
operator++() | Vtl::Img::pic_plane< pel, stride > | [inline]
operator+=(int i) | Vtl::Img::pic_plane< pel, stride > | [inline]
operator--() | Vtl::Img::pic_plane< pel, stride > | [inline]
operator-=(int i) | Vtl::Img::pic_plane< pel, stride > | [inline]
pic_plane(pel *p) | Vtl::Img::pic_plane< pel, stride > | [inline]
plane(int p) const | Vtl::Img::pic_plane< pel, stride > | [inline]
ptr | Vtl::Img::pic_plane< pel, stride > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::Align< T, sz, align_to > Cписок членов класса

Полный список членов класса Vtl::Meta::Align< T, sz, align_to >, включая наследуемые из базового класса

is_next элементы перечисления | Vtl::Meta::Align< T, sz, align_to > | [private]
value элементы перечисления | Vtl::Meta::Align< T, sz, align_to > |


Pipe Line Filters: Cписок членов класса

Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to > Cписок членов класса

Полный список членов класса Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >, включая наследуемые из базового класса

bands_stride элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to > | [private]
bbstride элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to > | [private]
Result typedef | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to > |
SS typedef | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to > | [private]
sz элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to > | [private]
Temp typedef | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::det< Matrix > Cписок членов класса

Полный список членов класса Vtl::Meta::det< Matrix >, включая наследуемые из базового класса

A | Vtl::Meta::det< Matrix > | [private]
a() | Vtl::Meta::det< Matrix > | [inline, private]
det(const Matrix &mat) | Vtl::Meta::det< Matrix > | [inline]
f() | Vtl::Meta::det< Matrix > | [inline]
mul(Loki::Int2Type< i >) | Vtl::Meta::det< Matrix > | [inline, private]
mul(Loki::Int2Type< 0 >) | Vtl::Meta::det< Matrix > | [inline, private]
result | Vtl::Meta::det< Matrix > |
value_type typedef | Vtl::Meta::det< Matrix > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::det_poly_coef< Matrix, N > Cписок членов класса

Полный список членов класса Vtl::Meta::det_poly_coef< Matrix, N >, включая наследуемые из базового класса

A | Vtl::Meta::det_poly_coef< Matrix, N > | [private]
ab(Loki::Int2Type< 0 >) | Vtl::Meta::det_poly_coef< Matrix, N > | [inline, private]
ab(Loki::Int2Type< 1 >) | Vtl::Meta::det_poly_coef< Matrix, N > | [inline, private]
ab() | Vtl::Meta::det_poly_coef< Matrix, N > | [inline, private]
B | Vtl::Meta::det_poly_coef< Matrix, N > | [private]
coef | Vtl::Meta::det_poly_coef< Matrix, N > |
comp(Loki::Int2Type< 1 >) | Vtl::Meta::det_poly_coef< Matrix, N > | [inline, private]
comp(Loki::Int2Type< 0 >) | Vtl::Meta::det_poly_coef< Matrix, N > | [inline, private]
det_poly_coef(const Matrix &A_, const Matrix &B_) | Vtl::Meta::det_poly_coef< Matrix, N > | [inline]
f() | Vtl::Meta::det_poly_coef< Matrix, N > | [inline]
mask элементы перечисления | Vtl::Meta::det_poly_coef< Matrix, N > | [private]
mul(Loki::Int2Type< i >) | Vtl::Meta::det_poly_coef< Matrix, N > | [inline, private]
mul(Loki::Int2Type< 0 >) | Vtl::Meta::det_poly_coef< Matrix, N > | [inline, private]
one_comp() | Vtl::Meta::det_poly_coef< Matrix, N > | [inline, private]
T typedef | Vtl::Meta::det_poly_coef< Matrix, N > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::EnumTraits Cписок членов класса

Полный список членов класса Vtl::Meta::EnumTraits, включая наследуемые из базового класса

bits элементы перечисления | Vtl::Meta::EnumTraits
isSigned элементы перечисления | Vtl::Meta::EnumTraits
max элементы перечисления | Vtl::Meta::EnumTraits
min элементы перечисления | Vtl::Meta::EnumTraits


Pipe Line Filters: Cписок членов класса

Vtl::Meta::Layout< T, IList > Cписок членов класса

Полный список членов класса Vtl::Meta::Layout< T, IList >, включая наследуемые из базового класса

Bands() const | Vtl::Meta::Layout< T, IList > | [inline]
Base typedef | Vtl::Meta::Layout< T, IList > | [private]
hasInts элементы перечисления | Vtl::Meta::Impl::SizeList_base_0< IList, sz > | [private]
IList typedef | Vtl::Meta::SizeList_base< IList > | [private]
isEnum() const | Vtl::Meta::SizeList_base< IList > | [inline, private]
isGray элементы перечисления | Vtl::Meta::Layout< T, IList > |
Layout() | Vtl::Meta::Layout< T, IList > | [inline]
LayoutListDefault class | Vtl::Meta::Layout< T, IList > | [friend]
Ndim элементы перечисления | Vtl::Meta::Layout< T, IList > |
non_enums | Vtl::Meta::Impl::SizeList_base_0< IList, sz > | [private]
print(std::ostream &os, const Layout< T, IList > &lay) | Vtl::Meta::Layout< T, IList > | [friend]
set(int value) | Vtl::Meta::SizeList_base< IList > | [inline, private]
set_all(int i_0, int i_1=-1, int i_2=-1, int i_3=-1, int i_4=-1, int i_5=-1, int i_6=-1, int i_7=-1, int i_8=-1, int i_9=-1, int i_10=-1, int i_11=-1, int i_12=-1, int i_13=-1, int i_14=-1, int i_15=-1, int i_16=-1, int i_17=-1, int i_18=-1, int i_19=-1) | Vtl::Meta::SizeList_base< IList > | [inline, private]
size элементы перечисления | Vtl::Meta::SizeList_base< IList > | [private]
SList typedef | Vtl::Meta::Layout< T, IList > |
stride() const | Vtl::Meta::Layout< T, IList > | [inline]
stride_band() const | Vtl::Meta::Layout< T, IList > | [inline]
value элементы перечисления | Vtl::Meta::Layout< T, IList > |
value_type typedef | Vtl::Meta::Layout< T, IList > |
x() const | Vtl::Meta::SizeList_base< IList > | [inline, private]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > Cписок членов класса

Полный список членов класса Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >, включая наследуемые из базового класса

build(const SZList &sl, int nbands, Loki::Int2Type< i >) | Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > | [inline, private]
build(const SZList &sl, int nbands, Loki::Int2Type< 0 >) | Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > | [inline, private]
build(const SZList &sl, int nbands, Loki::Int2Type< strides_size-1 >) | Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > | [inline, private]
IList typedef | Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > |
LayoutListDefault(SZList sl, int nbands) | Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > | [inline]
LayoutType typedef | Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > |
ndim элементы перечисления | Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > |
operator LayoutType() const | Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > | [inline]
strides | Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > |
strides_size элементы перечисления | Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > |


Pipe Line Filters: Cписок членов класса

Vtl::Meta::SizeList< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 > Cписок членов класса

Полный список членов класса Vtl::Meta::SizeList< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >, включая наследуемые из базового класса

hasInts элементы перечисления | Vtl::Meta::Impl::SizeList_base_0< T_IList, IL::Count< 0, T_IList >::value > | [protected]
IList typedef | Vtl::Meta::SizeList_base< T_IList > |
isEnum() const | Vtl::Meta::SizeList_base< T_IList > | [inline]
non_enums | Vtl::Meta::Impl::SizeList_base_0< T_IList, IL::Count< 0, T_IList >::value > | [protected]
set(int value) | Vtl::Meta::SizeList_base< T_IList > | [inline]
set_all(int i_0, int i_1=-1, int i_2=-1, int i_3=-1, int i_4=-1, int i_5=-1, int i_6=-1, int i_7=-1, int i_8=-1, int i_9=-1, int i_10=-1, int i_11=-1, int i_12=-1, int i_13=-1, int i_14=-1, int i_15=-1, int i_16=-1, int i_17=-1, int i_18=-1, int i_19=-1) | Vtl::Meta::SizeList_base< T_IList > | [inline]
size элементы перечисления | Vtl::Meta::SizeList_base< T_IList > |
SizeList(int i_0, int i_1=-1, int i_2=-1, int i_3=-1, int i_4=-1, int i_5=-1, int i_6=-1, int i_7=-1, int i_8=-1, int i_9=-1, int i_10=-1, int i_11=-1, int i_12=-1, int i_13=-1, int i_14=-1, int i_15=-1, int i_16=-1, int i_17=-1, int i_18=-1, int i_19=-1) | Vtl::Meta::SizeList< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 > | [inline]
x() const | Vtl::Meta::SizeList_base< T_IList > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ > Cписок членов класса

Полный список членов класса Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >, включая наследуемые из базового класса

N элементы перечисления | Vtl::NumAlg::Implicit::Sort_base< N_ > |
operator const int *() const | Vtl::NumAlg::Implicit::Sort_base< N_ > | [inline]
operator[](int i) const | Vtl::NumAlg::Implicit::Sort_base< N_ > | [inline]
Sort(const Vector &v) | Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ > | [inline]
Sort(const Vector &v, const Pred2_ &p) | Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ > | [inline]
Sort_base(const Pred2_ &p, int) | Vtl::NumAlg::Implicit::Sort_base< N_ > | [inline]
value_type typedef | Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ > |
Vector typedef | Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ > |


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::Implicit::Sort_base< N_ > Cписок членов класса

Полный список членов класса Vtl::NumAlg::Implicit::Sort_base< N_ >, включая наследуемые из базового класса

index | Vtl::NumAlg::Implicit::Sort_base< N_ > | [private]
N элементы перечисления | Vtl::NumAlg::Implicit::Sort_base< N_ > |
operator const int *() const | Vtl::NumAlg::Implicit::Sort_base< N_ > | [inline]
operator[](int i) const | Vtl::NumAlg::Implicit::Sort_base< N_ > | [inline]
Sort_base(const Pred2_ &p, int) | Vtl::NumAlg::Implicit::Sort_base< N_ > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::Implicit::Sort_base< 0 > Cписок членов класса

Полный список членов класса Vtl::NumAlg::Implicit::Sort_base< 0 >, включая наследуемые из базового класса

index | Vtl::NumAlg::Implicit::Sort_base< 0 > | [private]
N | Vtl::NumAlg::Implicit::Sort_base< 0 > |
operator const int *() const | Vtl::NumAlg::Implicit::Sort_base< 0 > | [inline]
operator[](int i) const | Vtl::NumAlg::Implicit::Sort_base< 0 > | [inline]
Sort_base(const Pred2_ &p, int n) | Vtl::NumAlg::Implicit::Sort_base< 0 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T >, включая наследуемые из базового класса

ClalcF1F2conj(T data[]) | Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T > | [inline]
data_ | Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T > | [private]
operator()(I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf) | Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T > | [inline]
operator()(I k, Loki::Int2Type< upper_half >) | Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >, включая наследуемые из базового класса

ClalcF1F2conj(T re[], T im[]) | Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T > | [inline]
im_ | Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T > | [private]
operator()(I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf) | Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T > | [inline]
operator()(I k, Loki::Int2Type< upper_half >) | Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T > | [inline]
re_ | Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >, включая наследуемые из базового класса

extract_(I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf, Loki::Int2Type< 0 >) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline, private]
extract_(I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf, Loki::Int2Type< 1 >) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline, private]
extract_(I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf, Loki::Int2Type< 2 >) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline, private]
im | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [private]
im1 | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [private]
im2 | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [private]
operator()(I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline]
operator()(I k, Loki::Int2Type< upper_half > up_hlf) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline]
re | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [private]
re1 | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [private]
re2 | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [private]
set_1(T r1, T i1, I plus_k, I minus_k, Loki::Int2Type< true > up_hlf, Loki::Int2Type< 0 >) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline, private]
set_1(T r1, T i1, I plus_k, I minus_k, Loki::Int2Type< false > up_hlf, Loki::Int2Type< 0 >) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline, private]
set_1(T r1, T i1, I plus_k, I minus_k, Loki::Int2Type< false >, Loki::Int2Type< 1 >) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline, private]
set_2(T r2, T i2, I plus_k, I minus_k, Loki::Int2Type< true > up_hlf, Loki::Int2Type< 0 >) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline, private]
set_2(T r2, T i2, I plus_k, I minus_k, Loki::Int2Type< false > up_hlf, Loki::Int2Type< 0 >) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline, private]
set_2(T r2, T i2, I plus_k, I minus_k, Loki::Int2Type< false >, Loki::Int2Type< 1 >) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline, private]
set_zero(I k, Loki::Int2Type< true >) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline, private]
set_zero(I k, Loki::Int2Type< false >) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline, private]
SplitEvenOdd(T Q_re[], T Q_im[], T re_1[], T im_1[], T re_2[], T im_2[]) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline]
SplitEvenOdd(T Q_re[], T Q_im[], T re_12[], T im_12[]) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline]
SplitEvenOdd(T Q_re[], T Q_im[], T re_1[], T im_1[], T re_2[], T im_2[], size_t n[]) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline]
SplitEvenOdd(T Q_re[], T Q_im[], T re_dest[], T im_dest[], size_t n[]) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline]
zero(I k, Loki::Int2Type< 0 >) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline, private]
zero(I k, Loki::Int2Type< 1 >) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline, private]
zero(I k, Loki::Int2Type< 2 >) | Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > | [inline, private]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >, включая наследуемые из базового класса

amp_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > | [private]
Hartley2Amp(T hartley[], T amp[]) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > | [inline]
hartley_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > | [private]
operator()(I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > | [inline]
operator()(I k, Loki::Int2Type< false >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > | [inline]
operator()(I k, Loki::Int2Type< true >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > | [inline]
set_amp(I plus_k, I minus_k, T amplitude) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > | [inline, private]
set_amp(I plus_k, I minus_k, T amplitude, Loki::Int2Type< true >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > | [inline, private]
set_amp(I plus_k, I minus_k, T amplitude, Loki::Int2Type< false >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > | [inline, private]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >, включая наследуемые из базового класса

amp_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T > | [private]
Hartley2AmpDown(T hartley[], T amp[], size_t n[]) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T > | [inline]
hartley_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T > | [private]
operator()(I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T > | [inline]
operator()(I k, Loki::Int2Type< false >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T > | [inline]
operator()(I k, Loki::Int2Type< true >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T > | [inline]
set_amp(I plus_k, I minus_k, T amplitude, Loki::Int2Type< true >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T > | [inline, private]
set_amp(I plus_k, I minus_k, T amplitude, Loki::Int2Type< false >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T > | [inline, private]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >, включая наследуемые из базового класса

data_in_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T > | [private]
data_out_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T > | [private]
Hartley2Im(T data_in[], T data_out[]) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T > | [inline]
operator()(I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T > | [inline]
operator()(I k, Loki::Int2Type< upper_half >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T >, включая наследуемые из базового класса

data_in_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T > | [private]
data_out_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T > | [private]
Hartley2Modul(T data_in[], T data_out[]) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T > | [inline]
operator()(I plus_k, I minus_k) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T > | [inline]
operator()(I plus_k) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >, включая наследуемые из базового класса

Hartley2Phase(T hartley[], T phase[]) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T > | [inline]
Hartley2Phase(T hartley_phase[]) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T > | [inline]
hartley_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T > | [private]
operator()(I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T > | [inline]
operator()(I k, Loki::Int2Type< upper_half >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T > | [inline]
phase_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >, включая наследуемые из базового класса

amp_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > | [private]
Hartley2PhaseAmp(T hartley[], T amp[], T phase[]) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > | [inline]
Hartley2PhaseAmp(T hartley[], T amp[], T phase[], unsigned ndim, size_t n[]) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > | [inline]
Hartley2PhaseAmp(T hartley_phase[], T amp[]) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > | [inline]
Hartley2PhaseAmp(T hartley_phase[], T amp[], size_t n[]) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > | [inline]
hartley_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > | [private]
operator()(I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > | [inline]
operator()(I k, Loki::Int2Type< false >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > | [inline]
operator()(I k, Loki::Int2Type< true >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > | [inline]
phase_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > | [private]
set_amp(I plus_k, I minus_k, T amplitude) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > | [inline, private]
set_amp(I plus_k, I minus_k, T amplitude, Loki::Int2Type< true >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > | [inline, private]
set_amp(I plus_k, I minus_k, T amplitude, Loki::Int2Type< false >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > | [inline, private]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >, включая наследуемые из базового класса

amp_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > | [private]
Hartley2PhaseAmpDown(T hartley[], T amp[], T phase[], size_t n[]) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > | [inline]
Hartley2PhaseAmpDown(T hartley_phase[], T amp[], size_t n[]) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > | [inline]
hartley_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > | [private]
operator()(I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > | [inline]
operator()(I k, Loki::Int2Type< false >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > | [inline]
operator()(I k, Loki::Int2Type< true >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > | [inline]
phase_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > | [private]
set_amp(I plus_k, I minus_k, T amplitude, Loki::Int2Type< true >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > | [inline, private]
set_amp(I plus_k, I minus_k, T amplitude, Loki::Int2Type< false >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > | [inline, private]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T >, включая наследуемые из базового класса

data_in_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T > | [private]
data_out_ | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T > | [private]
Hartley2Re(T data_in[], T data_out[]) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T > | [inline]
operator()(I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T > | [inline]
operator()(I k, Loki::Int2Type< upper_half >) | Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >, включая наследуемые из базового класса

corr_ | Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > | [private]
hartley1_ | Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > | [private]
hartley2_ | Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > | [private]
operator()(I plus_k, I minus_k, Loki::Int2Type< upper_half > up_hlf) | Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > | [inline]
operator()(I k, Loki::Int2Type< upper_half >) | Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > | [inline]
PhaseCorr(T hartley1[], T hartley2[], T corr[]) | Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >, включая наследуемые из базового класса

amp_ | Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown > | [private]
operator()(I plus_k, I minus_k, Loki::Int2Type< upper_half >) | Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown > | [inline]
operator()(I k, Loki::Int2Type< false >) | Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown > | [inline]
operator()(I k, Loki::Int2Type< true >) | Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown > | [inline]
ReflectHalfToOther(T amp[]) | Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown > | [inline]
set_amp(I plus_k, I minus_k, Loki::Int2Type< true >) | Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown > | [inline, private]
set_amp(I plus_k, I minus_k, Loki::Int2Type< false >) | Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown > | [inline, private]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Utils::F::Test< T > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Utils::F::Test< T >, включая наследуемые из базового класса

data_ | Vtl::NumAlg::IntTransf::Utils::F::Test< T > | [private]
operator()(I plus_k, I minus_k, Loki::Int2Type< upper_half >) | Vtl::NumAlg::IntTransf::Utils::F::Test< T > | [inline]
operator()(I k, Loki::Int2Type< true >) | Vtl::NumAlg::IntTransf::Utils::F::Test< T > | [inline]
operator()(I k, Loki::Int2Type< false >) | Vtl::NumAlg::IntTransf::Utils::F::Test< T > | [inline]
Test(T data[]) | Vtl::NumAlg::IntTransf::Utils::F::Test< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >, включая наследуемые из базового класса

butterfly_fft(R *re, R *im, I i, I j) | Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > | [inline]
butterfly_Hartley(R *even, R *odd, I i, I j) | Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > | [inline]
MultI(R re, R im) const | Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > | [inline]
MultR(R re, R im) const | Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > | [inline]
next() | Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > | [inline]
theta | Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > | [private]
TrigRecurrence(bool reverse, I mmax) | Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > | [inline]
wi | Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > | [private]
wpi | Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > | [private]
wpr | Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > | [private]
wr | Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > | [private]
~TrigRecurrence() | Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::Lin::cholesky Cписок членов класса

Полный список членов класса Vtl::NumAlg::Lin::cholesky, включая наследуемые из базового класса

decomp(const Matrix &A, Matrix &L_) | Vtl::NumAlg::Lin::cholesky | [inline, static]
solve(Matrix &L, const Vector &x) | Vtl::NumAlg::Lin::cholesky | [inline, static]
solve(const Matrix &L, const Matrix2 &X) | Vtl::NumAlg::Lin::cholesky | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::Lin::eigen Cписок членов класса

Полный список членов класса Vtl::NumAlg::Lin::eigen, включая наследуемые из базового класса

cdiv(Real xr, Real xi, Real yr, Real yi, Real &cdivr, Real &cdivi) | Vtl::NumAlg::Lin::eigen | [inline, private, static]
decomp(MatrixType &V, VectorType &eig, VectorType &work) | Vtl::NumAlg::Lin::eigen | [inline, static]
decomp(MatrixType &V, VectorType &eig_real, VectorType &eig_imag, MatrixType &H, VectorType &work) | Vtl::NumAlg::Lin::eigen | [inline, static]
hqr2(int n_this, Vec &d, Vec &e, Mat &V, Mat &H) | Vtl::NumAlg::Lin::eigen | [inline, private, static]
inverse(MatrixType &Ainv, MatrixType &V, VectorType &lambda, double relerr) | Vtl::NumAlg::Lin::eigen | [inline, static]
isSymmetric(const MatrixType &A) | Vtl::NumAlg::Lin::eigen | [inline]
orthes(int n, Vec &d, Vec &e, Mat &V, Mat &H, Vec &ort) | Vtl::NumAlg::Lin::eigen | [inline, private, static]
tql2(int n, Vec &d, Vec &e, Mat &V) | Vtl::NumAlg::Lin::eigen | [inline, private, static]
tred2(int n, Vec &d, Vec &e, Mat &V) | Vtl::NumAlg::Lin::eigen | [inline, private, static]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::Lin::PseudoInverseElem< T > Cписок членов класса

Полный список членов класса Vtl::NumAlg::Lin::PseudoInverseElem< T >, включая наследуемые из базового класса

eps | Vtl::NumAlg::Lin::PseudoInverseElem< T > | [private]
operator()(T &elem) const | Vtl::NumAlg::Lin::PseudoInverseElem< T > | [inline]
PseudoInverseElem(const T &_eps) | Vtl::NumAlg::Lin::PseudoInverseElem< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::Lin::PseudoInverseElemPositive< T > Cписок членов класса

Полный список членов класса Vtl::NumAlg::Lin::PseudoInverseElemPositive< T >, включая наследуемые из базового класса

eps | Vtl::NumAlg::Lin::PseudoInverseElemPositive< T > | [private]
operator()(T &elem) const | Vtl::NumAlg::Lin::PseudoInverseElemPositive< T > | [inline]
PseudoInverseElemPositive(const T &_eps) | Vtl::NumAlg::Lin::PseudoInverseElemPositive< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::Lin::QR Cписок членов класса

Полный список членов класса Vtl::NumAlg::Lin::QR, включая наследуемые из базового класса

decomp(MatrixQR &QR_, VectorR &Rdiag) | Vtl::NumAlg::Lin::QR | [inline, static]
decomp(MatrixQR &QR_, MatrixQ &Q, MatrixR &R, VectorR &Rdiag) | Vtl::NumAlg::Lin::QR | [inline, static]
getHouseholder(const MatrixQR &QR_, MatrixH &H) | Vtl::NumAlg::Lin::QR | [inline, static]
getQ(const MatrixQR &QR_, const VectorR &Rdiag, MatrixQ &Q) | Vtl::NumAlg::Lin::QR | [inline, static]
getR(const MatrixQR &QR_, const VectorR &Rdiag, MatrixR &R) | Vtl::NumAlg::Lin::QR | [inline, static]
isFullRank(const VectorR &Rdiag) | Vtl::NumAlg::Lin::QR | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::Lin::svd Cписок членов класса

Полный список членов класса Vtl::NumAlg::Lin::svd, включая наследуемые из базового класса

comp(MatrixU &A, MatrixU &UU, VectorW &W, MatrixV &VV) | Vtl::NumAlg::Lin::svd | [inline, static]
decomp(MatrixU &UU, VectorW &W, MatrixV &VV, VectorRV1 &RV1, bool calcU=true, bool calcV=true) | Vtl::NumAlg::Lin::svd | [inline, static]
hausholder(T &G, T &ANORM, VectorW &W, MatrixU &UU, VectorRV1 &RV1) | Vtl::NumAlg::Lin::svd | [inline, private, static]
inverse(MatrixAinv &Ainv, MatrixU &UU, VectorS &W, MatrixV &VV, double relerr) | Vtl::NumAlg::Lin::svd | [inline, static]
inverse(ublas::c_matrix< T, N, M > &Ainv, ublas::c_matrix< T, M, N > &A, double relerr) | Vtl::NumAlg::Lin::svd | [inline, static]
inverse(ublas::c_matrix< T, M, N > &A, double relerr) | Vtl::NumAlg::Lin::svd | [inline, static]
inverse_save(ublas::c_matrix< T, N, M > &Ainv, ublas::c_matrix< T, M, N > A, double relerr) | Vtl::NumAlg::Lin::svd | [inline, static]
inverse_save(ublas::c_matrix< T, M, N > A, double relerr) | Vtl::NumAlg::Lin::svd | [inline, static]
solve(VectorRes &result, VectorB &b, MatrixU &U, VectorS &S, MatrixV &V, double relerr) | Vtl::NumAlg::Lin::svd | [inline, static]
solve(ublas::c_vector< T, N > &x, ublas::c_matrix< T, M, N > &A, ublas::c_vector< T, M > &b, double relerr) | Vtl::NumAlg::Lin::svd | [inline, static]
solve(ublas::c_matrix< T, M, N > &A, ublas::c_vector< T, M > &b, double relerr) | Vtl::NumAlg::Lin::svd | [inline, static]
solve_save(ublas::c_vector< T, N > &x, ublas::c_matrix< T, M, N > A, ublas::c_vector< T, M > b, double relerr) | Vtl::NumAlg::Lin::svd | [inline, static]
solve_save(ublas::c_matrix< T, M, N > A, ublas::c_vector< T, M > b, double relerr) | Vtl::NumAlg::Lin::svd | [inline, static]
sort(Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > &U, Vtl::NumAlg::Lin::ublas::c_vector< T, N > &W, Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > &V) | Vtl::NumAlg::Lin::svd | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::Spf::bess Cписок членов класса

Полный список членов класса Vtl::NumAlg::Spf::bess, включая наследуемые из базового класса

bessi(float x, Loki::Int2Type< 0 >) | Vtl::NumAlg::Spf::bess | [inline, private, static]
bessi(float x, Loki::Int2Type< 1 >) | Vtl::NumAlg::Spf::bess | [inline, private, static]
bessi(float x, Loki::Int2Type< n >) | Vtl::NumAlg::Spf::bess | [inline, private, static]
bessj(float x, Loki::Int2Type< 0 >) | Vtl::NumAlg::Spf::bess | [inline, private, static]
bessj(float x, Loki::Int2Type< 1 >) | Vtl::NumAlg::Spf::bess | [inline, private, static]
bessj(float x, Loki::Int2Type< n >) | Vtl::NumAlg::Spf::bess | [inline, private, static]
bessk(float x, Loki::Int2Type< 0 >) | Vtl::NumAlg::Spf::bess | [inline, private, static]
bessk(float x, Loki::Int2Type< 1 >) | Vtl::NumAlg::Spf::bess | [inline, private, static]
bessk(float x, Loki::Int2Type< n >) | Vtl::NumAlg::Spf::bess | [inline, private, static]
bessy(float x, Loki::Int2Type< 0 >) | Vtl::NumAlg::Spf::bess | [inline, private, static]
bessy(float x, Loki::Int2Type< 1 >) | Vtl::NumAlg::Spf::bess | [inline, private, static]
bessy(float x, Loki::Int2Type< n >) | Vtl::NumAlg::Spf::bess | [inline, private, static]
I(float x) | Vtl::NumAlg::Spf::bess | [inline, static]
Int_J0(float x) | Vtl::NumAlg::Spf::bess | [inline, static]
J(float x) | Vtl::NumAlg::Spf::bess | [inline, static]
K(float x) | Vtl::NumAlg::Spf::bess | [inline, static]
Y(float x) | Vtl::NumAlg::Spf::bess | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::Spf::Gamma Cписок членов класса

Полный список членов класса Vtl::NumAlg::Spf::Gamma, включая наследуемые из базового класса

beta(float z, float w) | Vtl::NumAlg::Spf::Gamma | [inline, static]
bico(int n, int k) | Vtl::NumAlg::Spf::Gamma | [inline, static]
factln(int n) | Vtl::NumAlg::Spf::Gamma | [inline, static]
factrl(int n) | Vtl::NumAlg::Spf::Gamma | [inline, static]
gammln(float xx) | Vtl::NumAlg::Spf::Gamma | [inline, static]
gcf(float *gammcf, float a, float x, float *gln) | Vtl::NumAlg::Spf::Gamma | [inline, private, static]
gser(float *gamser, float a, float x, float *gln) | Vtl::NumAlg::Spf::Gamma | [inline, private, static]
P(float a, float x) | Vtl::NumAlg::Spf::Gamma | [inline, static]
Q(float a, float x) | Vtl::NumAlg::Spf::Gamma | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Average< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::Average< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
Average(const Average &) | Vtl::Plf::Average< T, P > | [private]
Average() | Vtl::Plf::Average< T, P > | [inline]
Average(std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel_1D, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::Average< T, P > | [inline]
conv2D | Vtl::Plf::Average< T, P > | [private]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
in() | Vtl::Plf::Average< T, P > | [inline]
Init(std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel_1D, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::Average< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const Average &) | Vtl::Plf::Average< T, P > | [private]
out() | Vtl::Plf::Average< T, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
~Average() | Vtl::Plf::Average< T, P > | [inline, virtual]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::AverageGauss< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::AverageGauss< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
aver | Vtl::Plf::AverageGauss< T, P > | [private]
AverageGauss(const AverageGauss &) | Vtl::Plf::AverageGauss< T, P > | [private]
AverageGauss() | Vtl::Plf::AverageGauss< T, P > | [inline]
AverageGauss(std::string name, float sigma=1.0f, float env_sigmas=2.5f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::AverageGauss< T, P > | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
G0 typedef | Vtl::Plf::AverageGauss< T, P > | [private]
gauss | Vtl::Plf::AverageGauss< T, P > | [private]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
in() | Vtl::Plf::AverageGauss< T, P > | [inline]
Init(std::string name, float sigma=1.0f, float env_sigmas=2.5f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::AverageGauss< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const AverageGauss &) | Vtl::Plf::AverageGauss< T, P > | [private]
out() | Vtl::Plf::AverageGauss< T, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
~AverageGauss() | Vtl::Plf::AverageGauss< T, P > | [inline, virtual]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::BiLateral< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::BiLateral< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
bi | Vtl::Plf::BiLateral< T, P > | [private]
BiLateral(const BiLateral &) | Vtl::Plf::BiLateral< T, P > | [private]
BiLateral() | Vtl::Plf::BiLateral< T, P > | [inline]
BiLateral(std::string name, float epsilon, float sigma=2.0f, float env_sigmas=2.0f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::BiLateral< T, P > | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
in() | Vtl::Plf::BiLateral< T, P > | [inline]
Init(std::string name, float epsilon, float sigma=2.0f, float env_sigmas=2.0f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::BiLateral< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const BiLateral &) | Vtl::Plf::BiLateral< T, P > | [private]
out() | Vtl::Plf::BiLateral< T, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
~BiLateral() | Vtl::Plf::BiLateral< T, P > | [inline, virtual]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Canny< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::Canny< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
Canny(const Canny &) | Vtl::Plf::Canny< T, P > | [private]
Canny() | Vtl::Plf::Canny< T, P > | [inline]
Canny(std::string name, T threshold, T output_maxval, float sigma=1.0f, float env_sigmas=2.5f, float gamma_correction=2.2f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::Canny< T, P > | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
in() | Vtl::Plf::Canny< T, P > | [inline]
Init(std::string name, T threshold, T output_maxval, float sigma=1.0f, float env_sigmas=2.5f, float gamma_correction=2.2f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::Canny< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
mgrad | Vtl::Plf::Canny< T, P > | [private]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
nms | Vtl::Plf::Canny< T, P > | [private]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const Canny &) | Vtl::Plf::Canny< T, P > | [private]
out() | Vtl::Plf::Canny< T, P > | [inline]
PostProc typedef | Vtl::Plf::Canny< T, P > | [private]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
sigma | Vtl::Plf::Canny< T, P > | [private]
~Canny() | Vtl::Plf::Canny< T, P > | [inline, virtual]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::ColumnIteratorFast< T > Cписок членов класса

Полный список членов класса Vtl::Plf::ColumnIteratorFast< T >, включая наследуемые из базового класса

ColumnIteratorFast() | Vtl::Plf::ColumnIteratorFast< T > | [inline, private]
ColumnIteratorFast(const T *pointer, int step) | Vtl::Plf::ColumnIteratorFast< T > | [inline]
ColumnIteratorFast(const ColumnIteratorFast &it) | Vtl::Plf::ColumnIteratorFast< T > | [inline]
operator *() | Vtl::Plf::ColumnIteratorFast< T > | [inline]
operator++() | Vtl::Plf::ColumnIteratorFast< T > | [inline]
operator--() | Vtl::Plf::ColumnIteratorFast< T > | [inline]
ptr | Vtl::Plf::ColumnIteratorFast< T > | [private]
stride | Vtl::Plf::ColumnIteratorFast< T > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::ConvolveHorz< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::ConvolveHorz< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
ConvolveHorz() | Vtl::Plf::ConvolveHorz< T, P > | [inline]
ConvolveHorz(std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::ConvolveHorz< T, P > | [inline]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
in | Vtl::Plf::ConvolveHorz< T, P > |
Init(std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::ConvolveHorz< T, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
ker | Vtl::Plf::ConvolveHorz< T, P > |
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::ConvolveHorz< T, P > |
processLine() | Vtl::Plf::ConvolveHorz< T, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::FilterElementary | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
tmp | Vtl::Plf::ConvolveHorz< T, P > |
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~ConvolveHorz() | Vtl::Plf::ConvolveHorz< T, P > | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::ConvolveVert< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::ConvolveVert< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
ConvolveVert() | Vtl::Plf::ConvolveVert< T, P > | [inline]
ConvolveVert(std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::ConvolveVert< T, P > | [inline]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
in | Vtl::Plf::ConvolveVert< T, P > |
Init(std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::ConvolveVert< T, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
ker | Vtl::Plf::ConvolveVert< T, P > |
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::ConvolveVert< T, P > |
processLine() | Vtl::Plf::ConvolveVert< T, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::FilterElementary | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
tmp | Vtl::Plf::ConvolveVert< T, P > |
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~ConvolveVert() | Vtl::Plf::ConvolveVert< T, P > | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::DeNoise< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::DeNoise< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
DeNoise(const DeNoise &) | Vtl::Plf::DeNoise< T, P > | [private]
DeNoise() | Vtl::Plf::DeNoise< T, P > | [inline]
DeNoise(std::string name, T output_maxval, float sigma=5.0f, float env_sigmas=2.0f, float in_k_sigmas=2.0f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::DeNoise< T, P > | [inline]
denoise | Vtl::Plf::DeNoise< T, P > | [private]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
in | Vtl::Plf::DeNoise< T, P > |
Init(std::string name, T output_maxval, float sigma=5.0f, float env_sigmas=2.0f, float in_k_sigmas=2.0f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::DeNoise< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
mean_and_disp | Vtl::Plf::DeNoise< T, P > | [private]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const DeNoise &) | Vtl::Plf::DeNoise< T, P > | [private]
out() | Vtl::Plf::DeNoise< T, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
~DeNoise() | Vtl::Plf::DeNoise< T, P > | [inline, virtual]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Detect< T, Func, P > Cписок членов класса

Полный список членов класса Vtl::Plf::Detect< T, Func, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
avg_xx | Vtl::Plf::Detect< T, Func, P > | [private]
avg_xy | Vtl::Plf::Detect< T, Func, P > | [private]
avg_yy | Vtl::Plf::Detect< T, Func, P > | [private]
corr | Vtl::Plf::Detect< T, Func, P > | [private]
det | Vtl::Plf::Detect< T, Func, P > | [private]
Detect(const Detect &) | Vtl::Plf::Detect< T, Func, P > | [private]
Detect() | Vtl::Plf::Detect< T, Func, P > | [inline]
Detect(std::string name, float sigma_=1.0f, float env_sigmas=2.5f, Func functor=Vtl::Plf::F31::Harris< T >(), P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::Detect< T, Func, P > | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
G0 typedef | Vtl::Plf::Detect< T, Func, P > | [private]
gauss | Vtl::Plf::Detect< T, Func, P > | [private]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
in() | Vtl::Plf::Detect< T, Func, P > | [inline]
Init(std::string name, float sigma=1.0f, float env_sigmas=2.5f, Func functor=Vtl::Plf::F31::Harris< T >(), P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::Detect< T, Func, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const Detect &) | Vtl::Plf::Detect< T, Func, P > | [private]
out() | Vtl::Plf::Detect< T, Func, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
~Detect() | Vtl::Plf::Detect< T, Func, P > | [inline, virtual]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::DiZenzo< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::DiZenzo< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
color_modul_eigvec | Vtl::Plf::DiZenzo< T, P > | [private]
DiZenzo(const DiZenzo &) | Vtl::Plf::DiZenzo< T, P > | [private]
DiZenzo() | Vtl::Plf::DiZenzo< T, P > | [inline]
DiZenzo(std::string name, T output_maxval, T threshold=20, float sigma_=1.0f, float env_sigmas=2.5f, float gamma_correction=2.2f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::DiZenzo< T, P > | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
G0 typedef | Vtl::Plf::DiZenzo< T, P > | [private]
G1 typedef | Vtl::Plf::DiZenzo< T, P > | [private]
gauss | Vtl::Plf::DiZenzo< T, P > | [private]
gauss_deriv | Vtl::Plf::DiZenzo< T, P > | [private]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
gx_1 | Vtl::Plf::DiZenzo< T, P > | [private]
gx_2 | Vtl::Plf::DiZenzo< T, P > | [private]
gx_3 | Vtl::Plf::DiZenzo< T, P > | [private]
gy_1 | Vtl::Plf::DiZenzo< T, P > | [private]
gy_2 | Vtl::Plf::DiZenzo< T, P > | [private]
gy_3 | Vtl::Plf::DiZenzo< T, P > | [private]
in_1 | Vtl::Plf::DiZenzo< T, P > |
in_2 | Vtl::Plf::DiZenzo< T, P > |
in_3 | Vtl::Plf::DiZenzo< T, P > |
Init(std::string name, T output_maxval, float threshold=20, float sigma_=1.0f, float env_sigmas=2.5f, float gamma_correction=2.2f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::DiZenzo< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
mat_1 | Vtl::Plf::DiZenzo< T, P > | [private]
mat_2 | Vtl::Plf::DiZenzo< T, P > | [private]
mat_3 | Vtl::Plf::DiZenzo< T, P > | [private]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
nms | Vtl::Plf::DiZenzo< T, P > | [private]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const DiZenzo &) | Vtl::Plf::DiZenzo< T, P > | [private]
out() | Vtl::Plf::DiZenzo< T, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
sigma | Vtl::Plf::DiZenzo< T, P > | [private]
sum_1 | Vtl::Plf::DiZenzo< T, P > | [private]
sum_2 | Vtl::Plf::DiZenzo< T, P > | [private]
sum_3 | Vtl::Plf::DiZenzo< T, P > | [private]
~DiZenzo() | Vtl::Plf::DiZenzo< T, P > | [inline, virtual]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::DstAImage< T, I > Cписок членов класса

Полный список членов класса Vtl::Plf::DstAImage< T, I >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
DstAImage(std::string name) | Vtl::Plf::DstAImage< T, I > | [inline]
DstArray(std::string name) | Vtl::Plf::DstArray< T, I::Pixel > | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
in | Vtl::Plf::DstArray< T, I::Pixel > |
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
processLine() | Vtl::Plf::DstArray< T, I::Pixel > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
Restart() | Vtl::Plf::DstArray< T, I::Pixel > | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::DstArray< T, I::Pixel > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setDstImage(I *ptr) | Vtl::Plf::DstAImage< T, I > | [inline]
Vtl::Plf::DstArray< T, I::Pixel >::setDstImage(I::Pixel *ptr, int width, int height, int next_line_shift) | Vtl::Plf::DstArray< T, I::Pixel > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~DstAImage() | Vtl::Plf::DstAImage< T, I > | [inline, virtual]
~DstArray() | Vtl::Plf::DstArray< T, I::Pixel > | [inline, virtual]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::DstArray< T, Pixel > Cписок членов класса

Полный список членов класса Vtl::Plf::DstArray< T, Pixel >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
DstArray(std::string name) | Vtl::Plf::DstArray< T, Pixel > | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
h | Vtl::Plf::DstArray< T, Pixel > | [private]
id | Vtl::Plf::FilterElementary |
img | Vtl::Plf::DstArray< T, Pixel > | [private]
in | Vtl::Plf::DstArray< T, Pixel > |
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
nls | Vtl::Plf::DstArray< T, Pixel > | [private]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
processLine() | Vtl::Plf::DstArray< T, Pixel > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
Restart() | Vtl::Plf::DstArray< T, Pixel > | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::DstArray< T, Pixel > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setDstImage(Pixel *ptr, int width, int height, int next_line_shift) | Vtl::Plf::DstArray< T, Pixel > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
w | Vtl::Plf::DstArray< T, Pixel > | [private]
y | Vtl::Plf::DstArray< T, Pixel > | [private]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~DstArray() | Vtl::Plf::DstArray< T, Pixel > | [inline, virtual]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::DstContainer< T, C, P > Cписок членов класса

Полный список членов класса Vtl::Plf::DstContainer< T, C, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
container | Vtl::Plf::DstContainer< T, C, P > | [private]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
DstContainer(std::string name, C &container_, T threshold=T(0)) | Vtl::Plf::DstContainer< T, C, P > | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
h | Vtl::Plf::DstContainer< T, C, P > | [private]
id | Vtl::Plf::FilterElementary |
in | Vtl::Plf::DstContainer< T, C, P > |
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
processLine() | Vtl::Plf::DstContainer< T, C, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
Restart() | Vtl::Plf::DstContainer< T, C, P > | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::DstContainer< T, C, P > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setDstImage(Vtl::Plf::ImgSize is) | Vtl::Plf::DstContainer< T, C, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
thresh | Vtl::Plf::DstContainer< T, C, P > | [private]
tmp | Vtl::Plf::DstContainer< T, C, P > | [private]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
w | Vtl::Plf::DstContainer< T, C, P > | [private]
y | Vtl::Plf::DstContainer< T, C, P > | [private]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~DstContainer() | Vtl::Plf::DstContainer< T, C, P > | [inline, virtual]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::EnvProc1to1< T, Func, P > Cписок членов класса

Полный список членов класса Vtl::Plf::EnvProc1to1< T, Func, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
EnvProc1to1() | Vtl::Plf::EnvProc1to1< T, Func, P > | [inline]
EnvProc1to1(std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::EnvProc1to1< T, Func, P > | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
func | Vtl::Plf::EnvProc1to1< T, Func, P > | [private]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
in | Vtl::Plf::EnvProc1to1< T, Func, P > |
Init(std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::EnvProc1to1< T, Func, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::EnvProc1to1< T, Func, P > |
processLine() | Vtl::Plf::EnvProc1to1< T, Func, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::FilterElementary | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~EnvProc1to1() | Vtl::Plf::EnvProc1to1< T, Func, P > | [inline, virtual]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > Cписок членов класса

Полный список членов класса Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
EnvProc1to2() | Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > | [inline]
EnvProc1to2(std::string name, Func functor, P1 post_proc_x=Vtl::Plf::F11::DoNothing< T >(), P2 post_proc_y=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
func | Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > | [private]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
in | Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > |
Init(std::string name, Func functor=Fpie::Himg2< T >(), P1 post_proc_x=Vtl::Plf::F11::DoNothing< T >(), P2 post_proc_y=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out_x | Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > |
out_y | Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > |
processLine() | Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::FilterElementary | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~EnvProc1to2() | Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > | [inline, virtual]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::EnvProc3to1< T, Func, P > Cписок членов класса

Полный список членов класса Vtl::Plf::EnvProc3to1< T, Func, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
EnvProc3to1() | Vtl::Plf::EnvProc3to1< T, Func, P > | [inline]
EnvProc3to1(std::string name, Func functor=Fpie::CannyNMS< T >(), P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::EnvProc3to1< T, Func, P > | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
func | Vtl::Plf::EnvProc3to1< T, Func, P > | [private]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
in_gx | Vtl::Plf::EnvProc3to1< T, Func, P > |
in_gy | Vtl::Plf::EnvProc3to1< T, Func, P > |
in_val | Vtl::Plf::EnvProc3to1< T, Func, P > |
Init(std::string name, Func functor=Fpie::CannyNMS< T >(), P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::EnvProc3to1< T, Func, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::EnvProc3to1< T, Func, P > |
processLine() | Vtl::Plf::EnvProc3to1< T, Func, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::FilterElementary | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~EnvProc3to1() | Vtl::Plf::EnvProc3to1< T, Func, P > | [inline, virtual]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::Bias< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::Bias< T >, включая наследуемые из базового класса

bias | Vtl::Plf::F11::Bias< T > | [private]
Bias() | Vtl::Plf::F11::Bias< T > | [inline]
Bias(T add_to_pixel) | Vtl::Plf::F11::Bias< T > | [inline]
operator()(T val) const | Vtl::Plf::F11::Bias< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::GammaCor< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::GammaCor< T >, включая наследуемые из базового класса

gamma | Vtl::Plf::F11::GammaCor< T > | [private]
GammaCor() | Vtl::Plf::F11::GammaCor< T > | [inline]
GammaCor(T max_val, double _gamma) | Vtl::Plf::F11::GammaCor< T > | [inline]
maxval | Vtl::Plf::F11::GammaCor< T > | [private]
operator()(T val) const | Vtl::Plf::F11::GammaCor< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::GammaCorMult< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::GammaCorMult< T >, включая наследуемые из базового класса

gamma | Vtl::Plf::F11::GammaCorMult< T > | [private]
GammaCorMult() | Vtl::Plf::F11::GammaCorMult< T > | [inline]
GammaCorMult(T max_val, double _gamma, double mult_each_pixel) | Vtl::Plf::F11::GammaCorMult< T > | [inline]
maxval | Vtl::Plf::F11::GammaCorMult< T > | [private]
mult | Vtl::Plf::F11::GammaCorMult< T > | [private]
operator()(T val) const | Vtl::Plf::F11::GammaCorMult< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::Lin< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::Lin< T >, включая наследуемые из базового класса

_a | Vtl::Plf::F11::Lin< T > | [private]
_b | Vtl::Plf::F11::Lin< T > | [private]
Lin() | Vtl::Plf::F11::Lin< T > | [inline]
Lin(T a, T b) | Vtl::Plf::F11::Lin< T > | [inline]
operator()(T val) const | Vtl::Plf::F11::Lin< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::Log< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::Log< T >, включая наследуемые из базового класса

Log(double threshold_) | Vtl::Plf::F11::Log< T > | [inline]
operator()(T1 val) | Vtl::Plf::F11::Log< T > | [inline]
threshold | Vtl::Plf::F11::Log< T > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::Mult< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::Mult< T >, включая наследуемые из базового класса

mult | Vtl::Plf::F11::Mult< T > | [private]
Mult() | Vtl::Plf::F11::Mult< T > | [inline]
Mult(T mult_each_pixel) | Vtl::Plf::F11::Mult< T > | [inline]
operator()(T val) const | Vtl::Plf::F11::Mult< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::Negative< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::Negative< T >, включая наследуемые из базового класса

maxval | Vtl::Plf::F11::Negative< T > | [private]
Negative() | Vtl::Plf::F11::Negative< T > | [inline]
Negative(T max_val) | Vtl::Plf::F11::Negative< T > | [inline]
operator()(T val) const | Vtl::Plf::F11::Negative< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::Threshold< T, Comp > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::Threshold< T, Comp >, включая наследуемые из базового класса

c | Vtl::Plf::F11::Threshold< T, Comp > | [private]
operator()(T val) | Vtl::Plf::F11::Threshold< T, Comp > | [inline]
r | Vtl::Plf::F11::Threshold< T, Comp > | [private]
Threshold(T threshold=128, Comp comp=std::less< T >(), T replace=T(0)) | Vtl::Plf::F11::Threshold< T, Comp > | [inline]
tr | Vtl::Plf::F11::Threshold< T, Comp > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::ToBounds< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::ToBounds< T >, включая наследуемые из базового класса

n | Vtl::Plf::F11::ToBounds< T > | [private]
operator()(T val) const | Vtl::Plf::F11::ToBounds< T > | [inline]
ToBounds(T min_val=0, T max_val=255) | Vtl::Plf::F11::ToBounds< T > | [inline]
x | Vtl::Plf::F11::ToBounds< T > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F21::Disp< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F21::Disp< T >, включая наследуемые из базового класса

Disp() | Vtl::Plf::F21::Disp< T > | [inline]
operator()(T mean, T sqr_mean) const | Vtl::Plf::F21::Disp< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F21::Sharpen< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F21::Sharpen< T >, включая наследуемые из базового класса

alpha | Vtl::Plf::F21::Sharpen< T > | [private]
operator()(T val, T mean) const | Vtl::Plf::F21::Sharpen< T > | [inline]
Sharpen(float amp=2.0f) | Vtl::Plf::F21::Sharpen< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F21::SqrtOfSumSqr< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F21::SqrtOfSumSqr< T >, включая наследуемые из базового класса

operator()(T v1, T v2) const | Vtl::Plf::F21::SqrtOfSumSqr< T > | [inline]
SqrtOfSumSqr() | Vtl::Plf::F21::SqrtOfSumSqr< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F23::CorrMatrix< T, Iter > Cписок членов класса

Полный список членов класса Vtl::Plf::F23::CorrMatrix< T, Iter >, включая наследуемые из базового класса

CorrMatrix() | Vtl::Plf::F23::CorrMatrix< T, Iter > | [inline]
operator()(T v1, T v2, Iter o11, Iter o12, Iter o22) const | Vtl::Plf::F23::CorrMatrix< T, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F23::CorrMatrixAdd< T, Iter > Cписок членов класса

Полный список членов класса Vtl::Plf::F23::CorrMatrixAdd< T, Iter >, включая наследуемые из базового класса

CorrMatrixAdd() | Vtl::Plf::F23::CorrMatrixAdd< T, Iter > | [inline]
operator()(T v1, T v2, Iter o11, Iter o12, Iter o22) const | Vtl::Plf::F23::CorrMatrixAdd< T, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F31::DeNoise< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F31::DeNoise< T >, включая наследуемые из базового класса

DeNoise(float in_k_sigmas=2.0f) | Vtl::Plf::F31::DeNoise< T > | [inline]
k | Vtl::Plf::F31::DeNoise< T > | [private]
operator()(T f, T f_mean, T f_sigma) const | Vtl::Plf::F31::DeNoise< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F31::DiffEigenVal< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F31::DiffEigenVal< T >, включая наследуемые из базового класса

DiffEigenVal(T sigma=1.0f) | Vtl::Plf::F31::DiffEigenVal< T > | [inline]
mult | Vtl::Plf::F31::DiffEigenVal< T > | [private]
operator()(T v11, T v12, T v22) const | Vtl::Plf::F31::DiffEigenVal< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F31::Harris< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F31::Harris< T >, включая наследуемые из базового класса

Harris(T sigma=1.0f, T coef=0.04f) | Vtl::Plf::F31::Harris< T > | [inline]
k | Vtl::Plf::F31::Harris< T > | [private]
mult | Vtl::Plf::F31::Harris< T > | [private]
operator()(T v11, T v12, T v22) const | Vtl::Plf::F31::Harris< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F31::MaxEigenVal< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F31::MaxEigenVal< T >, включая наследуемые из базового класса

MaxEigenVal(T sigma=1.0f) | Vtl::Plf::F31::MaxEigenVal< T > | [inline]
mult | Vtl::Plf::F31::MaxEigenVal< T > | [private]
operator()(T v11, T v12, T v22) const | Vtl::Plf::F31::MaxEigenVal< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F31::MinEigenVal< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F31::MinEigenVal< T >, включая наследуемые из базового класса

MinEigenVal(T sigma=1.0f) | Vtl::Plf::F31::MinEigenVal< T > | [inline]
mult | Vtl::Plf::F31::MinEigenVal< T > | [private]
operator()(T v11, T v12, T v22) const | Vtl::Plf::F31::MinEigenVal< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F31::StatDiff< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F31::StatDiff< T >, включая наследуемые из базового класса

A | Vtl::Plf::F31::StatDiff< T > | [private]
alpha | Vtl::Plf::F31::StatDiff< T > | [private]
m_d | Vtl::Plf::F31::StatDiff< T > | [private]
operator()(T f, T f_mean, T f_sigma) const | Vtl::Plf::F31::StatDiff< T > | [inline]
sigma_d | Vtl::Plf::F31::StatDiff< T > | [private]
StatDiff(float amplification=6.0f, float sigma_desired=85.0f, float mean_desired=128.0f, float phone_to_edges=0.8f) | Vtl::Plf::F31::StatDiff< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F31::StatDiffThresh< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F31::StatDiffThresh< T >, включая наследуемые из базового класса

A | Vtl::Plf::F31::StatDiffThresh< T > | [private]
alpha | Vtl::Plf::F31::StatDiffThresh< T > | [private]
m_d | Vtl::Plf::F31::StatDiffThresh< T > | [private]
operator()(T f, T f_mean, T f_sigma) const | Vtl::Plf::F31::StatDiffThresh< T > | [inline]
sigma_d | Vtl::Plf::F31::StatDiffThresh< T > | [private]
StatDiffThresh(float amplification=6.0f, float sigma_desired=85.0f, float mean_desired=128.0f, float phone_to_edges=0.8f, float in_thresh=5.0f) | Vtl::Plf::F31::StatDiffThresh< T > | [inline]
thresh | Vtl::Plf::F31::StatDiffThresh< T > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F31::Sum3< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F31::Sum3< T >, включая наследуемые из базового класса

operator()(T v1, T v2, T v3) const | Vtl::Plf::F31::Sum3< T > | [inline]
Sum3() | Vtl::Plf::F31::Sum3< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F31::Trace< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F31::Trace< T >, включая наследуемые из базового класса

mult | Vtl::Plf::F31::Trace< T > | [private]
operator()(T v11, T v12, T v22) const | Vtl::Plf::F31::Trace< T > | [inline]
Trace(T sigma=1.0f) | Vtl::Plf::F31::Trace< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F33::DiZenzo< T, Iter > Cписок членов класса

Полный список членов класса Vtl::Plf::F33::DiZenzo< T, Iter >, включая наследуемые из базового класса

DiZenzo() | Vtl::Plf::F33::DiZenzo< T, Iter > | [inline]
operator()(T v11, T v12, T v22, Iter lamda_1, Iter eigv_x, Iter eigv_y) const | Vtl::Plf::F33::DiZenzo< T, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F51::HarrisLaplace< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F51::HarrisLaplace< T >, включая наследуемые из базового класса

HarrisLaplace(T sigma=1.0f, T coef=0.04f) | Vtl::Plf::F51::HarrisLaplace< T > | [inline]
k | Vtl::Plf::F51::HarrisLaplace< T > | [private]
mult | Vtl::Plf::F51::HarrisLaplace< T > | [private]
operator()(T v11, T v12, T v22, T d2x, T d2y) const | Vtl::Plf::F51::HarrisLaplace< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Fifo< T > Cписок членов класса

Полный список членов класса Vtl::Plf::Fifo< T >, включая наследуемые из базового класса

empty() const | Vtl::Plf::Fifo< T > | [inline]
Fifo() | Vtl::Plf::Fifo< T > | [inline]
get() | Vtl::Plf::Fifo< T > | [inline]
lst | Vtl::Plf::Fifo< T > | [private]
put(T x) | Vtl::Plf::Fifo< T > | [inline]
~Fifo() | Vtl::Plf::Fifo< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::FilterBase Cписок членов класса

Полный список членов класса Vtl::Plf::FilterBase, включая наследуемые из базового класса

_name | Vtl::Plf::FilterBase | [private]
AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
FilterBase(const FilterBase &) | Vtl::Plf::FilterBase | [private]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
in_ports | Vtl::Plf::FilterBase | [private]
isComplex() const=0 | Vtl::Plf::FilterBase | [pure virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
num_inp | Vtl::Plf::FilterBase | [private]
num_out | Vtl::Plf::FilterBase | [private]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const FilterBase &) | Vtl::Plf::FilterBase | [private]
out_ports | Vtl::Plf::FilterBase | [private]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::FilterComplex Cписок членов класса

Полный список членов класса Vtl::Plf::FilterComplex, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(const FilterComplex &) | Vtl::Plf::FilterComplex | [private]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const FilterComplex &) | Vtl::Plf::FilterComplex | [private]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::FilterElementary Cписок членов класса

Полный список членов класса Vtl::Plf::FilterElementary, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(const FilterElementary &) | Vtl::Plf::FilterElementary | [private]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
finished | Vtl::Plf::FilterElementary | [private]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
h_max | Vtl::Plf::FilterElementary | [private]
id | Vtl::Plf::FilterElementary |
in_queue | Vtl::Plf::FilterElementary | [private]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const FilterElementary &) | Vtl::Plf::FilterElementary | [private]
processLine()=0 | Vtl::Plf::FilterElementary | [pure virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::FilterElementary | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
y_pos | Vtl::Plf::FilterElementary | [private]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::FilterResampleHorz< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::FilterResampleHorz< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterResampleHorz() | Vtl::Plf::FilterResampleHorz< T, P > | [inline]
FilterResampleHorz(std::string name, int new_width, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::FilterResampleHorz< T, P > | [inline]
Finish() | Vtl::Plf::FilterElementary | [inline]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
in | Vtl::Plf::FilterResampleHorz< T, P > |
Init(std::string name, int new_width, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::FilterResampleHorz< T, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::FilterResampleHorz< T, P > |
processLine() | Vtl::Plf::FilterResampleHorz< T, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::FilterResampleHorz< T, P > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
tmp | Vtl::Plf::FilterResampleHorz< T, P > |
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
w_new | Vtl::Plf::FilterResampleHorz< T, P > |
w_old | Vtl::Plf::FilterResampleHorz< T, P > |
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]
~FilterResampleHorz() | Vtl::Plf::FilterResampleHorz< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::FilterResampleVert< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::FilterResampleVert< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
cof | Vtl::Plf::FilterResampleVert< T, P > |
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterResampleVert() | Vtl::Plf::FilterResampleVert< T, P > | [inline]
FilterResampleVert(std::string name, int new_height, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::FilterResampleVert< T, P > | [inline]
Finish() | Vtl::Plf::FilterElementary | [inline]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
h_new | Vtl::Plf::FilterResampleVert< T, P > |
h_old | Vtl::Plf::FilterResampleVert< T, P > |
id | Vtl::Plf::FilterElementary |
in | Vtl::Plf::FilterResampleVert< T, P > |
Init(std::string name, int new_height, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::FilterResampleVert< T, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::FilterResampleVert< T, P > |
processLine() | Vtl::Plf::FilterResampleVert< T, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::FilterResampleVert< T, P > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
y | Vtl::Plf::FilterResampleVert< T, P > |
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]
~FilterResampleVert() | Vtl::Plf::FilterResampleVert< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::FiltersSystem Cписок членов класса

Полный список членов класса Vtl::Plf::FiltersSystem, включая наследуемые из базового класса

_fillVec(std::vector< std::pair< FilterElementary *, bool > > &vec, IterSrc begin, IterSrc end) | Vtl::Plf::FiltersSystem | [inline, private]
_fillVec(std::vector< std::pair< FilterElementary *, bool > > &vec, IterSrc *begin, IterSrc *end) | Vtl::Plf::FiltersSystem | [inline, private]
_SaveGraphAsDot(std::string fname, E &efunc) const | Vtl::Plf::FiltersSystem | [inline]
_SaveGraphAsDot(std::ostream &os, E &efunc) const | Vtl::Plf::FiltersSystem | [inline]
Assign(IterSrc src_begin, IterSrc src_end, FilterElementary *dst) | Vtl::Plf::FiltersSystem | [inline]
Assign(FilterElementary *src, IterDst dst_begin, IterDst dst_end) | Vtl::Plf::FiltersSystem | [inline]
Assign(FilterElementary *src, FilterElementary *dst) | Vtl::Plf::FiltersSystem | [inline]
Assign(IterSrc src_begin, IterSrc src_end, IterDst dst_begin, IterDst dst_end) | Vtl::Plf::FiltersSystem | [inline]
edges | Vtl::Plf::FiltersSystem | [private]
FiltersSystem(const char *dot_file_name=0) | Vtl::Plf::FiltersSystem | [inline]
FiltersSystem(std::string dot_file_name) | Vtl::Plf::FiltersSystem | [inline]
findSourcesTargetsAndJunctions() | Vtl::Plf::FiltersSystem | [inline, private]
fname_dot | Vtl::Plf::FiltersSystem | [private]
get_DotFName() | Vtl::Plf::FiltersSystem | [inline]
graph | Vtl::Plf::FiltersSystem | [private]
init_buffersExtents() | Vtl::Plf::FiltersSystem | [inline, private]
InitStripBuffers() | Vtl::Plf::FiltersSystem | [inline, private]
multi_connected_to | Vtl::Plf::FiltersSystem | [private]
multi_inputs | Vtl::Plf::FiltersSystem | [private]
printList(std::string name, const std::vector< int > &lst) const | Vtl::Plf::FiltersSystem | [inline, private]
propagateImageSize() | Vtl::Plf::FiltersSystem | [inline, private]
Run(ProgressCounter *indicator=0, const char *name="") | Vtl::Plf::FiltersSystem | [inline]
SaveGraphAsDot(const char *fname) const | Vtl::Plf::FiltersSystem | [inline]
SaveGraphAsDot(std::string fname) const | Vtl::Plf::FiltersSystem | [inline]
SaveGraphAsDot(std::ostream &os) const | Vtl::Plf::FiltersSystem | [inline]
set_DotFName(std::string dot_file_name) | Vtl::Plf::FiltersSystem | [inline]
set_DotFName(const char *dot_file_name=0) | Vtl::Plf::FiltersSystem | [inline]
show_lists() | Vtl::Plf::FiltersSystem | [inline]
sources | Vtl::Plf::FiltersSystem | [private]
targets | Vtl::Plf::FiltersSystem | [private]
~FiltersSystem() | Vtl::Plf::FiltersSystem | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::FiltersSystem::EdgeLabel_DelayB Cписок членов класса

Полный список членов класса Vtl::Plf::FiltersSystem::EdgeLabel_DelayB, включая наследуемые из базового класса

b | Vtl::Plf::FiltersSystem::EdgeLabel_DelayB | [private]
EdgeLabel_DelayB(const std::vector< int > &b_) | Vtl::Plf::FiltersSystem::EdgeLabel_DelayB | [inline]
operator()(const Impl::Edge &e) | Vtl::Plf::FiltersSystem::EdgeLabel_DelayB | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Fpie::BiLateralSmooth< T > Cписок членов класса

Полный список членов класса Vtl::Plf::Fpie::BiLateralSmooth< T >, включая наследуемые из базового класса

BiLateralSmooth(float epsilon=20.0f, float sigma=2.0f, float env_sigmas=2.0f) | Vtl::Plf::Fpie::BiLateralSmooth< T > | [inline]
eps_22 | Vtl::Plf::Fpie::BiLateralSmooth< T > | [private]
ext() const | Vtl::Plf::Fpie::BiLateralSmooth< T > | [inline]
fun(int x, int y, T fx, T fy) | Vtl::Plf::Fpie::BiLateralSmooth< T > | [inline, private]
nls | Vtl::Plf::Fpie::BiLateralSmooth< T > | [private]
operator()(const T *input) | Vtl::Plf::Fpie::BiLateralSmooth< T > | [inline]
r | Vtl::Plf::Fpie::BiLateralSmooth< T > | [private]
set_IterNextLineShift(int modul_nls) | Vtl::Plf::Fpie::BiLateralSmooth< T > | [inline]
sigma_22 | Vtl::Plf::Fpie::BiLateralSmooth< T > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Fpie::CannyNMS< T > Cписок членов класса

Полный список членов класса Vtl::Plf::Fpie::CannyNMS< T >, включая наследуемые из базового класса

CannyNMS() | Vtl::Plf::Fpie::CannyNMS< T > | [inline]
CannyNMS(T threshold) | Vtl::Plf::Fpie::CannyNMS< T > | [inline]
ext() const | Vtl::Plf::Fpie::CannyNMS< T > | [inline]
nls | Vtl::Plf::Fpie::CannyNMS< T > | [private]
operator()(const T *modul, T gx, T gy) | Vtl::Plf::Fpie::CannyNMS< T > | [inline]
set_IterNextLineShift(int modul_nls) | Vtl::Plf::Fpie::CannyNMS< T > | [inline]
thr | Vtl::Plf::Fpie::CannyNMS< T > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Fpie::CannyNMS_2< T > Cписок членов класса

Полный список членов класса Vtl::Plf::Fpie::CannyNMS_2< T >, включая наследуемые из базового класса

CannyNMS_2() | Vtl::Plf::Fpie::CannyNMS_2< T > | [inline]
CannyNMS_2(T threshold, T epsilon=0.1f) | Vtl::Plf::Fpie::CannyNMS_2< T > | [inline]
eps | Vtl::Plf::Fpie::CannyNMS_2< T > | [private]
ext() const | Vtl::Plf::Fpie::CannyNMS_2< T > | [inline]
nls | Vtl::Plf::Fpie::CannyNMS_2< T > | [private]
operator()(const T *modul, T gx, T gy) | Vtl::Plf::Fpie::CannyNMS_2< T > | [inline]
set_IterNextLineShift(int modul_nls) | Vtl::Plf::Fpie::CannyNMS_2< T > | [inline]
thr | Vtl::Plf::Fpie::CannyNMS_2< T > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Fpie::HarrisNMS< T > Cписок членов класса

Полный список членов класса Vtl::Plf::Fpie::HarrisNMS< T >, включая наследуемые из базового класса

ext() const | Vtl::Plf::Fpie::HarrisNMS< T > | [inline]
HarrisNMS() | Vtl::Plf::Fpie::HarrisNMS< T > | [inline]
nls | Vtl::Plf::Fpie::HarrisNMS< T > | [private]
operator()(const T *input) | Vtl::Plf::Fpie::HarrisNMS< T > | [inline]
set_IterNextLineShift(int modul_nls) | Vtl::Plf::Fpie::HarrisNMS< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Fpie::HarrisNMS_Smooth< T > Cписок членов класса

Полный список членов класса Vtl::Plf::Fpie::HarrisNMS_Smooth< T >, включая наследуемые из базового класса

ext() const | Vtl::Plf::Fpie::HarrisNMS_Smooth< T > | [inline]
HarrisNMS_Smooth() | Vtl::Plf::Fpie::HarrisNMS_Smooth< T > | [inline]
nls | Vtl::Plf::Fpie::HarrisNMS_Smooth< T > | [private]
operator()(const T *input) | Vtl::Plf::Fpie::HarrisNMS_Smooth< T > | [inline]
set_IterNextLineShift(int modul_nls) | Vtl::Plf::Fpie::HarrisNMS_Smooth< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Fpie::Himg2< T > Cписок членов класса

Полный список членов класса Vtl::Plf::Fpie::Himg2< T >, включая наследуемые из базового класса

ext() const | Vtl::Plf::Fpie::Himg2< T > | [inline]
Himg2(int radius_of_square=5) | Vtl::Plf::Fpie::Himg2< T > | [inline]
mult | Vtl::Plf::Fpie::Himg2< T > | [private]
nls | Vtl::Plf::Fpie::Himg2< T > | [private]
operator()(const T *input, T &output_x, T &output_y) | Vtl::Plf::Fpie::Himg2< T > | [inline]
r | Vtl::Plf::Fpie::Himg2< T > | [private]
set_IterNextLineShift(int modul_nls) | Vtl::Plf::Fpie::Himg2< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Fpie::Himg< T > Cписок членов класса

Полный список членов класса Vtl::Plf::Fpie::Himg< T >, включая наследуемые из базового класса

ext() const | Vtl::Plf::Fpie::Himg< T > | [inline]
hi | Vtl::Plf::Fpie::Himg< T > | [private]
Himg(int radius_of_square=5) | Vtl::Plf::Fpie::Himg< T > | [inline]
operator()(const T *input) | Vtl::Plf::Fpie::Himg< T > | [inline]
set_IterNextLineShift(int modul_nls) | Vtl::Plf::Fpie::Himg< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::GradientCorr< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::GradientCorr< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
corr | Vtl::Plf::GradientCorr< T, P > | [private]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
G0 typedef | Vtl::Plf::GradientCorr< T, P > | [private]
G1 typedef | Vtl::Plf::GradientCorr< T, P > | [private]
gauss | Vtl::Plf::GradientCorr< T, P > | [private]
gauss_deriv | Vtl::Plf::GradientCorr< T, P > | [private]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
GradientCorr(const GradientCorr &) | Vtl::Plf::GradientCorr< T, P > | [private]
GradientCorr() | Vtl::Plf::GradientCorr< T, P > | [inline]
GradientCorr(std::string name, float sigma_=1.0f, float env_sigmas=2.5f, P func=F23::CorrMatrix< T, T & >()) | Vtl::Plf::GradientCorr< T, P > | [inline]
gx | Vtl::Plf::GradientCorr< T, P > | [private]
gy | Vtl::Plf::GradientCorr< T, P > | [private]
in | Vtl::Plf::GradientCorr< T, P > |
Init(std::string name, float sigma_=1.0f, float env_sigmas=2.5f, P func=F23::CorrMatrix< T, T & >()) | Vtl::Plf::GradientCorr< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const GradientCorr &) | Vtl::Plf::GradientCorr< T, P > | [private]
out_xx() | Vtl::Plf::GradientCorr< T, P > | [inline]
out_xy() | Vtl::Plf::GradientCorr< T, P > | [inline]
out_yy() | Vtl::Plf::GradientCorr< T, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
sigma | Vtl::Plf::GradientCorr< T, P > | [private]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]
~GradientCorr() | Vtl::Plf::GradientCorr< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::GradientModul< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::GradientModul< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
G0 typedef | Vtl::Plf::GradientModul< T, P > | [private]
G1 typedef | Vtl::Plf::GradientModul< T, P > | [private]
gauss | Vtl::Plf::GradientModul< T, P > | [private]
gauss_deriv | Vtl::Plf::GradientModul< T, P > | [private]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
GradientModul(const GradientModul &) | Vtl::Plf::GradientModul< T, P > | [private]
GradientModul() | Vtl::Plf::GradientModul< T, P > | [inline]
GradientModul(std::string name, T output_maxval, float sigma_=1.0f, float env_sigmas=2.5f, float gamma_correction=2.2f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::GradientModul< T, P > | [inline]
gx | Vtl::Plf::GradientModul< T, P > | [private]
gy | Vtl::Plf::GradientModul< T, P > | [private]
in | Vtl::Plf::GradientModul< T, P > |
Init(std::string name, T output_maxval, float sigma_=1.0f, float env_sigmas=2.5f, float gamma_correction=2.2f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::GradientModul< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const GradientModul &) | Vtl::Plf::GradientModul< T, P > | [private]
out() | Vtl::Plf::GradientModul< T, P > | [inline]
out_gx() | Vtl::Plf::GradientModul< T, P > | [inline]
out_gy() | Vtl::Plf::GradientModul< T, P > | [inline]
PostProc typedef | Vtl::Plf::GradientModul< T, P > | [private]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
sigma | Vtl::Plf::GradientModul< T, P > | [private]
sum_sqr | Vtl::Plf::GradientModul< T, P > | [private]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]
~GradientModul() | Vtl::Plf::GradientModul< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::HarrisLaplace< T, Func, P > Cписок членов класса

Полный список членов класса Vtl::Plf::HarrisLaplace< T, Func, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
avg_xx | Vtl::Plf::HarrisLaplace< T, Func, P > | [private]
avg_xy | Vtl::Plf::HarrisLaplace< T, Func, P > | [private]
avg_yy | Vtl::Plf::HarrisLaplace< T, Func, P > | [private]
corr | Vtl::Plf::HarrisLaplace< T, Func, P > | [private]
det | Vtl::Plf::HarrisLaplace< T, Func, P > | [private]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
G0 typedef | Vtl::Plf::HarrisLaplace< T, Func, P > | [private]
gauss | Vtl::Plf::HarrisLaplace< T, Func, P > | [private]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
HarrisLaplace(const HarrisLaplace &) | Vtl::Plf::HarrisLaplace< T, Func, P > | [private]
HarrisLaplace() | Vtl::Plf::HarrisLaplace< T, Func, P > | [inline]
HarrisLaplace(std::string name, float sigma_=1.0f, float env_sigmas=2.5f, Func functor=Vtl::Plf::F31::Harris< T >(), P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::HarrisLaplace< T, Func, P > | [inline]
in | Vtl::Plf::HarrisLaplace< T, Func, P > |
Init(std::string name, float sigma=1.0f, float env_sigmas=2.5f, Func functor=Vtl::Plf::F31::Harris< T >(), P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::HarrisLaplace< T, Func, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const HarrisLaplace &) | Vtl::Plf::HarrisLaplace< T, Func, P > | [private]
out() | Vtl::Plf::HarrisLaplace< T, Func, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]
~HarrisLaplace() | Vtl::Plf::HarrisLaplace< T, Func, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::HImage< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::HImage< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
h | Vtl::Plf::HImage< T, P > | [private]
HImage(const HImage &) | Vtl::Plf::HImage< T, P > | [private]
HImage() | Vtl::Plf::HImage< T, P > | [inline]
HImage(std::string name, int radius, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::HImage< T, P > | [inline]
in() | Vtl::Plf::HImage< T, P > | [inline]
Init(std::string name, int radius, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::HImage< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const HImage &) | Vtl::Plf::HImage< T, P > | [private]
out() | Vtl::Plf::HImage< T, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]
~HImage() | Vtl::Plf::HImage< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::HImageEdge< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::HImageEdge< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
himage | Vtl::Plf::HImageEdge< T, P > | [private]
HImageEdge(const HImageEdge &) | Vtl::Plf::HImageEdge< T, P > | [private]
HImageEdge() | Vtl::Plf::HImageEdge< T, P > | [inline]
HImageEdge(std::string name, int radius, T threshold, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::HImageEdge< T, P > | [inline]
in() | Vtl::Plf::HImageEdge< T, P > | [inline]
Init(std::string name, int radius, T threshold, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::HImageEdge< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
nms | Vtl::Plf::HImageEdge< T, P > | [private]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const HImageEdge &) | Vtl::Plf::HImageEdge< T, P > | [private]
out() | Vtl::Plf::HImageEdge< T, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
sum_sqr | Vtl::Plf::HImageEdge< T, P > | [private]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]
~HImageEdge() | Vtl::Plf::HImageEdge< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::ImageRef< T > Cписок членов класса

Полный список членов класса Vtl::Plf::ImageRef< T >, включая наследуемые из базового класса

_data | Vtl::Plf::ImageRef< T > | [private]
_ex | Vtl::Plf::ImageRef< T > | [private]
_nls | Vtl::Plf::ImageRef< T > | [private]
_width | Vtl::Plf::ImageRef< T > | [private]
check(int a, int b, const char *name) | Vtl::Plf::ImageRef< T > | [inline, private, static]
ext() const | Vtl::Plf::ImageRef< T > | [inline]
h() const | Vtl::Plf::ImageRef< T > | [inline]
ImageRef() | Vtl::Plf::ImageRef< T > | [inline]
ImageRef(T *data_ptr, int width, int next_line_shift, Extent ex) | Vtl::Plf::ImageRef< T > | [inline]
ImageRef(const ImageRef &ir, const Extent &new_ext, int y_offset) | Vtl::Plf::ImageRef< T > | [inline]
nls() const | Vtl::Plf::ImageRef< T > | [inline]
operator[](int y) const | Vtl::Plf::ImageRef< T > | [inline]
Pixel typedef | Vtl::Plf::ImageRef< T > |
w() const | Vtl::Plf::ImageRef< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Impl::DelayAdjuster Cписок членов класса

Полный список членов класса Vtl::Plf::Impl::DelayAdjuster, включая наследуемые из базового класса

b | Vtl::Plf::Impl::DelayAdjuster |
d | Vtl::Plf::Impl::DelayAdjuster |
DelayAdjuster(std::vector< Node > &graph_, const std::vector< Edge > &edges_) | Vtl::Plf::Impl::DelayAdjuster | [inline]
edges | Vtl::Plf::Impl::DelayAdjuster | [private]
graph | Vtl::Plf::Impl::DelayAdjuster | [private]
Run() | Vtl::Plf::Impl::DelayAdjuster | [inline]
w(int id_fil, int id_port) | Vtl::Plf::Impl::DelayAdjuster | [inline, private]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Impl::GraphBuilder Cписок членов класса

Полный список членов класса Vtl::Plf::Impl::GraphBuilder, включая наследуемые из базового класса

BackEdges() | Vtl::Plf::Impl::GraphBuilder | [inline]
build(IterSrc begin, IterSrc end) | Vtl::Plf::Impl::GraphBuilder | [inline]
build(FilterElementary *begin, FilterElementary *end) | Vtl::Plf::Impl::GraphBuilder | [inline]
checkInGraph(Iter begin, Iter end) | Vtl::Plf::Impl::GraphBuilder | [inline]
checkInGraph(Iter *begin, Iter *end) | Vtl::Plf::Impl::GraphBuilder | [inline]
DFS_Visit(FilterElementary *filter) | Vtl::Plf::Impl::GraphBuilder | [inline, private]
dst | Vtl::Plf::Impl::GraphBuilder | [private]
edges | Vtl::Plf::Impl::GraphBuilder | [private]
fillTopologicallySortedVector() | Vtl::Plf::Impl::GraphBuilder | [inline, private]
findParentNotInGraph() | Vtl::Plf::Impl::GraphBuilder | [inline]
graph | Vtl::Plf::Impl::GraphBuilder | [private]
GraphBuilder(std::vector< Node > &_graph, std::vector< Impl::Edge > &_edges) | Vtl::Plf::Impl::GraphBuilder | [inline]
id | Vtl::Plf::Impl::GraphBuilder | [private]
isGray(FilterElementary *filter) | Vtl::Plf::Impl::GraphBuilder | [inline, private]
isWhite(FilterElementary *filter) | Vtl::Plf::Impl::GraphBuilder | [inline, private]
os_back | Vtl::Plf::Impl::GraphBuilder | [private]
sorted | Vtl::Plf::Impl::GraphBuilder | [private]
src | Vtl::Plf::Impl::GraphBuilder | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::InPort< T > Cписок членов класса

Полный список членов класса Vtl::Plf::InPort< T >, включая наследуемые из базового класса

_init(FilterElementary *_filter, int _port, Extent extent_required) | Vtl::Plf::InPortBase | [inline, protected]
Vtl::Plf::Port::_init(FilterElementary *_filter, int _port) | Vtl::Plf::Port | [inline, protected]
BaseConnectedTo() | Vtl::Plf::InPort< T > | [inline, virtual]
BufType typedef | Vtl::Plf::InPort< T > |
ConnectedTo() | Vtl::Plf::InPort< T > | [inline]
ext() const | Vtl::Plf::InPortBase | [inline]
Finish() | Vtl::Plf::InPortBase | [inline]
getFilter() | Vtl::Plf::Port | [inline, virtual]
getImageSize() const | Vtl::Plf::InPort< T > | [inline, virtual]
getImg() | Vtl::Plf::InPort< T > | [inline]
getPort() | Vtl::Plf::Port | [inline, virtual]
getRequiredStrip() | Vtl::Plf::InPortBase | [inline]
Init(FilterElementary *_filter, int _port, Extent extent_required) | Vtl::Plf::InPort< T > | [inline, virtual]
InPort(const InPort &) | Vtl::Plf::InPort< T > | [private]
InPort() | Vtl::Plf::InPort< T > | [inline]
InPortBase() | Vtl::Plf::InPortBase | [inline, protected]
input | Vtl::Plf::InPort< T > | [private]
isDataReady() | Vtl::Plf::InPort< T > | [inline, virtual]
isFinished() const | Vtl::Plf::InPortBase | [inline]
operator=(const InPort &) | Vtl::Plf::InPort< T > | [private]
OutPortBase class | Vtl::Plf::InPortBase | [friend]
OutPortNoPostProc< T > class | Vtl::Plf::InPort< T > | [friend]
Port() | Vtl::Plf::Port | [inline, protected]
print() | Vtl::Plf::Port | [inline, virtual]
Rewind() | Vtl::Plf::InPortBase | [inline]
ToNextLine(int y) | Vtl::Plf::InPortBase | [inline]
total_delay | Vtl::Plf::InPortBase |
Y() const | Vtl::Plf::InPortBase | [inline]
~InPort() | Vtl::Plf::InPort< T > | [inline, virtual]
~InPortBase() | Vtl::Plf::InPortBase | [inline, virtual]
~Port() | Vtl::Plf::Port | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::InPortBase Cписок членов класса

Полный список членов класса Vtl::Plf::InPortBase, включая наследуемые из базового класса

_init(FilterElementary *_filter, int _port, Extent extent_required) | Vtl::Plf::InPortBase | [inline, protected]
Vtl::Plf::Port::_init(FilterElementary *_filter, int _port) | Vtl::Plf::Port | [inline, protected]
BaseConnectedTo()=0 | Vtl::Plf::InPortBase | [pure virtual]
ext() const | Vtl::Plf::InPortBase | [inline]
ext_required | Vtl::Plf::InPortBase | [private]
Finish() | Vtl::Plf::InPortBase | [inline]
finished | Vtl::Plf::InPortBase | [private]
getFilter() | Vtl::Plf::Port | [inline, virtual]
getImageSize() const=0 | Vtl::Plf::Port | [pure virtual]
getPort() | Vtl::Plf::Port | [inline, virtual]
getRequiredStrip() | Vtl::Plf::InPortBase | [inline]
Init(FilterElementary *_filter, int _port, Extent extent_required)=0 | Vtl::Plf::InPortBase | [pure virtual]
InPortBase(const InPortBase &) | Vtl::Plf::InPortBase | [private]
InPortBase() | Vtl::Plf::InPortBase | [inline, protected]
isDataReady()=0 | Vtl::Plf::InPortBase | [pure virtual]
isFinished() const | Vtl::Plf::InPortBase | [inline]
operator=(const InPortBase &) | Vtl::Plf::InPortBase | [private]
OutPortBase class | Vtl::Plf::InPortBase | [friend]
Port() | Vtl::Plf::Port | [inline, protected]
print() | Vtl::Plf::Port | [inline, virtual]
Rewind() | Vtl::Plf::InPortBase | [inline]
strip | Vtl::Plf::InPortBase | [private]
ToNextLine(int y) | Vtl::Plf::InPortBase | [inline]
total_delay | Vtl::Plf::InPortBase |
Y() const | Vtl::Plf::InPortBase | [inline]
~InPortBase() | Vtl::Plf::InPortBase | [inline, virtual]
~Port() | Vtl::Plf::Port | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::InPortComb< T > Cписок членов класса

Полный список членов класса Vtl::Plf::InPortComb< T >, включая наследуемые из базового класса

Add(InPort< T > *inp) | Vtl::Plf::InPortComb< T > | [inline]
Add(InPortComb< T > *inp) | Vtl::Plf::InPortComb< T > | [inline]
BufType typedef | Vtl::Plf::InPortComb< T > |
Clear() | Vtl::Plf::InPortComb< T > | [inline]
InPortComb(const InPortComb &) | Vtl::Plf::InPortComb< T > | [private]
InPortComb() | Vtl::Plf::InPortComb< T > | [inline]
inps | Vtl::Plf::InPortComb< T > |
List typedef | Vtl::Plf::InPortComb< T > |
operator=(const InPortComb &) | Vtl::Plf::InPortComb< T > | [private]
OutPortNoPostProc< T > class | Vtl::Plf::InPortComb< T > | [friend]
~InPortComb() | Vtl::Plf::InPortComb< T > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > Cписок членов класса

Полный список членов класса Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >, включая наследуемые из базового класса

_double_ker(Loki::Int2Type< 1 >) | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, private]
_double_ker(Loki::Int2Type< 0 >) | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, private]
_Init(int left, int right) | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
_Init_Last_step() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
_left | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [private]
_right | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [private]
_size | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [private]
Base() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [private]
Base(const Base &) | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [private]
Base(std::string name) | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
begin() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
begin_internal() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
center() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
Center() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
center_internal() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
const_iterator typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
const_pointer_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
const_reference_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
data | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [private]
double_kernel элементы перечисления | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
end() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
end_internal() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
filtername | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [private]
iterator typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
kernel_type элементы перечисления | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
left() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
Left() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
multBy(T val) | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, private]
Name() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
normalize() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
normalize_window() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected, virtual]
operator=(const Base &) | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [private]
pointer_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
ptr_after_right | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [private]
ptr_center | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [private]
ptr_left | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [private]
reference_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
Right() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
right() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
SaveForMathLab() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
size() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
type() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
value_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
~Base() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > Cписок членов класса

Полный список членов класса Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >, включая наследуемые из базового класса

_Init(int left, int right) | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
_Init_conv(FF functor) | Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > | [inline, private]
_Init_Last_step() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
_Init_win(FF functor, size_t wnd_size, T center_pos, T fill_by) | Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > | [inline, private]
Base(std::string name) | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
begin() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
begin_internal() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
build(FF func, typename FF::arg_type ofs) | Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > | [inline, private]
build(FF func, typename FF::arg_type ofs, Loki::Int2Type< KT_Conv >) | Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > | [inline, private]
build(FF func, typename FF::arg_type ofs, Loki::Int2Type< KT_Corr >) | Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > | [inline, private]
build(FF func, typename FF::arg_type ofs, Loki::Int2Type< KT_Win >) | Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > | [inline, private]
center() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
Center() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
center_internal() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
const_iterator typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
const_pointer_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
const_reference_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
double_kernel элементы перечисления | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
end() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
end_internal() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
FKern() | Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > | [inline]
FKern(FF functor) | Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > | [inline]
FKern(FF functor, size_t wnd_size, T center_pos=T(-1), T fill_by=T(0)) | Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > | [inline]
Init(FF functor) | Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > | [inline]
Init(FF functor, size_t wnd_size, T center_pos, T fill_by=T(0)) | Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > | [inline]
iterator typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
kernel_type элементы перечисления | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
Left() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
left() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
Name() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
normalize() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
normalize_window() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected, virtual]
pointer_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
reference_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
right() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
Right() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
SaveForMathLab() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
size() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
type() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
value_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
~Base() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, virtual]
~FKern() | Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Kernel::ImageWin< T > Cписок членов класса

Полный список членов класса Vtl::Plf::Kernel::ImageWin< T >, включая наследуемые из базового класса

ImageWin() | Vtl::Plf::Kernel::ImageWin< T > | [inline]
Init(Fx functor_x, Fy functor_y, size_t width, size_t height, TT center_x, TT center_y, T fill_by) | Vtl::Plf::Kernel::ImageWin< T > | [inline]
ker_x | Vtl::Plf::Kernel::ImageWin< T > | [private]
ker_y | Vtl::Plf::Kernel::ImageWin< T > | [private]
Run(T *p, int nls) | Vtl::Plf::Kernel::ImageWin< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ > Cписок членов класса

Полный список членов класса Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >, включая наследуемые из базового класса

_Init(int left, int right) | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
_Init_Last_step() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
Base(std::string name) | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
begin() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
begin_internal() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
Center() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
center() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
center_internal() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
const_iterator typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
const_pointer_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
const_reference_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
double_kernel элементы перечисления | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
end() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
end_internal() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
Init(const T *ker, int size, int left) | Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ > | [inline]
iterator typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
kernel_type элементы перечисления | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
Left() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
left() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
Name() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
normalize() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected]
normalize_window() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, protected, virtual]
pointer_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
reference_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
right() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
Right() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
SaveForMathLab() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
size() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
Table(const char *name) | Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ > | [inline]
Table(const char *name, const T *ker, int size, int left) | Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ > | [inline]
type() const | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline]
value_type typedef | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > |
~Base() | Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > | [inline, virtual]
~Table() | Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Levels< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::Levels< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
in | Vtl::Plf::Levels< T, P > |
Init(std::string name, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::Levels< T, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Levels() | Vtl::Plf::Levels< T, P > | [inline]
Levels(std::string name, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::Levels< T, P > | [inline]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::Levels< T, P > |
processLine() | Vtl::Plf::Levels< T, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::FilterElementary | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
tmp | Vtl::Plf::Levels< T, P > |
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]
~Levels() | Vtl::Plf::Levels< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::LineIterator< T > Cписок членов класса

Полный список членов класса Vtl::Plf::LineIterator< T >, включая наследуемые из базового класса

LineIterator(ImageRef< T > &img, bool end=false) | Vtl::Plf::LineIterator< T > | [inline]
nls | Vtl::Plf::LineIterator< T > | [private]
operator *() const | Vtl::Plf::LineIterator< T > | [inline]
operator!=(const LineIterator &li) const | Vtl::Plf::LineIterator< T > | [inline]
operator++() | Vtl::Plf::LineIterator< T > | [inline]
operator--() | Vtl::Plf::LineIterator< T > | [inline]
ptr | Vtl::Plf::LineIterator< T > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::MeanAndDisp< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::MeanAndDisp< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
disp | Vtl::Plf::MeanAndDisp< T, P > | [private]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
G0 typedef | Vtl::Plf::MeanAndDisp< T, P > | [private]
gauss | Vtl::Plf::MeanAndDisp< T, P > | [private]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
in | Vtl::Plf::MeanAndDisp< T, P > |
Init(std::string name, T output_maxval, float sigma=1.0f, float env_sigmas=2.5f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::MeanAndDisp< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
mean | Vtl::Plf::MeanAndDisp< T, P > | [private]
MeanAndDisp(const MeanAndDisp &) | Vtl::Plf::MeanAndDisp< T, P > | [private]
MeanAndDisp() | Vtl::Plf::MeanAndDisp< T, P > | [inline]
MeanAndDisp(std::string name, T output_maxval, float sigma=1.0f, float env_sigmas=2.5f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::MeanAndDisp< T, P > | [inline]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const MeanAndDisp &) | Vtl::Plf::MeanAndDisp< T, P > | [private]
out_disp() | Vtl::Plf::MeanAndDisp< T, P > | [inline]
out_mean() | Vtl::Plf::MeanAndDisp< T, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
sqr | Vtl::Plf::MeanAndDisp< T, P > | [private]
sqr_mean | Vtl::Plf::MeanAndDisp< T, P > | [private]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]
~MeanAndDisp() | Vtl::Plf::MeanAndDisp< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::medianFilter2< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::medianFilter2< T, P >, включая наследуемые из базового класса

_bits | Vtl::Plf::medianFilter2< T, P > |
AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
gistogr | Vtl::Plf::medianFilter2< T, P > |
id | Vtl::Plf::FilterElementary |
in | Vtl::Plf::medianFilter2< T, P > |
Init(int rr, int bits, std::string name, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::medianFilter2< T, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
medianFilter2() | Vtl::Plf::medianFilter2< T, P > | [inline]
medianFilter2(int rr, int bits, std::string name, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::medianFilter2< T, P > | [inline]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::medianFilter2< T, P > |
processLine() | Vtl::Plf::medianFilter2< T, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
r | Vtl::Plf::medianFilter2< T, P > |
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::medianFilter2< T, P > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]
~medianFilter2() | Vtl::Plf::medianFilter2< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::medianFilter< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::medianFilter< T, P >, включая наследуемые из базового класса

_bits | Vtl::Plf::medianFilter< T, P > |
AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
gistogr | Vtl::Plf::medianFilter< T, P > |
id | Vtl::Plf::FilterElementary |
in | Vtl::Plf::medianFilter< T, P > |
Init(int rr, int bits, std::string name, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::medianFilter< T, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
medianFilter() | Vtl::Plf::medianFilter< T, P > | [inline]
medianFilter(int rr, int bits, std::string name, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::medianFilter< T, P > | [inline]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::medianFilter< T, P > |
processLine() | Vtl::Plf::medianFilter< T, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
r | Vtl::Plf::medianFilter< T, P > |
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::medianFilter< T, P > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]
~medianFilter() | Vtl::Plf::medianFilter< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::OLSI::Gistogramm2< T > Cписок членов класса

Полный список членов класса Vtl::Plf::OLSI::Gistogramm2< T >, включая наследуемые из базового класса

_img_width | Vtl::Plf::OLSI::Gistogramm< T > | [protected]
_size_of_ramka | Vtl::Plf::OLSI::Gistogramm< T > | [protected]
add_del_lines_to_gist(const T *add, const T *del) | Vtl::Plf::OLSI::Gistogramm2< T > | [inline]
del_insert_pixel_from_histogram(T I_del, T I_add, int x) | Vtl::Plf::OLSI::Gistogramm< T > | [inline, protected]
get_gisInf(int i) | Vtl::Plf::OLSI::Gistogramm2< T > | [inline, private]
get_gistogram(int x) | Vtl::Plf::OLSI::Gistogramm< T > | [inline, protected]
get_secont_part(int x) | Vtl::Plf::OLSI::Gistogramm2< T > | [inline, private]
getMediana(int x) | Vtl::Plf::OLSI::Gistogramm< T > | [inline, protected]
getMediana_value(int x) | Vtl::Plf::OLSI::Gistogramm2< T > | [inline]
gishh | Vtl::Plf::OLSI::Gistogramm< T > | [protected]
gisInf | Vtl::Plf::OLSI::Gistogramm2< T > | [private]
gisMedians | Vtl::Plf::OLSI::Gistogramm< T > | [protected]
gisMem | Vtl::Plf::OLSI::Gistogramm< T > | [protected]
Gistogramm() | Vtl::Plf::OLSI::Gistogramm< T > | [inline]
Init(int bits, int img_width, int size_of_ramka) | Vtl::Plf::OLSI::Gistogramm2< T > | [inline]
init_gisInf() | Vtl::Plf::OLSI::Gistogramm2< T > | [inline, private]
init_secondParts() | Vtl::Plf::OLSI::Gistogramm2< T > | [inline, private]
initGis_of_one_line(const T *start) | Vtl::Plf::OLSI::Gistogramm2< T > | [inline]
initMediansForGistogramms(void) | Vtl::Plf::OLSI::Gistogramm2< T > | [inline]
secondParts | Vtl::Plf::OLSI::Gistogramm2< T > | [private]
~Gistogramm() | Vtl::Plf::OLSI::Gistogramm< T > | [inline]
~Gistogramm2() | Vtl::Plf::OLSI::Gistogramm2< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::OLSI::Gistogramm< T > Cписок членов класса

Полный список членов класса Vtl::Plf::OLSI::Gistogramm< T >, включая наследуемые из базового класса

_img_width | Vtl::Plf::OLSI::Gistogramm< T > | [protected]
_size_of_ramka | Vtl::Plf::OLSI::Gistogramm< T > | [protected]
add_del_lines_to_gist(const T *add, const T *del) | Vtl::Plf::OLSI::Gistogramm< T > | [inline]
del_insert_pixel_from_histogram(T I_del, T I_add, int x) | Vtl::Plf::OLSI::Gistogramm< T > | [inline, protected]
get_gistogram(int x) | Vtl::Plf::OLSI::Gistogramm< T > | [inline, protected]
getMediana(int x) | Vtl::Plf::OLSI::Gistogramm< T > | [inline, protected]
getMediana_value(int x) | Vtl::Plf::OLSI::Gistogramm< T > | [inline]
gishh | Vtl::Plf::OLSI::Gistogramm< T > | [protected]
gisMedians | Vtl::Plf::OLSI::Gistogramm< T > | [protected]
gisMem | Vtl::Plf::OLSI::Gistogramm< T > | [protected]
Gistogramm() | Vtl::Plf::OLSI::Gistogramm< T > | [inline]
Init(int bits, int img_width, int size_of_ramka) | Vtl::Plf::OLSI::Gistogramm< T > | [inline]
initGis_of_one_line(const T *start) | Vtl::Plf::OLSI::Gistogramm< T > | [inline]
initMediansForGistogramms(void) | Vtl::Plf::OLSI::Gistogramm< T > | [inline]
~Gistogramm() | Vtl::Plf::OLSI::Gistogramm< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::OLSI::mediana< T > Cписок членов класса

Полный список членов класса Vtl::Plf::OLSI::mediana< T >, включая наследуемые из базового класса

I | Vtl::Plf::OLSI::mediana< T > |
mediana(T I, int n) | Vtl::Plf::OLSI::mediana< T > | [inline]
mediana() | Vtl::Plf::OLSI::mediana< T > | [inline]
n | Vtl::Plf::OLSI::mediana< T > |
set_m(T _I, int _n) | Vtl::Plf::OLSI::mediana< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::OutPort< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::OutPort< T, P >, включая наследуемые из базового класса

_init(FilterElementary *_filter, int _port) | Vtl::Plf::Port | [inline, protected]
begin() | Vtl::Plf::OutPortNoPostProc< T > | [inline]
beginUpdate() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
BufType typedef | Vtl::Plf::OutPortNoPostProc< T > |
calcRequiredExtent() | Vtl::Plf::OutPortBase | [inline]
ConnectTo(InPort< T > *in_port) | Vtl::Plf::OutPortNoPostProc< T > | [inline]
ConnectTo(InPortComb< T > *in_ports) | Vtl::Plf::OutPortNoPostProc< T > | [inline]
ConnectTo_(InPortBase *in_port) | Vtl::Plf::OutPortBase | [inline, protected]
end() | Vtl::Plf::OutPortNoPostProc< T > | [inline]
endUpdate() | Vtl::Plf::OutPort< T, P > | [inline, virtual]
Finish() | Vtl::Plf::OutPortBase | [inline]
functor_post_proc | Vtl::Plf::OutPort< T, P > | [private]
getFilter() | Vtl::Plf::Port | [inline, virtual]
getImageSize() const | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
getImg(const Extent &ex1, const Strip &strip) const | Vtl::Plf::OutPortNoPostProc< T > | [inline]
getPort() | Vtl::Plf::Port | [inline, virtual]
getRequestedStrips() | Vtl::Plf::OutPortBase | [inline, virtual]
getStrip() const | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
increase_delay_by(int delta_delay) | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
Init(FilterElementary *_filter, int _port) | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
init_buffer() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
init_buffer(Extent ext) | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
init_bufferExtents() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
inPopTailStage() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
isFinished() const | Vtl::Plf::OutPortBase | [inline]
isReadyForUpdate() | Vtl::Plf::OutPortBase | [inline]
Iter typedef | Vtl::Plf::OutPortNoPostProc< T > |
List typedef | Vtl::Plf::OutPortBase |
NumConnectedTo() const | Vtl::Plf::OutPortBase | [inline, virtual]
operator=(const OutPort &) | Vtl::Plf::OutPort< T, P > | [private]
OutPort(const OutPort &) | Vtl::Plf::OutPort< T, P > | [private]
OutPort() | Vtl::Plf::OutPort< T, P > | [inline]
OutPort(P func_post_proc) | Vtl::Plf::OutPort< T, P > | [inline]
OutPortBase() | Vtl::Plf::OutPortBase | [inline, protected]
OutPortNoPostProc() | Vtl::Plf::OutPortNoPostProc< T > | [inline, protected]
PopTail() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
Port() | Vtl::Plf::Port | [inline, protected]
print() | Vtl::Plf::Port | [inline, virtual]
proc(P functor) | Vtl::Plf::OutPort< T, P > | [inline, private]
proc(Vtl::Plf::F11::DoNothing< T >) | Vtl::Plf::OutPort< T, P > | [inline, private]
putConnectionsInQueue(std::list< Vtl::Plf::FilterElementary * > &Q) | Vtl::Plf::OutPortBase | [inline]
putConnectionsInQueue(Fifo< Vtl::Plf::FilterElementary * > &Q) | Vtl::Plf::OutPortBase | [inline]
Rewind() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
set_bufferImgSize(const ImgSize &ims) | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
set_total_delay(int before_delay) | Vtl::Plf::OutPortBase | [inline, virtual]
setPostProc(P func_post_proc) | Vtl::Plf::OutPort< T, P > | [inline]
this_delay() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
Y() const | Vtl::Plf::OutPortNoPostProc< T > | [inline]
Y_wait() const | Vtl::Plf::OutPortNoPostProc< T > | [inline]
~OutPort() | Vtl::Plf::OutPort< T, P > | [inline, virtual]
~OutPortBase() | Vtl::Plf::OutPortBase | [inline, virtual]
~OutPortNoPostProc() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
~Port() | Vtl::Plf::Port | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::OutPortBase Cписок членов класса

Полный список членов класса Vtl::Plf::OutPortBase, включая наследуемые из базового класса

_init(FilterElementary *_filter, int _port) | Vtl::Plf::Port | [inline, protected]
calcRequiredExtent() | Vtl::Plf::OutPortBase | [inline]
connected_to | Vtl::Plf::OutPortBase | [private]
ConnectTo_(InPortBase *in_port) | Vtl::Plf::OutPortBase | [inline, protected]
Finish() | Vtl::Plf::OutPortBase | [inline]
finished | Vtl::Plf::OutPortBase | [private]
getFilter() | Vtl::Plf::Port | [inline, virtual]
getImageSize() const=0 | Vtl::Plf::Port | [pure virtual]
getPort() | Vtl::Plf::Port | [inline, virtual]
getRequestedStrips() | Vtl::Plf::OutPortBase | [inline, virtual]
getStrip() const=0 | Vtl::Plf::OutPortBase | [pure virtual]
increase_delay_by(int delta_delay)=0 | Vtl::Plf::OutPortBase | [pure virtual]
Init(FilterElementary *_filter, int _port) | Vtl::Plf::OutPortBase | [inline, virtual]
init_buffer()=0 | Vtl::Plf::OutPortBase | [pure virtual]
init_buffer(Extent ext)=0 | Vtl::Plf::OutPortBase | [pure virtual]
init_bufferExtents()=0 | Vtl::Plf::OutPortBase | [pure virtual]
inPopTailStage()=0 | Vtl::Plf::OutPortBase | [pure virtual]
isFinished() const | Vtl::Plf::OutPortBase | [inline]
isReadyForUpdate() | Vtl::Plf::OutPortBase | [inline]
List typedef | Vtl::Plf::OutPortBase |
NumConnectedTo() const | Vtl::Plf::OutPortBase | [inline, virtual]
operator=(const OutPortBase &) | Vtl::Plf::OutPortBase | [private]
OutPortBase(const OutPortBase &) | Vtl::Plf::OutPortBase | [private]
OutPortBase() | Vtl::Plf::OutPortBase | [inline, protected]
PopTail()=0 | Vtl::Plf::OutPortBase | [pure virtual]
Port() | Vtl::Plf::Port | [inline, protected]
print() | Vtl::Plf::Port | [inline, virtual]
putConnectionsInQueue(std::list< Vtl::Plf::FilterElementary * > &Q) | Vtl::Plf::OutPortBase | [inline]
putConnectionsInQueue(Fifo< Vtl::Plf::FilterElementary * > &Q) | Vtl::Plf::OutPortBase | [inline]
Rewind() | Vtl::Plf::OutPortBase | [inline, virtual]
set_bufferImgSize(const ImgSize &ims)=0 | Vtl::Plf::OutPortBase | [pure virtual]
set_total_delay(int before_delay) | Vtl::Plf::OutPortBase | [inline, virtual]
this_delay()=0 | Vtl::Plf::OutPortBase | [pure virtual]
~OutPortBase() | Vtl::Plf::OutPortBase | [inline, virtual]
~Port() | Vtl::Plf::Port | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::OutPortNoPostProc< T > Cписок членов класса

Полный список членов класса Vtl::Plf::OutPortNoPostProc< T >, включая наследуемые из базового класса

_init(FilterElementary *_filter, int _port) | Vtl::Plf::Port | [inline, protected]
begin() | Vtl::Plf::OutPortNoPostProc< T > | [inline]
beginUpdate() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
buffer | Vtl::Plf::OutPortNoPostProc< T > | [private]
BufType typedef | Vtl::Plf::OutPortNoPostProc< T > |
calcRequiredExtent() | Vtl::Plf::OutPortBase | [inline]
ConnectTo(InPort< T > *in_port) | Vtl::Plf::OutPortNoPostProc< T > | [inline]
ConnectTo(InPortComb< T > *in_ports) | Vtl::Plf::OutPortNoPostProc< T > | [inline]
ConnectTo_(InPortBase *in_port) | Vtl::Plf::OutPortBase | [inline, protected]
end() | Vtl::Plf::OutPortNoPostProc< T > | [inline]
endUpdate() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
Finish() | Vtl::Plf::OutPortBase | [inline]
getFilter() | Vtl::Plf::Port | [inline, virtual]
getImageSize() const | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
getImg(const Extent &ex1, const Strip &strip) const | Vtl::Plf::OutPortNoPostProc< T > | [inline]
getPort() | Vtl::Plf::Port | [inline, virtual]
getRequestedStrips() | Vtl::Plf::OutPortBase | [inline, virtual]
getStrip() const | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
increase_delay_by(int delta_delay) | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
Init(FilterElementary *_filter, int _port) | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
init_buffer() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
init_buffer(Extent ext) | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
init_bufferExtents() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
inPopTailStage() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
InPort< T > class | Vtl::Plf::OutPortNoPostProc< T > | [friend]
isFinished() const | Vtl::Plf::OutPortBase | [inline]
isReadyForUpdate() | Vtl::Plf::OutPortBase | [inline]
Iter typedef | Vtl::Plf::OutPortNoPostProc< T > |
List typedef | Vtl::Plf::OutPortBase |
NumConnectedTo() const | Vtl::Plf::OutPortBase | [inline, virtual]
operator=(const OutPortNoPostProc &) | Vtl::Plf::OutPortNoPostProc< T > | [private]
OutPortBase() | Vtl::Plf::OutPortBase | [inline, protected]
OutPortNoPostProc(const OutPortNoPostProc &) | Vtl::Plf::OutPortNoPostProc< T > | [private]
OutPortNoPostProc() | Vtl::Plf::OutPortNoPostProc< T > | [inline, protected]
PopTail() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
Port() | Vtl::Plf::Port | [inline, protected]
print() | Vtl::Plf::Port | [inline, virtual]
putConnectionsInQueue(std::list< Vtl::Plf::FilterElementary * > &Q) | Vtl::Plf::OutPortBase | [inline]
putConnectionsInQueue(Fifo< Vtl::Plf::FilterElementary * > &Q) | Vtl::Plf::OutPortBase | [inline]
Rewind() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
set_bufferImgSize(const ImgSize &ims) | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
set_total_delay(int before_delay) | Vtl::Plf::OutPortBase | [inline, virtual]
this_delay() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
Y() const | Vtl::Plf::OutPortNoPostProc< T > | [inline]
Y_wait() const | Vtl::Plf::OutPortNoPostProc< T > | [inline]
~OutPortBase() | Vtl::Plf::OutPortBase | [inline, virtual]
~OutPortNoPostProc() | Vtl::Plf::OutPortNoPostProc< T > | [inline, virtual]
~Port() | Vtl::Plf::Port | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::PixByPix2to1< T, F, P > Cписок членов класса

Полный список членов класса Vtl::Plf::PixByPix2to1< T, F, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
functor | Vtl::Plf::PixByPix2to1< T, F, P > |
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
in_1 | Vtl::Plf::PixByPix2to1< T, F, P > |
in_2 | Vtl::Plf::PixByPix2to1< T, F, P > |
Init(std::string name, F fun, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::PixByPix2to1< T, F, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::PixByPix2to1< T, F, P > |
PixByPix2to1() | Vtl::Plf::PixByPix2to1< T, F, P > | [inline]
PixByPix2to1(std::string name, F fun, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::PixByPix2to1< T, F, P > | [inline]
processLine() | Vtl::Plf::PixByPix2to1< T, F, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::FilterElementary | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
tmp | Vtl::Plf::PixByPix2to1< T, F, P > |
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]
~PixByPix2to1() | Vtl::Plf::PixByPix2to1< T, F, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::PixByPix2to3< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::PixByPix2to3< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
functor | Vtl::Plf::PixByPix2to3< T, P > | [private]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
in_1 | Vtl::Plf::PixByPix2to3< T, P > |
in_2 | Vtl::Plf::PixByPix2to3< T, P > |
Init(std::string name, P func=F23::CorrMatrix< T, T & >()) | Vtl::Plf::PixByPix2to3< T, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out_11 | Vtl::Plf::PixByPix2to3< T, P > |
out_12 | Vtl::Plf::PixByPix2to3< T, P > |
out_22 | Vtl::Plf::PixByPix2to3< T, P > |
PixByPix2to3() | Vtl::Plf::PixByPix2to3< T, P > | [inline]
PixByPix2to3(std::string name) | Vtl::Plf::PixByPix2to3< T, P > | [inline]
processLine() | Vtl::Plf::PixByPix2to3< T, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::PixByPix2to3< T, P > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]
~PixByPix2to3() | Vtl::Plf::PixByPix2to3< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::PixByPix3to1< T, Func, P > Cписок членов класса

Полный список членов класса Vtl::Plf::PixByPix3to1< T, Func, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
func | Vtl::Plf::PixByPix3to1< T, Func, P > |
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
in_xx | Vtl::Plf::PixByPix3to1< T, Func, P > |
in_xy | Vtl::Plf::PixByPix3to1< T, Func, P > |
in_yy | Vtl::Plf::PixByPix3to1< T, Func, P > |
Init(std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::PixByPix3to1< T, Func, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::PixByPix3to1< T, Func, P > |
PixByPix3to1() | Vtl::Plf::PixByPix3to1< T, Func, P > | [inline]
PixByPix3to1(std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::PixByPix3to1< T, Func, P > | [inline]
processLine() | Vtl::Plf::PixByPix3to1< T, Func, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::PixByPix3to1< T, Func, P > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]
~PixByPix3to1() | Vtl::Plf::PixByPix3to1< T, Func, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > Cписок членов класса

Полный список членов класса Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
func | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > |
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
in_1 | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > |
in_2 | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > |
in_3 | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > |
Init(std::string name, Func functor, P1 post_proc_1=Vtl::Plf::F11::DoNothing< T >(), P2 post_proc_2=Vtl::Plf::F11::DoNothing< T >(), P3 post_proc_3=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out_1 | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > |
out_2 | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > |
out_3 | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > |
PixByPix3to3() | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > | [inline]
PixByPix3to3(std::string name, Func functor, P1 post_proc_1=Vtl::Plf::F11::DoNothing< T >(), P2 post_proc_2=Vtl::Plf::F11::DoNothing< T >(), P3 post_proc_3=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > | [inline]
processLine() | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]
~PixByPix3to3() | Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::PixByPix4to1< T, Func, P > Cписок членов класса

Полный список членов класса Vtl::Plf::PixByPix4to1< T, Func, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
func | Vtl::Plf::PixByPix4to1< T, Func, P > |
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
in_1 | Vtl::Plf::PixByPix4to1< T, Func, P > |
in_2 | Vtl::Plf::PixByPix4to1< T, Func, P > |
in_3 | Vtl::Plf::PixByPix4to1< T, Func, P > |
in_4 | Vtl::Plf::PixByPix4to1< T, Func, P > |
Init(std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::PixByPix4to1< T, Func, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::PixByPix4to1< T, Func, P > |
PixByPix4to1() | Vtl::Plf::PixByPix4to1< T, Func, P > | [inline]
PixByPix4to1(std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::PixByPix4to1< T, Func, P > | [inline]
processLine() | Vtl::Plf::PixByPix4to1< T, Func, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::PixByPix4to1< T, Func, P > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]
~PixByPix4to1() | Vtl::Plf::PixByPix4to1< T, Func, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::PixByPix5to1< T, Func, P > Cписок членов класса

Полный список членов класса Vtl::Plf::PixByPix5to1< T, Func, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
func | Vtl::Plf::PixByPix5to1< T, Func, P > |
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
in_1 | Vtl::Plf::PixByPix5to1< T, Func, P > |
in_2 | Vtl::Plf::PixByPix5to1< T, Func, P > |
in_3 | Vtl::Plf::PixByPix5to1< T, Func, P > |
in_4 | Vtl::Plf::PixByPix5to1< T, Func, P > |
in_5 | Vtl::Plf::PixByPix5to1< T, Func, P > |
Init(std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::PixByPix5to1< T, Func, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::PixByPix5to1< T, Func, P > |
PixByPix5to1() | Vtl::Plf::PixByPix5to1< T, Func, P > | [inline]
PixByPix5to1(std::string name, Func functor, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::PixByPix5to1< T, Func, P > | [inline]
processLine() | Vtl::Plf::PixByPix5to1< T, Func, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::PixByPix5to1< T, Func, P > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]
~PixByPix5to1() | Vtl::Plf::PixByPix5to1< T, Func, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Port Cписок членов класса

Полный список членов класса Vtl::Plf::Port, включая наследуемые из базового класса

_init(FilterElementary *_filter, int _port) | Vtl::Plf::Port | [inline, protected]
filter | Vtl::Plf::Port | [private]
getFilter() | Vtl::Plf::Port | [inline, virtual]
getImageSize() const=0 | Vtl::Plf::Port | [pure virtual]
getPort() | Vtl::Plf::Port | [inline, virtual]
operator=(const Port &) | Vtl::Plf::Port | [private]
port | Vtl::Plf::Port | [private]
Port(const Port &) | Vtl::Plf::Port | [private]
Port() | Vtl::Plf::Port | [inline, protected]
print() | Vtl::Plf::Port | [inline, virtual]
~Port() | Vtl::Plf::Port | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Resample< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::Resample< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
h_resamp | Vtl::Plf::Resample< T, P > | [private]
in() | Vtl::Plf::Resample< T, P > | [inline]
Init(std::string name, int new_width, int new_height, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::Resample< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const Resample &) | Vtl::Plf::Resample< T, P > | [private]
out() | Vtl::Plf::Resample< T, P > | [inline]
Resample(const Resample &) | Vtl::Plf::Resample< T, P > | [private]
Resample() | Vtl::Plf::Resample< T, P > | [inline]
Resample(std::string name, int new_width, int new_height, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::Resample< T, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
v_resamp | Vtl::Plf::Resample< T, P > | [private]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]
~Resample() | Vtl::Plf::Resample< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::SeparableConv2D< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::SeparableConv2D< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
h_conv | Vtl::Plf::SeparableConv2D< T, P > | [private]
in() | Vtl::Plf::SeparableConv2D< T, P > | [inline]
Init(std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel_x, const Kernel::Base< T, Kernel::KT_Conv > *kernel_y, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::SeparableConv2D< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const SeparableConv2D &) | Vtl::Plf::SeparableConv2D< T, P > | [private]
out() | Vtl::Plf::SeparableConv2D< T, P > | [inline]
SeparableConv2D(const SeparableConv2D &) | Vtl::Plf::SeparableConv2D< T, P > | [private]
SeparableConv2D() | Vtl::Plf::SeparableConv2D< T, P > | [inline]
SeparableConv2D(std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel_x, const Kernel::Base< T, Kernel::KT_Conv > *kernel_y, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::SeparableConv2D< T, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
v_conv | Vtl::Plf::SeparableConv2D< T, P > | [private]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]
~SeparableConv2D() | Vtl::Plf::SeparableConv2D< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Sharpen< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::Sharpen< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
in | Vtl::Plf::Sharpen< T, P > |
Init(std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel_1D, float amp=4.0, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::Sharpen< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
mean | Vtl::Plf::Sharpen< T, P > | [private]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const Sharpen &) | Vtl::Plf::Sharpen< T, P > | [private]
out() | Vtl::Plf::Sharpen< T, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
sharp | Vtl::Plf::Sharpen< T, P > | [private]
Sharpen(const Sharpen &) | Vtl::Plf::Sharpen< T, P > | [private]
Sharpen() | Vtl::Plf::Sharpen< T, P > | [inline]
Sharpen(std::string name, const Kernel::Base< T, Kernel::KT_Conv > *kernel_1D, float amp=4.0, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::Sharpen< T, P > | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]
~Sharpen() | Vtl::Plf::Sharpen< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::SrcAImage< T, I, P > Cписок членов класса

Полный список членов класса Vtl::Plf::SrcAImage< T, I, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
id | Vtl::Plf::FilterElementary |
Init(std::string name, I *ptr, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::SrcAImage< T, I, P > | [inline]
Vtl::Plf::SrcArray< T, I::Pixel, P >::Init(std::string name, I::Pixel *ptr, int width, int height, int next_line_shift, Ppost_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::SrcArray< T, I::Pixel, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::SrcArray< T, I::Pixel, P > |
processLine() | Vtl::Plf::SrcArray< T, I::Pixel, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
Restart() | Vtl::Plf::SrcArray< T, I::Pixel, P > | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::SrcArray< T, I::Pixel, P > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
SrcAImage() | Vtl::Plf::SrcAImage< T, I, P > | [inline]
SrcAImage(std::string name, I *ptr, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::SrcAImage< T, I, P > | [inline]
SrcArray() | Vtl::Plf::SrcArray< T, I::Pixel, P > | [inline]
SrcArray(std::string name, I::Pixel *ptr, int width, int height, int next_line_shift, Ppost_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::SrcArray< T, I::Pixel, P > | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]
~SrcAImage() | Vtl::Plf::SrcAImage< T, I, P > | [inline, virtual]
~SrcArray() | Vtl::Plf::SrcArray< T, I::Pixel, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::SrcAImageRgb< T, I, P > Cписок членов класса

Полный список членов класса Vtl::Plf::SrcAImageRgb< T, I, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
b | Vtl::Plf::SrcAImageRgb< T, I, P > | [private]
copy_line(typename OutPortNoPostProc< T >::BufType::Iter_Line it, typename I::PlaneImageType::Pixel *p) | Vtl::Plf::SrcAImageRgb< T, I, P > | [inline, private]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
g | Vtl::Plf::SrcAImageRgb< T, I, P > | [private]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
h | Vtl::Plf::SrcAImageRgb< T, I, P > | [private]
id | Vtl::Plf::FilterElementary |
Init(std::string name, I *ptr, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::SrcAImageRgb< T, I, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out_1 | Vtl::Plf::SrcAImageRgb< T, I, P > |
out_2 | Vtl::Plf::SrcAImageRgb< T, I, P > |
out_3 | Vtl::Plf::SrcAImageRgb< T, I, P > |
processLine() | Vtl::Plf::SrcAImageRgb< T, I, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
r | Vtl::Plf::SrcAImageRgb< T, I, P > | [private]
Restart() | Vtl::Plf::SrcAImageRgb< T, I, P > | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::SrcAImageRgb< T, I, P > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
SrcAImageRgb() | Vtl::Plf::SrcAImageRgb< T, I, P > | [inline]
SrcAImageRgb(std::string name, I *ptr, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::SrcAImageRgb< T, I, P > | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
w | Vtl::Plf::SrcAImageRgb< T, I, P > | [private]
y | Vtl::Plf::SrcAImageRgb< T, I, P > | [private]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]
~SrcAImageRgb() | Vtl::Plf::SrcAImageRgb< T, I, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::SrcArray< T, I, P > Cписок членов класса

Полный список членов класса Vtl::Plf::SrcArray< T, I, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i, Extent ext) | Vtl::Plf::FilterElementary | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterElementary | [inline, virtual]
Vtl::Plf::FilterBase::AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
data | Vtl::Plf::SrcArray< T, I, P > | [private]
do_1_step() | Vtl::Plf::FilterElementary | [inline]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterElementary(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
FilterElementary(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterElementary | [inline, protected]
Finish() | Vtl::Plf::FilterElementary | [inline]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
h | Vtl::Plf::SrcArray< T, I, P > | [private]
id | Vtl::Plf::FilterElementary |
Init(std::string name, I *ptr, int width, int height, int next_line_shift, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::SrcArray< T, I, P > | [inline]
init_buffers() | Vtl::Plf::FilterElementary | [inline]
init_OutPortsExtents() | Vtl::Plf::FilterElementary | [inline]
isComplex() const | Vtl::Plf::FilterElementary | [inline, virtual]
isFinished() const | Vtl::Plf::FilterElementary | [inline, virtual]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
nls | Vtl::Plf::SrcArray< T, I, P > | [private]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
out | Vtl::Plf::SrcArray< T, I, P > |
processLine() | Vtl::Plf::SrcArray< T, I, P > | [inline, virtual]
put_in_queue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline]
Restart() | Vtl::Plf::SrcArray< T, I, P > | [inline]
set_OutPortsImagesSizeAndInPortsExtents() | Vtl::Plf::SrcArray< T, I, P > | [inline, virtual]
set_total_delay() | Vtl::Plf::FilterElementary | [inline, virtual]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
SrcArray() | Vtl::Plf::SrcArray< T, I, P > | [inline]
SrcArray(std::string name, I *ptr, int width, int height, int next_line_shift, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::SrcArray< T, I, P > | [inline]
TryPutInQueue(Fifo< int > &Q) | Vtl::Plf::FilterElementary | [inline, virtual]
w | Vtl::Plf::SrcArray< T, I, P > | [private]
y | Vtl::Plf::SrcArray< T, I, P > | [private]
Y_pos() const | Vtl::Plf::FilterElementary | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterElementary() | Vtl::Plf::FilterElementary | [inline, virtual]
~SrcArray() | Vtl::Plf::SrcArray< T, I, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::StatDiff< T, P > Cписок членов класса

Полный список членов класса Vtl::Plf::StatDiff< T, P >, включая наследуемые из базового класса

AddPort(InPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
AddPort(OutPortBase &port, int i) | Vtl::Plf::FilterBase | [inline, virtual]
FilterBase(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterBase(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterBase | [inline, protected]
FilterComplex(int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
FilterComplex(std::string name, int num_in_ports, int num_out_ports) | Vtl::Plf::FilterComplex | [inline, protected]
getInPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
getOutPort(int i) const | Vtl::Plf::FilterBase | [inline, virtual]
in | Vtl::Plf::StatDiff< T, P > |
Init(std::string name, T output_maxval, float sigma=5.0f, float env_sigmas=2.0f, float amplification=6.0f, float sigma_desired=85.0f, float mean_desired=128.0f, float alpha=0.8f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::StatDiff< T, P > | [inline]
isComplex() const | Vtl::Plf::FilterComplex | [inline, virtual]
mean_and_disp | Vtl::Plf::StatDiff< T, P > | [private]
Name() const | Vtl::Plf::FilterBase | [inline, virtual]
NumInputs() const | Vtl::Plf::FilterBase | [inline, virtual]
NumOutputs() const | Vtl::Plf::FilterBase | [inline, virtual]
operator=(const StatDiff &) | Vtl::Plf::StatDiff< T, P > | [private]
out() | Vtl::Plf::StatDiff< T, P > | [inline]
setName(std::string name) | Vtl::Plf::FilterBase | [inline]
stat | Vtl::Plf::StatDiff< T, P > | [private]
StatDiff(const StatDiff &) | Vtl::Plf::StatDiff< T, P > | [private]
StatDiff() | Vtl::Plf::StatDiff< T, P > | [inline]
StatDiff(std::string name, T output_maxval, float sigma=5.0f, float env_sigmas=2.0f, float amplification=6.0f, float sigma_desired=85.0f, float mean_desired=128.0f, float alpha=0.8f, P post_proc=Vtl::Plf::F11::DoNothing< T >()) | Vtl::Plf::StatDiff< T, P > | [inline]
~FilterBase() | Vtl::Plf::FilterBase | [inline, virtual]
~FilterComplex() | Vtl::Plf::FilterComplex | [inline, virtual]
~StatDiff() | Vtl::Plf::StatDiff< T, P > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Strip Cписок членов класса

Полный список членов класса Vtl::Plf::Strip, включая наследуемые из базового класса

canMove(const Strip &s) const | Vtl::Plf::Strip | [inline]
isContains(const Strip &s) const | Vtl::Plf::Strip | [inline]
isContains(int y) const | Vtl::Plf::Strip | [inline]
isEmpty() const | Vtl::Plf::Strip | [inline]
isIn(const Strip &s) const | Vtl::Plf::Strip | [inline]
last() const | Vtl::Plf::Strip | [inline]
operator++() | Vtl::Plf::Strip | [inline]
operator+=(int delta) | Vtl::Plf::Strip | [inline]
operator=(const Strip &s) | Vtl::Plf::Strip | [inline]
operator|(const Strip &s1, const Strip &s2) | Vtl::Plf::Strip | [friend]
operator|=(const Strip &s) | Vtl::Plf::Strip | [inline]
Strip() | Vtl::Plf::Strip | [inline]
Strip(int y_start, int y_after_end) | Vtl::Plf::Strip | [inline]
Strip(int y_current, Extent ext) | Vtl::Plf::Strip | [inline]
Strip(const Strip &s) | Vtl::Plf::Strip | [inline]
y_last | Vtl::Plf::Strip | [private]
y_wait | Vtl::Plf::Strip | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::StripBuffer< T > Cписок членов класса

Полный список членов класса Vtl::Plf::StripBuffer< T >, включая наследуемые из базового класса

_hFlipLeft(Iter_Line it, int len) | Vtl::Plf::StripBuffer< T > | [inline, private]
_hFlipRight(Iter_Line it, int len) | Vtl::Plf::StripBuffer< T > | [inline, private]
_mirrorLineRelCenter(int src_y, int dst_y) | Vtl::Plf::StripBuffer< T > | [inline, private]
begin_line_insert() | Vtl::Plf::StripBuffer< T > | [inline]
delay() const | Vtl::Plf::StripBuffer< T > | [inline]
delay(Extent extent) const | Vtl::Plf::StripBuffer< T > | [inline]
end_line_insert() | Vtl::Plf::StripBuffer< T > | [inline]
ex | Vtl::Plf::StripBuffer< T > | [private]
ext() const | Vtl::Plf::StripBuffer< T > | [inline]
full_width | Vtl::Plf::StripBuffer< T > | [private]
getCurStrip() const | Vtl::Plf::StripBuffer< T > | [inline]
getImg() const | Vtl::Plf::StripBuffer< T > | [inline]
getImg(const Extent &ex1, const Strip &strip) const | Vtl::Plf::StripBuffer< T > | [inline]
ImageSize() const | Vtl::Plf::StripBuffer< T > | [inline]
ims | Vtl::Plf::StripBuffer< T > | [private]
init_1(const ImgSize &sz) | Vtl::Plf::StripBuffer< T > | [inline]
init_2(const Extent &ext) | Vtl::Plf::StripBuffer< T > | [inline]
init_3(int increase_delay_by) | Vtl::Plf::StripBuffer< T > | [inline]
init_4() | Vtl::Plf::StripBuffer< T > | [inline]
InsertNextLineFinished() | Vtl::Plf::StripBuffer< T > | [inline]
InsertNextLineStart() | Vtl::Plf::StripBuffer< T > | [inline]
ir | Vtl::Plf::StripBuffer< T > | [private]
Iter_Line typedef | Vtl::Plf::StripBuffer< T > |
PopTail() | Vtl::Plf::StripBuffer< T > | [inline]
ptr_beg_ins | Vtl::Plf::StripBuffer< T > | [private]
ptrLine0(int y) | Vtl::Plf::StripBuffer< T > | [inline, private]
ptrLineStart(int y) | Vtl::Plf::StripBuffer< T > | [inline, private]
Rewind() | Vtl::Plf::StripBuffer< T > | [inline]
StripBuffer() | Vtl::Plf::StripBuffer< T > | [inline]
vec | Vtl::Plf::StripBuffer< T > | [private]
Y() const | Vtl::Plf::StripBuffer< T > | [inline]
Y_last() const | Vtl::Plf::StripBuffer< T > | [inline]
Y_wait() const | Vtl::Plf::StripBuffer< T > | [inline]
y_wait | Vtl::Plf::StripBuffer< T > | [private]
~StripBuffer() | Vtl::Plf::StripBuffer< T > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

Vtl::Types::Conversion< T, U > Cписок членов класса

Полный список членов класса Vtl::Types::Conversion< T, U >, включая наследуемые из базового класса

exists элементы перечисления | Vtl::Types::Conversion< T, U >
sameType элементы перечисления | Vtl::Types::Conversion< T, U >


Pipe Line Filters: Cписок членов класса

Vtl::Types::isSameType< T1, T2 > Cписок членов класса

Полный список членов класса Vtl::Types::isSameType< T1, T2 >, включая наследуемые из базового класса

value элементы перечисления Vtl::Types::isSameType< T1, T2 >


Pipe Line Filters: Cписок членов класса

Vtl::Types::PixelTraits< T > Cписок членов класса

Полный список членов класса Vtl::Types::PixelTraits< T >, включая наследуемые из базового класса

group элементы перечисления | Vtl::Types::PixelTraits< T > | [private]
listForSqr typedef | Vtl::Types::PixelTraits< T > |
PixelType typedef | Vtl::Types::PixelTraits< T > |
SqrType typedef | Vtl::Types::PixelTraits< T > |
TypesGroup typedef | Vtl::Types::PixelTraits< T > |


Pipe Line Filters: Cписок членов класса

Vtl::Types::Select< flag, Type1, Type2 > Cписок членов класса

Полный список членов класса Vtl::Types::Select< flag, Type1, Type2 >, включая наследуемые из базового класса

Type typedef Vtl::Types::Select< flag, Type1, Type2 >


Pipe Line Filters: Cписок членов класса

Vtl::Types::TL::Print< TList > Cписок членов класса

Полный список членов класса Vtl::Types::TL::Print< TList >, включая наследуемые из базового класса

str() Vtl::Types::TL::Print< TList > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Types::Traits< T > Cписок членов класса

Полный список членов класса Vtl::Types::Traits< T >, включая наследуемые из базового класса

isConst элементы перечисления | Vtl::Types::Traits< T >
isMemberPointer элементы перечисления | Vtl::Types::Traits< T >
isPointer элементы перечисления | Vtl::Types::Traits< T >
isQualifiedType элементы перечисления | Vtl::Types::Traits< T >
isReference элементы перечисления | Vtl::Types::Traits< T >
isStdArith элементы перечисления | Vtl::Types::Traits< T >
isStdArithAll элементы перечисления | Vtl::Types::Traits< T >
isStdFundamental элементы перечисления | Vtl::Types::Traits< T >
isStdInteger элементы перечисления | Vtl::Types::Traits< T >
isStdIntegerAll элементы перечисления | Vtl::Types::Traits< T >
isStdOtherInt элементы перечисления | Vtl::Types::Traits< T >
isStdReal элементы перечисления | Vtl::Types::Traits< T >
isStdSignedInt элементы перечисления | Vtl::Types::Traits< T >
isStdUnsignedInt элементы перечисления | Vtl::Types::Traits< T >
isVolatile элементы перечисления | Vtl::Types::Traits< T >
NonConstType typedef | Vtl::Types::Traits< T >
NonVolatileType typedef | Vtl::Types::Traits< T >
PointeeType typedef | Vtl::Types::Traits< T >
ReferredType typedef | Vtl::Types::Traits< T >
Result элементы перечисления | Vtl::Types::Traits< T >
sameType элементы перечисления | Vtl::Types::Traits< T >
UnqualifiedType typedef | Vtl::Types::Traits< T >


Pipe Line Filters: Cписок членов класса

Vtl::Types::Typelist< T, U > Cписок членов класса

Полный список членов класса Vtl::Types::Typelist< T, U >, включая наследуемые из базового класса

Head typedef | Vtl::Types::Typelist< T, U >
Tail typedef | Vtl::Types::Typelist< T, U >


Pipe Line Filters: Cписок членов класса

WinIniFile Cписок членов класса

Полный список членов класса WinIniFile, включая наследуемые из базового класса

fname | WinIniFile | [private]
GetFName() const | WinIniFile | [inline]
Load(std::string filename) | WinIniFile |
Root() const | WinIniFile |
WinIniFile() | WinIniFile | [inline]
WinIniFile(std::string filename) | WinIniFile |


Pipe Line Filters: Cписок членов класса

WiNode Cписок членов класса

Полный список членов класса WiNode, включая наследуемые из базового класса

fname | WiNode | [private]
GetAttr(const std::string attr_name) const | WiNode |
GetNode(const std::string node_name) | WiNode |
GetNode(const std::string node_name) const | WiNode |
GetValue() const | WiNode |
IsNode() const | WiNode | [inline]
name | WiNode | [private]
operator DataString() const | WiNode | [inline]
operator()(const std::string node_name) | WiNode | [inline]
operator()(const std::string node_name) const | WiNode | [inline]
operator<<(std::ostream &s, WiNode &in) | WiNode | [friend]
operator=(const WiNode &n) | WiNode | [inline]
operator=(const DataString data) | WiNode | [inline]
operator[](const std::string &attr) | WiNode | [inline]
operator[](const std::string &attr) const | WiNode | [inline]
SetAttr(const std::string attr_name, const DataString attr_value) | WiNode |
SetValue(const DataString data) | WiNode |
WinIniFile class | WiNode | [friend]
WiNode(const std::string filename, const std::string node) | WiNode | [inline, private]
WiNode() | WiNode | [inline]
WiNode(const WiNode &n) | WiNode | [inline]


Pipe Line Filters: Cписок членов класса

WiNode::AttrRef Cписок членов класса

Полный список членов класса WiNode::AttrRef, включая наследуемые из базового класса

attrib | WiNode::AttrRef | [private]
AttrRef() | WiNode::AttrRef | [inline, private]
AttrRef(const AttrRef &ar) | WiNode::AttrRef | [inline, private]
AttrRef(WiNode node, const std::string &attr) | WiNode::AttrRef | [inline, private]
n | WiNode::AttrRef | [private]
operator DataString() const | WiNode::AttrRef | [inline]
operator<<(std::ostream &s, WiNode::AttrRef &ir) | WiNode::AttrRef | [friend]
operator=(const AttrRef &) | WiNode::AttrRef | [private]
operator=(const DataString &s) | WiNode::AttrRef | [inline]
WiNode class | WiNode::AttrRef | [friend]


Pipe Line Filters: Cписок членов класса

WritePipe Cписок членов класса

Полный список членов класса WritePipe, включая наследуемые из базового класса

childPipe class | WritePipe | [friend]
close() | WritePipe |
handle_ | WritePipe | [private]
isEof() const | WritePipe | [inline]
open(HANDLE handle) | WritePipe | [inline, private]
operator=(const WritePipe &) | WritePipe | [private]
writeNoWait(const char *data, unsigned len) | WritePipe |
WritePipe() | WritePipe | [inline, private]
WritePipe(HANDLE handle) | WritePipe | [inline, private]
WritePipe(const WritePipe &) | WritePipe | [private]
writeWait(const char *data, unsigned len) | WritePipe |
~WritePipe() | WritePipe | [inline]


Pipe Line Filters: Cписок членов класса

YDataTime Cписок членов класса

Полный список членов класса YDataTime, включая наследуемые из базового класса

Between(const YDataTime &dt1, const YDataTime &dt2, int cnt1, int cnt2, int cnt) | YDataTime |
date2BCDdate() const | YDataTime |
Day() const | YDataTime |
DaysInMonth() const | YDataTime |
DaysInYear() const | YDataTime |
Get(int &_year, int &_month, int &_day, int &_hour, int &_minutes, double &_seconds) const | YDataTime |
Hour() const | YDataTime |
IsLeapYear() const | YDataTime |
IsOk() const | YDataTime | [inline]
microsec | YDataTime | [private]
MicroSecondsInYear() const | YDataTime |
Minutes() const | YDataTime |
Month() const | YDataTime |
MonthInYear() | YDataTime | [static]
operator!=(const YDataTime &dt2) const | YDataTime | [inline]
operator+(const YTimeInterval &ti) const | YDataTime | [inline]
operator+=(const YTimeInterval &ti) | YDataTime |
operator-(const YDataTime &dt) const | YDataTime |
operator-=(const YTimeInterval &ti) | YDataTime | [inline]
operator<(const YDataTime &dt2) const | YDataTime |
operator<=(const YDataTime &dt2) const | YDataTime |
operator==(const YDataTime &dt2) const | YDataTime |
operator>(const YDataTime &dt2) const | YDataTime | [inline]
operator>=(const YDataTime &dt2) const | YDataTime | [inline]
Seconds() const | YDataTime |
SecondsInYear() const | YDataTime |
Set(int _year, int _month, int _day, int _hour, int _minutes, double _seconds) | YDataTime |
YDataTime() | YDataTime | [inline]
YDataTime(int _year, int _month, int _day, int _hour, int _minutes, double _seconds) | YDataTime | [inline]
year | YDataTime | [private]
Year() const | YDataTime |
YearDay() const | YDataTime |
YearDaySec() const | YDataTime |


Pipe Line Filters: Cписок членов класса

YDataTimeZone Cписок членов класса

Полный список членов класса YDataTimeZone, включая наследуемые из базового класса

DataTime() const | YDataTimeZone | [inline]
dt | YDataTimeZone | [private]
Grinvich() const | YDataTimeZone | [inline]
Set(const YDataTimeZone &val) | YDataTimeZone | [inline]
Set(const YDataTime &dt_, const YTimeInterval &zone_) | YDataTimeZone | [inline]
YDataTimeZone() | YDataTimeZone | [inline]
YDataTimeZone(const YDataTime &dt_, const YTimeInterval &zone_) | YDataTimeZone | [inline]
YDataTimeZone(const YDataTimeZone &val) | YDataTimeZone | [inline]
Zone() const | YDataTimeZone | [inline]
zone | YDataTimeZone | [private]


Pipe Line Filters: Cписок членов класса

YDtTm Cписок членов класса

Полный список членов класса YDtTm, включая наследуемые из базового класса

BCDdate2date(int _bcd, int &_year, int &_month, int &_day) | YDtTm | [static]
BCDdate2date(int _bcd, int &_year_day) | YDtTm | [static]
date2BCDdate(int _year, int _month, int _day) | YDtTm | [static]
date2BCDdate(int _year, int _year_day) | YDtTm | [static]
DaysInMonth(int _year, int _month) | YDtTm | [static]
DaysInYear(int _year) | YDtTm | [static]
IsLeapYear(int _year) | YDtTm | [static]
MicroSecondsInYear(int _year) | YDtTm | [static]
MonthInYear() | YDtTm | [static]
SecondsInYear(int _year) | YDtTm | [static]
YearDay(int _year, int _month, int _day) | YDtTm | [static]
YearDayDay(int _year_day, int _year) | YDtTm | [static]
YearDayMonth(int _year_day, int _year) | YDtTm | [static]


Pipe Line Filters: Cписок членов класса

YFile Cписок членов класса

Полный список членов класса YFile, включая наследуемые из базового класса

_close() | YFile |
_open(std::string filename, OpenMode access) | YFile | [inline]
_open(const char *filename, OpenMode access) | YFile |
_read(int64_t pos, void *data, int32_t len) | YFile |
_write(int64_t pos, const void *data, int32_t len) | YFile |
GetMode() const | YFile | [inline]
handle | YFile | [private]
IsOk() const | YFile | [virtual]
mode | YFile | [private]
OpenMode перечисление | YFile |
UIO_CREATE элементы перечисления | YFile |
UIO_CREATE_OVERWRITE элементы перечисления | YFile |
UIO_MODIFY элементы перечисления | YFile |
UIO_RDONLY элементы перечисления | YFile |
UIO_UNKNOWN элементы перечисления | YFile |
YFile() | YFile |
~YFile() | YFile | [virtual]


Pipe Line Filters: Cписок членов класса

YFileRead Cписок членов класса

Полный список членов класса YFileRead, включая наследуемые из базового класса

_close() | YFileRead |
constructor(const char *filename) | YFileRead | [private]
GetFileSize() const | YFileRead |
GetTime() const | YFileRead |
handle | YFileRead | [private]
read(void *data, int len) | YFileRead |
read(int64_t offset, void *data, int len) | YFileRead |
SetPosition(int64_t offset) | YFileRead |
YFileRead(const YFileRead &) | YFileRead | [private]
YFileRead(std::string filename) | YFileRead | [inline]
YFileRead(const char *filename) | YFileRead | [inline]
~YFileRead() | YFileRead | [virtual]


Pipe Line Filters: Cписок членов класса

YFileWrite Cписок членов класса

Полный список членов класса YFileWrite, включая наследуемые из базового класса

_close() | YFileWrite |
constructor(const char *filename) | YFileWrite | [private]
GetPosition() | YFileWrite |
handle | YFileWrite | [private]
SetPosition(int64_t offset) | YFileWrite |
write(const void *data, int len) | YFileWrite |
write(int64_t offset, const void *data, int len) | YFileWrite |
YFileWrite(const YFileWrite &) | YFileWrite | [private]
YFileWrite(std::string filename) | YFileWrite | [inline]
YFileWrite(const char *filename) | YFileWrite | [inline]
~YFileWrite() | YFileWrite | [virtual]


Pipe Line Filters: Cписок членов класса

YImageFrame Cписок членов класса

Полный список членов класса YImageFrame, включая наследуемые из базового класса

buf | YImageFrame | [private]
dx | YImageFrame | [private]
dx2 | YImageFrame | [private]
dy | YImageFrame | [private]
dy2 | YImageFrame | [private]
GetFrameSize() const | YImageFrame | [inline]
GetLeftRightBorderWidth() const | YImageFrame | [inline]
getLeftUp() const | YImageFrame | [inline]
height | YImageFrame | [private]
img | YImageFrame | [private]
Init(const AImage *image, int size) | YImageFrame | [inline]
last_line_offset | YImageFrame | [private]
MoveDown() | YImageFrame | [inline]
MoveDownSlow() | YImageFrame | [inline]
NumberFastMove() const | YImageFrame | [inline]
operator[](int y) const | YImageFrame | [inline]
Pixel typedef | YImageFrame |
readSlow(int x, int y, Pixel16 *buf) const | YImageFrame | [inline]
SetTo(int x, int y) | YImageFrame | [inline]
sz | YImageFrame | [private]
width | YImageFrame | [private]
X() const | YImageFrame | [inline]
x_cent | YImageFrame | [private]
Y() const | YImageFrame | [inline]
y_cent | YImageFrame | [private]
YImageFrame() | YImageFrame | [inline]
YImageFrame(const AImage *image, int size) | YImageFrame | [inline]
~YImageFrame() | YImageFrame | [inline]


Pipe Line Filters: Cписок членов класса

YPoint< T > Cписок членов класса

Полный список членов класса YPoint< T >, включая наследуемые из базового класса

distance(const YPoint &to) const | YPoint< T > | [inline]
nearest(const YPoint &first, const YPoint &second) const | YPoint< T > | [inline]
operator!=(const YPoint &p) const | YPoint< T > | [inline]
operator=(const YPoint &p) | YPoint< T > | [inline]
operator==(const YPoint &p) const | YPoint< T > | [inline]
x | YPoint< T > |
y | YPoint< T > |
YPoint(T _x=T(0), T _y=T(0)) | YPoint< T > | [inline]


Pipe Line Filters: Cписок членов класса

YRect< T > Cписок членов класса

Полный список членов класса YRect< T >, включая наследуемые из базового класса

bottom() | YRect< T > | [inline]
bottom() const | YRect< T > | [inline]
BottomRight | YRect< T > |
empty() | YRect< T > | [inline]
expand(const YPoint< T > &p) | YRect< T > | [inline]
expand(const YRect< T > &rect) | YRect< T > | [inline]
height() const | YRect< T > | [inline]
init(T l, T t, T r, T b) | YRect< T > | [inline]
intersection(const YRect< T > &rect) const | YRect< T > | [inline]
intersects(const YRect< T > &rect) const | YRect< T > | [inline]
isIn(const YPoint< T > &p) const | YRect< T > | [inline]
left() | YRect< T > | [inline]
left() const | YRect< T > | [inline]
operator!=(const YRect< T > &r) const | YRect< T > | [inline]
operator==(const YRect< T > &r) const | YRect< T > | [inline]
right() | YRect< T > | [inline]
right() const | YRect< T > | [inline]
top() | YRect< T > | [inline]
top() const | YRect< T > | [inline]
TopLeft | YRect< T > |
width() const | YRect< T > | [inline]
YRect(T l=T(0), T t=T(0), T r=T(0), T b=T(0)) | YRect< T > | [inline]
YRect(YPoint< T > top_left, YPoint< T > bottom_right) | YRect< T > | [inline]


Pipe Line Filters: Cписок членов класса

YSmallAllocLtd Cписок членов класса

Полный список членов класса YSmallAllocLtd, включая наследуемые из базового класса

BytePtr typedef | YSmallAllocLtd | [private]
count | YSmallAllocLtd | [private]
data | YSmallAllocLtd | [private]
DeInit() | YSmallAllocLtd |
erase_all() | YSmallAllocLtd |
f | YSmallAllocLtd | [private]
free(void *ptr) | YSmallAllocLtd |
Init(unsigned size_of_object, unsigned maximal_number_of_objects, unsigned max_tail=0) | YSmallAllocLtd |
IsOk() const | YSmallAllocLtd | [inline]
malloc() | YSmallAllocLtd |
memsz | YSmallAllocLtd | [private]
nullify() | YSmallAllocLtd | [private]
num | YSmallAllocLtd | [private]
NumberFree() const | YSmallAllocLtd | [inline]
NumberMax() const | YSmallAllocLtd | [inline]
NumberUsed() const | YSmallAllocLtd | [inline]
objsz | YSmallAllocLtd | [private]
SizeOfObject() const | YSmallAllocLtd | [inline]
YSmallAllocLtd() | YSmallAllocLtd |
YSmallAllocLtd(unsigned size_of_object, unsigned maximal_number_of_objects, unsigned max_tail=0) | YSmallAllocLtd |
~YSmallAllocLtd() | YSmallAllocLtd | [virtual]


Pipe Line Filters: Cписок членов класса

YTArray< T > Cписок членов класса

Полный список членов класса YTArray< T >, включая наследуемые из базового класса

block_size | YTArray< T > | [private]
calc_blk_size(int sz) const | YTArray< T > | [inline, private]
data | YTArray< T > | [protected]
Get_Ptr() | YTArray< T > | [inline]
Get_Ptr() const | YTArray< T > | [inline]
GetBlockSize() const | YTArray< T > | [inline]
GetGrowStep() const | YTArray< T > | [inline]
Insert(const T &elem, int pos) | YTArray< T > | [inline, virtual]
operator=(const YTArray &ar) | YTArray< T > | [inline]
operator[](int i) | YTArray< T > | [inline, virtual]
operator[](int i) const | YTArray< T > | [inline, virtual]
Remove(int pos) | YTArray< T > | [inline, virtual]
SetAll(const T *values, int num) | YTArray< T > | [inline, virtual]
SetGrowStep(int grow_step=128) | YTArray< T > | [inline]
SetSize(int sz) | YTArray< T > | [inline]
size | YTArray< T > | [private]
Size() const | YTArray< T > | [inline]
step | YTArray< T > | [private]
YTArray(int grow_step=128) | YTArray< T > | [inline]
YTArray(const YTArray &ar) | YTArray< T > | [inline]
~YTArray() | YTArray< T > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

YTDynArray< T > Cписок членов класса

Полный список членов класса YTDynArray< T >, включая наследуемые из базового класса

Append(const T &elem) | YTDynArray< T > | [inline, virtual]
data | YTArray< T > | [protected]
Get_Ptr() | YTArray< T > | [inline]
Get_Ptr() const | YTArray< T > | [inline]
GetBlockSize() const | YTArray< T > | [inline]
GetGrowStep() const | YTArray< T > | [inline]
Insert(const T &elem, int pos) | YTDynArray< T > | [inline, virtual]
operator=(const YTArray< T > &ar) | YTDynArray< T > | [inline]
operator[](int i) | YTDynArray< T > | [inline, virtual]
operator[](int i) const | YTDynArray< T > | [inline, virtual]
Remove(int pos) | YTDynArray< T > | [inline, virtual]
SetAll(const T *values, int num) | YTArray< T > | [inline, virtual]
SetGrowStep(int grow_step=128) | YTArray< T > | [inline]
SetSize(int sz) | YTArray< T > | [inline]
Size() const | YTArray< T > | [inline]
YTArray(int grow_step=128) | YTArray< T > | [inline]
YTArray(const YTArray &ar) | YTArray< T > | [inline]
YTDynArray(int grow_step=100) | YTDynArray< T > | [inline]
YTDynArray(const YTDynArray &ar) | YTDynArray< T > | [inline]
~YTArray() | YTArray< T > | [inline, virtual]
~YTDynArray() | YTDynArray< T > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

YTHistList< T > Cписок членов класса

Полный список членов класса YTHistList< T >, включая наследуемые из базового класса

Add(const T &val) | YTHistList< T > |
array | YTHistList< T > |
Count() const | YTHistList< T > | [inline]
operator[](int i) | YTHistList< T > | [inline]
Sort() | YTHistList< T > | [inline]
Tag typedef | YTHistList< T > |


Pipe Line Filters: Cписок членов класса

YTHistListTag< T > Cписок членов класса

Полный список членов класса YTHistListTag< T >, включая наследуемые из базового класса

count | YTHistListTag< T > |
operator<(const YTHistListTag &t2) const | YTHistListTag< T > | [inline]
operator==(const YTHistListTag &t2) const | YTHistListTag< T > | [inline]
value | YTHistListTag< T > |
YTHistListTag() | YTHistListTag< T > | [inline]
~YTHistListTag() | YTHistListTag< T > | [inline, virtual]


Pipe Line Filters: Cписок членов класса

YTimeInterval Cписок членов класса

Полный список членов класса YTimeInterval, включая наследуемые из базового класса

Get(int &days, int &hour, int &minutes, double &seconds) const | YTimeInterval |
Get(double &seconds) const | YTimeInterval |
microsec | YTimeInterval | [private]
operator *(const YTimeInterval &val) const | YTimeInterval | [inline]
operator *=(const YTimeInterval &val) | YTimeInterval | [inline]
operator!=(const YTimeInterval &ti) const | YTimeInterval | [inline]
operator+(const YTimeInterval &val) const | YTimeInterval | [inline]
operator+=(const YTimeInterval &val) | YTimeInterval | [inline]
operator-() const | YTimeInterval | [inline]
operator-(const YTimeInterval &val) const | YTimeInterval | [inline]
operator-=(const YTimeInterval &val) | YTimeInterval | [inline]
operator/(const YTimeInterval &val) const | YTimeInterval | [inline]
operator/=(const YTimeInterval &val) | YTimeInterval | [inline]
operator<(const YTimeInterval &ti) const | YTimeInterval | [inline]
operator<=(const YTimeInterval &ti) const | YTimeInterval | [inline]
operator=(const YTimeInterval &val) | YTimeInterval | [inline]
operator==(const YTimeInterval &ti) const | YTimeInterval | [inline]
operator>(const YTimeInterval &ti) const | YTimeInterval | [inline]
operator>=(const YTimeInterval &ti) const | YTimeInterval | [inline]
Set(int32_t mks) | YTimeInterval | [inline]
Set(int64_t mks) | YTimeInterval | [inline]
Set(int days, int hour, int minutes, double seconds) | YTimeInterval |
YDataTime class | YTimeInterval | [friend]
YTimeInterval() | YTimeInterval | [inline]
YTimeInterval(int32_t mks) | YTimeInterval | [inline]
YTimeInterval(int64_t mks) | YTimeInterval | [inline]
YTimeInterval(int days, int hour, int minutes, double seconds) | YTimeInterval | [inline]


Pipe Line Filters: Cписок членов класса

YXML::DNode Cписок членов класса

Полный список членов класса YXML::DNode, включая наследуемые из базового класса

_GetYXML_NodeHandle() const | YXML::DNode | [inline]
AppendChild(Type type, const DataString data) | YXML::DNode |
ATTRIBUTE элементы перечисления | YXML::DNode |
COMMENT элементы перечисления | YXML::DNode |
Delete() | YXML::DNode |
DNode(YXML_DRV_NodeHandle h) | YXML::DNode | [inline, explicit]
DNode(const DNode &n) | YXML::DNode | [inline]
ELEMENT элементы перечисления | YXML::DNode |
FirstChild() const | YXML::DNode |
FirstChild(const Is &cond) const | YXML::DNode |
FirstChild(std::string name) const | YXML::DNode | [inline]
FirstChild(std::string name, std::string attr, const T &attr_val) const | YXML::DNode | [inline]
GetAttr(const std::string attr_name) const | YXML::DNode |
getName() const | YXML::DNode |
GetNode(const std::string node_name) | YXML::DNode |
getType() const | YXML::DNode |
getValue() const | YXML::DNode |
GetValue() const | YXML::DNode |
InsertAfter(Type type, const DataString data) | YXML::DNode |
InsertBefore(Type type, const DataString data) | YXML::DNode |
IsNode() const | YXML::DNode | [inline]
LastChild() const | YXML::DNode |
LastChild(const Is &cond) const | YXML::DNode |
LastChild(std::string name) const | YXML::DNode | [inline]
LastChild(std::string name, std::string attr, const T &attr_val) const | YXML::DNode | [inline]
Next() const | YXML::DNode |
Next(const Is &cond) const | YXML::DNode |
Next(std::string name) const | YXML::DNode | [inline]
Next(std::string name, std::string attr, const T &attr_val) const | YXML::DNode | [inline]
node | YXML::DNode | [private]
operator DataString() const | YXML::DNode | [inline]
operator()(const std::string node_name) | YXML::DNode | [inline]
operator<<(std::ostream &s, DNode &in) | YXML::DNode | [friend]
operator=(const DNode &n) | YXML::DNode | [inline]
operator=(const DataString data) | YXML::DNode | [inline]
operator[](const std::string &attr) | YXML::DNode | [inline]
operator[](const std::string &attr) const | YXML::DNode | [inline]
Parent() const | YXML::DNode |
Prev() const | YXML::DNode |
Prev(const Is &cond) const | YXML::DNode |
Prev(std::string name) const | YXML::DNode | [inline]
Prev(std::string name, std::string attr, const T &attr_val) const | YXML::DNode | [inline]
SetAttr(const std::string attr_name, const DataString attr_value) | YXML::DNode |
SetValue(const DataString data) | YXML::DNode |
setValue(const DataString data) | YXML::DNode |
TEXT элементы перечисления | YXML::DNode |
Type перечисление | YXML::DNode |
UNSUPPORTED элементы перечисления | YXML::DNode |
~DNode() | YXML::DNode | [inline]


Pipe Line Filters: Cписок членов класса

YXML::DNode::AttrRef Cписок членов класса

Полный список членов класса YXML::DNode::AttrRef, включая наследуемые из базового класса

attrib | YXML::DNode::AttrRef | [private]
AttrRef() | YXML::DNode::AttrRef | [private]
AttrRef(const AttrRef &) | YXML::DNode::AttrRef | [private]
AttrRef(const DNode &node, const std::string &attr) | YXML::DNode::AttrRef | [inline, private]
DNode class | YXML::DNode::AttrRef | [friend]
n | YXML::DNode::AttrRef | [private]
operator DataString() const | YXML::DNode::AttrRef | [inline]
operator<<(std::ostream &s, DNode::AttrRef &ir) | YXML::DNode::AttrRef | [friend]
operator=(const AttrRef &) | YXML::DNode::AttrRef | [private]
operator=(const DataString &s) | YXML::DNode::AttrRef | [inline]


Pipe Line Filters: Cписок членов класса

YXML::DNode::Is Cписок членов класса

Полный список членов класса YXML::DNode::Is, включая наследуемые из базового класса

clone() const=0 | YXML::DNode::Is | [pure virtual]
operator &&(const Is &rhs) const | YXML::DNode::Is | [inline]
operator()(const DNode n) const =0 | YXML::DNode::Is | [pure virtual]
operator||(const Is &rhs) const | YXML::DNode::Is | [inline]
~Is() | YXML::DNode::Is | [inline, virtual]


Pipe Line Filters: Cписок членов класса

YXML::DNode::IsAND Cписок членов класса

Полный список членов класса YXML::DNode::IsAND, включая наследуемые из базового класса

clear() | YXML::DNode::IsAND | [inline, private]
clone() const | YXML::DNode::IsAND | [inline, virtual]
IsAND(Is *lhs, Is *rhs) | YXML::DNode::IsAND | [inline]
IsAND(const IsAND &obj) | YXML::DNode::IsAND | [inline]
l | YXML::DNode::IsAND | [private]
operator &&(const Is &rhs) const | YXML::DNode::Is | [inline]
operator()(const DNode n) const | YXML::DNode::IsAND | [inline, virtual]
operator=(const IsAND &obj) | YXML::DNode::IsAND | [inline]
operator||(const Is &rhs) const | YXML::DNode::Is | [inline]
r | YXML::DNode::IsAND | [private]
~Is() | YXML::DNode::Is | [inline, virtual]
~IsAND() | YXML::DNode::IsAND | [inline, virtual]


Pipe Line Filters: Cписок членов класса

YXML::DNode::IsCond Cписок членов класса

Полный список членов класса YXML::DNode::IsCond, включая наследуемые из базового класса

clear() | YXML::DNode::IsCond | [inline, private]
clone() const | YXML::DNode::IsCond | [inline, virtual]
cond | YXML::DNode::IsCond | [private]
IsCond() | YXML::DNode::IsCond | [inline]
IsCond(const Is &is) | YXML::DNode::IsCond | [inline]
operator &&(const Is &rhs) const | YXML::DNode::Is | [inline]
operator()(const DNode n) const | YXML::DNode::IsCond | [inline, virtual]
operator=(const IsCond &is) | YXML::DNode::IsCond | [inline]
operator||(const Is &rhs) const | YXML::DNode::Is | [inline]
~Is() | YXML::DNode::Is | [inline, virtual]
~IsCond() | YXML::DNode::IsCond | [inline, virtual]


Pipe Line Filters: Cписок членов класса

YXML::DNode::IsOR Cписок членов класса

Полный список членов класса YXML::DNode::IsOR, включая наследуемые из базового класса

clear() | YXML::DNode::IsOR | [inline, private]
clone() const | YXML::DNode::IsOR | [inline, virtual]
IsOR(Is *lhs, Is *rhs) | YXML::DNode::IsOR | [inline]
IsOR(const IsOR &obj) | YXML::DNode::IsOR | [inline]
l | YXML::DNode::IsOR | [private]
operator &&(const Is &rhs) const | YXML::DNode::Is | [inline]
operator()(const DNode n) const | YXML::DNode::IsOR | [inline, virtual]
operator=(const IsOR &obj) | YXML::DNode::IsOR | [inline]
operator||(const Is &rhs) const | YXML::DNode::Is | [inline]
r | YXML::DNode::IsOR | [private]
~Is() | YXML::DNode::Is | [inline, virtual]
~IsOR() | YXML::DNode::IsOR | [inline, virtual]


Pipe Line Filters: Cписок членов класса

YXML::Xercesc Cписок членов класса

Полный список членов класса YXML::Xercesc, включая наследуемые из базового класса

reference_counter | YXML::Xercesc | [private, static]
Xercesc() | YXML::Xercesc |
~Xercesc() | YXML::Xercesc | [virtual]


Pipe Line Filters: Cписок членов класса

YXML::XMLdoc Cписок членов класса

Полный список членов класса YXML::XMLdoc, включая наследуемые из базового класса

_autosave | YXML::XMLdoc | [private]
Create(const char *fname, const char *docname) | YXML::XMLdoc |
filename | YXML::XMLdoc | [mutable, private]
FName() const | YXML::XMLdoc | [inline]
handle | YXML::XMLdoc | [private]
IsFileExist(const char *fname) | YXML::XMLdoc | [static]
Load(const char *fname, bool condenseWS=true) | YXML::XMLdoc |
Root() | YXML::XMLdoc |
Save(const char *fname, bool formatted=false) const | YXML::XMLdoc |
Xercesc() | YXML::Xercesc | [private]
XMLdoc() | YXML::XMLdoc |
XMLdoc(const char *fname, const char *docname, bool autosave) | YXML::XMLdoc |
~Xercesc() | YXML::Xercesc | [private, virtual]
~XMLdoc() | YXML::XMLdoc |


Pipe Line Filters: Cписок членов класса

ZoomFactor2D Cписок членов класса

Полный список членов класса ZoomFactor2D, включая наследуемые из базового класса

operator!=(const ZoomFactor2D &z2) const | ZoomFactor2D | [inline]
operator!=(int z2) const | ZoomFactor2D | [inline]
operator=(int _zoom) | ZoomFactor2D | [inline]
operator=(const ZoomFactor2D &_zoom) | ZoomFactor2D | [inline]
operator==(const ZoomFactor2D &z2) const | ZoomFactor2D | [inline]
operator==(int z2) const | ZoomFactor2D | [inline]
X | ZoomFactor2D |
Y | ZoomFactor2D |
ZoomFactor2D(int zoom_x=1, int zoom_y=1) | ZoomFactor2D | [inline]
ZoomFactor2D(const SIZE &zoom) | ZoomFactor2D | [inline]
ZoomValue(const SIZE &val, bool reverse=false) const | ZoomFactor2D | [inline]
ZoomValue(const POINT &val, bool reverse=false) const | ZoomFactor2D | [inline]
ZoomValueNR(const SIZE &val, bool reverse=false) const | ZoomFactor2D | [inline]


Pipe Line Filters: Cписок членов класса

ZoomFactor Cписок членов класса

Полный список членов класса ZoomFactor, включая наследуемые из базового класса

_ZoomValue(int value, int zm) | ZoomFactor | [inline, private, static]
_ZoomValueNR(int value, int zm) | ZoomFactor | [inline, private, static]
operator int() const | ZoomFactor | [inline]
operator+=(int dx) | ZoomFactor | [inline]
operator-=(int dx) | ZoomFactor | [inline]
operator=(int _zoom) | ZoomFactor | [inline]
zoom | ZoomFactor | [private]
ZoomFactor(int _zoom=1) | ZoomFactor | [inline]
ZoomValue(int value, bool reverse=false) const | ZoomFactor | [inline]
ZoomValueNR(int value, bool reverse=false) const | ZoomFactor | [inline]
~ZoomFactor() | ZoomFactor | [inline]


Pipe Line Filters: Исходный файл color_spaces.h

  • Файлы
  • Список членов всех файлов

color_spaces.h

См. документацию.
00001 #ifndef _COLOR_SPACES_H
00002 #define _COLOR_SPACES_H
00004 #include "loki_TypeManip.h"
00005 #include "loki_TypeTraits.h"
00006 #include "loki_static_check.h"
00007 //#include "alexandresku.h"
00009 namespace Vtl
00010 {
00011 namespace ImAlg
00012 {
00024     namespace C
00025     {
00026         enum NormalizationType
00027         {
00028             nNoScale=0, //>Оригинальный масштаб
00029             nStretch=1,  //> Не рекомендуется, разумно только для визуализации. Каждая компонента приводится в указанный дианадон.
00030             nSaveRatio=2,//> Компоненты приводятся в указанный диапазон, но отношение между компонентами сохраняется, для знакопеременных компонент нуль помещается в указанное место.
00031             nSaveChrom=3, //> Рекомендуемый: То же что и  nSaveRatio, но сохраняется отношение только только компонент цветности (напр. для YCbCr сохранять только отношение  Cb/Cr ).
00032             nDefault=nStretch
00033         };
00034         enum SystemType
00035         {
00036             sys_other=0,
00037             sys_chrom=1,
00038             sys_hue=2
00039         };
00040
00041         template<typename T,class ColorSystem,NormalizationType Norm=nDefault> class Normalizer;
00042
00043         template<typename T,class ColorSystem>
00044         class Normalizer<T,ColorSystem,nNoScale>
00045         {
00046         public:
00047             typedef typename Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result T_temp;
00048             const T maxcolor;
00049             const T mincolor;
00050             const T_temp mult01;
00051             Normalizer(T MaxColor=T(255),T MinColor=0,T ZeroColor=T(128))
00052                 : maxcolor(MaxColor),mincolor(MinColor),mult01(T_temp(MaxColor-MinColor))
00053             {
00054             }
00055             template<typename TT>
00056             void RGBto01(T r,T g,T b,TT& r01,TT& g01,TT& b01) const
00057             {
00058                 r01=TT((r-mincolor)/mult01);
00059                 g01=TT((g-mincolor)/mult01);
00060                 b01=TT((b-mincolor)/mult01);
00061             }
00062             template<typename TT>
00063             void from01toRGB(TT r01,TT g01,TT b01,T& r,T& g,T& b) const
00064             {
00065                 r=T(r01*mult01+mincolor);
00066                 g=T(g01*mult01+mincolor);
00067                 b=T(b01*mult01+mincolor);
00068             }
00070             template<int n>
00071             T fromRGB(T sample_unnorm) const { return sample_unnorm;}
00073             template<int n>
00074             T toRGB(T rgb_unnorm) const { return rgb_unnorm;}
00075             template<int n,typename MultiplierType>
00076             MultiplierType Offset() const {return 0;}
00077             template<int n,typename MultiplierType>
00078             MultiplierType Mult() const {return 1;}
00079         };
00080         template<typename T,class ColorSystem>
00081         class Normalizer<T,ColorSystem,nStretch>
00082         {
00083             typedef typename Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result T_temp;
00084             T maxcolor;
00085             T mincolor;
00086             T_temp mult01;
00087             T_temp a[ColorSystem::n_components];
00088             T_temp b[ColorSystem::n_components];
00089         private:
00090             template<int n,typename TT>
00091             struct Cof
00092             {
00093                 template<typename T1>
00094                 static void build(TT* a,TT* b,T1 MaxColor,T1 MinColor)
00095                 {
00096                     a[n-1]=TT(MaxColor-MinColor)/(ColorSystem::sample_max<n-1,TT>(MaxColor)-ColorSystem::sample_min<n-1,TT>(MaxColor));
00097                     b[n-1]=TT(MinColor)-a[n-1]*ColorSystem::sample_min<n-1,TT>(MaxColor);
00098                     Cof<n-1,TT>::build(a,b,MaxColor,MinColor);
00099                 }
00100             };
00101             template<typename TT>
00102             struct Cof<0,TT>
00103             {
00104                 template<typename T1>
00105                 static void build(TT* a,TT* b,T1 MaxColor,T1 MinColor){}
00106             };
00107         public:
00108 /*
00109 Normalizer(const Normalizer& nn)
00110                 : maxcolor(nn.maxcolor),mincolor(nn.mincolor),mult01(nn.mult01)
00111             {
00112                 Cof<ColorSystem::n_components,T_temp>::build(a,b,maxcolor,mincolor);
00113             }
00114             Normalizer& operator=(const Normalizer& nn)
00115                 : maxcolor(nn.maxcolor),mincolor(nn.mincolor),mult01(nn.mult01)
00116             {
00117                 Cof<ColorSystem::n_components,T_temp>::build(a,b,maxcolor,mincolor);
00118             }
00119 */
00120             Normalizer(T MaxColor_=T(255),T MinColor_=0,T ZeroColor_=T(128))
00121                 : maxcolor(MaxColor_),mincolor(MinColor_),mult01(T_temp(MaxColor_-MinColor_))
00122             {
00123                 Cof<ColorSystem::n_components,T_temp>::build(a,b,maxcolor,mincolor);
00124
00125 /*              std::cout << "Normalizer:" << std::endl
00126                     << "maxcolor= " << maxcolor << std::endl
00127                     << "mincolor= " << mincolor << std::endl
00128                     << "mult01= " << mult01 << std::endl ;
00129                 for(int i=0 ; i<ColorSystem::n_components; ++i)
00130                 {
00131                     std::cout << "a["<<i<<"]=" << a[i] << "     b["<<i<<"]=" << b[i] <<std::endl;
00132                 }
00133 */
00134             }
00135             template<typename TT>
00136             void RGBto01(T r,T g,T b,TT& r01,TT& g01,TT& b01) const
00137             {
00138                 r01=TT((r-mincolor)/mult01);
00139                 g01=TT((g-mincolor)/mult01);
00140                 b01=TT((b-mincolor)/mult01);
00141             }
00142             template<typename TT>
00143             void from01toRGB(TT r01,TT g01,TT b01,T& r,T& g,T& b) const
00144             {
00145                 r=T(r01*mult01+mincolor);
00146                 g=T(g01*mult01+mincolor);
00147                 b=T(b01*mult01+mincolor);
00148             }
00149             T MaxColor() const {return maxcolor;}
00151             template<int n>
00152             T fromRGB(T sample_unnorm) const { return Mult<n,T_temp>()*sample_unnorm+Offset<n,T_temp>();}
00154             template<int n>
00155             T toRGB(T rgb_unnorm) const { return (rgb_unnorm-Offset<n,T_temp>())/Mult<n,T_temp>();}
00156
00157             template<int n,typename MultiplierType>
00158             MultiplierType Offset() const
00159             {
00160                 LOKI_STATIC_CHECK(((0<=n)&&(n<ColorSystem::n_components)),Sample_number_is_illegal_in_template_parameter_n);
00161                 return b[n];
00162             }
00163             template<int n,typename MultiplierType>
00164             MultiplierType Mult() const
00165             {
00166                 LOKI_STATIC_CHECK(((0<=n)&&(n<ColorSystem::n_components)),Sample_number_is_illegal_in_template_parameter_n);
00167                 return a[n];
00168             }
00169         };
00170         template<typename T,class ColorSystem>
00171         class Normalizer<T,ColorSystem,nSaveRatio>
00172         {
00173             typedef typename Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result T_temp;
00174             const T maxcolor;
00175             const T mincolor;
00176             const T_temp mult01;
00177             T_temp a;
00178             T_temp b[ColorSystem::n_components];
00179         private:
00180             template<int n,typename TT>
00181             struct Cof
00182             {
00183                 template<typename T1>
00184                 static void build(TT& a,T1 MaxColor)
00185                 {
00186                     Cof<n-1,TT>::build(a,b);
00187                     a[n-1]=TT(MaxColor-MinColor)/(ColorSystem::sample_max<n-1,TT>(MaxColor)-ColorSystem::sample_min<n-1,TT>(MaxColor));
00188                 }
00189             };
00190             template<typename TT>
00191             struct Cof<0,TT>
00192             {
00193                 static void build(TT& a){ a=0;}
00194             };
00195             template<int n,typename TT>
00196             struct Ofs
00197             {
00198                 static void build(TT a,TT* b)
00199                 {
00200                     b[n-1]=TT(MinColor)-a*ColorSystem::sample_min<n-1,TT>();
00201                     Ofs<n-1,TT>::build(a,b);
00202                 }
00203             };
00204             template<typename TT>
00205             struct Ofs<0,TT>
00206             {
00207                 static void build(TT a,TT* b){}
00208             };
00209         public:
00210             Normalizer(T MaxColor=T(255),T MinColor=0,T ZeroColor=T(128))
00211                 : maxcolor(MaxColor),mincolor(MinColor),mult01(T_temp(MaxColor-MinColor))
00212             {
00213                 Cof<ColorSystem::n_components,T_temp>::build();
00214                 Ofs<ColorSystem::n_components,T_temp>::build();
00215             }
00216             template<typename TT>
00217             void RGBto01(T r,T g,T b,TT& r01,TT& g01,TT& b01)
00218             {
00219                 r01=TT((r-mincolor)/mult01);
00220                 g01=TT((g-mincolor)/mult01);
00221                 b01=TT((b-mincolor)/mult01);
00222             }
00223             template<typename TT>
00224             void from01toRGB(TT r01,TT g01,TT b01,T& r,T& g,T& b)
00225             {
00226                 r=T(r01*mult01+mincolor);
00227                 g=T(g01*mult01+mincolor);
00228                 b=T(b01*mult01+mincolor);
00229             }
00231             template<int n>
00232             T fromRGB(T sample_unnorm) const { return Mult<n,T_temp>()*sample_unnorm+Offset<n,T_temp>();}
00234             template<int n>
00235             T toRGB(T rgb_unnorm) const { return (rgb_unnorm-Offset<n,T_temp>())/Mult<n,T_temp>();}
00236
00237             template<int n,typename MultiplierType>
00238             MultiplierType Offset() const
00239             {
00240                 LOKI_STATIC_CHECK(((0<=n)&&(n<ColorSystem::n_components)),Sample_number_is_illegal_in_template_parameter_n);
00241                 return b;
00242             }
00243             template<int n,typename MultiplierType>
00244             MultiplierType Mult() const
00245             {
00246                 LOKI_STATIC_CHECK(((0<=n)&&(n<ColorSystem::n_components)),Sample_number_is_illegal_in_template_parameter_n);
00247                 return a;
00248             }
00249         };
00250         template<typename T,class ColorSystem>
00251         class Normalizer<T,ColorSystem,nSaveChrom>
00252         {
00253             typedef typename Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result T_temp;
00254             const T maxcolor;
00255             const T mincolor;
00256             const T_temp mult01;
00257             T_temp a;
00258             T_temp b[ColorSystem::n_components];
00259         private:
00260         public:
00261             Normalizer(T MaxColor=T(255),T MinColor=0,T ZeroColor=T(128))
00262                 : maxcolor(MaxColor),mincolor(MinColor),mult01(T_temp(MaxColor-MinColor))
00263             {
00264             }
00265             template<typename TT>
00266             void RGBto01(T r,T g,T b,TT& r01,TT& g01,TT& b01)
00267             {
00268                 r01=TT((r-mincolor)/mult01);
00269                 g01=TT((g-mincolor)/mult01);
00270                 b01=TT((b-mincolor)/mult01);
00271             }
00272             template<typename TT>
00273             void from01toRGB(TT r01,TT g01,TT b01,T& r,T& g,T& b)
00274             {
00275                 r=T(r01*mult01+mincolor);
00276                 g=T(g01*mult01+mincolor);
00277                 b=T(b01*mult01+mincolor);
00278             }
00280             template<int n>
00281             T fromRGB(T sample_unnorm) { return a*sample_unnorm+b;}
00283             template<int n>
00284             T toRGB(T rgb_unnorm) { return (rgb_unnorm-b)/a;}
00285
00286             template<int n>
00287             double Offset(T MaxColor,T MinColor)
00288             {
00289                 typedef double Real_t;
00290                 if(is_sample_sign_alternating<n>())
00291                 {
00292                 }
00293                 else
00294                 {
00295                 }
00296             }
00297         };
00298 /*
00299             Real_t min=sample_min<n,Real_t>();
00300             Real_t max=sample_max<n,Real_t>();
00301             Real_t maxabs=sample_maxabs<n,Real_t>();
00302             Real_t maxsat=sample_max_saturation<n,Real_t>();
00303             is_sample_sign_alternating<n>();
00304             is_sample_cyclic_var<n>();
00305 */
00308         inline double HSV_HSL_hue(double max,double r,double g,double b,double delta)
00309         {
00310             double hh;
00311             if( r == max )
00312             {
00313                 hh = (g-b)/delta;       // between yellow & magenta
00314                 if(hh<0)
00315                     hh+=6;
00316             }
00317             else if( g == max )
00318                 hh = 2 + (b-r)/delta;   // between cyan & yellow
00319             else //( b == max )
00320                 hh = 4 + (r-g)/delta;   // between magenta & cyan
00321             return hh;
00322         }
00323
00370         struct XYZ
00371         {
00372             enum { n_components=3};
00373             enum { is_metric=1 };
00374             enum { is_system=sys_other };
00375
00376             template<int n>
00377             static const char *sample_name() { return Vtl::Alg::ReturnArg<n>("X","Y","Z");}
00378             static std::string name() { return "XYZ";}
00379
00380             //Unified name functions
00381             template<typename T>
00382             static T sample(T r,T g,T b,Loki::Int2Type<0> ) { return X_f(r,g,b);}
00383             template<typename T>
00384             static T sample(T r,T g,T b,Loki::Int2Type<1> ) { return Y_f(r,g,b);}
00385             template<typename T>
00386             static T sample(T r,T g,T b,Loki::Int2Type<2> ) { return Z_f(r,g,b);}
00387             template<typename T>
00388             static T rgb(T x,T y,T z,Loki::Int2Type<0> ) { return R_f(x,y,z);}
00389             template<typename T>
00390             static T rgb(T x,T y,T z,Loki::Int2Type<1> ) { return G_f(x,y,z);}
00391             template<typename T>
00392             static T rgb(T x,T y,T z,Loki::Int2Type<2> ) { return B_f(x,y,z);}
00393             template<int n,typename T>
00394             static T sample(T r,T g,T b)  { return sample(r,g,b,Loki::Int2Type<n>());}
00395             template<int n,typename T>
00396             static T rgb(T x,T y,T z) { return rgb(x,y,z,Loki::Int2Type<n>());}
00397
00398             template<int n,typename T>
00399             static T sample_min(T MaxColor)
00400             {
00401                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
00402                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(0.0,0.0,0.0));
00403             }
00404             template<int n,typename T>
00405             static T sample_max(T MaxColor)
00406             {
00407                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
00408                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(0.950456,1.0,1.088754));
00409             }
00410             template<int n,typename T>
00411             static T sample_maxabs(T MaxColor)
00412             {
00413                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
00414                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(0.950456,1.0,1.088754));
00415             }
00416             template<int n>
00417             static bool is_sample_sign_alternating() { return false;}
00418             template<int n>
00419             static bool is_sample_cyclic_var() { return false;}
00420
00421
00422             template<typename T>
00423             static T X_f(T r,T g,T b) { return T( 0.412453 * r + 0.357580 * g + 0.180423 * b);}
00424             template<typename T>
00425             static T Y_f(T r,T g,T b) { return T( 0.212671 * r + 0.715160 * g + 0.072169 * b);}
00426             template<typename T>
00427             static T Z_f(T r,T g,T b) { return T( 0.019334 * r + 0.119193 * g + 0.950227 * b);}
00428             template<typename T>
00429             static T R_f(T x,T y,T z) { return T( 3.240479 * x - 1.537150 * y - 0.498535 * z);}
00430             template<typename T>
00431             static T G_f(T x,T y,T z) { return T(-0.969256 * x + 1.875992 * y + 0.041556 * z);}
00432             template<typename T>
00433             static T B_f(T x,T y,T z) { return T( 0.055648 * x - 0.204043 * y + 1.057311 * z);}
00437             template<typename T>
00438             struct X
00439             {
00440                 typedef XYZ ColorSystem;
00441                 T operator()(T r,T g,T b) const { return X_f(r,g,b);}
00442             };
00446             template<typename T>
00447             struct Y
00448             {
00449                 typedef XYZ ColorSystem;
00450                 T operator()(T r,T g,T b) const { return Y_f(r,g,b);}
00451             };
00455             template<typename T>
00456             struct Z
00457             {
00458                 typedef XYZ ColorSystem;
00459                 T operator()(T r,T g,T b) const { return X_f(r,g,b);}
00460             };
00464             template<typename T>
00465             struct R
00466             {
00467                 typedef XYZ ColorSystem;
00468                 T operator()(T x,T y,T z) const { return R_f(x,y,z);}
00469             };
00473             template<typename T>
00474             struct G
00475             {
00476                 typedef XYZ ColorSystem;
00477                 T operator()(T x,T y,T z) const { return G_f(x,y,z);}
00478             };
00482             template<typename T>
00483             struct B
00484             {
00485                 typedef XYZ ColorSystem;
00486                 T operator()(T x,T y,T z) const { return B_f(x,y,z);}
00487             };
00488
00492             template<typename T,class NormType=Normalizer<T,XYZ,nDefault>,typename Iter=T&>
00493             struct fromRGB
00494             {
00495                 typedef XYZ ColorSystem;
00496                 NormType norm;
00497
00498                 fromRGB(NormType normalizer=Normalizer<T,XYZ,nDefault>(255,0,128)) : norm(normalizer) {}
00499                 void operator()(T r,T g,T b,Iter x,Iter y,Iter z) const
00500                 {
00501                     x=norm.fromRGB<0>(X_f(r,g,b));
00502                     y=norm.fromRGB<1>(Y_f(r,g,b));
00503                     z=norm.fromRGB<2>(Z_f(r,g,b));
00504                 }
00505             };
00509             template<typename T,class NormType=Normalizer<T,XYZ,nDefault>,typename Iter=T&>
00510             struct toRGB
00511             {
00512                 typedef XYZ ColorSystem;
00513                 NormType norm;
00514
00515                 toRGB(NormType normalizer=Normalizer<T,XYZ,nDefault>(255,0,128)) : norm(normalizer) {}
00516                 void operator()(T x,T y,T z,Iter r,Iter g,Iter b) const
00517                 {
00518                     r = norm.toRGB<0>(R_f(x,y,z));
00519                     g = norm.toRGB<0>(G_f(x,y,z));
00520                     b = norm.toRGB<0>(B_f(x,y,z));
00521                 }
00522             };
00523
00524         };
00525
00539         struct YCbCr
00540         {
00541             enum { n_components=3};
00542             enum { is_metric=0 };
00543             enum { is_system=sys_chrom };
00544
00545             template<int n>
00546             static const char *sample_name() { return Vtl::Alg::ReturnArg<n>("Y","Cb","Cr");}
00547             static std::string name() { return "YCbCr";}
00548
00549             //Unified name functions
00550             template<typename T>
00551             static T sample(T r,T g,T b,Loki::Int2Type<0> ) { return T( 0.29900 * r + 0.58700 * g + 0.11400 * b);}
00552             template<typename T>
00553             static T sample(T r,T g,T b,Loki::Int2Type<1> ) { return T(-0.16874 * r - 0.33126 * g + 0.50000 * b);}
00554             template<typename T>
00555             static T sample(T r,T g,T b,Loki::Int2Type<2> ) { return T( 0.50000 * r - 0.41869 * g - 0.08131 * b);}
00556             template<typename T>
00557             static T rgb(T y,T cb,T cr,Loki::Int2Type<0> ) { return T( y + 0.00000 * cb + 1.40200 * cr );}
00558             template<typename T>
00559             static T rgb(T y,T cb,T cr,Loki::Int2Type<1> ) { return T( y - 0.34414 * cb - 0.71414 * cr );}
00560             template<typename T>
00561             static T rgb(T y,T cb,T cr,Loki::Int2Type<2> ) { return T( y + 1.77200 * cb + 0.00000 * cr );}
00562             template<int n,typename T>
00563             static T sample(T r,T g,T b)  { return sample(r,g,b,Loki::Int2Type<n>());}
00564             template<int n,typename T>
00565             static T rgb(T y,T cb,T cr) { return rgb(y,cb,cr,Loki::Int2Type<n>());}
00566
00567             template<int n,typename T>
00568             static T sample_min(T MaxColor)
00569             {
00570                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
00571                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(0.0,-0.5,-0.5));
00572             }
00573             template<int n,typename T>
00574             static T sample_max(T MaxColor)
00575             {
00576                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
00577                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(1.0,0.5,0.5));
00578             }
00579             template<int n,typename T>
00580             static T sample_maxabs(T MaxColor)
00581             {
00582                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
00583                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(1.0,0.5,0.5));
00584             }
00586             template<typename T>
00587             static T sample_max_saturation()
00588             {
00589                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
00590                 return T(0.7071067811865);
00591             }
00592             template<int n>
00593             static bool is_sample_sign_alternating() { return Vtl::Alg::Return1stArg<n==0>(false,true);}
00594             template<int n>
00595             static bool is_sample_cyclic_var() { return false;}
00596
00597
00598             template<typename T>
00599             static T Y_f(T r,T g,T b)  { return sample<0>(r,g,b);   }
00600             template<typename T>
00601             static T Cb_f(T r,T g,T b) { return sample<1>(r,g,b);   }
00602             template<typename T>
00603             static T Cr_f(T r,T g,T b) { return sample<2>(r,g,b);   }
00604             template<typename T>
00605             static T R_f(T y,T cb,T cr){ return rgb<0>(y,cb,cr);}
00606             template<typename T>
00607             static T G_f(T y,T cb,T cr){ return rgb<1>(y,cb,cr);}
00608             template<typename T>
00609             static T B_f(T y,T cb,T cr){ return rgb<2>(y,cb,cr);}
00610
00614             template<typename T>
00615             struct Y
00616             {
00617                 typedef YCbCr ColorSystem;
00618                 T operator()(T r,T g,T b) const { return Y_f(r,g,b);}
00619             };
00623             template<typename T>
00624             struct Cb
00625             {
00626                 typedef YCbCr ColorSystem;
00627                 T operator()(T r,T g,T b) const {return Cb_f(r,g,b);}
00628             };
00632             template<typename T>
00633             struct Cr
00634             {
00635                 typedef YCbCr ColorSystem;
00636                 T operator()(T r,T g,T b) const {return Cr_f(r,g,b);}
00637             };
00641             template<typename T>
00642             struct R
00643             {
00644                 typedef YCbCr ColorSystem;
00645                 T operator()(T y,T cb,T cr) const {return R_f(y,cb,cr);}
00646             };
00650             template<typename T>
00651             struct G
00652             {
00653                 typedef YCbCr ColorSystem;
00654                 T operator()(T y,T cb,T cr) const {return G_f(y,cb,cr);}
00655             };
00659             template<typename T>
00660             struct B
00661             {
00662                 typedef YCbCr ColorSystem;
00663                 T operator()(T y,T cb,T cr) const {return B_f(y,cb,cr);}
00664             };
00668             template<typename T,class NormType=Normalizer<T,YCbCr,nDefault>,typename Iter=T&>
00669             struct fromRGB
00670             {
00671                 typedef YCbCr ColorSystem;
00672                 NormType norm;
00673
00674                 fromRGB(NormType normalizer=Normalizer<T,YCbCr,nDefault>(255,0,128)) : norm(normalizer) {}
00675                 //fromRGB(const fromRGB& f) : norm(f.norm) {}
00676                 //fromRGB& operator=(const fromRGB& f) { norm=f.norm; return *this;}
00677
00678                 void operator()(T r,T g,T b,Iter y,Iter cb,Iter cr) const
00679                 {
00680                     y =norm.fromRGB<0>(YCbCr::Y_f(r,g,b));
00681                     cb=norm.fromRGB<1>(YCbCr::Cb_f(r,g,b));
00682                     cr=norm.fromRGB<2>(YCbCr::Cr_f(r,g,b));
00683                 }
00684             };
00688             template<typename T,class NormType=Normalizer<T,YCbCr,nDefault>,typename Iter=T&>
00689             struct toRGB
00690             {
00691                 typedef YCbCr ColorSystem;
00692                 const NormType norm;
00693
00694                 toRGB(NormType normalizer=Normalizer<T,YCbCr,nDefault>()) : norm(normalizer) {}
00695
00696                 void operator()(T y,T cb,T cr,Iter r,Iter g,Iter b) const
00697                 {
00698                     r = norm.toRGB<0>(YCbCr::R_f(y,cb,cr));
00699                     g = norm.toRGB<1>(YCbCr::G_f(y,cb,cr));
00700                     b = norm.toRGB<2>(YCbCr::B_f(y,cb,cr));
00701                 }
00702             };
00703         };
00704
00706
00720         struct EElEll
00721         {
00722             enum { n_components=3};
00723             enum { is_metric=1 };
00724             enum { is_system=sys_chrom };
00725
00726             template<int n>
00727             static const char *sample_name() { return Vtl::Alg::ReturnArg<n>("E","El","Ell");}
00728             static std::string name() { return "EElEll";}
00729             //Unified name functions
00730             template<typename T>
00731             static T sample(T r,T g,T b,Loki::Int2Type<0> ) { return T( 0.06 * r  + 0.63 * g   + 0.27 * b);}
00732             template<typename T>
00733             static T sample(T r,T g,T b,Loki::Int2Type<1> ) { return T( 0.3  * r  + 0.04 * g   - 0.35 * b);}
00734             template<typename T>
00735             static T sample(T r,T g,T b,Loki::Int2Type<2> ) { return T( 0.34 * r  - 0.6  * g   + 0.17 * b);}
00736             template<typename T>
00737             static T rgb(T e,T el,T ell,Loki::Int2Type<0> ) { return T( 1.1844 *e + 1.5685 *el + 1.3482 *ell);}
00738             template<typename T>
00739             static T rgb(T e,T el,T ell,Loki::Int2Type<1> ) { return T( 0.99088*e + 0.47562*el - 0.59453*ell);}
00740             template<typename T>
00741             static T rgb(T e,T el,T ell,Loki::Int2Type<2> ) { return T( 1.1284 *e - 1.4583 *el + 1.0876 *ell);}
00742             template<int n,typename T>
00743             static T sample(T r,T g,T b)  { return sample(r,g,b,Loki::Int2Type<n>());}
00744             template<int n,typename T>
00745             static T rgb(T e,T el,T ell) { return rgb(e,el,ell,Loki::Int2Type<n>());}
00746
00747             template<int n,typename T>
00748             static T sample_min(T MaxColor)
00749             {
00750                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
00751                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(0.0,-0.35,-0.6));
00752             }
00753             template<int n,typename T>
00754             static T sample_max(T MaxColor)
00755             {
00756                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
00757                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(0.96,0.34,0.51));
00758             }
00759             template<int n,typename T>
00760             static T sample_maxabs(T MaxColor)
00761             {
00762                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
00763                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(0.96,0.35,0.6));
00764             }
00766             template<typename T>
00767             static T sample_max_saturation(T MaxColor)
00768             {
00769                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
00770                 return T(MaxColor*0.6946221994725);
00771             }
00772             template<int n>
00773             static bool is_sample_sign_alternating() { return Vtl::Alg::Return1stArg<n==0>(false,true);}
00774             template<int n>
00775             static bool is_sample_cyclic_var() { return false;}
00776
00777 /*
00778             template<typename T>
00779             static T E_f(T R,T G,T B)    { return T( 0.06 * R  + 0.63 * G   + 0.27 * B);}
00780             template<typename T>
00781             static T El_f(T R,T G,T B)   { return T( 0.3  * R  + 0.04 * G   - 0.35 * B);}
00782             template<typename T>
00783             static T Ell_f(T R,T G,T B)  { return T( 0.34 * R  - 0.6  * G   + 0.17 * B);}
00784             template<typename T>
00785             static T R_f(T E,T El,T Ell) { return T( 1.1844 *E + 1.5685 *El + 1.3482 *Ell);}
00786             template<typename T>
00787             static T G_f(T E,T El,T Ell) { return T( 0.99088*E + 0.47562*El - 0.59453*Ell);}
00788             template<typename T>
00789             static T B_f(T E,T El,T Ell) { return T( 1.1284 *E - 1.4583 *El + 1.0876 *Ell);}
00790             template<typename T>
00791             static T El_f_toPositive(T el,unsigned bits=8)   { return T( el*(0.5/0.35)+(1<<(bits-1)));}
00792             template<typename T>
00793             static T Ell_f_toPositive(T ell,unsigned bits=8)   { return T( ell*(0.5/0.6)+(1<<(bits-1)));}
00794 */
00795             //Specific name functions
00796             template<typename T>
00797             static T E_f(T r,T g,T b)    { return sample<0>(r,g,b);}
00798             template<typename T>
00799             static T El_f(T r,T g,T b)   { return sample<1>(r,g,b);}
00800             template<typename T>
00801             static T Ell_f(T r,T g,T b)  { return sample<2>(r,g,b);}
00802             template<typename T>
00803             static T R_f(T e,T el,T ell) { return rgb<0>(e,el,ell);}
00804             template<typename T>
00805             static T G_f(T e,T el,T ell) { return rgb<1>(e,el,ell);}
00806             template<typename T>
00807             static T B_f(T e,T el,T ell) { return rgb<2>(e,el,ell);}
00808
00809
00810             template<typename T>
00811             static T El_f_toPositive(T el,unsigned bits=8)   { return T( el*(0.5/0.35)+(1<<(bits-1)));}
00812             template<typename T>
00813             static T Ell_f_toPositive(T ell,unsigned bits=8)   { return T( ell*(0.5/0.6)+(1<<(bits-1)));}
00817             template<typename T>
00818             struct E
00819             {
00820                 typedef EElEll ColorSystem;
00821                 T operator()(T r,T g,T b) const { return E_f(r,g,b);}
00822             };
00826             template<typename T>
00827             struct El
00828             {
00829                 typedef EElEll ColorSystem;
00830                 T operator()(T r,T g,T b) const { return El_f(r,g,b);}
00831             };
00835             template<typename T>
00836             struct Ell
00837             {
00838                 typedef EElEll ColorSystem;
00839                 T operator()(T r,T g,T b) const { return Ell_f(r,g,b);}
00840             };
00844             template<typename T>
00845             struct R
00846             {
00847                 typedef EElEll ColorSystem;
00848                 T operator()(T e,T el,T ell) const {return R_f(e,el,ell);}
00849             };
00853             template<typename T>
00854             struct G
00855             {
00856                 typedef EElEll ColorSystem;
00857                 T operator()(T e,T el,T ell) const {return G_f(e,el,ell);}
00858             };
00862             template<typename T>
00863             struct B
00864             {
00865                 typedef EElEll ColorSystem;
00866                 T operator()(T e,T el,T ell) const {return B_f(e,el,ell);}
00867             };
00871             template<typename T,class NormType=Normalizer<T,EElEll,nDefault>,typename Iter=T&>
00872             class fromRGB
00873             {
00874             public:
00875                 typedef EElEll ColorSystem;
00876                 NormType norm;
00877
00878                 fromRGB(NormType normalizer=Normalizer<T,EElEll,nDefault>(255,0,128)) : norm(normalizer) {}
00879
00880                 void operator()(T r,T g,T b,Iter e,Iter el,Iter ell) const
00881                 {
00882                     e  =norm.fromRGB<0>(sample<0>(r,g,b));
00883                     el =norm.fromRGB<1>(sample<1>(r,g,b));
00884                     ell=norm.fromRGB<2>(sample<2>(r,g,b));
00885                 }
00886             };
00890             template<typename T,class NormType=Normalizer<T,EElEll,nDefault>,typename Iter=T&>
00891             class toRGB
00892             {
00893             public:
00894                 typedef EElEll ColorSystem;
00895                 NormType norm;
00896
00897                 toRGB(NormType normalizer=Normalizer<T,EElEll,nDefault>(255,0,128)) : norm(normalizer) {}
00898                 void operator()(T e,T el,T ell,Iter r,Iter g,Iter b) const
00899                 {
00900                     r = norm.toRGB<0>(rgb<0>(e,el,ell));
00901                     g = norm.toRGB<1>(rgb<1>(e,el,ell));
00902                     b = norm.toRGB<2>(rgb<2>(e,el,ell));
00903                 }
00904             };
00908             template<unsigned bits,typename T,typename Iter=T&>
00909             class fromRGB_positive
00910             {
00911             public:
00912                 typedef EElEll ColorSystem;
00913                 fromRGB_positive() {}
00914                 void operator()(T r,T g,T b,Iter e,Iter el,Iter ell) const
00915                 {
00916                     fromRGB<T,Iter> f;
00917                     f(r,g,b,e,el,ell);
00918                     el=El_f_toPositive(el,bits);
00919                     ell=Ell_f_toPositive(ell,bits);
00920                 }
00921             };
00922         };
00923
00925
00950         struct YIQ
00951         {
00952             enum { n_components=3};
00953             enum { is_metric=0 };
00954             enum { is_system=sys_chrom };
00955
00956             template<int n>
00957             static const char *sample_name() { return Vtl::Alg::ReturnArg<n>("Y","I","Q");}
00958             static std::string name() { return "YIQ";}
00959
00960             //Unified name functions
00961             template<typename T>
00962             static T sample(T r,T g,T b,Loki::Int2Type<0> ) { return T( 0.299 * r + 0.587 * g + 0.114 * b);}
00963             template<typename T>
00964             static T sample(T r,T g,T b,Loki::Int2Type<1> ) { return T( 0.596 * r - 0.275 * g - 0.321 * b );}
00965             template<typename T>
00966             static T sample(T r,T g,T b,Loki::Int2Type<2> ) { return T( 0.212 * r - 0.523 * g + 0.311 * b);}
00967             template<typename T>
00968             static T rgb(T y,T i,T q,Loki::Int2Type<0> ) { return T( y + 0.956 * i + 0.621 * q );}
00969             template<typename T>
00970             static T rgb(T y,T i,T q,Loki::Int2Type<1> ) { return T( y - 0.272 * i - 0.647 * q );}
00971             template<typename T>
00972             static T rgb(T y,T i,T q,Loki::Int2Type<2> ) { return T( y - 1.105 * i + 1.702 * q );}
00973             template<int n,typename T>
00974             static T sample(T r,T g,T b)  { return sample(r,g,b,Loki::Int2Type<n>());}
00975             template<int n,typename T>
00976             static T rgb(T y,T i,T q) { return rgb(y,i,q,Loki::Int2Type<n>());}
00977
00978             template<int n,typename T>
00979             static T sample_min(T MaxColor)
00980             {
00981                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
00982                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(0.0,-0.596,-0.523));
00983             }
00984             template<int n,typename T>
00985             static T sample_max(T MaxColor)
00986             {
00987                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
00988                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(1.0,0.596,0.523));
00989             }
00990             template<int n,typename T>
00991             static T sample_maxabs(T MaxColor)
00992             {
00993                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
00994                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(1.0,0.596,0.523));
00995             }
00997             template<typename T>
00998             static T sample_max_saturation(T MaxColor)
00999             {
01000                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01001                 return T(MaxColor*0.7929344235181);
01002             }
01003             template<int n>
01004             static bool is_sample_sign_alternating() { return Vtl::Alg::Return1stArg<n==0>(false,true);}
01005             template<int n>
01006             static bool is_sample_cyclic_var() { return false;}
01007
01008             template<typename T>
01009             static T Y_f(T r,T g,T b) {return sample<0>(r,g,b);}
01010             template<typename T>
01011             static T I_f(T r,T g,T b) {return sample<1>(r,g,b);}
01012             template<typename T>
01013             static T Q_f(T r,T g,T b) {return sample<2>(r,g,b);}
01014             template<typename T>
01015             static T R_f(T y,T i,T q) {return rgb<0>(y,i,q);}
01016             template<typename T>
01017             static T G_f(T y,T i,T q) {return rgb<1>(y,i,q);}
01018             template<typename T>
01019             static T B_f(T y,T i,T q) {return rgb<2>(y,i,q);}
01023             template<typename T>
01024             struct Y
01025             {
01026                 typedef YIQ ColorSystem;
01027                 T operator()(T r,T g,T b) const {return Y_f(r,g,b);}
01028             };
01032             template<typename T>
01033             struct I
01034             {
01035                 typedef YIQ ColorSystem;
01036                 T operator()(T r,T g,T b) const {return I_f(r,g,b);}
01037             };
01041             template<typename T>
01042             struct Q
01043             {
01044                 typedef YIQ ColorSystem;
01045                 T operator()(T r,T g,T b) const {return Q_f(r,g,b);}
01046             };
01050             template<typename T>
01051             struct R
01052             {
01053                 typedef YIQ ColorSystem;
01054                 T operator()(T y,T i,T q) const {return R_f(y,i,q);}
01055             };
01059             template<typename T>
01060             struct G
01061             {
01062                 typedef YIQ ColorSystem;
01063                 T operator()(T y,T i,T q) const {return G_f(y,i,q);}
01064             };
01068             template<typename T>
01069             struct B
01070             {
01071                 typedef YIQ ColorSystem;
01072                 T operator()(T y,T i,T q) const {return B_f(y,i,q);}
01073             };
01077             template<typename T,class NormType=Normalizer<T,YIQ,nDefault>,typename Iter=T&>
01078             struct fromRGB
01079             {
01080                 typedef YIQ ColorSystem;
01081                 NormType norm;
01082
01083                 fromRGB(NormType normalizer=Normalizer<T,YIQ,nDefault>(255,0,128)) : norm(normalizer) {}
01084                 void operator()(T r,T g,T b,Iter y,Iter i,Iter q) const
01085                 {
01086                     y = norm.fromRGB<0>(YIQ::Y_f(r,g,b));
01087                     i = norm.fromRGB<1>(YIQ::I_f(r,g,b));
01088                     q = norm.fromRGB<2>(YIQ::Q_f(r,g,b));
01089                 }
01090             };
01094             template<typename T,class NormType=Normalizer<T,YIQ,nDefault>,typename Iter=T&>
01095             struct toRGB
01096             {
01097                 typedef YIQ ColorSystem;
01098                 NormType norm;
01099
01100                 toRGB(NormType normalizer=Normalizer<T,YIQ,nDefault>(255,0,128)) : norm(normalizer) {}
01101                 void operator()(T y,T i,T q,Iter r,Iter g,Iter b) const
01102                 {
01103                     r = norm.toRGB<0>(YIQ::R_f(y,i,q));
01104                     g = norm.toRGB<1>(YIQ::G_f(y,i,q));
01105                     b = norm.toRGB<2>(YIQ::B_f(y,i,q));
01106                 }
01107             };
01108         };
01109
01111
01125         struct YUV
01126         {
01127             enum { n_components=3};
01128             enum { is_metric=0 };
01129             enum { is_system=sys_chrom };
01130
01131             template<int n>
01132             static const char *sample_name() { return Vtl::Alg::ReturnArg<n>("Y","U","V");}
01133             static std::string name() { return "YUV";}
01134
01135             //Unified name functions
01136             template<typename T>
01137             static T sample(T r,T g,T b,Loki::Int2Type<0> ) { return T( 0.299 * r + 0.587 * g + 0.114 * b);}
01138             template<typename T>
01139             static T sample(T r,T g,T b,Loki::Int2Type<1> ) { return T(-0.147 * r - 0.289 * g + 0.437 * b);}
01140             template<typename T>
01141             static T sample(T r,T g,T b,Loki::Int2Type<2> ) { return T( 0.615 * r - 0.515 * g - 0.100 * b);}
01142             template<typename T>
01143             static T rgb(T y,T u,T v,Loki::Int2Type<0> ) { return T( y + 1.140 * v );}
01144             template<typename T>
01145             static T rgb(T y,T u,T v,Loki::Int2Type<1> ) { return T( y - 0.396 * u - 0.581 * v );}
01146             template<typename T>
01147             static T rgb(T y,T u,T v,Loki::Int2Type<2> ) { return T( y + 2.029 * u );}
01148             template<int n,typename T>
01149             static T sample(T r,T g,T b)  { return sample(r,g,b,Loki::Int2Type<n>());}
01150             template<int n,typename T>
01151             static T rgb(T y,T u,T v) { return rgb(y,i,q,Loki::Int2Type<n>());}
01152
01153             template<int n,typename T>
01154             static T sample_min(T MaxColor)
01155             {
01156                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01157                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(0.0,-0.436,-0.615));
01158             }
01159             template<int n,typename T>
01160             static T sample_max(T MaxColor)
01161             {
01162                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01163                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(1.0,0.437,0.615));
01164             }
01165             template<int n,typename T>
01166             static T sample_maxabs(T MaxColor)
01167             {
01168                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01169                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(1.0,0.437,0.615));
01170             }
01172             template<typename T>
01173             static T sample_max_saturation(T MaxColor)
01174             {
01175                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01176                 return T(MaxColor*0.7544494681554);
01177             }
01178             template<int n>
01179             static bool is_sample_sign_alternating() { return Vtl::Alg::Return1stArg<n==0>(false,true);}
01180             template<int n>
01181             static bool is_sample_cyclic_var() { return false;}
01182
01183
01184
01185             template<typename T>
01186             static T Y_f(T r,T g,T b) {return sample<0>(r,g,b);}
01187             template<typename T>
01188             static T U_f(T r,T g,T b) {return sample<1>(r,g,b);}
01189             template<typename T>
01190             static T V_f(T r,T g,T b) {return sample<2>(r,g,b);}
01191             template<typename T>
01192             static T R_f(T y,T u,T v) {return rgb<0>(y,u,v);;}
01193             template<typename T>
01194             static T G_f(T y,T u,T v) {return rgb<1>(y,u,v);;}
01195             template<typename T>
01196             static T B_f(T y,T u,T v) {return rgb<2>(y,u,v);}
01200             template<typename T>
01201             struct Y
01202             {
01203                 typedef YUV ColorSystem;
01204                 T operator()(T r,T g,T b) const {return Y_f(r,g,b);}
01205             };
01209             template<typename T>
01210             struct U
01211             {
01212                 typedef YUV ColorSystem;
01213                 T operator()(T r,T g,T b) const {return U_f(r,g,b);}
01214             };
01218             template<typename T>
01219             struct V
01220             {
01221                 typedef YUV ColorSystem;
01222                 T operator()(T r,T g,T b) const {return V_f(r,g,b);}
01223             };
01227             template<typename T>
01228             struct R
01229             {
01230                 typedef YUV ColorSystem;
01231                 T operator()(T y,T u,T v) const {return R_f(y,u,v);}
01232             };
01236             template<typename T>
01237             struct G
01238             {
01239                 typedef YUV ColorSystem;
01240                 T operator()(T y,T u,T v) const {return G_f(y,u,v);}
01241             };
01245             template<typename T>
01246             struct B
01247             {
01248                 typedef YUV ColorSystem;
01249                 T operator()(T y,T u,T v) const {return B_f(y,u,v);}
01250             };
01254             template<typename T,class NormType=Normalizer<T,YUV,nDefault>,typename Iter=T&>
01255             struct fromRGB
01256             {
01257                 typedef YUV ColorSystem;
01258                 NormType norm;
01259
01260                 fromRGB(NormType normalizer=Normalizer<T,YUV,nDefault>(255,0,128)) : norm(normalizer) {}
01261                 void operator()(T r,T g,T b,Iter y,Iter u,Iter v) const
01262                 {
01263                     y = norm.fromRGB<0>(Y_f(r,g,b));
01264                     u = norm.fromRGB<1>(U_f(r,g,b));
01265                     v = norm.fromRGB<2>(V_f(r,g,b));
01266                 }
01267             };
01271             template<typename T,class NormType=Normalizer<T,YUV,nDefault>,typename Iter=T&>
01272             struct toRGB
01273             {
01274                 typedef YUV ColorSystem;
01275                 NormType norm;
01276
01277                 toRGB(NormType normalizer=Normalizer<T,YUV,nDefault>(255,0,128)) : norm(normalizer) {}
01278                 void operator()(T y,T u,T v,Iter r,Iter g,Iter b) const
01279                 {
01280                     r = norm.toRGB<0>(R_f(y,u,v));
01281                     g = norm.toRGB<1>(G_f(y,u,v));
01282                     b = norm.toRGB<2>(B_f(y,u,v));
01283                 }
01284             };
01285         };
01304         struct IV1V2
01305         {
01306 #define COLOR_SPACE_CONST_IV1V2_A 0.33333333333333333333333333333333
01307 #define COLOR_SPACE_CONST_IV1V2_B 0.40824829046386301636621401245098
01308 #define COLOR_SPACE_CONST_IV1V2_C 0.81649658092772603273242802490196
01309 #define COLOR_SPACE_CONST_IV1V2_D 1.2247448713915890490986420373529
01310
01311 #define COLOR_SPACE_CONST_IV1V2_S 0.91287092917527685576161630466804
01312
01313             enum { n_components=3};
01314             enum { is_metric=0 };
01315             enum { is_system=sys_chrom };
01316
01317             template<int n>
01318             static const char *sample_name() { return Vtl::Alg::ReturnArg<n>("I","V1","V2");}
01319             static std::string name() { return "IV1V2";}
01320             //Unified name functions
01321             template<typename T>
01322             static T sample(T r,T g,T b,Loki::Int2Type<0> ) { return I_f(r,g,b);}
01323             template<typename T>
01324             static T sample(T r,T g,T b,Loki::Int2Type<1> ) { return V1_f(r,g,b);}
01325             template<typename T>
01326             static T sample(T r,T g,T b,Loki::Int2Type<2> ) { return V2_f(r,g,b);}
01327             template<typename T>
01328             static T rgb(T i,T v1,T v2,Loki::Int2Type<0> ) { return R_f(i,v1,v2);}
01329             template<typename T>
01330             static T rgb(T i,T v1,T v2,Loki::Int2Type<1> ) { return G_f(i,v1,v2);}
01331             template<typename T>
01332             static T rgb(T i,T v1,T v2,Loki::Int2Type<2> ) { return B_f(i,v1,v2);}
01333             template<int n,typename T>
01334             static T sample(T r,T g,T b)  { return sample(r,g,b,Loki::Int2Type<n>());}
01335             template<int n,typename T>
01336             static T rgb(T i,T v1,T v2) { return rgb(y,v1,v2,Loki::Int2Type<n>());}
01337
01338             template<int n,typename T>
01339             static T sample_min(T MaxColor)
01340             {
01341                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01342                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(0.0,-COLOR_SPACE_CONST_IV1V2_C,-COLOR_SPACE_CONST_IV1V2_B));
01343             }
01344             template<int n,typename T>
01345             static T sample_max(T MaxColor)
01346             {
01347                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01348                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(1.0,COLOR_SPACE_CONST_IV1V2_C,COLOR_SPACE_CONST_IV1V2_B));
01349             }
01350             template<int n,typename T>
01351             static T sample_maxabs(T MaxColor)
01352             {
01353                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01354                 return T(MaxColor*Vtl::Alg::ReturnArg<n>(1.0,COLOR_SPACE_CONST_IV1V2_C,COLOR_SPACE_CONST_IV1V2_B));
01355             }
01357             template<typename T>
01358             static T sample_max_saturation(T MaxColor)
01359             {
01360                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01361                 return T(MaxColor*COLOR_SPACE_CONST_IV1V2_S);
01362             }
01363             template<int n>
01364             static bool is_sample_sign_alternating() { return Vtl::Alg::Return1stArg<n==0>(false,true);}
01365             template<int n>
01366             static bool is_sample_cyclic_var() { return false;}
01367
01368             template<typename T>
01369             static T I_f(T r,T g,T b) {return T(COLOR_SPACE_CONST_IV1V2_A * (r + g + b));}
01370             template<typename T>
01371             static T V1_f(T r,T g,T b) {return T(- COLOR_SPACE_CONST_IV1V2_B * r - COLOR_SPACE_CONST_IV1V2_B * g + COLOR_SPACE_CONST_IV1V2_C * b);}
01372             template<typename T>
01373             static T V2_f(T r,T g,T b) {return T(  COLOR_SPACE_CONST_IV1V2_B * r - COLOR_SPACE_CONST_IV1V2_B * g );}
01374             template<typename T>
01375             static T R_f(T i,T v1,T v2) {return T( i - COLOR_SPACE_CONST_IV1V2_B * v1 + COLOR_SPACE_CONST_IV1V2_D * v2 );}
01376             template<typename T>
01377             static T G_f(T i,T v1,T v2) {return T( i + COLOR_SPACE_CONST_IV1V2_B * v1 - COLOR_SPACE_CONST_IV1V2_D * v2 );}
01378             template<typename T>
01379             static T B_f(T i,T v1,T v2) {return T( i + COLOR_SPACE_CONST_IV1V2_C * v1  );}
01380
01384             template<typename T>
01385             struct I
01386             {
01387                 typedef IV1V2 ColorSystem;
01388                 T operator()(T r,T g,T b) const {return I_f(r,g,b);}
01389             };
01393             template<typename T>
01394             struct V1
01395             {
01396                 typedef IV1V2 ColorSystem;
01397                 T operator()(T r,T g,T b) const {return V1_f(r,g,b);}
01398             };
01402             template<typename T>
01403             struct V2
01404             {
01405                 typedef IV1V2 ColorSystem;
01406                 T operator()(T r,T g,T b) const {return V2_f(r,g,b);}
01407             };
01411             template<typename T>
01412             struct R
01413             {
01414                 typedef IV1V2 ColorSystem;
01415                 T operator()(T i,T v1,T v2) const {return R_f(i,v1,v2);}
01416             };
01420             template<typename T>
01421             struct G
01422             {
01423                 typedef IV1V2 ColorSystem;
01424                 T operator()(T i,T v1,T v2) const {return G_f(i,v1,v2);}
01425             };
01429             template<typename T>
01430             struct B
01431             {
01432                 typedef IV1V2 ColorSystem;
01433                 T operator()(T i,T v1,T v2) const {return B_f(i,v1,v2);}
01434             };
01438             template<typename T,class NormType=Normalizer<T,IV1V2,nDefault>,typename Iter=T&>
01439             struct fromRGB
01440             {
01441                 typedef IV1V2 ColorSystem;
01442                 NormType norm;
01443
01444                 fromRGB(NormType normalizer=Normalizer<T,IV1V2,nDefault>(255,0,128)) : norm(normalizer) {}
01445
01446                 void operator()(T r,T g,T b,Iter i,Iter v1,Iter v2) const
01447                 {
01448                     i  = norm.fromRGB<0>( I_f(r,g,b));
01449                     v1 = norm.fromRGB<1>(V1_f(r,g,b));
01450                     v2 = norm.fromRGB<2>(V2_f(r,g,b));
01451                 }
01452             };
01456             template<typename T,class NormType=Normalizer<T,IV1V2,nDefault>,typename Iter=T&>
01457             struct toRGB
01458             {
01459                 typedef IV1V2 ColorSystem;
01460                 NormType norm;
01461
01462                 toRGB(NormType normalizer=Normalizer<T,IV1V2,nDefault>(255,0,128)) : norm(normalizer) {}
01463                 void operator()(T i,T v1,T v2,Iter r,Iter g,Iter b) const
01464                 {
01465                     r = norm.toRGB<0>(R_f(i,v1,v2));
01466                     g = norm.toRGB<1>(G_f(i,v1,v2));
01467                     b = norm.toRGB<2>(B_f(i,v1,v2));
01468                 }
01469             };
01470         };
01471
01492         struct HSV
01493         {
01494             enum { n_components=3};
01495             enum { is_metric=0 };
01496             enum { is_system=sys_hue };
01497
01498             template<int n>
01499             static const char *sample_name() { return Vtl::Alg::ReturnArg<n>("H","S","V");}
01500             static std::string name() { return "HSV";}
01504             template<typename T,typename Iter=T&>
01505             struct fromRGB
01506             {
01507                 typedef HSV ColorSystem;
01508                 void operator()(T r,T g,T b,Iter h,Iter s,Iter v) const
01509                 {
01510                     double min = Vtl::min( r, g, b );
01511                     v = Vtl::max( r, g, b );
01512                     double max = v;
01513                     double delta = max - min;
01514                     s= T(( max > 0 ) ? ( (255.*delta)/max ): 0);
01515                     if(s <=0)
01516                     {
01517                         // r = g = b = 0        // s = 0, v is undefined
01518                     //  h = -1;
01519                         h=0;//yurin
01520                     }
01521                     else
01522                     {
01523                     //h *= 60;              // degrees
01524                         h =T(HSV_HSL_hue(max,r,g,b,delta)*255.0f/6);//yurin
01525                     //  s *=255;//yurin
01526                     }
01527                 }
01528             };
01532             template<typename T,typename Iter=T&>
01533             struct toRGB
01534             {
01535                 typedef HSV ColorSystem;
01536                 void operator()(T h,T s,T v,Iter r,Iter g,Iter b) const
01537                 {
01538                     if( s == 0 )
01539                     {
01540                         // achromatic (grey)
01541                         r = g = b = v;
01542                         return;
01543                     }
01544                     else
01545                     {
01546                         double ss=double(s)/255.;//yurin
01547                         double hh=double(h)/(255./6);//yurin
01548                         // sector 0 to 5
01549                         int i = int(hh);
01550                         double f = hh - i;          // factorial part of h
01551                         T p = T( double(v) * ( 1.0 - ss ) );
01552                         //float q = v * ( 1 - s * f );
01553                         //float t = v * ( 1 - s * ( 1 - f ) );
01554                         T tt= T( double(v) * ( 1.0 - ss * ((i&0x01)?f:( 1 - f )) ) );
01555                         switch( i )
01556                         {
01557                             case 0:
01558                                 r = v;
01559                                 g = tt;//t;
01560                                 b = p;
01561                                 break;
01562                             case 1:
01563                                 r = tt;//q;
01564                                 g = v;
01565                                 b = p;
01566                                 break;
01567                             case 2:
01568                                 r = p;
01569                                 g = v;
01570                                 b = tt;//t;
01571                                 break;
01572                             case 3:
01573                                 r = p;
01574                                 g = tt;//q;
01575                                 b = v;
01576                                 break;
01577                             case 4:
01578                                 r = tt;//t;
01579                                 g = p;
01580                                 b = v;
01581                                 break;
01582                             default:        // case 5:
01583                                 r = v;
01584                                 g = p;
01585                                 b = tt;//q;
01586                                 break;
01587                         };
01588                     }
01589                 }
01590             };
01591         };
01596         struct HSL
01597         {
01598             enum { n_components=3};
01599             enum { is_metric=0 };
01600             enum { is_system=sys_hue };
01601
01602             template<int n>
01603             static const char *sample_name() { return Vtl::Alg::ReturnArg<n>("H","S","L");}
01604             static std::string name() { return "HSL";}
01605
01606
01607             template<int n,typename T>
01608             static T sample_min(T MaxColor)
01609             {
01610                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01611                 return T(Vtl::Alg::ReturnArg<n>(0.0,0.0,0.0));
01612             }
01613             template<int n,typename T>
01614             static T sample_max(T MaxColor)
01615             {
01616                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01617                 return T(Vtl::Alg::ReturnArg<n>(6.0,1.0,1.0));
01618             }
01619             template<int n,typename T>
01620             static T sample_maxabs(T MaxColor)
01621             {
01622                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01623                 return T(Vtl::Alg::ReturnArg<n>(6.0,1.0,1.0));
01624             }
01625             template<int n>
01626             static bool is_sample_sign_alternating() { return false;}
01627             template<int n>
01628             static bool is_sample_cyclic_var() { return Vtl::Alg::Return1stArg<n==0>(true,false);}
01632             template<typename T,class NormType=Normalizer<T,HSL,nDefault>,typename Iter=T&>
01633             struct fromRGB
01634             {
01635                 typedef typename Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result T_temp;
01636                 typedef HSL ColorSystem;
01637                 NormType norm;
01638
01639                 fromRGB(NormType normalizer=Normalizer<T,HSL,nDefault>()) : norm(normalizer) {}
01640                 void operator()(T r,T g,T b,Iter h,Iter s,Iter l) const
01641                 {
01642                     T_temp rr,gg,bb;
01643                     norm.RGBto01(r,g,b,rr,gg,bb);
01644                     T_temp min = Vtl::min( rr, gg, bb );
01645                     T_temp max = Vtl::max( rr, gg, bb );
01646                     T_temp l2 = (max+min);
01647                     T_temp l_ = T(l2/2);
01648                     T_temp delta = max - min;
01649                     T_temp s_;
01650                     T_temp h_;
01651                     if(delta<=0)
01652                     {
01653                     //  h = -1;
01654                         s_=0;
01655                         h_=0;//yurin
01656                     }
01657                     else
01658                     {
01659                         if(l2<=1)
01660                             s_=delta/l2;
01661                         else
01662                             s_=delta/(2-l2);
01663                     //h *= 60;              // degrees
01664                         h_ =T_temp(HSV_HSL_hue(max,rr,gg,bb,delta));//yurin
01665                     }
01666                     h = norm.fromRGB<0>(h_);
01667                     s = norm.fromRGB<1>(s_);
01668                     l = norm.fromRGB<2>(l_);
01669                 }
01670             };
01674             template<typename T,class NormType=Normalizer<T,HSL,nDefault>,typename Iter=T&>
01675             struct toRGB
01676             {
01677                 const NormType& norm;
01678                 typedef HSL ColorSystem;
01679
01680                 toRGB(const NormType& normalizer=Normalizer<T,HSL,nDefault>()) : norm(normalizer) {}
01681
01682                 void operator()(T h,T s,T l,Iter r,Iter g,Iter b) const
01683                 {
01684                     double q=(l<0.5)?(l*(1+s)):(l+s-l*s);
01685                     double p=2*l-q;
01686                     double hh=h/6;
01687                     r=T(ColorC(p,q,hh+1/3.));
01688                     g=T(ColorC(p,q,hh));
01689                     b=T(ColorC(p,q,hh-1/3.));
01690                 }
01691             private:
01692                 double ColorC(double p,double q,double t)
01693                 {
01694                     if(t<0)
01695                         t+=1;
01696                     if(t>1)
01697                         t-=1;
01698
01699                     if(t<(1/6.))
01700                         return p+(q-p)*6*t;
01701                     else if(t<0.5)
01702                         return q;
01703                     else if(t<(2/3.))
01704                         return p+(q-p)*6*(2/3.-t);
01705                     else
01706                         return p;
01707                 }
01708             };
01709         };
01714         template<class LinSys=Vtl::ImAlg::C::IV1V2>
01715         struct HSI
01716         {
01717         public:
01718             enum { n_components=3};
01719             enum { is_metric=0 };
01720             enum { is_system=sys_hue };
01721
01722             template<int n>
01723             static const char *sample_name() { return Vtl::Alg::ReturnArg<n>("H","S","I");}
01724             static std::string name()
01725             {
01726                 if(Loki::IsSameType<LinSys,Vtl::ImAlg::C::IV1V2>::value )
01727                     return "HSI";
01728                 else
01729                 {
01730                     std::ostringstream os;
01731                     os << "HSI("<<LinSys::name() << ")";
01732                     return os.str();
01733                 }
01734                 //return Loki::IsSameType<LinSys,Vtl::ImAlg::C::IV1V2>::value ? "HSI" : "HSI_ex";
01735             }
01736
01737             template<int n,typename T>
01738             static T sample_min(T MaxColor)
01739             {
01740                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01741                 return T(0);
01742             }
01743             template<int n,typename T>
01744             static T sample_max(T MaxColor)
01745             {
01746                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01747                 return T(Vtl::Alg::ReturnArg<n>(255.0,1.0,200.0));
01748             }
01749             template<int n,typename T>
01750             static T sample_maxabs(T MaxColor)
01751             {
01752                 return sample_max<n,T>();
01753             }
01754             template<int n>
01755             static bool is_sample_sign_alternating() { return false;}
01756             template<int n>
01757             static bool is_sample_cyclic_var() { return  Vtl::Alg::Return1stArg<n==0>(true,false);}
01761             template<typename T,typename Iter=T&>
01762             struct fromRGB
01763             {
01764                 typedef HSI ColorSystem;
01765                 void operator()(T r,T g,T b,Iter h,Iter s,Iter i) const
01766                 {
01767                     //*i = PrimColorSys::I_f(r,g,b);
01768                     //T v1 = PrimColorSys::V1_f(r,g,b);
01769                     //T v2 = PrimColorSys::V2_f(r,g,b);
01770                     typedef typename Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result T_temp;
01771
01772                     const float MaxColor=256.0f;
01773                     const float Offset=128.0f;
01774
01775                     T_temp v1;
01776                     T_temp v2;
01777                     //PrimColorSys::fromRGB<T>(r,g,b,i,&v1,&v2);
01778                     typedef Normalizer<float,LinSys,nNoScale> NoScaleNorm;
01779                     NoScaleNorm no_norm;
01780                     LinSys::fromRGB<T,NoScaleNorm> f(no_norm);
01781                     //IV1V2::fromRGB<T> f;
01782                     f(r,g,b,i,v1,v2);
01783                     //s = sqrt(Vtl::sqr(v1)+Vtl::sqr(v2));
01784                     //h = atan2(v2,v1);
01785                     s = T(MaxColor* sqrt(Vtl::sqr(v1)+Vtl::sqr(v2)) /   LinSys::sample_max_saturation<float>(MaxColor));
01786                     h = T(MaxColor*atan2(v2,v1)/M_PI+Offset);
01787                 }
01788             };
01792             template<typename T,typename Iter=T&>
01793             struct toRGB
01794             {
01795                 typedef HSI ColorSystem;
01796
01797
01798                 void operator()(T h,T s,T i,Iter r,Iter g,Iter b) const
01799                 {
01800                     typedef typename Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result T_temp;
01801
01802                     const float MaxColor=256.0f;
01803                     const float Offset=128.0f;
01804
01805                     T_temp hh = T_temp(double(h-Offset)/MaxColor*M_PI);
01806                     //s /=1.2;
01807                     s*=LinSys::sample_max_saturation<float>(MaxColor);
01808                     s/=256.;
01809                     T_temp v1 = s*cos(hh);
01810                     T_temp v2 = s*sin(hh);
01811                     //PrimColorSys::toRGB<T>(i,v1,v2,r,g,b);
01812                     typedef Normalizer<float,LinSys,nNoScale> NoScaleNorm;
01813                     NoScaleNorm no_norm;
01814                     LinSys::toRGB<T,NoScaleNorm> f(no_norm);
01815                     f(i,(T)v1,(T)v2,r,g,b);
01816                 }
01817             };
01818         };
01822         struct Lab
01823         {
01824             enum { n_components=3};
01825             enum { is_metric=1 };
01826             enum { is_system=sys_other };
01827
01828             template<int n>
01829             static const char *sample_name() { return Vtl::Alg::ReturnArg<n>("L","a","b");}
01830             static std::string name() { return "Lab";}
01831             template<int n,typename T>
01832             static T sample_min(T MaxColor)
01833             {
01834                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01835                 return T(Vtl::Alg::ReturnArg<n>(0.0,-500.0,-200.0));
01836             }
01837             template<int n,typename T>
01838             static T sample_max(T MaxColor)
01839             {
01840                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01841                 return T(Vtl::Alg::ReturnArg<n>(100.0,500.0,200.0));
01842             }
01843             template<int n,typename T>
01844             static T sample_maxabs(T MaxColor)
01845             {
01846                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01847                 return T(Vtl::Alg::ReturnArg<n>(100.0,500.0,200.0));
01848             }
01850             template<typename T>
01851             static T sample_max_saturation(T MaxColor)
01852             {
01853                 LOKI_STATIC_CHECK(Loki::TypeTraits<T>::isFloat,Type_must_be_one_of_floating_point_types);
01854                 return T(538.5164807135);
01855             }
01856             template<int n>
01857             static bool is_sample_sign_alternating() { return Vtl::Alg::Return1stArg<n==0>(false,true);}
01858             template<int n>
01859             static bool is_sample_cyclic_var() { return false;}
01860
01864             template<typename T,class NormType=Normalizer<T,Lab,nDefault>,typename Iter=T&>
01865             class fromRGB
01866             {
01867             public:
01868                 typedef typename Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result T_temp;
01869                 typedef Lab ColorSystem;
01870                 NormType norm;
01871
01872             private:
01873                 T_temp x0;
01874                 T_temp y0;
01875                 T_temp z0;
01876             private:
01881                 template<typename F>
01882                 static F f(F w)
01883                 {
01884                     if(w >  (F)(0.0088564516790356308171716757554635) )
01885                         return pow(w,(F)(0.333333333333333333333));
01886                     else
01887                         return (F)(7.787037037037037037037037037037*w+0.13793103448275862068965517241379);
01888                 }
01889             public:
01890
01891                 fromRGB(NormType normalizer=Normalizer<T,Lab,nDefault>(255,0,128))
01892                     : norm(normalizer)
01893                 {
01894                     x0=XYZ::X_f<T_temp>(normalizer.MaxColor(),normalizer.MaxColor(),normalizer.MaxColor());
01895                     y0=XYZ::Y_f<T_temp>(normalizer.MaxColor(),normalizer.MaxColor(),normalizer.MaxColor());
01896                     z0=XYZ::Z_f<T_temp>(normalizer.MaxColor(),normalizer.MaxColor(),normalizer.MaxColor());
01897                 }
01898
01899                 void operator()(T r,T g,T b,Iter lc,Iter ac,Iter bc) const
01900                 {
01901                     T_temp x=XYZ::X_f<T_temp>(r,g,b)/x0;
01902                     T_temp y=XYZ::Y_f<T_temp>(r,g,b)/y0;
01903                     T_temp z=XYZ::Z_f<T_temp>(r,g,b)/z0;
01904                     lc=norm.fromRGB<0>(116*f(y)-16);
01905                     ac=norm.fromRGB<1>(500*(f(x)-f(y)));
01906                     bc=norm.fromRGB<2>(200*(f(y)-f(z)));
01907                     //T_temp n=2.0;
01908                     //T_temp ofs=128;
01909                     //lc=lc*2+16;
01910                     //ac=ac*n+ofs;
01911                     //bc=bc*1.25f+ofs;
01912                 }
01913             };
01917             template<typename T,class NormType=Normalizer<T,Lab,nDefault>,typename Iter=T&>
01918             class toRGB
01919             {
01920             public:
01921                 typedef typename Loki::Select<Loki::TypeTraits<T>::isFloat,T,double>::Result T_temp;
01922                 typedef Lab ColorSystem;
01923                 NormType norm;
01924             public:
01925                 T_temp x0;
01926                 T_temp y0;
01927                 T_temp z0;
01928             private:
01933                 template<typename F>
01934                 static F f_rev(F w)
01935                 {
01936                     //delta=0.20689655172413793103448275862069
01937                     //3*delta^2=0.12841854934601664684898929845422
01938                     if(w>(F)(0.20689655172413793103448275862069))
01939                         return pow(w,(F)(3));
01940                     else
01941                         return (F)((w-0.13793103448275862068965517241379)*0.12841854934601664684898929845422);
01942                 }
01943             public:
01944
01945                 toRGB(NormType normalizer=Normalizer<T,Lab,nDefault>(255,0,128))
01946                     : norm(normalizer)
01947                 {
01948                     x0=XYZ::X_f<T_temp>(normalizer.MaxColor(),normalizer.MaxColor(),normalizer.MaxColor());
01949                     y0=XYZ::Y_f<T_temp>(normalizer.MaxColor(),normalizer.MaxColor(),normalizer.MaxColor());
01950                     z0=XYZ::Z_f<T_temp>(normalizer.MaxColor(),normalizer.MaxColor(),normalizer.MaxColor());
01951                 }
01952
01953                 void operator()(T lc,T ac,T bc,Iter r,Iter g,Iter b) const
01954                 {
01955                     T_temp y=(lc+16.0f)/116;
01956                     T_temp x=y+ac/500.0f;
01957                     T_temp z=y-bc/200.0f;
01958                     y=f_rev(y)*y0;
01959                     x=f_rev(y)*x0;
01960                     z=f_rev(y)*z0;
01961                     r=norm.toRGB<0>(XYZ::R_f<T_temp>(x,y,z));
01962                     g=norm.toRGB<1>(XYZ::G_f<T_temp>(x,y,z));
01963                     b=norm.toRGB<2>(XYZ::B_f<T_temp>(x,y,z));
01964                 }
01965             };
01966         };
01967     } // end of ElementaryFiltersDoxGroup
01969 }//namespace ImAlg
01970 }//namespace Vtl
01972 #endif //_COLOR_SPACES_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Combination.h

  • Файлы
  • Список членов всех файлов

Combination.h

См. документацию.
00001 #ifndef COMBINATION_H
00002 #define COMBINATION_H
00003
00004 #include <iostream>
00005 #include <fstream>
00006 #include <stdio.h>
00007 #include <string>
00008 #include <sstream>
00009 #include <assert.h>
00010 #include <string.h>
00011
00012 // library includings
00013 #include "aimage.h"
00014 #include "consolap.h"
00015 #include "alg_bresenham.h"
00016
00017 // own includings
00018 #include "Point2D.h"
00019 #include "Points2DSet.h"
00020 #include "ImagesSet.h"
00021
00022 namespace Basics3D
00023 {
00024     // Makes combination of several images
00025     class C_Combination
00026     {
00027     private:
00028         const T_ImagesSet<AImageMem8> &m_img;
00029         AImageMem8 *m_comb;
00030
00031     public:
00032         C_Combination(const T_ImagesSet<AImageMem8> &in_img);
00033
00034         // Makes combination of two member images
00035         void Make();
00036
00037         // Marks corresponding points on two parts of combined image
00038         // by connection them by white line
00039         // fileName - *.dist.key - output file of Corr containing
00040         //                         information about correspondences
00041         // N - number of correspondences to mark
00042         //     use -1 to mark all correspondences
00043         void MarkCorrespondences(const std::vector<T_Points2DSet<C_Point2D>> &in_PointsSet,
00044                                                          int in_N);
00045
00046         void MarkCorrespondences(const T_Points2DSet<C_Point2D> &in_PointsSet,
00047                                                          int in_n,//number of points in group
00048                                                          int in_N);// number of corr. to draw
00049
00050         // Saves image m_comb
00051         // outputImageName - filename to save combined image
00052         void Save (const char *in_outputImageName);
00053
00054         ~C_Combination();
00055     };
00056 }
00057 #endif // COMBINATION_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл consolap.h

  • Файлы
  • Список членов всех файлов

consolap.h

См. документацию.
00001 #ifndef _CONSOLAP_H
00002 #define _CONSOLAP_H
00004 #include <progrcnt.h>
00019 extern ProgressCounter *indicator;
00021 #endif //_CONSOLAP_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл convolve.h

  • Файлы
  • Список членов всех файлов

convolve.h

См. документацию.
00001 #ifndef _CONVOLVE_H
00002 #define _CONVOLVE_H
00004 #include  "windowing_fun.h"
00006 namespace Vtl
00007 {
00008 namespace ImAlg
00009 {
00020 namespace Conv
00021 {
00024     template<typename T,int stride=0> class SliceIter
00025     {
00026         T* d;
00027     public:
00028         SliceIter<T,stride>(T* data) : d(data) {}
00029         SliceIter<T,stride>(const SliceIter<T,stride>& si) : d(si.d) {}
00030         SliceIter<T,stride>& operator=(const SliceIter<T,stride>& si) { (*this)(si); return *this; }
00031         SliceIter& operator++() { d+=stride; return *this; }
00032         SliceIter  operator++(int) { SliceIter<T,stride> si(*this); this->operator++(); return si; }
00033         SliceIter& operator--() { d-=stride; return *this; }
00034         SliceIter  operator--(int) { SliceIter<T,stride> si(*this); this->operator--(); return si; }
00035         SliceIter& operator+=(int n) { d+=stride*n; return *this; }
00036         SliceIter& operator-=(int n) { return this->operator+=(-n); }
00037         SliceIter operator+(int n) const { return SliceIter<T,stride>(d+stride*n,stride); }
00038         SliceIter operator-(int n) const { return this->operator+(-n); }
00039         bool operator==(const SliceIter& si) const { return d==si.d; }
00040         bool operator!=(const SliceIter& si) const { return !this->operator==(si); }
00041         T  operator*() const { return *d; }
00042         T& operator*() { return *d; }
00043     };
00045     template<typename T> class SliceIter<T,0>
00046     {
00047         T* d;
00048         const int stride_var;
00049     public:
00050         SliceIter<T,0>(T* data,int step) : d(data), stride_var(step) {}
00051         SliceIter<T,0>(const SliceIter<T,0>& si) : d(si.d), stride_var(si.stride_var) {}
00052         //Копирование через вызов конструктора копирования, иначе невозможно модифицировать константное поле stride_var.
00053         SliceIter<T,0>& operator=(const SliceIter<T,0>& si) { this->SliceIter<T,0>::SliceIter(si); return *this; }
00054         SliceIter& operator++() { d+=stride_var; return *this; }
00055         SliceIter  operator++(int) { SliceIter<T,0> si(*this); this->operator++(); return si; }
00056         SliceIter& operator--() { d-=stride_var; return *this; }
00057         SliceIter  operator--(int) { SliceIter<T,0> si(*this); this->operator--(); return si; }
00058         SliceIter& operator+=(int n) { d+=stride_var*n; return *this; }
00059         SliceIter&  operator-=(int n) { return this->operator+=(-n); }
00060         SliceIter operator+(int n) const { return SliceIter<T,0>(d+stride_var*n,stride_var); }
00061         SliceIter operator-(int n) const { return this->operator+(-n); }
00062         bool operator==(const SliceIter& si) const { return d==si.d; }
00063         bool operator!=(const SliceIter& si) const { return !this->operator==(si); }
00064         T  operator*() const { return *d; }
00065         T& operator*() { return *d; }
00066     };
00068     template<typename T,int stride=0> class SliceIterConst
00069     {
00070         const T* d;
00071     public:
00072         SliceIterConst<T,stride>(const T* data) : d(data) {}
00073         SliceIterConst<T,stride>(const SliceIterConst<T,stride>& si) : d(si.d) {}
00074         SliceIterConst<T,stride>& operator=(const SliceIterConst<T,stride>& si) { (*this)(si); return *this; }
00075         SliceIterConst& operator++() { d+=stride; return *this; }
00076         SliceIterConst  operator++(int) { SliceIterConst<T,stride> si(*this); this->operator++(); return si; }
00077         SliceIterConst& operator--() { d-=stride; return *this; }
00078         SliceIterConst  operator--(int) { SliceIterConst<T,stride> si(*this); this->operator--(); return si; }
00079         SliceIterConst& operator+=(int n) { d+=stride*n; return *this; }
00080         SliceIterConst& operator-=(int n) { return this->operator+=(-n); }
00081         SliceIterConst operator+(int n) const { return SliceIterConst<T,stride>(d+stride*n,stride); }
00082         SliceIterConst operator-(int n) const { return this->operator+(-n); }
00083         bool operator==(const SliceIterConst& si) const { return d==si.d; }
00084         bool operator!=(const SliceIterConst& si) const { return !this->operator==(si); }
00085         T  operator*() const { return *d; }
00086     };
00088     template<typename T> class SliceIterConst<T,0>
00089     {
00090         const T* d;
00091         const int stride_var;
00092     public:
00093         SliceIterConst<T,0>(const T* data,int step) : d(data), stride_var(step) {}
00094         SliceIterConst<T,0>(const SliceIterConst<T,0>& si) : d(si.d), stride_var(si.stride_var) {}
00095         //Копирование через вызов конструктора копирования, иначе невозможно модифицировать константное поле stride_var.
00096         SliceIterConst<T,0>& operator=(const SliceIterConst<T,0>& si) { this->SliceIterConst<T,0>::SliceIterConst(si); return *this; }
00097         SliceIterConst& operator++() { d+=stride_var; return *this; }
00098         SliceIterConst  operator++(int) { SliceIterConst<T,0> si(*this); this->operator++(); return si; }
00099         SliceIterConst& operator--() { d-=stride_var; return *this; }
00100         SliceIterConst  operator--(int) { SliceIterConst<T,0> si(*this); this->operator--(); return si; }
00101         SliceIterConst& operator+=(int n) { d+=stride_var*n; return *this; }
00102         SliceIterConst&  operator-=(int n) { return this->operator+=(-n); }
00103         SliceIterConst operator+(int n) const { return SliceIterConst<T,0>(d+stride_var*n,stride_var); }
00104         SliceIterConst operator-(int n) const { return this->operator+(-n); }
00105         bool operator==(const SliceIterConst& si) const { return d==si.d; }
00106         bool operator!=(const SliceIterConst& si) const { return !this->operator==(si); }
00107         T  operator*() const { return *d; }
00108     };
00109
00111     template<typename T,typename iterator_in,typename iterator_ker>
00112     T Conv1pt(iterator_in in,iterator_ker begin,iterator_ker end)
00113     {
00114         T s=0;
00115         for(; begin!=end; ++in, ++begin)
00116             s+=(*in)*(*begin);
00117         return s;
00118     }
00128     template<typename iterator_in,typename iterator_out,typename Kernel>
00129     void ConvolveNoExt(iterator_in begin,iterator_in end,iterator_out out,const Kernel& ker)
00130     {
00131         for( ; begin!=end ; begin++ )
00132         {
00133             *out++=Conv1pt< iterator_out::value_type >(*begin,ker.begin(),ker.end());
00134         }
00135     }
00145     template<typename iterator_in,typename iterator_out,typename Kernel>
00146     void ConvolveNoExt(iterator_in begin,iterator_in end,iterator_out *out,const Kernel& ker)
00147     {
00148         for( ; begin!=end ; ++begin )
00149         {
00150             *out++=Conv1pt< iterator_out >(*begin,ker.begin(),ker.end());
00151         }
00152     }
00162     template<typename iterator_in,typename iterator_out,typename Kernel>
00163     void ConvolveNoExt(iterator_in* begin,iterator_in* end,iterator_out out,const Kernel& ker)
00164     {
00165         for( ; begin!=end ; begin++ )
00166         {
00167             *out++=Conv1pt< iterator_out::value_type  >(begin,ker.begin(),ker.end());
00168         }
00169     }
00178     template<typename iterator_in,typename iterator_out,typename Kernel>
00179     void ConvolveNoExt(iterator_in* begin,iterator_in* end,iterator_out *out,const Kernel& ker)
00180     {
00181         for( ; begin!=end ; begin++ )
00182         {
00183             *out++=Conv1pt< iterator_out >(begin,ker.begin(),ker.end());
00184         }
00185     }
00187     namespace Impl
00188     {
00198         template<typename T,class K>
00199         class Buffer
00200         {
00201         protected:
00202             std::vector<T> data;
00203             int pos;
00204         public:
00205             const K& ker;
00206         public:
00207             Buffer(const K& kernel) : ker(kernel)
00208             {
00209                 LOKI_STATIC_CHECK((ker.double_kernel==1),Kernel_must_have_template_parameter_double_kernel_is_true);
00210                 data.resize(ker.size());
00211                 rewind();
00212             }
00213             void rewind()
00214             {
00215                 pos=0;
00216             }
00217             void push(T data_elem)
00218             {
00219                 data[pos++]=data_elem;
00220                 if(pos==ker.size())
00221                     rewind();
00222             }
00223             T pop()
00224             {
00225                 const T* k=ker.Right()+1-pos;
00226                 return Conv1pt<T>(&(data[0]),k,k+ker.size());
00227             }
00228         };
00229     }
00246     template<typename T,class K>
00247     class CyclicConv
00248     {
00249         Impl::Buffer<T,K> buf;
00250     public:
00251         CyclicConv(const K& kernel) :buf(kernel)
00252         {
00253         }
00265         template<typename IterIn,typename IterOut>
00266         void operator()(IterIn begin,IterIn end,IterOut out)
00267         {
00268             buf.rewind();
00269             //push only
00270             IterIn cur=_start(begin);
00271             //central
00272             IterOut out_cur=_central(cur,end,out);
00273             //right and than left process
00274             _right_end_left(begin,out_cur,out);
00275         }
00276     private:
00277         template<typename IterIn>
00278         IterIn _start(IterIn begin)
00279         {
00280             int c=buf.ker.size()-1;
00281             while(c--)
00282                 buf.push(*begin++);
00283             return begin;
00284         }
00285         template<typename IterIn,typename IterOut>
00286         IterOut _central(IterIn begin,IterIn end,IterOut out)
00287         {
00288             int r=buf.ker.right();
00289             while(r--)
00290                 out++;
00291 //          out+=r;
00292             while(begin!=end)
00293             {
00294                 buf.push(*begin++);
00295                 *out++=buf.pop();
00296             }
00297             return out;
00298         }
00299         template<typename IterIn,typename IterOut>
00300         void _right_end_left(IterIn begin,IterOut out,IterOut out0)
00301         {
00302             int r=buf.ker.right();
00303             while(r--)
00304             {
00305                 buf.push(*begin++);
00306                 *out++=buf.pop();
00307             }
00308             int l=buf.ker.left();
00309             while(l--)
00310             {
00311                 buf.push(*begin++);
00312                 *out0++=buf.pop();
00313             }
00314         }
00315     };
00332     template<typename T,class K>
00333     class CyclicConvInplace
00334     {
00335         Impl::Buffer<T,K> buf;
00336         std::vector<T> save;
00337     public:
00338         CyclicConvInplace(const K& kernel) :buf(kernel)
00339         {
00340             save.resize(buf.ker.size());
00341         }
00354         template<typename Iter>
00355         void operator()(Iter begin,Iter end)
00356         {
00357             buf.rewind();
00358             //left
00359             Iter cur=_left(begin,end);
00360             //central
00361             Iter out=_central(cur,end,begin);
00362             //right
00363             _right(begin,end,out);
00364         }
00365     private:
00366         template<typename Iter>
00367         Iter _left(Iter begin,Iter end)
00368         {
00369             int c=buf.ker.size()-1;
00370             T* s=&(save[0]);
00371             while(c--)
00372             {
00373                 T v=*begin++;
00374                 buf.push(v);
00375                 *s++=v;
00376             }
00377             return begin;
00378         }
00379         template<typename Iter>
00380         Iter _central(Iter begin,Iter end,Iter out)
00381         {
00382             int r=buf.ker.right();
00383             while(r--)
00384                 out++;
00385             while(begin!=end)
00386             {
00387                 buf.push(*begin++);
00388                 *out++=buf.pop();
00389             }
00390             return out;
00391         }
00392         template<typename Iter>
00393         void _right(Iter begin,Iter end,Iter out)
00394         {
00395             const T* s=&(save[0]);
00396             while(out!=end)
00397             {
00398                 buf.push(*s++);
00399                 *out++=buf.pop();
00400             }
00401             int r=buf.ker.right();
00402             while(r--)
00403             {
00404                 buf.push(*s++);
00405                 *begin++=buf.pop();
00406             }
00407         }
00408     };
00425     template<typename T,class K>
00426     class Conv
00427     {
00428     protected:
00429         Impl::Buffer<T,K> buf;
00430     public:
00431         Conv(const K& kernel) :buf(kernel)
00432         {
00433         }
00447         template<typename IterIn,typename IterOut>
00448         void operator()(IterIn begin,IterIn end,IterOut out)
00449         {
00450             buf.rewind();
00451             //left, push only
00452             IterIn cur=_left(begin,end);
00453             //central
00454             out=_central(cur,end,out);
00455             //right
00456             _right(--end,out);
00457         }
00458 //  private:
00459     protected:
00460         template<typename IterIn>
00461         IterIn _left(IterIn begin,IterIn end)
00462         {
00463             IterIn it=begin+buf.ker.left();
00464             while(it!=begin)
00465                 buf.push(*it--);
00466             int r=buf.ker.right();
00467             while(r--)
00468                 buf.push(*begin++);
00469             return begin;
00470         }
00471         template<typename IterIn,typename IterOut>
00472         IterOut _central(IterIn begin,IterIn end,IterOut out)
00473         {
00474             while(begin!=end)
00475             {
00476                 buf.push(*begin++);
00477                 *out++=buf.pop();
00478             }
00479             return out;
00480         }
00481         template<typename IterIn,typename IterOut>
00482         void _right(IterIn end,IterOut out)
00483         {
00484             int r=buf.ker.right();
00485             while(r--)
00486             {
00487                 buf.push(*(--end));
00488                 *out++=buf.pop();
00489             }
00490         }
00491     };
00508     template<typename T,class K>
00509     class ConvInplace
00510         : private Conv<T,K>
00511     {
00512         std::vector<T> save;
00513     public:
00514         ConvInplace(const K& kernel) :Conv(kernel)
00515         {
00516             save.resize(buf.ker.right());
00517         }
00529         template<typename Iter>
00530         void operator()(Iter begin,Iter end)
00531         {
00532             buf.rewind();
00533             Iter out=begin;
00534             //left
00535             begin=_left_2(begin,end,out);
00536             //central
00537             out=_central_2(begin,end,out);
00538             //right
00539             _right_2(out);
00540         }
00549         template<typename IterIn,typename IterOut>
00550         void operator()(IterIn begin,IterIn end,IterOut out)
00551         {
00552             Conv<T,K>::operator()(begin,end,out);
00553         }
00554     private:
00555         template<typename Iter>
00556         Iter _left_2(Iter begin,Iter end,Iter& out)
00557         {
00558             Iter it=begin+buf.ker.left();
00559             while(it!=begin)
00560                 buf.push(*it--);
00561             int r=buf.ker.right();
00562             while(r--)
00563                 buf.push(*begin++);
00564             return begin;
00565         }
00566         template<typename Iter>
00567         Iter _central_2(Iter begin,Iter end,Iter out)
00568         {
00569             int r=buf.ker.right();
00570             Iter end1=end-(r+1);
00571             while(begin!=end1)
00572             {
00573                 buf.push(*begin++);
00574                 *out++=buf.pop();
00575             }
00576             T* s=&(save[0]);
00577             if(r>0)
00578             {
00579                 while(r--)
00580                 {
00581                     T v=*begin++;
00582                     s[r]=v;
00583                     buf.push(v);
00584                     *out++=buf.pop();
00585                 }
00586             }
00587             buf.push(*begin++);
00588             *out++=buf.pop();
00589             return out;
00590         }
00591         template<typename Iter>
00592         void _right_2(Iter out)
00593         {
00594             const int r0=buf.ker.right();
00595             const T* s=&(save[0]);
00596             for(int r=0; r< r0; ++r)
00597             {
00598                 buf.push(*s++);
00599                 *out++=buf.pop();
00600             }
00601         }
00602     };
00603
00615     class Conv2D
00616     {
00617     public:
00618         template<typename T, class С1, class С2>
00619         static void conv2D(const T* data_in,int width,int height,int nls_in,T* data_out,int nls_out,С1& cx,С2& cy)
00620         {
00621             const T* di=data_in;
00622             T* dout=data_out;
00623             for(int y=0; y<height; ++y, di+=nls_in, dout+=nls_out)
00624                 cx(di,di+width,dout);
00625             //
00626             for(int x=0; x<width; ++x,++data_out)
00627             {
00628                 SliceIter<T,0> si(data_out,nls_out);
00629                 cy(si,si+height);
00630             }
00631         }
00632         template<typename T, class С1, class С2>
00633         static void conv2DInplace(T* data,int width,int height,int nls,С1& cx,С2& cy)
00634         {
00635             T* d=data;
00636             for(int y=0; y<height; ++y, d+=nls)
00637                 cx(d,d+width);
00638             d=data;
00639             for(int x=0; x<width; ++x, ++d)
00640             {
00641                 SliceIter<T,0> si(d,nls);
00642                 cy(si,si+height);
00643             }
00644         }
00645     public:
00651         template<typename T, class K1, class K2>
00652         static void Cyclic(const T* data_in,int width,int height,int nls_in,T* data_out,int nls_out,const K1& ker_x,const K2& ker_y)
00653         {
00654             CyclicConv<T,K1> cx(ker_x);
00655             CyclicConv<T,K2> cy(ker_y);
00656             conv2D(data_in,width,height,nls_in,data_out,nls_out,cx,cy);
00657         }
00664         template<typename T, class K>
00665         static void Cyclic(const T* data_in,int width,int height,int nls_in,T* data_out,int nls_out,const K& ker)
00666         {
00667             CyclicConv<T,K> cc(ker);
00668             conv2D(data_in,width,height,nls_in,data_out,nls_out,cc,cc);
00669         }
00676         template<typename T, class K1, class K2>
00677         static void CyclicInplace(T* data,int width,int height,int nls,const K1& ker_x,const K2& ker_y)
00678         {
00679             CyclicConvInplace<T,K1> cx(ker_x);
00680             CyclicConvInplace<T,K2> cy(ker_y);
00681             conv2DInplace(data,width,height,nls,cx,cy);
00682         }
00689         template<typename T, class K>
00690         static void CyclicInplace(T* data,int width,int height,int nls,const K& ker)
00691         {
00692             CyclicConvInplace<T,K> cc(ker);
00693             conv2DInplace(data,width,height,nls,cc,cc);
00694         }
00703         template<typename T, class K1, class K2>
00704         static void Reflect(const T* data_in,int width,int height,int nls_in,T* data_out,int nls_out,const K1& ker_x,const K2& ker_y)
00705         {
00706             Conv<T,K1> cx(ker_x);
00707             Conv<T,K2> cy(ker_y);
00708             conv2D(data_in,width,height,nls_in,data_out,nls_out,cx,cy);
00709         }
00718         template<typename T, class K>
00719         static void Reflect(const T* data_in,int width,int height,int nls_in,T* data_out,int nls_out,const K& ker)
00720         {
00721             Conv<T,K> cc(ker);
00722             conv2D(data_in,width,height,nls_in,data_out,nls_out,cc,cc);
00723         }
00732         template<typename T, class K1, class K2>
00733         static void ReflectInplace(T* data,int width,int height,int nls,const K1& ker_x,const K2& ker_y)
00734         {
00735             ConvInplace<T,K1> cx(ker_x);
00736             ConvInplace<T,K2> cy(ker_y);
00737             conv2DInplace(data,width,height,nls,cx,cy);
00738         }
00747         template<typename T, class K>
00748         static void ReflectInplace(T* data,int width,int height,int nls,const K& ker)
00749         {
00750             ConvInplace<T,K> cc(ker);
00751             conv2DInplace(data,width,height,nls,cc,cc);
00752         }
00753     };
00754     namespace Impl
00755     {
00756         namespace FastGaussConvolve
00757         {
00758             template<typename T,unsigned D> class HeadF;
00759             template<typename T,unsigned D> class HeadR;
00760             template<typename T> class HeadF<T,0>
00761             {
00762                 const T B;
00763             public:
00764                 HeadF(T B_,T prev_in) :B(B_) {}
00765                 T operator()(T cur,T next) const { return  B*cur;}
00766             };
00767             template<typename T> class HeadR<T,0>
00768             {
00769                 const T B;
00770             public:
00771                 HeadR(T B_,T prev_in) :B(B_) {}
00772                 T operator()(T cur,T next)  const {return  B*cur;}
00773             };
00774             template<typename T> class HeadF<T,1>
00775             {
00776                 const T B2;
00777                 T prev;
00778             public:
00779                 HeadF(T B_,T prev_in) :B2(B_/2.0f) { prev=prev_in; }
00780                 T operator()(T cur,T next) { T r=B2*(next-prev) ;  prev=cur; return  r; }
00781             };
00782             template<typename T> class HeadR<T,1>
00783             {
00784                 const T B;
00785             public:
00786                 HeadR(T B_,T prev_in) :B(B_) {}
00787                 T operator()(T cur,T next)  const { return  B * cur;}
00788             };
00789             template<typename T> class HeadF<T,2>
00790             {
00791                 const T B;
00792                 T prev;
00793             public:
00794                 HeadF(T B_,T prev_in) :B(B_) {prev=prev_in;}
00795                 T operator()(T cur,T next)  { T r=B*(cur-prev);  prev=cur; return  r; }
00796             };
00797             template<typename T> class HeadR<T,2>
00798             {
00799                 const T B;
00800                 T prev;
00801             public:
00802                 HeadR(T B_,T prev_in) :B(B_) {prev=prev_in;}
00803                 T operator()(T cur,T next)  {  T r=B*(prev-cur); prev=cur; return r;}
00804             };
00805             template<typename T> class HeadF<T,3>
00806             {
00807                 const T B;
00808                 T prev;
00809             public:
00810                 HeadF(T B_,T prev_in) :B(B_) {prev=prev_in;}
00811                 T operator()(T cur,T next) { T r=B*(next-2*cur+prev); prev=cur; return  r;}
00812             };
00813             template<typename T> class HeadR<T,3>
00814             {
00815                 const T B2;
00816                 T prev;
00817             public:
00818                 HeadR(T B_,T prev_in) : B2(B_/2) { prev=prev_in; }
00819                 T operator()(T cur,T next)  { T r=B2*(prev-next); prev=cur; return  r;}
00820             };
00821
00822             template<typename T> class Tail
00823             {
00824                 const T a1;
00825                 const T a2;
00826                 const T a3;
00827                 T s1;
00828                 T s2;
00829                 T s3;
00830             public:
00831                 Tail(T a1_,T a2_,T a3_) :a1(a1_),a2(a2_),a3(a3_)
00832                 {
00833                     s1=s2=s3=0;
00834                 }
00842                 T operator()()
00843                 {
00844                     return s1;
00845                 }
00846                 void operator()(T v)
00847                 {
00848                     s1=s2+v*a1;
00849                     s2=s3+v*a2;
00850                     s3=v*a3;
00851                 }
00852             };
00853             template<typename T,unsigned D> class Forward
00854             {
00855                 HeadF<T,D> h;
00856                 Tail<T> t;
00857             public:
00858                 Forward(T B,T a1,T a2,T a3,T prev_in) : h(B,prev_in),t(a1,a2,a3){}
00859                 void operator()(T& out,T in_cur,T in_next)
00860                 {
00861                     out=h(in_cur,in_next)+t();
00862                     t(out);
00863                 }
00864                 T extent(T out,T in_cur,T in_next)
00865                 {
00866                     T out2=h(in_cur,in_next)+t();
00867                     t(out2);
00868                     return out2;
00869                 }
00870                 void operator()(T out)
00871                 {
00872                     t(out);
00873                 }
00874             };
00875             template<typename T,unsigned D> class Reverse
00876             {
00877                 HeadR<T,D> h;
00878                 Tail<T> t;
00879             public:
00880                 Reverse(T B,T a1,T a2,T a3,T prev_in) : h(B,prev_in),t(a1,a2,a3) {}
00881                 void operator()(T& out,T in_cur,T in_next)
00882                 {
00883                     out=h(in_cur,in_next)+t();
00884                     t(out);
00885                 }
00886                 void operator()(T out)
00887                 {
00888                     t(out);
00889                 }
00890             };
00891
00892             template<int n> class Triggs;
00893             template<>
00894             class Triggs<3>
00895             {
00896                 double   M[9];
00897                 double   den;
00898                 double sum;
00899             public:
00900                 Triggs(double B,double b1,double b2,double b3)
00901                     :den(1.0-b1-b2-b3)
00902                 {
00903                     //sumsq = B;
00904                     sum = B*B;
00905                     TriggsM(b1,b2,b3,M);
00906                 }
00907                 void operator()(double iplus,double& p1,double& p2,double& p3)
00908                 {
00909                     double uplus = iplus/den;
00910                     double vplus = uplus/den;
00911
00912                     double unp  = p1-uplus;
00913                     double unp1 = p2-uplus;
00914                     double unp2 = p3-uplus;
00915
00916
00917                     p1 = M[0]*unp + M[1]*unp1 + M[2]*unp2 + vplus;
00918                     p2  = M[3]*unp + M[4]*unp1 + M[5]*unp2 + vplus;
00919                     p3  = M[6]*unp + M[7]*unp1 + M[8]*unp2 + vplus;
00920
00921                     p1 *= sum; p2 *= sum; p3 *= sum;
00922                 }
00923                 static void TriggsM(double a1,double a2,double a3,double *M)
00924                 {
00925                     double scale = 1.0/((1.0+a1-a2+a3)*(1.0-a1-a2-a3)*(1.0+a2+(a1-a3)*a3));
00926                     M[0] =  scale * (-a3*a1+1.0-a3*a3-a2);
00927                     M[1] =  scale * (a3+a1)*(a2+a3*a1);
00928                     M[2] =  scale * a3*(a1+a3*a2);
00929                     M[3] =  scale * (a1+a3*a2);
00930                     M[4] = -scale * (a2-1.0)*(a2+a3*a1);
00931                     M[5] = -scale * (a3*a1+a3*a3+a2-1.0)*a3;
00932                     M[6] =  scale * (a3*a1+a2+a1*a1-a2*a2);
00933                     M[7] =  scale * (a1*a2+a3*a2*a2-(a1+a3)*a3*a3-a3*a2+a3);
00934                     M[8] =  scale * a3*(a1+a3*a2);
00935                 }
00936             };
00937             template<typename T>
00938             void border(const T *src,T *dest,int sx)
00939             {
00940                 T   B, b1, b2, b3;
00941                 T   pix, p1, p2, p3;
00942                 T   sum, sumsq;
00943                 T   iplus;
00944
00945
00946                 Triggs<3> triggs(B,b1,b2,b3);
00947
00948                 sumsq = B;
00949                 sum = B*B;
00950
00951                 /* causal filter */
00952                 p1 = *src/sumsq; p2 = p1; p3 = p1;
00953                 iplus = src[sx-1];
00954
00955                 for (int j = 0; j < sx; j++) {
00956                     pix = *src++ + b1*p1 + b2*p2 + b3*p3;
00957                     *dest++ = pix;
00958                     p3 = p2; p2 = p1; p1 = pix; /* update history */
00959                 }
00960
00961                 // anti-causal filter
00962
00963                 // apply Triggs border condition
00964                 triggs(iplus,p1,p2,p3);
00965                 *(--dest) = p1;
00966
00967                for (int j = sx-2; j >= 0; j--) {
00968                     pix = sum * *(--dest) + b1*p1 + b2*p2 + b3*p3;
00969                     *dest = pix;
00970                     p3 = p2; p2 = p1; p1 = pix;
00971                 }
00972                 dest += sx;
00973             }
00974         }
00975     }
01017     template<typename T,unsigned D> class FastGaussConvolve
01018     {
01019         T a1;
01020         T a2;
01021         T a3;
01022         T B;
01023     private:
01024         static void check()
01025         {
01026             LOKI_STATIC_CHECK(( (D>=0) && (D<=3) ),Fast_gauss_convolution_implemented_only_for_function_and_first_3_derivatives);
01027         }
01028     public:
01029         enum { Deriv=D };
01030         template<typename TT>
01031         static T Mult(TT sigma)
01032         {
01033             switch(D)
01034             {
01035                 case 0:
01036                     return T(1.0f);
01037                 case 1:
01038                     return T(0.6f*sqrt(2.0f*3.1415926f)*sigma);
01039                 case 2:
01040                     return T(1.2f*sqrt(2.0f*3.1415926f)*sigma);
01041                 case 3:
01042                     return T(2.0f*sqrt(2.0f*3.1415926f)*sigma);
01043                 default:
01044                     return T(1.0f);
01045             };
01046         }
01047         FastGaussConvolve()
01048         {
01049             check();
01050         }
01051         template<typename TT>
01052         FastGaussConvolve(TT sigma)
01053         {
01054             check();
01055             Init(sigma);
01056         }
01057         template<typename TT>
01058         void Init(TT sigma)
01059         {
01060             double q = (sigma<2.5) ? (3.97156 - 4.14554*sqrt(1.0-0.26891*sigma)) : (0.98711*sigma - 0.96330);
01061             double b0 = 1.57825 + (2.44413 + (1.4281 + 0.422205*q)*q)*q;
01062             double b1 = (2.44413 + (2.85619 + 1.26661*q)*q)*q;
01063             double b2 = -(1.4281 + 1.26661*q)*q*q;
01064             double b3 = 0.422205*q*q*q;
01065             B = T(1-(b1+b2+b3)/b0);
01066             a1=T(b1/b0);
01067             a2=T(b2/b0);
01068             a3=T(b3/b0);
01069 //          std::cout << "FastGaussConvolve: "<< std::endl;
01070 //          std::cout << "q= " << q << "  B="<<B<<"   a1="<<a1<<"   a2="<<a2<<"   a3="<<a3<< std::endl;
01071         }
01072
01074         template<typename IterIn,typename IterOut>
01075         void operator()(IterIn begin,IterIn end,IterOut out)
01076         {
01077             IterOut o=out;
01078             {
01079
01080             }
01081         }
01082
01084         template<typename Iter>
01085         void operator()(Iter begin,Iter end)
01086         {
01087             Iter d=begin;
01088             Impl::FastGaussConvolve::Forward<T,D> f(B,a1,a2,a3,*d);
01089             if(D==0)
01090             {
01091                 Iter i=d;
01092                 T v1=*(++i);
01093                 T v2=*(++i);
01094                 T v3=*(++i);
01095                 f(v3);
01096                 f(v2);
01097                 f(v1);
01098             }
01099             --end;
01100             --end;
01101             --end;
01102             --end;
01103             Iter in_cur=d;
01104             for( ; ++d != end ; in_cur=d )
01105                 f(*in_cur,*in_cur,*d);
01106             T v4=*in_cur;
01107             f(*in_cur,*in_cur,*d); in_cur=d; ++d;
01108             T v3=*in_cur;
01109             f(*in_cur,*in_cur,*d); in_cur=d; ++d;
01110             T v2=*in_cur;
01111             f(*in_cur,*in_cur,*d); in_cur=d; ++d;
01112             T v1=*in_cur;
01113             f(*in_cur,*in_cur,*d); in_cur=d;
01114
01115             *in_cur=f.extent(*in_cur,*in_cur,v1);
01116             v1=f.extent(v1,v1,v2);
01117             v2=f.extent(v2,v2,v3);
01118             v3=f.extent(v3,v3,v4);
01119
01120             Impl::FastGaussConvolve::Reverse<T,D> r(B,a1,a2,a3,v1);
01121             r(v3);
01122             r(v2);
01123             r(v1);
01124             --begin;//before first element
01125             for( Iter out_cur=d ; --d != begin ; out_cur=d )
01126                 r(*out_cur,*out_cur,*d);
01127             ++d;
01128             r(*d,*d,0);
01129
01130         }
01131     };
01133 } //namespace Conv
01134 } //namespace ImAlg
01135 } //namespace Vtl
01137 #endif //_CONVOLVE_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл CPP_pixel_access_via_file_mapping_to_memory.hxx

  • Файлы
  • Список членов всех файлов

CPP_pixel_access_via_file_mapping_to_memory.hxx

См. документацию.
00001


Pipe Line Filters: Исходный файл datastring.h

  • Файлы
  • Список членов всех файлов

datastring.h

См. документацию.
00001 #ifndef _DATASTRING_H
00002 #define _DATASTRING_H
00004 //file:
00005 // #include "datastring.h"
00006 //
00008 #include <string>
00009 #include <sstream>
00010 #include <iomanip>
00011 #include "ytime.h"
00016 #include "loki_EmptyType.h"
00018 namespace Gen
00019 {
00021 namespace Data
00022 {
00023     class SaveFormat
00024     {
00025         std::iostream& stream_;
00026         std::ios_base::fmtflags flags;
00027     public:
00028         SaveFormat(std::iostream& stream)
00029             : stream_(stream),flags(stream.flags())
00030         {
00031
00032         }
00033         ~SaveFormat()
00034         {
00035             stream_.flags(flags);
00036         }
00037     };
00038     namespace Impl
00039     {
00040         inline int Sscanf(std::istream& is
00041             ,Loki::EmptyType v1,Loki::EmptyType v2,Loki::EmptyType v3,Loki::EmptyType v4,Loki::EmptyType v5
00042             ,Loki::EmptyType v6,Loki::EmptyType v7,Loki::EmptyType v8,Loki::EmptyType v9,Loki::EmptyType v10
00043             ,Loki::EmptyType v11,Loki::EmptyType v12,Loki::EmptyType v13,Loki::EmptyType v14,Loki::EmptyType v15
00044             ,Loki::EmptyType v16
00045             )
00046         {
00047             return 0;
00048         }
00049         template<typename T1,typename T2,typename T3,typename T4,typename T5
00050             ,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16
00051         >
00052         int Sscanf(std::istream& is,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5
00053             ,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10
00054             ,T11 & v11,T12 & v12,T13 & v13,T14 & v14,T15 & v15,T16 & v16
00055             )
00056         {
00057             try
00058             {
00059                 is >> v1;
00060             }
00061             catch(...)
00062             {
00063                 return 0;
00064             }
00065             if(is.fail())
00066                 return 0;
00067             else
00068                 return 1+Sscanf(is,v2,v3,v4,v5
00069                                ,v6,v7,v8,v9,v10
00070                                ,v11,v12,v13,v14,v15
00071                                ,v16
00072                                ,Loki::EmptyType());
00073         }
00074     }
00102     template<typename T1>
00103     int Sscanf(std::istream& is,T1 & v1)
00104     {
00105         return Impl::Sscanf(is,v1,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00106                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00107                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00108                                ,Loki::EmptyType()
00109                                );
00110     }
00111     template<typename T1,typename T2>
00112     int Sscanf(std::istream& is,T1 & v1,T2 & v2)
00113     {
00114         return Impl::Sscanf(is,v1,v2,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00115                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00116                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00117                                ,Loki::EmptyType()
00118                                );
00119     }
00120     template<typename T1,typename T2,typename T3>
00121     int Sscanf(std::istream& is,T1 & v1,T2 & v2,T3 & v3)
00122     {
00123         return Impl::Sscanf(is,v1,v2,v3,Loki::EmptyType(),Loki::EmptyType()
00124                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00125                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00126                                ,Loki::EmptyType()
00127                                );
00128     }
00129     template<typename T1,typename T2,typename T3,typename T4>
00130     int Sscanf(std::istream& is,T1 & v1,T2 & v2,T3 & v3,T4 & v4)
00131     {
00132         return Impl::Sscanf(is,v1,v2,v3,v4,Loki::EmptyType()
00133                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00134                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00135                                ,Loki::EmptyType()
00136                                );
00137     }
00138     template<typename T1,typename T2,typename T3,typename T4,typename T5>
00139     int Sscanf(std::istream& is,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5)
00140     {
00141         return Impl::Sscanf(is,v1,v2,v3,v4,v5
00142                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00143                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00144                                ,Loki::EmptyType()
00145                                );
00146     }
00147     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6>
00148     int Sscanf(std::istream& is,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6)
00149     {
00150         return Impl::Sscanf(is,v1,v2,v3,v4,v5
00151                                ,v6,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00152                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00153                                ,Loki::EmptyType()
00154                                );
00155     }
00156     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7>
00157     int Sscanf(std::istream& is,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7)
00158     {
00159         return Impl::Sscanf(is,v1,v2,v3,v4,v5
00160                                ,v6,v7,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00161                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00162                                ,Loki::EmptyType()
00163                                );
00164     }
00165     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8>
00166     int Sscanf(std::istream& is,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8)
00167     {
00168         return Impl::Sscanf(is,v1,v2,v3,v4,v5
00169                                ,v6,v7,v8,Loki::EmptyType(),Loki::EmptyType()
00170                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00171                                ,Loki::EmptyType()
00172                                );
00173     }
00174     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9>
00175     int Sscanf(std::istream& is,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9)
00176     {
00177         return Impl::Sscanf(is,v1,v2,v3,v4,v5
00178                                ,v6,v7,v8,v9,Loki::EmptyType()
00179                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00180                                ,Loki::EmptyType()
00181                                );
00182     }
00183     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10>
00184     int Sscanf(std::istream& is,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10)
00185     {
00186         return Impl::Sscanf(is,v1,v2,v3,v4,v5
00187                                ,v6,v7,v8,v9,v10
00188                                ,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00189                                ,Loki::EmptyType()
00190                                );
00191     }
00192     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11>
00193     int Sscanf(std::istream& is,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11)
00194     {
00195         return Impl::Sscanf(is,v1,v2,v3,v4,v5
00196                                ,v6,v7,v8,v9,v10
00197                                ,v11,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00198                                ,Loki::EmptyType()
00199                                );
00200     }
00201     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12>
00202     int Sscanf(std::istream& is,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11,T12 & v12)
00203     {
00204         return Impl::Sscanf(is,v1,v2,v3,v4,v5
00205                                ,v6,v7,v8,v9,v10
00206                                ,v11,v12,Loki::EmptyType(),Loki::EmptyType(),Loki::EmptyType()
00207                                ,Loki::EmptyType()
00208                                );
00209     }
00210     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13>
00211     int Sscanf(std::istream& is,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11,T12 & v12,T13 & v13)
00212     {
00213         return Impl::Sscanf(is,v1,v2,v3,v4,v5
00214                                ,v6,v7,v8,v9,v10
00215                                ,v11,v12,v13,Loki::EmptyType(),Loki::EmptyType()
00216                                ,Loki::EmptyType()
00217                                );
00218     }
00219     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14>
00220     int Sscanf(std::istream& is,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11,T12 & v12,T13 & v13,T14 & v14)
00221     {
00222         return Impl::Sscanf(is,v1,v2,v3,v4,v5
00223                                ,v6,v7,v8,v9,v10
00224                                ,v11,v12,v13,v14,Loki::EmptyType()
00225                                ,Loki::EmptyType()
00226                                );
00227     }
00228     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15>
00229     int Sscanf(std::istream& is,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11,T12 & v12,T13 & v13,T14 & v14,T15 & v15)
00230     {
00231         return Impl::Sscanf(is,v1,v2,v3,v4,v5
00232                                ,v6,v7,v8,v9,v10
00233                                ,v11,v12,v13,v14,v15
00234                                ,Loki::EmptyType()
00235                                );
00236     }
00237     template<typename T1>
00238     int Sscanf(const char* str,T1 & v1)
00239     {
00240         std::istringstream is(str);
00241         return Sscanf(is,v1);
00242     }
00243     template<typename T1>
00244     int Sscanf(std::string str,T1 & v1)
00245     {
00246         std::istringstream is(str);
00247         return Sscanf(is,v1);
00248     }
00249     template<typename T1,typename T2>
00250     int Sscanf(const char* str,T1 & v1,T2 & v2)
00251     {
00252         std::istringstream is(str);
00253         return Sscanf(is,v1,v2);
00254     }
00255     template<typename T1,typename T2>
00256     int Sscanf(std::string str,T1 & v1,T2 & v2)
00257     {
00258         std::istringstream is(str);
00259         return Sscanf(is,v1,v2);
00260     }
00261     template<typename T1,typename T2,typename T3>
00262     int Sscanf(const char* str,T1 & v1,T2 & v2,T3 & v3)
00263     {
00264         std::istringstream is(str);
00265         return Sscanf(is,v1,v2,v3);
00266     }
00267     template<typename T1,typename T2,typename T3>
00268     int Sscanf(std::string str,T1 & v1,T2 & v2,T3 & v3)
00269     {
00270         std::istringstream is(str);
00271         return Sscanf(is,v1,v2,v3);
00272     }
00273     template<typename T1,typename T2,typename T3,typename T4>
00274     int Sscanf(const char* str,T1 & v1,T2 & v2,T3 & v3,T4 & v4)
00275     {
00276         std::istringstream is(str);
00277         return Sscanf(is,v1,v2,v3,v4);
00278     }
00279     template<typename T1,typename T2,typename T3,typename T4>
00280     int Sscanf(std::string str,T1 & v1,T2 & v2,T3 & v3,T4 & v4)
00281     {
00282         std::istringstream is(str);
00283         return Sscanf(is,v1,v2,v3,v4);
00284     }
00285     template<typename T1,typename T2,typename T3,typename T4,typename T5>
00286     int Sscanf(const char* str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5)
00287     {
00288         std::istringstream is(str);
00289         return Sscanf(is,v1,v2,v3,v4,v5);
00290     }
00291     template<typename T1,typename T2,typename T3,typename T4,typename T5>
00292     int Sscanf(std::string str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5)
00293     {
00294         std::istringstream is(str);
00295         return Sscanf(is,v1,v2,v3,v4,v5);
00296     }
00297     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6>
00298     int Sscanf(const char* str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6)
00299     {
00300         std::istringstream is(str);
00301         return Sscanf(is,v1,v2,v3,v4,v5,v6);
00302     }
00303     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6>
00304     int Sscanf(std::string str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6)
00305     {
00306         std::istringstream is(str);
00307         return Sscanf(is,v1,v2,v3,v4,v5,v6);
00308     }
00309     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7>
00310     int Sscanf(const char* str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7)
00311     {
00312         std::istringstream is(str);
00313         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7);
00314     }
00315     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7>
00316     int Sscanf(std::string str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7)
00317     {
00318         std::istringstream is(str);
00319         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7);
00320     }
00321     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8>
00322     int Sscanf(const char* str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8)
00323     {
00324         std::istringstream is(str);
00325         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8);
00326     }
00327     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8>
00328     int Sscanf(std::string str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8)
00329     {
00330         std::istringstream is(str);
00331         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8);
00332     }
00333     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9>
00334     int Sscanf(const char* str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9)
00335     {
00336         std::istringstream is(str);
00337         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8,v9);
00338     }
00339     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9>
00340     int Sscanf(std::string str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9)
00341     {
00342         std::istringstream is(str);
00343         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8,v9);
00344     }
00345     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10>
00346     int Sscanf(const char* str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10)
00347     {
00348         std::istringstream is(str);
00349         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10);
00350     }
00351     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10>
00352     int Sscanf(std::string str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10)
00353     {
00354         std::istringstream is(str);
00355         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10);
00356     }
00357     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11>
00358     int Sscanf(const char* str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11)
00359     {
00360         std::istringstream is(str);
00361         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11);
00362     }
00363     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11>
00364     int Sscanf(std::string str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11)
00365     {
00366         std::istringstream is(str);
00367         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11);
00368     }
00369     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12>
00370     int Sscanf(const char* str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11,T12 & v12)
00371     {
00372         std::istringstream is(str);
00373         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12);
00374     }
00375     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12>
00376     int Sscanf(std::string str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11,T12 & v12)
00377     {
00378         std::istringstream is(str);
00379         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12);
00380     }
00381     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13>
00382     int Sscanf(const char* str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11,T12 & v12,T13 & v13)
00383     {
00384         std::istringstream is(str);
00385         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13);
00386     }
00387     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13>
00388     int Sscanf(std::string str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11,T12 & v12,T13 & v13)
00389     {
00390         std::istringstream is(str);
00391         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13);
00392     }
00393     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14>
00394     int Sscanf(const char* str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11,T12 & v12,T13 & v13,T14 & v14)
00395     {
00396         std::istringstream is(str);
00397         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14);
00398     }
00399     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14>
00400     int Sscanf(std::string str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11,T12 & v12,T13 & v13,T14 & v14)
00401     {
00402         std::istringstream is(str);
00403         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14);
00404     }
00405     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15>
00406     int Sscanf(const char* str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11,T12 & v12,T13 & v13,T14 & v14,T15 & v15)
00407     {
00408         std::istringstream is(str);
00409         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15);
00410     }
00411     template<typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15>
00412     int Sscanf(std::string str,T1 & v1,T2 & v2,T3 & v3,T4 & v4,T5 & v5,T6 & v6,T7 & v7,T8 & v8,T9 & v9,T10 & v10,T11 & v11,T12 & v12,T13 & v13,T14 & v14,T15 & v15)
00413     {
00414         std::istringstream is(str);
00415         return Sscanf(is,v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12,v13,v14,v15);
00416     }
00417 }//namespace Data
00418 }//namespace Gen
00420
00428 class DataString
00429 :public std::string
00430 {
00431     int sec_digits;
00432     template<typename T> DataString& Set(T val)
00433     {
00434         sec_digits=3;
00435         std::ostringstream os;
00436         os << val;
00437         *this=os.str();
00438         return *this;
00439     }
00440     DataString& Set(double val)
00441     {
00442         sec_digits=3;
00443         std::ostringstream os;
00444         os << std::setprecision(18) << val;
00445         *this=os.str();
00446         return *this;
00447     }
00462     template<typename T> T Get() const
00463     {
00464         std::istringstream is(*this);
00465         T val;
00466         is >> val;
00467         if(is.fail())
00468             throw std::string("DataString::Get<T>() : value reading from string is FAIL");
00469         return val;
00470     }
00471     static std::string DataString::TimeToString(YDataTime val,YTimeInterval zone,int sec_digits=3);
00472     static void DataString::StringToTime(std::string str,YDataTime& val,YTimeInterval& zone);
00473 public:
00474     DataString() {}
00475     DataString(const char* val) : std::string(val) {}
00476     DataString(const std::string val) : std::string(val) {}
00477
00478     DataString(int val) { Set(val); }
00479     DataString& operator=(int val) { return Set(val);}
00480     operator int() const { return Get<int>();}
00481
00482     DataString(unsigned val) { Set(val); }
00483     DataString& operator=(unsigned val) { return Set(val);}
00484     operator unsigned() const { return Get<unsigned>();}
00485
00486     DataString(float val) { Set(val); }
00487     DataString& operator=(float val) { return Set(val);}
00488     operator float() const { return Get<float>();}
00489
00490     DataString(double val) { Set(val); }
00491     DataString& operator=(double val) { return Set(val);}
00492     operator double() const { return Get<double>();}
00493
00494     DataString(YDataTime val) { *this=val; }
00495 //  DataString& operator=(YDataTime val);
00496     DataString& operator=(YDataTime val)
00497     {
00498         YTimeInterval zone(0);
00499         *this=DataString::TimeToString(val,zone,sec_digits);
00500         return *this;
00501     }
00502 //  operator YDataTime() const;
00503     operator YDataTime() const
00504     {
00505         YDataTime dt;
00506         YTimeInterval zone;
00507         DataString::StringToTime(*this,dt,zone);
00508         dt-=zone;//convert to grinvich
00509         return dt;
00510     }
00511
00512     DataString(YDataTimeZone val) { *this=val; }
00513     DataString& operator=(YDataTimeZone val)
00514     {
00515         YTimeInterval zone(0);
00516         *this=DataString::TimeToString(val.DataTime(),val.Zone(),sec_digits);
00517         return *this;
00518     }
00519     operator YDataTimeZone() const
00520     {
00521         YDataTime dt;
00522         YTimeInterval zone;
00523         DataString::StringToTime(*this,dt,zone);
00524         return YDataTimeZone(dt,zone);
00525     }
00526     void setDataTime_Precision(int digits)
00527     {
00528         if(digits<1 || digits>6)
00529             digits=3;
00530         sec_digits=digits;
00531     }
00532
00533
00534 /*
00535 //  friend std::ostream& operator<<(std::ostream& s,const DataString& ds) { return s<<ds.c_str();}
00536     template<typename T> std::ostream operator<<(T val)
00537     {
00538         std::ostringstream os(*this);
00539         os << val;
00540         return os;
00541     }
00542 */
00543 }; // end of DataStringGroup
00546 #endif //_DATASTRING_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл debug_test.h

  • Файлы
  • Список членов всех файлов

debug_test.h

См. документацию.
00001 #ifndef _DEBUG_TEST_H
00002 #define _DEBUG_TEST_H
00003
00004 #include <time.h>
00005 #include <strstream>
00006 namespace Vtl
00007 {
00008 namespace Dbg
00009 {
00010 class TimeElapsed
00011 {
00012    clock_t _st,_fin;
00013 public:
00014     TimeElapsed() {start();}
00015     void start()
00016     {
00017
00018         _st=_fin=clock();
00019     }
00020     void finish()
00021     {
00022         _fin=clock();
00023     }
00024     double Get()
00025     {
00026         return double(double(_fin - _st)/CLOCKS_PER_SEC);
00027     }
00028     std::string GetString()
00029     {
00030         std::ostringstream os;
00031         os << "Time elapsed " << Get() << " sec." ;
00032         return os.str();
00033     }
00034 };
00035 }//namespace Dbg
00036 }//namespace Vtl
00037 #endif //_DEBUG_TEST_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл DFPMinimization.h

  • Файлы
  • Список членов всех файлов

DFPMinimization.h

См. документацию.
00001 #ifndef DFPMINIMIZATION_H_
00002 #define DFPMINIMIZATION_H_
00003 #include <math.h>
00004 #include <vector>
00005
00006 // library includings
00007 #include "num_linalg.h"
00008 //#include "nrutil.h"
00009
00010 // own includings
00011 #include "MistakeFunc.h"
00012
00013 namespace Basics3D
00014 {
00015     #define ITMAX 200               // Maximum allowed number of iterations.
00016     #define EPS 3.0e-8          // Machine precision.
00017     #define TOLX (4*EPS)        // Convergence criterion on x values.
00018     #define STPMX 100.0         // Scaled maximum step length allowed in line searches.
00019     #define ALF 1.0e-4      //Ensures suffcient decrease in function value.
00020     //#define TOLX 1.0e-7 Convergence criterion on x.
00021
00023     // Given an n-dimensional point xold[1..n], the value of the function and gradient there,
00024     // fold and g[1..n], and a direction p[1..n], finds a new point x[1..n] along the
00025     // direction p from xold where the function func has decreased "suffciently."
00026     // The new function value is returned in f. stpmax is an input quantity that limits the
00027     // length of the steps so that you do not try to evaluate the function in regions where
00028     // it is undefined or subject to overflow. p is usually the Newton direction.
00029     // The output quantity check is false (0) on a normal exit. It is true (1) when x is too
00030     // close to xold. In a minimization algorithm, this usually signals convergence and can
00031     // be ignored. However, in a zero-finding algorithm the calling program should check
00032     // whether the  convergence is spurious. Some "diffcult" problems may require double
00033     // precision in this routine.
00034     template <class type, class MatrixType>
00035     void lnsrch(int n,
00036                             Vtl::NumAlg::Lin::ublas::vector<type>* xold, //float xold[],
00037                             type fold,
00038                             Vtl::NumAlg::Lin::ublas::vector<type>* g,    //float g[],
00039                             Vtl::NumAlg::Lin::ublas::vector<type>* p,    //float p[],
00040                             Vtl::NumAlg::Lin::ublas::vector<type>* x,    //float x[],
00041                             type *f,
00042                             type stpmax,
00043                             int *check,
00044                             T_MistakeFunc<MatrixType>* Mist)
00045
00046     {
00047         using namespace Vtl::NumAlg::Lin;
00048
00049         *check = 0;
00050
00051         type sum = ublas::inner_prod((*p), (*p));/*
00052         for (int i = 0; i < n; i++)      //(sum = 0.0, i = 1;i<=n;i++)
00053         {
00054             sum += (*p)[i] * (*p)[i];
00055         }*/
00056
00057         sum = sqrt(sum);
00058
00059         // Scale if attempted step is too big.
00060         if (sum > stpmax)
00061         {
00062             for (int i = 0; i < n; i++)
00063             {
00064                 (*p)[i] *= stpmax/sum;
00065             }
00066         }
00067
00068         type slope = ublas::inner_prod((*g), (*p));/*0.0;
00069         for (int i = 0; i < n; i++)  //(slope=0.0,i=1;i<=n;i++)
00070         {
00071                 slope += (*g)[i] * (*p)[i];
00072         }*/
00073
00074         if (slope >= 0.0)
00075         {
00076             throw "\nRoundoff problem in lnsrch.";
00077         }
00078
00079         //  Compute min.
00080         type test = 0.0;
00081
00082         for (int i = 0; i < n; i++)
00083         {
00084             type temp = fabs((*p)[i]) / std::max(fabs((*xold)[i]), 1.0);
00085
00086             if (temp > test)
00087             {
00088                 test = temp;
00089             }
00090         }
00091
00092         type alamin = TOLX / test;
00093
00094         // Always try full Newton step first.
00095         type alam = 1.0;
00096         type f2, alam2;
00097
00098         // Start of iteration loop.
00099         for (;;)
00100         {
00101             (*x) = (*xold) + alam * (*p);/*
00102             for (int i = 0; i < n; i++)               //(i=1;i<=n;i++)
00103             {
00104                 (*x)[i] = (*xold)[i] + alam * (*p)[i];
00105             }*/
00106
00107             *f = Mist->Func(*x);
00108
00109             // Convergence on x. For zero finding,
00110             // the calling program should verify the convergence.
00111             if (alam < alamin)
00112             {
00113                 (*x) = (*xold);/*
00114                 for (int i = 0; i < n; i++)             //(i=1;i<=n;i++)
00115                 {
00116                     (*x)[i] = (*xold)[i];
00117                 }*/
00118                 *check = 1;
00119
00120                 std::cout << "\nCheck = 1, x = xold\n";
00121                 return;
00122             }
00123             else
00124             {
00125                 type tmplam;
00126
00127                 if (*f <= fold + ALF * alam * slope)
00128                 {
00129                     std::cout << "\nSufficient function decrease\n";
00130                     return;
00131                 }
00132                 else // Backtrack.
00133                 {
00134                     if (alam == 1.0) // First time.
00135                     {
00136                         tmplam = -slope / (2.0 * (*f - fold - slope));
00137                     }
00138                     else  //Subsequent backtracks.
00139                     {
00140                         type rhs1 = *f - fold - alam * slope;
00141                         type rhs2 = f2 - fold - alam2 * slope;
00142                         type a = (rhs1 / (alam * alam) - rhs2 / (alam2 * alam2)) / (alam - alam2);
00143                         type b = (-alam2 * rhs1 / (alam * alam) + alam * rhs2 / (alam2 * alam2))
00144                                      / (alam - alam2);
00145
00146                         if (a == 0.0)
00147                         {
00148                             tmplam = -slope / (2.0 * b);
00149                         }
00150                         else
00151                         {
00152                             type disc = b * b - 3.0 * a * slope;
00153
00154                             if (disc < 0.0)
00155                             {
00156                                 tmplam = 0.5 * alam;
00157                             }
00158                             else
00159                             {
00160                                 if (b <= 0.0)
00161                                 {
00162                                     tmplam = (-b + sqrt(disc)) / (3.0 * a);
00163                                 }
00164                                 else
00165                                 {
00166                                     tmplam = -slope / (b + sqrt(disc));
00167                                 }
00168                             }
00169                         }
00170
00171                         if (tmplam > 0.5 * alam)
00172                         {
00173                             tmplam = 0.5 * alam; //  0:51.
00174                         }
00175                     }
00176                 }
00177
00178                 alam2 = alam;
00179                 f2 = *f;
00180                 alam = std::max(tmplam, 0.1 * alam); //   0:11.
00181             } // Try again.
00182         }
00183     };
00184
00185
00187     // Given a starting point p[1..n] that is a vector of length n,
00188     // the Broyden-Fletcher-Goldfarb-Shanno variant of Davidon-Fletcher-Powell minimization
00189     // is performed on a function func, using its gradient as calculated by a routine dfunc.
00190     // The convergence requirement on zeroing the gradient is input as gtol.
00191     // Returned quantities are p[1..n] (the location of the minimum),
00192     // iter (the number of iterations that were performed), and
00193     // fret (the minimum value of the function).
00194     // The routine lnsrch is called to perform approximate line minimizations.
00195
00196     template<class type, class MatrixType>
00197     void _dfpmin(Vtl::NumAlg::Lin::ublas::vector<type>* p,
00198                             int n,
00199                             type gtol,
00200                             int *iter,
00201                             type *fret,
00202                             T_MistakeFunc<MatrixType>* Mist)
00203     {
00204         using namespace Vtl::NumAlg::Lin;
00205
00206         ublas::matrix<type> hessin(n,n);
00207         ublas::vector<type> dg(n);
00208         ublas::vector<type> g(n);
00209         ublas::vector<type> hdg(n);
00210         ublas::vector<type> pnew(n);
00211         ublas::vector<type> xi(n);
00212
00213         // Calculate starting function value and gradient
00214         // and initialize the inverse Hessian to the unit matrix.
00215         type fp = Mist->Func(*p);
00216         Mist->Derivative(g, *p);
00217
00218         type sum = 0.0;
00219
00220         for (int i = 0; i < n; i++)
00221         {
00222             for (int j = 0; j < n; j++)
00223             {
00224                 hessin(i,j) = 0.0;
00225             }
00226
00227             hessin(i,i) = 1.0;
00228         }
00229
00230         // Initial line direction.
00231         xi = -g;
00232         sum = ublas::inner_prod((*p), (*p));
00233
00234         type stpmax = STPMX * std::max(sqrt(sum), (type)n);
00235
00236         // Main loop over the iterations.
00237         for (int its = 0; its < ITMAX; its++)
00238         {
00239             *iter = its;
00240
00241             std::cout << "\niter = " << *iter << "  |  ";
00242             for (int k = 0; k < n; k++)
00243             {
00244                 std::cout << (*p)[k] << "  ";
00245             }
00246
00247             int check;
00248             lnsrch<double>(n, p, fp, &g, &xi, &pnew, fret, stpmax, &check, Mist);
00249
00250             std::cout << "  |  ";
00251             for (int k = 0; k < n; k++)
00252             {
00253                 std::cout << pnew[k] << "  ";
00254             }
00255
00256             //  The new function evaluation occurs in lnsrch;
00257             // save the function value in fp for the next line search.
00258             // It is usually safe to ignore the value of check.
00259             fp = *fret;
00260
00261
00262             // Update the line direction,
00263             xi = pnew - (*p);
00264             // and the current point.
00265             (*p) = pnew;/*
00266             for (int i = 0; i < n; i++)               //(i=1;i<=n;i++)
00267             {
00268                 xi[i] = pnew[i] - (*p)[i];
00269                 (*p)[i] = pnew[i];
00270             }*/
00271
00272             // Test for convergence on x.
00273             type test = 0.0;
00274
00275             for (int i = 0; i < n; i++)
00276             {
00277                 type temp = fabs(xi[i]) / std::max(fabs((*p)[i]), 1.0);
00278
00279                 if (temp > test)
00280                 {
00281                     test = temp;
00282                 }
00283             }
00284
00285             if (test < TOLX)
00286             {
00287                 return;
00288             }
00289
00290             // Save the old gradient,
00291             dg = g;/*
00292             for (int i = 0; i < n; i++)               //(i=1;i<=n;i++)
00293             {
00294                 dg[i] = g[i];
00295             }*/
00296
00297             // and get the new gradient.
00298             Mist->Derivative(g, *p);
00299
00300             // Test for convergence on zero gradient.
00301             test = 0.0;
00302
00303             type den = std::max(*fret, 1.0);
00304
00305             for (int i = 0; i < n; i++)
00306             {
00307                 type temp = fabs(g[i]) * std::max(fabs((*p)[i]), 1.0) / den;
00308
00309                 if (temp > test)
00310                 {
00311                     test = temp;
00312                 }
00313             }
00314
00315             if (test < gtol)
00316             {
00317                 return;
00318             }
00319
00320             // Compute difference of gradients,
00321             dg = g - dg;/*
00322             for (int i = 0; i < n; i++)               //(i = 1; i < n; i++)
00323             {
00324                 dg[i] = g[i] - dg[i];
00325             }*/
00326
00327             // and difference times current matrix.
00328             hdg = ublas::prod(hessin, dg);/*
00329             for (int i = 0; i < n; i++)               //(i=1;i<=n;i++)
00330             {
00331                 hdg[i] = 0.0;
00332
00333                 for (int j = 0; j < n; j++)             //(j=1;j<=n;j++)
00334                 {
00335                     hdg[i] += hessin(i, j) * dg[j];
00336                 }
00337             }*/
00338
00339             // Calculate dot products for the denominators.
00340             type fac, fae, sumdg, sumxi;
00341             fac = fae = sumdg = sumxi = 0.0;
00342
00343             fac = ublas::inner_prod(dg, xi);
00344             fae = ublas::inner_prod(dg, hdg);
00345             sumdg = ublas::inner_prod(dg, dg);
00346             sumxi = ublas::inner_prod(xi, xi);/*
00347             for (int i = 0; i < n; i++)                 //(i=1;i<=n;i++)
00348             {
00349                     fac += dg[i] * xi[i];
00350                     fae += dg[i] * hdg[i];
00351                     sumdg += dg[i] * dg[i];
00352                     sumxi += xi[i] * xi[i];
00353             }*/
00354
00355             // Skip update if fac not suffciently positive.
00356             if (fac > sqrt(EPS * sumdg * sumxi))
00357             {
00358                 fac = 1.0 / fac;
00359                 type fad = 1.0 / fae;
00360
00361                 // The vector that makes BFGS different from DFP:
00362                 dg = fac * xi - fad * hdg;/*
00363                 for (int i = 0; i < n; i++)             //(i=1;i<=n;i++)
00364                 {
00365                     dg[i] = fac * xi[i] - fad * hdg[i];
00366                 }*/
00367
00368                 // The BFGS updating formula:
00369                 hessin += fac * ublas::outer_prod(xi, xi) - fad * ublas::outer_prod(hdg, hdg)
00370                          + fae * ublas::outer_prod(dg, dg);/*
00371                 for (int i = 0; i < n; i++)             //(i=1;i<=n;i++)
00372                 {
00373                     for (int j = i; j < n; j++)       //(j=i;j<=n;j++)
00374                     {
00375                         hessin(i, j) += fac * xi[i] * xi[j] - fad * hdg[i] * hdg[j] + fae * dg[i] * dg[j];
00376                         hessin(j, i) = hessin(i, j);
00377                     }
00378                 }*/
00379             }
00380
00381             // Now calculate the next direction to go,
00382             xi = - ublas::prod(hessin, g);/*
00383             for (int i = 0; i < n; i++)
00384             {
00385                 xi[i] = 0.0;
00386
00387                 for (int j = 0; j < n; j++)
00388                 {
00389                     xi[i] -= hessin(i, j) * g[j];
00390                 }
00391             }*/
00392
00393             // and go back for another iteration.
00394         }
00395
00396     //  nrerror("too many iterations in dfpmin");
00397
00398     }
00399 }
00400 #endif //DFPMINIMIZATION_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл DrawEllipse.h

  • Файлы
  • Список членов всех файлов

DrawEllipse.h

См. документацию.
00001 #ifndef DRAW_ELLIPSE_H
00002 #define DRAW_ELLIPSE_H
00003
00004 // std includes
00005 #define _USE_MATH_DEFINES
00006 #include <cmath>
00007
00008 // library includes
00009 #include "alg_bresenham.h"
00010
00011 template <typename T>
00012 void DrawEllipse(T* io_dstR,        // destination
00013                  T* io_dstG,        //             image
00014                  T* io_dstB,        //                   components
00015                  int w,             // image
00016                  int h,             //       size
00017                  int nls,           // image line length
00018                  int cx,            // center
00019                  int cy,            //        coordinates
00020                  double Ax,         // large semi-axis
00021                  double Ay,         // small semi-axis
00022                  double fi,         // slope angle
00023                  int pointsNumb,    // number of lines approximating ellipse
00024                  T colR = T(0),     // brush
00025                  T colG = T(0),     //
00026                  T colB = T(0))     //        colour
00027 {
00028   // pen is black
00029     AImageMem8::Pixel color_pen = AImageMem8::Pixel(0);
00030
00031   typedef Vtl::ImAlg::Bres::Draw<AImageMem8::Pixel> DrawFunctor;
00032     DrawFunctor draw_functor(color_pen);
00033
00034     typedef Vtl::ImAlg::Bres::SetPixelGray<AImageMem8::Pixel, DrawFunctor>
00035                                                                                                                            SetPixelFunctor;
00036   SetPixelFunctor set_pixR(io_dstR, nls, draw_functor);
00037   SetPixelFunctor set_pixG(io_dstG, nls, draw_functor);
00038   SetPixelFunctor set_pixB(io_dstB, nls, draw_functor);
00039
00040     Vtl::ImAlg::Bres::Line<SetPixelFunctor> lineR(set_pixR);
00041   Vtl::ImAlg::Bres::Line<SetPixelFunctor> lineG(set_pixG);
00042   Vtl::ImAlg::Bres::Line<SetPixelFunctor> lineB(set_pixB);
00043
00044   std::vector<int> x(pointsNumb + 1);
00045     std::vector<int> y(pointsNumb + 1);
00046
00047   double sinFi = sin(fi);
00048   double cosFi = cos(fi);
00049
00050   for(int i = 0; i <= pointsNumb ; i ++)
00051     {
00052         double x_ = Ax * cos(2 * M_PI / pointsNumb * i);
00053         double y_ = Ay * sin(2 * M_PI / pointsNumb * i);
00054
00055     x[i] = cx + int(x_ * cosFi - y_ * sinFi + 0.5);
00056     y[i] = cy + int(x_ * sinFi + y_ * cosFi + 0.5);
00057
00058     x[i] = std::min(w, x[i]);
00059     x[i] = std::max(0, x[i]);
00060     y[i] = std::min(h, y[i]);
00061     y[i] = std::max(0, y[i]);
00062     }
00063
00064   set_pixR.Set0(x[0], y[0]);
00065   set_pixG.Set0(x[0], y[0]);
00066   set_pixB.Set0(x[0], y[0]);
00067
00068   for(int i = 1; i <= pointsNumb ; i ++)
00069     {
00070         lineR.Draw(x[i] - x[i - 1], y[i] - y[i - 1]);
00071     lineG.Draw(x[i] - x[i - 1], y[i] - y[i - 1]);
00072     lineB.Draw(x[i] - x[i - 1], y[i] - y[i - 1]);
00073   }
00074 }
00075
00076 #endif // DRAW_ELLIPSE_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл DrawEpipolarLines.h

  • Файлы
  • Список членов всех файлов

DrawEpipolarLines.h

См. документацию.
00001 #ifndef DRAW_EPIPOLAR_LINES_H
00002 #define DRAW_EPIPOLAR_LINES_H
00003
00004 // library includings
00005 #include "aimage.h"
00006 #include "consolap.h"
00007 #include "alg_bresenham.h"
00008 #include "num_linalg.h"
00009
00010 // own includings
00011 #include "MatrixOperations.h"
00012 #include "Points2DSet.h"
00013 #include "Point2D.h"
00014 #include "FundamentalMatrix.h"
00015
00016 namespace Basics3D
00017 {
00018     class C_DrawEpipolarLines
00019     {
00020     private:
00021         const AImageMem8 *m_src0;
00022         const AImageMem8 *m_src1;
00023         AImageMemRgb8 *m_dst0;
00024         AImageMemRgb8 *m_dst1;
00025
00026     public:
00027         C_DrawEpipolarLines(const AImageMem8 *in_src0,
00028                               const AImageMem8 *in_src1);
00029
00030         void Apply(const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_m,
00031                              const T_Points2DSet<C_Point2D> &in_points,
00032                              int i);
00033
00034         void Save (const char *in_outputImageName,
00035                    const int in_i);
00036
00037         void GetRandColor(int *r,
00038                             int *g,
00039                                           int *b);
00040
00041         void Ends(const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 1> &in_Line,
00042                   const int in_h,
00043                   const int in_w,
00044                     int *out_x1,
00045                         int *out_y1,
00046               int *out_x2,
00047                           int *out_y2);
00048
00049         void DrawLine(AImageMem8 *in_img,
00050                       const int in_nls,
00051                         const int in_col,
00052                                     const int in_x1,
00053                                     const int in_y1,
00054                                     const int in_x2,
00055                                     const int in_y2);
00056
00057     };
00058 }
00059 #endif // DRAW_EPIPOLAR_LINES_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл edge_det.h

  • Файлы
  • Список членов всех файлов

edge_det.h

См. документацию.
00001 #ifndef _EDGE_DET_H
00002 #define _EDGE_DET_H
00004 #include "convolve.h"
00005 #include "imalg_tools.h"
00006 #include "plf_functors.h"
00007 #include "plf_kernels_1d.h"
00009 namespace Students
00010 {
00011 namespace Curve
00012 {
00013     template<typename T>
00014     class EdgeDetect
00015     {
00016         // Объявляем типы (даем им короткие и понятные синонимы)
00017         typedef Vtl::ImAlg::WndFun::Gauss<T,0, true> FF0;
00018         typedef Vtl::Plf::Kernel::FKern<T,Vtl::Plf::Kernel::KT_Conv,true> K0;
00019         //1я производная
00020         typedef Vtl::ImAlg::WndFun::Gauss<T,1,true> FF1;
00021         typedef Vtl::Plf::Kernel::FKern<T,Vtl::Plf::Kernel::KT_Conv,true> K1;
00022
00023         const float sigma;
00024         const float n_sigmas_in_eviron;
00025         //ф-ция Гаусса
00026         FF0 f0;
00027         K0 ker0;
00028         Vtl::ImAlg::Conv::ConvInplace<T,K0> g0;
00029         //ее 1я производная
00030         FF1 f1;
00031         K1 ker1;
00032         Vtl::ImAlg::Conv::ConvInplace<T,K1> g1;
00033
00034     public:
00035         EdgeDetect(float sigma_,float n_sigmas_in_eviron_=4.0f)
00036             : sigma(sigma_), n_sigmas_in_eviron(n_sigmas_in_eviron_)
00037             , f0(sigma,n_sigmas_in_eviron),ker0(f0),g0(ker0),f1(sigma,n_sigmas_in_eviron),ker1(f1),g1(ker1)
00038         {
00039         }
00040         void Canny(int w,int h,int nls,T* edge,T* gx,T* gy,T* fri)
00041         {
00042             const int sz=w*h;
00043
00044             //вычисление 1х производных, так как удобнее переместить результат в массивы gx,gy,
00045             //а исходные данные принимать через edge, то используем не inplace версии функций - заодно и скопируют.
00046             // Gx :
00047             //std::copy(edge,edge+sz,gx);
00048             //Vtl::ImAlg::Conv::Conv2D::conv2DInplace(gx,w,h,w,g1,g0);
00049             Vtl::ImAlg::Conv::Conv2D::conv2D(edge,w,h,nls,gx,nls,g1,g0);
00050
00051             // Gy :
00052             //std::copy(edge,edge+sz,gy);
00053             //Vtl::ImAlg::Conv::Conv2D::conv2DInplace(gy,w,h,w,g0,g1);
00054             Vtl::ImAlg::Conv::Conv2D::conv2D(edge,w,h,nls,gy,nls,g0,g1);
00055
00056             //Вычисляем модуль градиента:
00057             Vtl::Plf::F21::SqrtOfSumSqr<T> sssq;
00058             Vtl::ImAlg::Tools::copy_2_1(gx,w,h,nls,gy,nls,fri,nls,sssq);
00059             Vtl::Plf::F11::Mult<T> mul(T(sqrt(2.0f*M_PI)*sigma));
00060             Vtl::ImAlg::Tools::copy_1_1(fri,w,h,nls,mul);
00061             //Выполняем Non Maxima Supression:
00062             Vtl::Plf::Fpie::CannyNMS<float> nms(0.1f);
00063             Vtl::Plf::Extent ext=nms.ext();
00064             std::fill(edge,edge+sz,0.0f);
00065             Vtl::ImAlg::Tools::envTransf_3e1_1(ext,fri,w,h,nls,gx,nls,gy,nls,edge,nls,nms);
00066         }
00067         void DiZenzo(int w,int h,int nls,T* edge,T* gx,T* gy,T* fri,T* tmp,T* tmp2)
00068         {
00069             const int sz=w*h;
00070             //Vtl::ImAlg::Conv::Conv2D::conv2DInplace(gy,w,h,w,g0,g1);
00071
00072             // Rx :  in fri
00073             Vtl::ImAlg::Conv::Conv2D::conv2D(edge,w,h,w,fri,w,g1,g0);
00074             // Ry :  in edge
00075             Vtl::ImAlg::Conv::Conv2D::conv2DInplace(edge,w,h,w,g0,g1);
00076
00077             Vtl::Plf::F23::CorrMatrix<T> cm;
00078             Vtl::ImAlg::Tools::copy_2_3(fri,w,h,nls,edge,nls,edge,nls,fri,nls,tmp,nls,cm);
00079             // Now:  edge==Rx^2 fri==RxRy  tmp Ry^2
00080
00081             // Gx :  in tmp2
00082             Vtl::ImAlg::Conv::Conv2D::conv2D(gx,w,h,w,tmp2,w,g1,g0);
00083             // Gy :  in gx
00084             Vtl::ImAlg::Conv::Conv2D::conv2DInplace(gx,w,h,w,g0,g1);
00085             Vtl::Plf::F23::CorrMatrixAdd<T> cma;
00086             Vtl::ImAlg::Tools::copy_2_3(tmp2,w,h,nls,gx,nls,edge,nls,fri,nls,tmp,nls,cma);
00087
00088             // Bx :  in tmp2
00089             Vtl::ImAlg::Conv::Conv2D::conv2D(gy,w,h,w,tmp2,w,g1,g0);
00090             // By :  in gy
00091             Vtl::ImAlg::Conv::Conv2D::conv2DInplace(gy,w,h,w,g0,g1);
00092             Vtl::ImAlg::Tools::copy_2_3(tmp2,w,h,nls,gy,nls,edge,nls,fri,nls,tmp,nls,cma);
00093
00094             //Вычисляем с.з. и с.в.:
00095             Vtl::Plf::F33::DiZenzo<T> dz;
00096             Vtl::ImAlg::Tools::copy_3_3(edge,w,h,nls,fri,nls,tmp,nls,fri,nls,gx,nls,gy,nls,dz);
00097             Vtl::Plf::F11::Mult<T> mul3(T(sqrt(2.0f*M_PI)*sigma));
00098             Vtl::ImAlg::Tools::copy_1_1(fri,w,h,nls,mul3);
00099             //Выполняем Non Maxima Supression:
00100             Vtl::Plf::Fpie::CannyNMS<float> nms(0.1f);
00101             Vtl::Plf::Extent ext=nms.ext();
00102             std::fill(edge,edge+sz,0.0f);
00103             Vtl::ImAlg::Tools::envTransf_3e1_1(ext,fri,w,h,w,gx,w,gy,w,edge,w,nms);
00104         }
00105     };
00106 }//namespace Curve
00107 }//namespace Students
00109 #endif //_EDGE_DET_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл edt_meijster_2000.h

  • Файлы
  • Список членов всех файлов

edt_meijster_2000.h

См. документацию.
00001 #ifndef EDT_MEIJSTER_2000_H_
00002 #define EDT_MEIJSTER_2000_H_
00004 #include "ytypes.h"
00005
00006 namespace Vtl
00007 {
00008 namespace ImAlg
00009 {
00010 namespace Edt
00011 {
00012   template<typename T>
00013     struct isEdge
00014     {
00015         T thresh;
00016
00017         isEdge(T threshold = T(0))
00018       : thresh(threshold) {}
00019
00020         bool operator()(T value)
00021         {
00022             return value > thresh;
00023         }
00024     };
00025
00032
00033   class Meijster
00034   {
00035  public:
00036       template<typename T1, typename T2, class Functor>
00037     static void edt(T1* src,
00038                     int w,
00039                     int h,
00040                     int nls_s,
00041                     T2* res,
00042                     int nls_d,
00043                     Functor isEdgeFunc)
00044     {
00045       T2 MaxValue = T2(std::max(w, h) + 1); // instead INT32_MAX
00046
00047       //First Step - vertical
00048       std::vector<int> t1(h); // instead t1(w)
00049       std::vector<int> t2(h);
00050
00051       // for each column
00052       for (int i = 0; i < w; ++i)
00053       {
00054         T1* col = src + i;
00055
00056         int j = 0;
00057
00058         // up -> down
00059
00060         // before we meet first edge pixel fill colomn with imposible value
00061         for( ; j < h && !isEdgeFunc(*col); ++j, col += nls_s)
00062         {
00063             t1[j] = MaxValue;
00064         }
00065
00066         // fill colomn with distances from the up closest edge point
00067         for( ; j < h; ++j, col += nls_s)
00068         {
00069             if (isEdgeFunc(*col))
00070             {
00071               t1[j] = 0;
00072             }
00073             else
00074             {
00075               t1[j] = t1[j - 1] + 1;
00076             }
00077         }
00078
00079         // down -> up
00080         --j; // j = h - 1;
00081                 col -= nls_s;  //col = src + j * nls_s;
00082
00083         // before we meet first edge pixel fill colomn with imposible value
00084         for( ; j >= 0 && !isEdgeFunc(*col); --j, col -= nls_s)
00085         {
00086           t2[j] = MaxValue;
00087         }
00088
00089         // fill colomn with distances from the down closest edge point
00090         for( ; j >= 0; --j, col -= nls_s)
00091         {
00092           if (isEdgeFunc(*col))
00093           {
00094             t2[j] = 0;
00095           }
00096           else
00097           {
00098             t2[j] = t2[j + 1] + 1;
00099           }
00100         }
00101
00102         // choose between up and down edge point the closest and save distance
00103         T2* r = res + i;
00104         for(j = 0; j < h; ++j, r += nls_d)
00105         {
00106             *r = std::min(t1[j], t2[j]);
00107         }
00108       }
00109
00110       //Second Step - horizoltal
00111       T2* r = res;
00112       std::vector<T2> dist(w);
00113
00114       // for each row
00115       for (int i = 0; i < h ; ++i, r += nls_d)
00116       {
00117         // copy row to dist
00118         for (int j = 0; j < w; ++j)
00119         {
00120             dist[j] = r[j];
00121         }
00122
00123         edt1D(&(dist[0]), w, MaxValue);
00124
00125         // copy edt1D result to output image
00126         for (int j = 0; j < w; ++j)
00127         {
00128          r[j] = dist[j];
00129         }
00130       }
00131     }
00132
00133 private:
00134   template< typename T2 >
00135     static void edt1D(T2* dist,    // vertical distances
00136                     int N,        // row length
00137                     T2 MaxValue)
00138   {
00139     // save numbers of previous and next elements because some elements
00140     // should be skiped
00141     std::vector<int> prev(N);
00142     std::vector<int> next(N);
00143
00144     // initialize without skipping any elements
00145     for (int i = 0; i < N; ++i)
00146     {
00147         prev[i] = i - 1;
00148         next[i] = i + 1;
00149     }
00150
00151     // Non-existent Points Removal
00152     int first = 0;
00153     int last = N - 1;
00154
00155     // search for number of the first colomn containing edge pixel
00156     while(dist[first] == MaxValue && first < last)
00157     {
00158       ++first;
00159     }
00160
00161     // search for number of the last colomn containing edge pixel
00162     while (dist[last] == MaxValue && first < last)
00163     {
00164       --last;
00165     }
00166
00167     // skip columns which do not contain any edge points
00168     int cur;
00169     if( first < last )
00170     {
00171       cur = next[first];
00172
00173       while( cur < last )
00174       {
00175         if( dist[cur] == MaxValue )
00176         {
00177           next[prev[cur]] = next[cur];
00178           prev[next[cur]] = prev[cur];
00179         }
00180         cur = next[cur];
00181       }
00182     }
00183
00184     // Bad Point Test
00185     if( first < last )
00186     {
00187       cur = next[first];
00188
00189       while( cur < last )
00190       {
00191         int pcur = prev[cur];
00192         int ncur = next[cur];
00193
00194         float A = float(ncur - pcur);
00195         float B = float(dist[ncur] - dist[pcur]);
00196         float X = 0.5f * (ncur + pcur + B / A * (dist[ncur] + dist[pcur]));
00197         float D1 = (X - pcur) * (X - pcur) + dist[pcur] * dist[pcur];
00198         float D2 = (X - cur) * (X - cur) + dist[cur] * dist[cur];
00199
00200         if( D1 <= D2 )
00201         {
00202           next[pcur] = ncur;
00203           prev[ncur] = pcur;
00204           if (pcur == first)
00205             cur = ncur;
00206           else
00207             cur = pcur;
00208         }
00209         else
00210            cur = ncur;
00211       }
00212     }
00213     //End of Bad Point Test
00214
00215     std::vector<T2> res(N);
00216     cur = first;
00217
00218     for( int i = 0; i < N; ++i )
00219     {
00220       T2 D = (cur - i) * (cur - i) + dist[cur] * dist[cur];
00221
00222       while( cur < last )
00223       {
00224         int ncur = next[cur];
00225         T2 D2 = (ncur - i) * (ncur - i) + dist[ncur] * dist[ncur];
00226         if( D < D2 )
00227           break;
00228         else
00229         {
00230           cur = next[cur];
00231           D = D2;
00232         }
00233       }
00234
00235       res[i] = D;
00236     }
00237
00238     ::memcpy(dist, &(res[0]), N * sizeof(T2));
00239   }
00240 };
00241
00242 }}}
00243
00244 #endif //EDT_MEIJSTER_2000_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл EdtEdgeCoord.h

  • Файлы
  • Список членов всех файлов

EdtEdgeCoord.h

См. документацию.
00001 #ifndef EDT_H
00002 #define EDT_H
00003
00004 namespace Vtl
00005 {
00006 namespace ImAlg
00007 {
00008 namespace Edt
00009 {
00010   class EdtEdgeCoord
00011   {
00012  public:
00013       template<typename T1, typename T2, class Functor>
00014     static void edt(T1* src,
00015                     int w,
00016                     int h,
00017                     int nls_s,
00018                     T2* res,
00019                     int* edgeX,
00020                     int* edgeY,
00021                     int nls_d,
00022                     Functor isEdgeFunc)
00023     {
00024       T2 MaxValue = T2(std::max(w, h) + 1); // instead INT32_MAX
00025
00026       //First Step - vertical
00027       std::vector<T2> t1(h); // instead t1(w)
00028       std::vector<T2> t2(h);
00029
00030       std::vector<int> y1(h);
00031       std::vector<int> y2(h);
00032
00033       // for each column
00034       for (int i = 0; i < w; ++i)
00035       {
00036         T1* col = src + i;
00037
00038         // up -> down
00039         int j = 0;
00040
00041         // before we meet first edge pixel fill colomn with imposible value
00042         for( ; j < h && !isEdgeFunc(*col); ++j, col += nls_s)
00043         {
00044             t1[j] = MaxValue;
00045             y1[j] = -1;
00046         }
00047
00048         // fill colomn with distances from the up closest edge point
00049         for( ; j < h; ++j, col += nls_s)
00050         {
00051             if (isEdgeFunc(*col))
00052             {
00053               t1[j] = 0;
00054               y1[j] = j;
00055             }
00056             else
00057             {
00058               t1[j] = t1[j - 1] + 1;
00059               y1[j] = y1[j - 1];
00060             }
00061         }
00062
00063         // down -> up
00064         --j; // j = h - 1;
00065                 col -= nls_s;  //col = src + j * nls_s;
00066
00067         // before we meet first edge pixel fill colomn with imposible value
00068         for( ; j >= 0 && !isEdgeFunc(*col); --j, col -= nls_s)
00069         {
00070           t2[j] = MaxValue;
00071           y2[j] = -1;
00072         }
00073
00074         // fill colomn with distances from the down closest edge point
00075         for( ; j >= 0; --j, col -= nls_s)
00076         {
00077           if (isEdgeFunc(*col))
00078           {
00079             t2[j] = 0;
00080             y2[j] = j;
00081           }
00082           else
00083           {
00084             t2[j] = t2[j + 1] + 1;
00085             y2[j] = y2[j + 1];
00086           }
00087         }
00088
00089         // choose between up and down edge point the closest and save distance
00090         T2* r = res + i;
00091         int* y = edgeY + i;
00092
00093         for(j = 0; j < h; ++j, r += nls_d, y += nls_d)
00094         {
00095           if (t1[j] < t2[j])
00096           {
00097             *r = t1[j];
00098             *y = y1[j];
00099           }
00100           else
00101           {
00102             *r = t2[j];
00103             *y = y2[j];
00104           }
00105             //*r = std::min(t1[j], t2[j]);
00106         }
00107       }
00108
00109
00110       //Second Step - horizoltal
00111        for (int i = 0; i < h ; ++i)
00112       {
00113         edt1D(&(res[i * nls_d]), &(edgeX[i * nls_d]), &(edgeY[i * nls_d]), w,
00114                                                                      MaxValue);
00115       }
00116     }
00117
00118     //=========================================================================
00119 private:
00120     template< typename T2 >
00121       static void edt1D(T2* dist,    // vertical distances
00122                       int* edgeXrow,
00123                       int* edgeYrow,
00124                       int N,       // row length
00125                       T2 MaxValue)
00126     {
00127       // save numbers of previous and next elements because some elements
00128       // should be skiped
00129       std::vector<int> prev(N);
00130       std::vector<int> next(N);
00131
00132       // initialize without skipping any elements
00133       for (int i = 0; i < N; ++i)
00134       {
00135           prev[i] = i - 1;
00136           next[i] = i + 1;
00137       }
00138
00139       // Non-existent Points Removal
00140       int first = 0;
00141       int last = N - 1;
00142
00143       // search for number of the first colomn containing edge pixel
00144       while(dist[first] == MaxValue && first < last)
00145       {
00146         ++first;
00147       }
00148
00149       // search for number of the last colomn containing edge pixel
00150       while (dist[last] == MaxValue && first < last)
00151       {
00152         --last;
00153       }
00154
00155       // skip columns which do not contain any edge points
00156       int cur;
00157       if( first < last )
00158       {
00159         cur = next[first];
00160
00161         while( cur < last )
00162         {
00163           if( dist[cur] == MaxValue )
00164           {
00165             next[prev[cur]] = next[cur];
00166             prev[next[cur]] = prev[cur];
00167           }
00168           cur = next[cur];
00169         }
00170       }
00171
00172       // Bad Point Test
00173       if( first < last )
00174       {
00175         cur = next[first];
00176
00177         while( cur < last )
00178         {
00179           int pcur = prev[cur];
00180           int ncur = next[cur];
00181
00182           float A = float(ncur - pcur);
00183           float B = float(dist[ncur] - dist[pcur]);
00184           float X = 0.5f * (ncur + pcur + B / A * (dist[ncur] + dist[pcur]));
00185           float D1 = (X - pcur) * (X - pcur) + dist[pcur] * dist[pcur];
00186           float D2 = (X - cur) * (X - cur) + dist[cur] * dist[cur];
00187
00188           if( D1 <= D2 )
00189           {
00190             next[pcur] = ncur;
00191             prev[ncur] = pcur;
00192             if (pcur == first)
00193               cur = ncur;
00194             else
00195               cur = pcur;
00196           }
00197           else
00198              cur = ncur;
00199         }
00200       }
00201       //End of Bad Point Test
00202
00203       std::vector<T2> res(N);
00204       std::vector<int> edgeX(N);
00205       std::vector<int> edgeY(N);
00206
00207       cur = first;
00208
00209       for( int i = 0; i < N; ++i )
00210       {
00211         T2 D = (cur - i) * (cur - i) + dist[cur] * dist[cur];
00212         int x = cur;
00213         int y = edgeYrow[cur];
00214
00215         while( cur < last )
00216         {
00217           int ncur = next[cur];
00218           T2 D2 = (ncur - i) * (ncur - i) + dist[ncur] * dist[ncur];
00219           if( D < D2 )
00220             break;
00221           else
00222           {
00223             cur = next[cur];
00224             D = D2;
00225             x = ncur;
00226             y = edgeYrow[ncur];
00227           }
00228         }
00229
00230         res[i] = D;
00231         edgeX[i] = x;
00232         edgeY[i] = y;
00233       }
00234
00235       ::memcpy(dist, &(res[0]), N * sizeof(T2));
00236       ::memcpy(edgeXrow, &(edgeX[0]), N * sizeof(int));
00237       ::memcpy(edgeYrow, &(edgeY[0]), N * sizeof(int));
00238     }
00239   };
00240
00241 } // namespace Edt
00242 } // namespace ImAlg
00243 } // namespace Vtl
00244
00245
00246 #endif // EDT_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл EigenValueDecomp.h

  • Файлы
  • Список членов всех файлов

EigenValueDecomp.h

См. документацию.
00001 #ifndef EIGENVALUEDECOMP_H_
00002 #define EIGENVALUEDECOMP_H_
00003
00004 #include <math.h>
00005 //#include "nrutil.h"
00006
00007 // library includings
00008 #include "num_linalg.h"
00009
00010 // own includings
00011 #include "TransformMatrices.h"
00012
00013 #define ROTATE(a,i,j,k,l) g=a(i,j); h=a(k,l); a(i,j)=g-s*(h+g*tau); a(k,l)=h+s*(g-h*tau);
00014
00015 namespace Basics3D
00016 {
00017     // nrc_2 p.491
00018     // Computes all eigenvalues and eigenvectors of a real symmetric
00019     // matrix a[1..n][1..n]. On output, elements of a above the
00020     // diagonal are destroyed. d[1..n] returns the eigenvalues of a.
00021     // v[1..n][1..n] is a matrix whose columns contain, on output,
00022     // the normalized eigenvectors of a.
00023     // nrot returns the number of Jacobi rotations that were required.
00024     template <class MatrixType>
00025     void jacobi(MatrixType &in_a,
00026                   std::vector<double> &out_d,
00027                 MatrixType &out_v,
00028                             int *out_nrot)
00029     {
00030         if (in_a.size1() != in_a.size2())
00031         {
00032             throw "The matrix to decompose should be quadric";
00033             return;
00034         }
00035
00036         if (in_a.size1() != out_v.size1())
00037         {
00038             throw "The matrix of eigen vectors should have the same size\nas the matrix to decompose";
00039             return;
00040         }
00041
00042         if (out_v.size1() != out_v.size2())
00043         {
00044             throw "The matrix of eigen vectors should be quadric";
00045             return;
00046         }
00047
00048         int n = in_a.size1();   // size of input matrix and matrix of eigen vectors
00049         //std::cout << std::endl << "n = " << n;
00050
00051         Vtl::NumAlg::Lin::ublas::vector<double> b(n);
00052
00053         // This vector will accumulate terms of the form tapq as in equation (11.1.14).
00054         Vtl::NumAlg::Lin::ublas::vector<double> z(n);
00055
00056         //Initialize to the identity matrix.
00057         C_TransformMatrices::Identity(out_v);
00058
00059         // Initialize b and d to the diagonal of a.
00060         for (int ip = 0; ip < n; ip++)
00061         {
00062             b[ip] = out_d[ip] = in_a(ip, ip);
00063             z[ip] = 0.0;
00064         }
00065
00066         *out_nrot = 0;
00067
00068         for (int i = 1; i <= 100; i++)
00069         {
00070             // Sum off-diagonal elements.
00071             double sm = 0.0;
00072             for (int ip = 0; ip < n - 1; ip++)
00073             {
00074                 for (int iq = ip + 1; iq < n; iq++)
00075                 {
00076                     sm += fabs(in_a(ip, iq));
00077                 }
00078             }
00079             std::cout << std::endl << "Sum off-diagonal elements = " << sm;
00080
00081             // The normal return, which relies on quadratic convergence to machine underflow.
00082             if (sm < 0.0000000000000001)
00083             {
00084                 return;
00085             }
00086
00087             double tresh;
00088             // ...on the first three sweeps.
00089             if (i < 4)
00090             {
00091                 tresh = 0.2 * sm / (n * n);
00092             }
00093             // ...thereafter.
00094             else
00095             {
00096                 tresh = 0.0;
00097             }
00098
00099             for (int ip = 0; ip < n - 1; ip++)
00100             {
00101                 //std::cout << std::endl << "ip = " << ip << "       ";
00102                 for (int iq = ip + 1; iq < n; iq++)
00103                 {
00104                     //std::cout << "iq = " << iq << "  ";
00105                     double g = 100.0 * fabs(in_a(ip, iq));
00106
00107                     //  After four sweeps, skip the rotation if the off-diagonal element is small.
00108                     if (i > 4 && (fabs(out_d[ip]) + g == fabs(out_d[ip]))
00109                           && (fabs(out_d[iq]) + g ==  fabs(out_d[iq])))
00110                     {
00111                         in_a(ip, iq) = 0.0;
00112                     }
00113                     else if (fabs(in_a(ip, iq)) > tresh)
00114                     {
00115                         double h = out_d[iq] - out_d[ip];
00116
00117                         double t;
00118                         double theta;
00119                         if (fabs(h) + g == fabs(h))
00120                         {
00121                             t = in_a(ip, iq) / h; //t = 1/(2*teta)
00122                         }
00123                         else
00124                         {
00125                             //Equation (11.1.10).
00126                             theta = 0.5 * h / in_a(ip, iq);
00127                             t = 1.0 / (fabs(theta) + sqrt(1.0 + theta * theta));
00128                             if (theta < 0.0)
00129                             {
00130                                 t = -t;
00131                             }
00132                         }
00133
00134                         double c = 1.0 / sqrt(1 + t * t);
00135                         double s = t * c;
00136                         double tau = s / (1.0 + c);
00137                         h = t * in_a(ip, iq);
00138
00139                         z[ip] -= h;
00140                         z[iq] += h;
00141                         out_d[ip] -= h;
00142                         out_d[iq] += h;
00143                         in_a(ip, iq) = 0.0;
00144
00145                         // Case of rotations 0 <= j < p - 1.
00146                         for (int j = 1; j < ip; j++)
00147                         {
00148                             ROTATE(in_a, j, ip, j, iq)
00149                         }
00150                         // Case of rotations p - 1 < j < q - 1.
00151                         for (int j = ip + 1; j < iq; j++)
00152                         {
00153                             ROTATE(in_a, ip, j, j, iq)
00154                         }
00155                         // Case of rotations q - 1 < j < n.
00156                         for (int j = iq + 1; j < n; j++)
00157                         {
00158                             ROTATE(in_a, ip, j, iq, j)
00159                         }
00160                         for (int j = 0; j < n; j++)
00161                         {
00162                             ROTATE(out_v, j, ip, j, iq)
00163                         }
00164
00165                         ++(*out_nrot);
00166                     }
00167                 }
00168             }
00169
00170             for (int ip = 0; ip < n; ip++)
00171             {
00172                 b[ip] += z[ip];
00173                 out_d[ip] = b[ip];      //Update d with the sum of tapq,
00174                 z[ip] = 0.0;                    //and reinitialize z.
00175             }
00176         }
00177
00178         throw "Too many iterations in routine jacobi";
00179         return;
00180     }
00181
00182 }
00183
00184
00185 #endif // EIGENVALUEDECOMP_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Epipole.h

  • Файлы
  • Список членов всех файлов

Epipole.h

См. документацию.
00001 #ifndef EPIPOLE_H
00002 #define EPIPOLE_H
00003
00004 //library includings
00005 #include "num_linalg.h"
00006
00007 //own includings
00008 #include "SolveSystem.h"
00009 #include "Point2D.h"
00010
00011 namespace Basics3D
00012 {
00013   class C_Epipole
00014     {
00015     public:
00016       static void Left(Vtl::NumAlg::Lin::ublas::c_vector<double, 3> &out_e,
00017                            const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_F);
00018
00019         static void Right(Vtl::NumAlg::Lin::ublas::c_vector<double, 3> &out_e,
00020                             const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_F);
00021
00022         static void Normalize(Vtl::NumAlg::Lin::ublas::c_vector<double, 3> &in_out);
00023     };
00024 }
00025
00026 #endif //EPIPOLE_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл EssentialMatrix.h

  • Файлы
  • Список членов всех файлов

EssentialMatrix.h

См. документацию.
00001 #ifndef ESSENTIAL_MATRIX_H
00002 #define ESSENTIAL_MATRIX_H
00003
00004 // library includings
00005 #include "num_linalg.h"
00006
00007 // own includings
00008 #include "TransformMatrices.h"
00009
00010 namespace Basics3D
00011 {
00012   void EssentialMatrix(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00013                            const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_R,
00014                                              const Vtl::NumAlg::Lin::ublas::c_vector<double, 3> &in_t);
00015
00016     void EssentialMatrix(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00017                            const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_F,
00018                                              const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_K,
00019                                              const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_K1);
00020
00021     void SingularValues(double out_sv[2],
00022                           const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in);
00023 }
00024
00025 #endif // ESSENTIAL_MATRIX_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл fourier.h

  • Файлы
  • Список членов всех файлов

fourier.h

См. документацию.
00001 #ifndef _FOURIER_H
00002 #define _FOURIER_H
00003 #include "imagemem.h"
00004 class FFT_2D
00005 {
00006 public:
00007     static void FFT(AImageMemFloat *Re,AImageMemFloat *Im,bool reverse);
00008     //собственно преобразование
00009     static AImageMemFloat* Image2Float(AImage* img,bool make2power=true);
00010     //FFT works only on images with sizes equal to 2**N, param 'make2power' adjust it
00011     static void Float2Image(AImageMemFloat *fi,AImageMem8* img,bool logarithimic=true,bool autoscale=true, float A=1,float B=0);
00012     static void ReIm2AmpPhase(AImageMemFloat *ReAmp,AImageMemFloat *ImPhase);
00013     static void AmpPhase2ReIm(AImageMemFloat *ReAmp,AImageMemFloat *ImPhase);
00014     static void TransposeQuarters(AImageMemFloat *img);
00015     static  void CalcSize(AImage *img,int *Fourier_width,int *Fourier_height);
00016     static void GetLeftTopPosAtFFT(AImage* img,int *Fourier_left,int *Fourier_top);
00017     static int Transform2Power(int size);
00018     //эта ф-я нужна т.к. она используется в CalcSize;
00019     static bool ChekImages(AImage *ReAmp,AImage *ImPhase,bool chekpower);
00020 private:
00021     static void fourn(float *Redata, float *Imdata,int nn[],bool reverse);
00022 };
00023
00024 #endif //_FOURIER_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Func.h

  • Файлы
  • Список членов всех файлов

Func.h

См. документацию.
00001 #ifndef FINC_WITH_DER_H
00002 #define FINC_WITH_DER_H
00003
00004 namespace Basics3D
00005 {
00006     class IFunc
00007     {
00008     public:
00009         virtual double Func(const double in_t) const = 0;
00010     };
00011
00013     class IFuncWithDer: public IFunc
00014     {
00015     public:
00016         virtual double Deriv(const double in_t) const = 0;
00017     };
00018
00020     class g: public IFuncWithDer
00021     {
00022     private:
00023         const double a;      // parameters
00024         const double b;      //
00025         const double c;      //             of
00026         const double d;      //                 the
00027         const double f;      //
00028         const double f1;     //                      function
00029         const int n;         // max number of roots
00030
00031     public:
00032         g(const double in_a,
00033             const double in_b,
00034             const double in_c,
00035             const double in_d,
00036             const double in_f,
00037             const double in_f1,
00038             const int in_n);
00039
00040         double Func(const double in_t) const;
00041         double Deriv(const double in_t) const;
00042         int N();
00043     };
00044
00046     class test: public IFuncWithDer
00047     {
00048     private:
00049         const double a;
00050         const double b;
00051
00052     public:
00053         test(const double in_a,
00054                  const double in_b);
00055
00056         double Func(const double in_t) const;
00057         double Deriv(const double in_t) const;
00058     };
00059
00061     class Eq4Degree: public IFuncWithDer
00062     {
00063     private:
00064         const double m_a;
00065         const double m_b;
00066         const double m_c;
00067         const double m_d;
00068         const double m_e;
00069         const int m_n;
00070
00071     public:
00072         Eq4Degree(const double in_a,
00073                     const double in_b,
00074                             const double in_c,
00075                             const double in_d,
00076                             const double in_e,
00077                             const int in_n);
00078
00079         int N() const;
00080
00081         double Func(const double in_t) const;
00082         double Deriv(const double in_t) const;
00083     };
00084 }
00085 #endif // FINC_WITH_DER_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- j -

  • J() : Vtl::NumAlg::Spf::bess
  • job_c()
: Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >
, Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >
, job_nc
  • job_nc() : job_nc , Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half > , Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >
  • job_single_left() : Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half > , job_nc , Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >
  • job_single_right() : Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half > , job_nc , Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- k -

  • k
: Vtl::Plf::F31::Harris< T >
, Vtl::Plf::F31::DeNoise< T >
, Hanina::ZeroCrossVisualization< T >
, DeNoise< T >
  • K() : Vtl::NumAlg::Spf::bess
  • k : Vtl::Plf::F51::HarrisLaplace< T > , Harris< float > , HarrisLaplace< float >
  • K0 : Students::Curve::EdgeDetect< T >
  • K1 : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Students::Curve::EdgeDetect< T >
  • K2 : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • Kaiser() : Vtl::ImAlg::WndFun::Kaiser< T, D >
  • ker : Vtl::Plf::ConvolveHorz< T, P > , Vtl::ImAlg::Conv::Impl::Buffer< T, K > , Vtl::Plf::ConvolveVert< T, P > , ConvolveHorz< float > , ConvolveVert< float >
  • ker0 : Students::Curve::EdgeDetect< T >
  • ker1 : Students::Curve::EdgeDetect< T >
  • ker_x : Vtl::Plf::Kernel::ImageWin< T > , ImageWin< Real_t >
  • ker_y : ImageWin< Real_t > , Vtl::Plf::Kernel::ImageWin< T >
  • kernel_type
: FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Base< T, Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • Km() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • KruppaEq() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- l -

  • l : YXML::DNode::IsOR , YXML::DNode::IsAND
  • L5() : Vtl::ImAlg::WndFun::Laws5< T >::L5
  • large2small : Vtl::ImAlg::WndFun::DoG< T, D >
  • last() : Vtl::Plf::Strip
  • last_char : ReadString
  • last_line_offset : YImageFrame
  • last_pos2 : ReadString
  • last_type : VirtDib
  • LastChild() : YXML::DNode
  • Layers : MImages2Gray
  • Layout() : Layout< T, IList >
  • layout : Vtl::Img::ImageNDref< T_SList, T_Layout >
  • Layout() : Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > , Vtl::Img::ImageDataLayoutHolder , Vtl::Meta::Layout< T, IList >
  • LayoutListDefault : Layout< T, IList > , Vtl::Meta::Layout< T, IList > , Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
  • LayoutListDirect() : Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >
  • LayoutType : Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
  • left() : FKern< float, Vtl::Plf::Kernel::KT_Win >
  • Left() : FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • left() : FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • Left() : FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • left()
: Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::Plf::Extent
, Base< T, Kernel::KT_Conv >
, Vtl::ImAlg::WndFun::Bartlett< T, D >
, Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >
, Vtl::ImAlg::WndFun::DoG< T, D >
, Vtl::ImAlg::WndFun::Sinc< T, 0 >
, Hamming< float, 3 >
, YRect< T >
, Vtl::ImAlg::WndFun::Kaiser< T, D >
, Vtl::ImAlg::WndFun::common_Trig< T, D, K >
  • Left()
: Base< T, Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • left() : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • Left() : Basics3D::C_Epipole
  • left() : YRect< T >
  • Left() : Basics3D::C_ProjectiveMatrix
  • left() : YRect< T >
  • Left() : FKern< float, Vtl::Plf::Kernel::KT_Conv >
  • left() : FKern< float, Vtl::Plf::Kernel::KT_Conv >
  • Left() : FKern< float >
  • left() : FKern< float > , Hamming< float, 0 > , Hamming< float, 1 > , Hamming< float, 2 > , Hamming< float, 4 > , Hann< float, 0 > , Hann< float, 1 > , Hann< float, 2 > , Hann< float, 3 > , Hann< float, 4 > , Direct_Ref< float, int >
  • Left() : FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • left() : FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • Left() : FKern< float, Vtl::Plf::Kernel::KT_Win >
  • left() : YRect< int >
  • len : PtrDelete< T > , ImageMem16Stuff , ImageMem8 , ImageMem16 , ImageMemFloat , ImageMemRgb8
  • length : IFF::TiffTag , IFF::TIFF_IFDentry
  • Length : IFF::OzFile::Header , IFF::TiffReadIFD
  • length
: IFF::TiffWriteIFD
, IFF::TiffReadIFD
, IFF::TIFF_ImageParms
  • Length()
: IFF::PBMfile
, IFF::OzFile
, IFF::TiffWriteIFD
  • Level() : Vtl::ImAlg::WndFun::Laws5< T > , L5
  • level : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • Levels()
: Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
, Vtl::Plf::Levels< T, P >
, Mult< float >
, Vtl::Plf::Levels< T, P >
  • Lin() : Convert< uint8_t > , Vtl::Plf::F11::Lin< T > , Convert< uint8_t > , Lin< float > lin_1mod , Convert< uint8_t > , Lin< float > lin_2 , Convert< uint8_t > , Vtl::Plf::F11::Lin< T > , Lin< float > lin_2 , Convert< uint8_t >
  • Line() : AErrorStatusBase , ErrorStatusBase
  • line : ErrorStatusBase
  • Line() : Line< SetPixelFunctor > , Vtl::ImAlg::Bres::Line< F >
  • line_buffer : VirtDib
  • line_buffer_sz : VirtDib
  • LineIterator() : Vtl::Plf::LineIterator< T > , LineIterator< T >
  • LinGrid() : Vtl::ImAlg::Resamp::LinGrid< T >
  • List : Vtl::Plf::OutPortBase , Iter_Line , InPortComb< T > , Vtl::Plf::InPortComb< T > , Iter_Line , Container< Real_t > , Vtl::ImAlg::Registration::Container< Real_t > , OutPortNoPostProc< Real_t >
  • listForSqr : Vtl::Types::PixelTraits< T >
  • Load() : YXML::XMLdoc , T_Points2DSet< Point > , Basics3D::T_Points2DSet< Point > , T_Points2DSet< C_Point2D > , ImageMem16Stuff , WinIniFile , Basics3D::C_Points2DParamSet , tplAImageReference< ImgT >
  • LoadLibrary() : DllModule
  • Log() : Vtl::Plf::F11::Log< T >
  • log_value_step : LogGrid< float > , Vtl::ImAlg::Resamp::LogGrid< T >
  • LogGrid() : Vtl::ImAlg::Resamp::LogGrid< T > , LogGrid< float > , Vtl::ImAlg::Resamp::LogGrid< T > , LogGrid< float >
  • lsg : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • lst : Fifo< Vtl::Plf::FilterElementary * > , Container< Real_t > , Vtl::ImAlg::Registration::Container< Real_t > , Vtl::Plf::Fifo< T > , Fifo< int >
  • lt() : Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- m -

  • M : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 > , Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • m33 : Hanina::FillingHessianMatrix3x3
  • m_a : Basics3D::Eq4Degree
  • m_angle : Basics3D::C_Point2DParam
  • m_b : Basics3D::Eq4Degree
  • m_c : Basics3D::Eq4Degree
  • m_comb : Basics3D::C_Combination
  • m_d
: StatDiff< T >
, Vtl::Plf::F31::StatDiff< T >
, Vtl::Plf::F31::StatDiffThresh< T >
, Basics3D::Eq4Degree
  • m_dif : Basics3D::C_AbsDifference
  • m_dst : Basics3D::C_Transform
  • m_dst0 : Basics3D::C_DrawEpipolarLines
  • m_dst1 : Basics3D::C_DrawEpipolarLines
  • m_e : Basics3D::Eq4Degree
  • m_fundM : Basics3D::C_StructureComputation
  • m_groupSize : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point >
  • m_im1 : Basics3D::C_AbsDifference
  • m_im2 : Basics3D::C_AbsDifference
  • m_images : ImageContainer< ImgType >
  • m_img : T_ImagesSet< AImageMem8 > , Basics3D::C_Combination , Basics3D::T_ImagesSet< Image >
  • m_M : T_MistakeFunc< MatrixType > , Basics3D::T_MistakeFunc< Operations >
  • m_maxX : Basics3D::C_StructureComputation
  • m_maxY : Basics3D::C_StructureComputation
  • m_maxZ : Basics3D::C_StructureComputation
  • m_MeanDev : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point >
  • m_MeanX : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point >
  • m_MeanY : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point >
  • m_minX : Basics3D::C_StructureComputation
  • m_minY : Basics3D::C_StructureComputation
  • m_minZ : Basics3D::C_StructureComputation
  • m_n : Basics3D::Eq4Degree
  • m_normPoints2D : Basics3D::C_StructureComputation
  • m_numb : Basics3D::C_Point2D
  • m_p1 : Basics3D::C_Triangulation
  • m_p1_1 : Basics3D::C_Triangulation
  • m_p2 : Basics3D::C_Triangulation
  • m_p2_1 : Basics3D::C_Triangulation
  • m_p3 : Basics3D::C_Triangulation
  • m_p3_1 : Basics3D::C_Triangulation
  • m_param : Basics3D::C_Point2DParam
  • m_paramNumb : Basics3D::C_Point2DParam
  • m_Points : T_Points2DSet< C_Point2D > , T_MistakeFunc< MatrixType > , T_Points2DSet< Point > , Basics3D::T_MistakeFunc< Operations > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point >
  • m_points3D : Basics3D::C_StructureComputation
  • m_PointsSet : T_Model< Operations > , Basics3D::T_Model< Operations >
  • m_sigma : Basics3D::C_Point2DParam
  • m_src : Basics3D::C_Transform
  • m_src0 : Basics3D::C_DrawEpipolarLines
  • m_src1 : Basics3D::C_DrawEpipolarLines
  • m_T : T_Model< Operations > , Basics3D::T_Model< Operations >
  • m_T1_1 : T_Model< Operations > , Basics3D::T_Model< Operations >
  • m_texCoord : Basics3D::C_StructureComputation
  • m_x : Basics3D::C_Point2D
  • m_y : Basics3D::C_Point2D
  • Make() : PtrDelete< T > , PtrArrayDel< T > , Basics3D::C_Combination
  • makeCellPoly() : ImageTransformMatrixImpl
  • makeCellRect() : ImageTransformMatrixImpl
  • malloc() : YSmallAllocLtd
  • MarkCorrespondences() : Basics3D::C_Combination
  • mask()
: Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
, Vtl::Meta::det_poly_coef< Matrix, N >
  • mat_1 : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float >
  • mat_2 : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float >
  • mat_3 : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • Matrix() : Basics3D::C_Point2D , Basics3D::FmTools< T > , Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > , TriResult
  • matrix_ : DistributionMatrix , ProcessMatrix , CoverageMatrix
  • Matrix_3x3 : CameraPoseFromEssential< value_type > , ProjectiveToMetric< value_type > , Basics3D::Fm2Essential::CameraPoseFromEssential< T > , Basics3D::Structure::ProjectiveToMetric< T > , Basics3D::Types< T >
  • Matrix_3x4
: ProjectiveToMetric< value_type >
, Basics3D::FmTools< T >
, Basics3D::Structure::ProjectiveToMetric< T >
, Basics3D::Types< T >
  • Matrix_4x3 : CameraPoseFromEssential< value_type > , Basics3D::Fm2Essential::CameraPoseFromEssential< T >
  • Matrix_4x4 : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T > , Basics3D::Types< T >
  • MatrixA
: Vtl::ImAlg::Transf::Homography< T >
, Affine< T >
, Dlt< value_type >
, Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Transf::Affine< T >
, Vtl::ImAlg::Model::BaseAffine< T >
, Basics3D::Structure::Dlt< T >
  • MatrixH : Vtl::ImAlg::Transf::Homography< T >
  • MatrixP : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • MAX : Basics3D::SolveEq
  • max()
: Vtl::Plf::Extent
, Vtl::Meta::EnumTraits
  • max_ : ImageProxy< ImageT > , ImageProxyConst< ImageT >
  • max_err_at_rect()
: Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::BaseAffine< T >
  • max_len : ReadString
  • max_size : Container< Real_t > , Vtl::ImAlg::Registration::Container< Real_t >
  • maxcolor : Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > , Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
  • MaxColor() : Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
  • maxcolor : Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > , Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
  • MaxEigenVal() : Vtl::Plf::F31::MaxEigenVal< T > , MaxEigenVal< float >
  • MaxFindRadius : ImageTransformMatrixImpl
  • maxval : GammaCorMult< T > , GammaCor< float > , Hanina::ZeroCrossVisualization< T > , GammaCorMult< float > lin_3mod , Vtl::Plf::F11::Negative< T > , Convert< uint8_t > , Vtl::Plf::F11::GammaCor< T > , Vtl::Plf::F11::GammaCorMult< T > , GammaCorMult< float >
  • maxValue() : AImageProxy , ImageProxy< ImageT > , ImageProxyConst< ImageT >
  • mean : MeanAndDisp< float > , Vtl::Plf::Sharpen< T, P > , Vtl::Plf::MeanAndDisp< T, P > , ToBounds< float >
  • mean_and_disp : ToBounds< float > , Vtl::Plf::StatDiff< T, P > , Vtl::Plf::DeNoise< T, P >
  • MeanAndDisp() : MeanAndDisp< float > , Vtl::Plf::MeanAndDisp< T, P > , MeanAndDisp< float >
  • MeanDev() : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point >
  • MeanX() : T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point > , T_Points2DSet< C_Point2D >
  • MeanY() : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::T_Points2DSet< Point > , Basics3D::C_Points2DParamSet
  • mediana() : mediana< T > , Vtl::Plf::OLSI::mediana< T >
  • medianFilter() : Vtl::Plf::medianFilter< T, P >
  • medianFilter2() : Vtl::Plf::medianFilter2< T, P >
  • mem : Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > , OFlow< Model, AllocStrategy >
  • memsz : YSmallAllocLtd
  • message : AImage::Error
  • mgrad : Canny< float > , Vtl::Plf::Canny< T, P >
  • microsec : YDataTime , YTimeInterval
  • MicroSecondsInYear() : YDtTm , YDataTime
  • MImages2Gray() : MImages2Gray
  • min : Vtl::Meta::EnumTraits
  • mincolor
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
  • MinEigenVal() : Vtl::Plf::F31::MinEigenVal< T > , MinEigenVal< float >
  • MinusMean() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • Minutes() : YDataTime
  • MistFunc()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
  • mode : YFile
  • Model : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • model : Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >
  • Model : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >
  • model : OFlow< Model, AllocStrategy >
  • ModifyType : ImageResample
  • Modul() : Quaternion< value_type > Vector_3 , Quaternion< T > , Quaternion< value_type >
  • Month() : YDataTime
  • month : IFF::OzFile::Header
  • MonthInYear() : YDtTm , YDataTime
  • move() : Line< SetPixelFunctor > , Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > , Vtl::ImAlg::Bres::Line< F >
  • MoveDown() : YImageFrame
  • MoveDownSlow() : YImageFrame
  • MoveX() : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >
  • MoveXList : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
  • Msg() : AErrorStatusBase , ErrorStatusBase
  • msg : ErrorStatusBase
  • msg_need_delete : ErrorStatusBase
  • MSlidingEqualization() : MSlidingEqualization
  • mtResize : ImageResample
  • mtRotate : ImageResample
  • mtype : ImageResample::ImageResampleParams
  • mul()
: Vtl::Meta::det< Matrix >
, Vtl::Meta::det_poly_coef< Matrix, N >
, Vtl::Meta::det< Matrix >
, Vtl::Meta::det_poly_coef< Matrix, N >
, Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • mult : HarrisLaplace< float >
  • Mult()
: Vtl::ImAlg::Conv::FastGaussConvolve< T, D >
, Vtl::Plf::F11::Mult< T >
, Mult< T >
  • mult : Vtl::Plf::F31::MinEigenVal< T >
  • Mult() : FastGaussConvolve< float, 1 > , Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
  • mult : Vtl::Plf::F31::Harris< T >
  • Mult()
: FastGaussConvolve< float, DERIV >
, Vtl::Plf::F11::Mult< T >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
  • mult : Mult< float > , Vtl::Plf::F31::MaxEigenVal< T > , Trace< float > , Vtl::Plf::F11::ConvertMult< T > , Vtl::Plf::F31::DiffEigenVal< T > , Vtl::Plf::F11::GammaCorMult< T >
  • Mult() : FastGaussConvolve< float, 2 > , Mult< float > , FastGaussConvolve< float, 3 >
  • mult : DiffEigenVal< float > , GammaCorMult< float > lin_3mod , Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > , MinEigenVal< float >
  • Mult() : FastGaussConvolve< float, 0 >
  • mult : Convert< uint8_t > , Mult< T > , Vtl::Plf::F51::HarrisLaplace< T > , CameraPoseFromEssential< value_type > , Vtl::Plf::F11::Mult< T > , Harris< float >
  • Mult() : Mult< float >
  • mult : GammaCorMult< T > , Hanina::FillingHessianMatrix3x3 , Basics3D::Fm2Essential::CameraPoseFromEssential< T > , Vtl::Plf::F31::Trace< T > , MaxEigenVal< float > , GammaCorMult< float > , Vtl::Plf::Fpie::Himg2< T > , Himg2< T >
  • Mult() : Mult< T >
  • mult01
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
  • multBy()
: Base< T, Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • MultI() : Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > , TrigRecurrence< T, double, I >
  • multi_connected_to : Vtl::Plf::FiltersSystem
  • multi_inputs : Vtl::Plf::FiltersSystem
  • MultR() : Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > , TrigRecurrence< T, double, I >


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- n -

  • n : YXML::DNode::AttrRef , WiNode::AttrRef
  • N
: Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
, Vtl::ImAlg::Model::SkewYOffset< T >
, Vtl::ImAlg::Model::SkewXOffset< T >
, Vtl::ImAlg::Model::Similarity< T >
, Vtl::ImAlg::Model::Affine< T >
, Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >
  • n : ToBounds< float > , Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, m >
  • N : Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > , Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > , Vtl::NumAlg::Implicit::Sort_base< N_ > , Vtl::NumAlg::Implicit::Sort_base< 0 > , Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • n : Vtl::Plf::F11::ToBounds< T >
  • N()
: Vtl::ImAlg::Resamp::LinGrid< T >
, Vtl::ImAlg::Resamp::LogGrid< T >
, Vtl::ImAlg::Resamp::PhiGrid< T >
  • n : LogGrid< float >
  • N() : LogGrid< float > , PhiGrid< Real_t >
  • n : PhiGrid< Real_t > , Vtl::ImAlg::Resamp::LinGrid< T > , Basics3D::g , Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , mediana< T >
  • N : Dlt< value_type > , Basics3D::g , Basics3D::Eq4Degree
  • n : Vtl::ImAlg::Resamp::LogGrid< T > , Vtl::ImAlg::Resamp::PhiGrid< T >
  • N : Basics3D::Structure::Dlt< T >
  • n : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > , Vtl::Plf::OLSI::mediana< T >
  • N : Vtl::ImAlg::Model::Offset< T >
  • N3 : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type >
  • N4 : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type >
  • N_colors : MSlidingEqualization
  • n_components
: Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::HSV
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::XYZ
  • n_in : Vtl::Plf::Impl::Node
  • n_oto : Vtl::Plf::Impl::Node
  • n_out : MImages2Gray , Vtl::Plf::Impl::Node
  • n_sigmas_in_eviron : Students::Curve::EdgeDetect< T >
  • Name() : Resample< float > , AverageGauss< float > , FKern< float, Vtl::Plf::Kernel::KT_Conv > , Average< float > , FKern< float > , FKern< float, Vtl::Plf::Kernel::KT_Win > , ToBounds< float > , MeanAndDisp< float > , ToBounds< float > , Direct< float, int > , ToBounds< float > , GammaCorMult< float > , BiLateral< float > , Hann< float, 2 > , GradientModul< float > , GammaCor< float > , Hamming< float, 3 > , GammaCor< float > , Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , HarrisNMS< float >
  • name() : Vtl::ImAlg::C::XYZ
  • Name() : SrcArray< Real_t, Real_t >
  • name()
: Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
  • Name() : ConvolveHorz< float > , ConvolveVert< float >
  • name()
: Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
  • Name() : GammaCorMult< float >
  • name()
: Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::HSV
  • Name() : Mult< float >
  • name() : Vtl::ImAlg::C::HSL
  • Name() : SqrtOfSumSqr< float >
  • name()
: Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::Lab
  • Name()
: Hamming< float, 0 >
, Hamming< float, 1 >
, Hamming< float, 2 >
, Hamming< float, 4 >
, Hann< float, 0 >
, Hann< float, 1 >
, Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >
, Hann< float, 3 >
, Hann< float, 4 >
, Direct_Ref< float, int >
, Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Vtl::ImAlg::WndFun::Laws5< T >::L5
, Vtl::ImAlg::WndFun::Laws5< T >::S5
, Vtl::ImAlg::WndFun::Laws5< T >::R5
, Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >
, Vtl::ImAlg::WndFun::Laws5< T >::E5
, Vtl::ImAlg::WndFun::Rect< T, D >
, Vtl::ImAlg::WndFun::Bartlett< T, D >
, Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >
, Vtl::ImAlg::WndFun::DoG< T, D >
, Vtl::ImAlg::WndFun::Sinc< T, 0 >
, Vtl::ImAlg::WndFun::Kaiser< T, D >
, EnvProc1to1< Real_t, Func, PostThresh >
, Vtl::ImAlg::WndFun::Hann< T, D >
, DstContainer< Real_t, Container_t >
, Vtl::ImAlg::WndFun::Hamming< T, D >
, Vtl::ImAlg::WndFun::Blackman< T, D >
, DstArray< Real_t, Real_t >
, Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >
, Vtl::ImAlg::WndFun::BlackmanHarris< T, D >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, Vtl::ImAlg::WndFun::Nuttall< T, D >
, Vtl::ImAlg::WndFun::FlatTop< T, D >
, Vtl::Plf::FilterBase
, Base< T, Kernel::KT_Conv >
, SrcAImage< Real_t, Img >
  • name : WiNode
  • Name() : Canny< float > , SrcAImage< Real_t, AImageMem8 > , Y< float > , DiZenzo< float > , FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img >
  • Nbands : Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • NbandsIsConst : Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • nCorn : TriResult
  • ND : Vtl::Img::BuildIter1DList< T_Layout > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList
  • Ndim : Vtl::Meta::Layout< T, IList > , Layout< T, IList >
  • ndim : Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > , Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >
  • Ndim : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > , Vtl::Img::ImageNDref< T_SList, T_Layout >
  • nearest() : YPoint< T > , YPoint< int > , YPoint< double > , YPoint< T >
  • neg : Hanina::ZeroCross< T >
  • Negative() : Vtl::Plf::F11::Negative< T >
  • neighborlist : triangulateio
  • new_height : ImageResample::ImageResampleParams
  • new_width : ImageResample::ImageResampleParams
  • Next() : YXML::DNode
  • next : DMatrixElem , Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > , TrigRecurrence< T, double, I > , Vtl::Meta::EnumTraits::MaxEnum< true, i >
  • Next : Vtl::Meta::IndexList< i, T > , YXML::DNode
  • next_IFD_offset : IFF::TIFF_IFD
  • next_line_shift : ImageMem8
  • NextLineShift() : AImage , tplAImageReference< ImgT > , tplAImageFragment< ImgT > , ImageMem16Stuff , ImageMem8 , ImageMem16 , ImageMemFloat , ImageMemRgb8
  • NIter() : Vtl::Img::ImageNDref< T_SList, T_Layout >
  • nls : Vtl::Img::Image< P, planes, interleave > , ScaleScan3x3< T > , Vtl::Plf::Fpie::Himg2< T > , Check_4_grad_sign_change< T > , Vtl::Plf::Fpie::HarrisNMS_Smooth< T > , Vtl::Plf::Fpie::HarrisNMS< T > , Himg2< T > , ImageRef< int >
  • Nls() : Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >
  • nls : HarrisNMS< float > , CannyNMS< T > , SrcArray< Real_t, Real_t > , Vtl::Plf::Fpie::BiLateralSmooth< T > , CannyNMS< float > , Vtl::Plf::Fpie::CannyNMS< T > , Vtl::Plf::Fpie::CannyNMS_2< T > , Vtl::Plf::SrcArray< T, I, P > , Vtl::Plf::DstArray< T, Pixel > , InterpBilinear< Img::Pixel >
  • Nls() : InterpBilinear< Pixel >
  • nls : InterpBilinear< Pixel > , InterpBilinear< Real_t > , LineIterator< T > , BiLateralSmooth< T > , ImageRef< T > , Vtl::Plf::LineIterator< T > , DstArray< Real_t, Real_t >
  • Nls() : ScaleScan3x3< T >
  • nls() : Vtl::Plf::ImageRef< T >
  • Nls() : InterpBilinear< Img::Pixel >
  • nls : Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >
  • Nls() : Hanina::ScaleScan3x3< T > , InterpBilinear< Real_t >
  • nls
: Vtl::ImAlg::Tools::findMax::SetPixel< T, stride >
, Hanina::Check_4_grad_sign_change< T >
, Hanina::p33< T, 0, 1 >
, SetPixel< float, 1 >
, Hanina::p33< T, 1, 2 >
, Hanina::p33< T, 0, 2 >
, Hanina::ScaleScan3x3< T >
, Hanina::ZeroCross< T >
  • nms : GammaCor< float > , Vtl::Plf::DiZenzo< T, P > , Vtl::Plf::HImageEdge< T, P > , Vtl::Plf::Canny< T, P > , Canny< float > , DiZenzo< float >
  • Node() : Vtl::Plf::Impl::Node
  • node : YXML::DNode
  • Node() : Vtl::Plf::Impl::Node
  • non_enums : SizeList_base< IList > , Layout< T, IList > , Vtl::Meta::Impl::SizeList_base_0< IList, sz >
  • NonConstType : Vtl::Types::Traits< T >
  • None : ImageTransform
  • NonVolatileType : Vtl::Types::Traits< T >
  • norm
: Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >
, fromRGB< T, Iter >
, Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >
  • Normalization() : Basics3D::C_TransformMatrices
  • NormalizationInverse() : Basics3D::C_TransformMatrices
  • normalize()
: FKern< float, Vtl::Plf::Kernel::KT_Conv >
, Base< T, Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
  • Normalize() : T_Points2DSet< Point > , Quaternion< value_type > , Quaternion< value_type > Vector_3
  • normalize() : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • Normalize() : Quaternion< T >
  • normalize() : FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • Normalize()
: T_Points2DSet< C_Point2D >
, Basics3D::C_Epipole
, Basics3D::T_MatrixOperations
, Basics3D::C_Points2DParamSet
, Basics3D::T_Points2DSet< Point >
, T_Points2DSet< C_Point2D >
  • normalize()
: FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • normalize_window()
: FKern< float, Vtl::Plf::Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Base< T, Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float >
  • Normalizer()
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
  • normlist : triangulateio
  • NormMatrix()
: Basics3D::C_HomographyMatrix
, Basics3D::C_FundamentalMatrix
  • nTri : TriResult
  • null_detected : ReadString
  • nullify() : YSmallAllocLtd , ImageMemRgb8 , IFF::PBMfile , ImageMemFloat , ImageMem16 , ImageMem8 , ImageResample , childPipe
  • nullifyPrms() : ImageResample
  • num : YSmallAllocLtd
  • num_inp : Vtl::Plf::FilterBase
  • num_out : Vtl::Plf::FilterBase
  • Numb() : Basics3D::C_Point2D
  • NumberFastMove() : YImageFrame
  • NumberFree() : YSmallAllocLtd
  • NumberMax() : YSmallAllocLtd
  • numberofcorners : triangulateio
  • numberofedges : triangulateio
  • numberofholes : triangulateio
  • numberofpointattributes : triangulateio
  • numberofpoints : triangulateio
  • numberofregions : triangulateio
  • numberofsegments : triangulateio
  • numberoftriangleattributes : triangulateio
  • numberoftriangles : triangulateio
  • NumberUsed() : YSmallAllocLtd
  • NumConnectedTo() : Iter_Line , Vtl::Plf::OutPortBase , Iter_Line , OutPortNoPostProc< Real_t >
  • NumInputs() : GammaCor< float > , SrcAImage< Real_t, Img > , SrcAImage< unsigned, Img > , SrcAImage< Real_t, AImageMem8 > , HarrisNMS< float > , Average< float > , SrcAImage< Real_t, T > , Y< float > , GammaCorMult< float > , SqrtOfSumSqr< float > , GammaCor< float > , SrcAImage< float, Img > , ToBounds< float > , GammaCorMult< float > , Mult< float > , ConvolveHorz< float > , ConvolveVert< float > , GammaCor< float > , EnvProc1to1< Real_t, Func, PostThresh > , GammaCor< float > , DstAImage< unsigned, Img > , SrcArray< Real_t, Real_t > , GradientModul< float > , DstContainer< Real_t, Container_t > , ToBounds< float > , DstAImage< float, Img > , AverageGauss< float > , Canny< float > , ToBounds< float > , Vtl::Plf::FilterBase , BiLateral< float > , DstArray< Real_t, Real_t > , MeanAndDisp< float > , Resample< float > , GammaCor< float > , DiZenzo< float >
  • NumOutputs() : DiZenzo< float > , BiLateral< float > , SrcAImage< Real_t, Img > , GammaCor< float > , SrcAImage< unsigned, Img > , Vtl::Plf::FilterBase , HarrisNMS< float > , ToBounds< float > , GammaCor< float > , ConvolveVert< float > , Y< float > , GradientModul< float > , GammaCorMult< float > , SqrtOfSumSqr< float > , SrcAImage< float, Img > , ConvolveHorz< float > , SrcAImage< Real_t, T > , DstContainer< Real_t, Container_t > , GammaCor< float > , AverageGauss< float > , DstArray< Real_t, Real_t > , SrcArray< Real_t, Real_t > , SrcAImage< Real_t, AImageMem8 > , ToBounds< float > , Average< float > , ToBounds< float > , DstAImage< float, Img > , Canny< float > , EnvProc1to1< Real_t, Func, PostThresh > , GammaCor< float > , GammaCorMult< float > , GammaCor< float > , DstAImage< unsigned, Img > , Mult< float > , GammaCor< float > , MeanAndDisp< float > , Resample< float > , GammaCor< float >
  • NumPlanes() : AImageMemRgb8 , tplAImageReference< ImgT > , AImageMemRgb16 , AImage
  • Nuttall() : Vtl::ImAlg::WndFun::Nuttall< T, D >


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- o -

  • objsz : YSmallAllocLtd
  • offset : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
  • Offset()
: Vtl::ImAlg::Transf::Offset< T >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Offset< T >
  • offset_by()
: Vtl::ImAlg::Model::SkewYOffset< T >
, Vtl::ImAlg::Model::SkewXOffset< T >
  • Offsets_t : Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >
  • OFlow() : OFlow< Model, AllocStrategy > , Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >
  • OFlowAllocStrategy() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • ofs
: Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >
, Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size
, Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >
, Vtl::Img::Iterator_ND_spec< T_Layout, false, false >
, Vtl::Img::Iterator_ND_spec< T_Layout, false, true >
, Vtl::Img::Iterator_ND_spec< T_Layout, true, false >
, Vtl::Img::Iterator_ND_spec< T_Layout, true, true >
, Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >
, Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • ofs_to_cur
: Hanina::p33< T, 1, 2 >
, Hanina::p33< T, 0, 2 >
, Hanina::p33< T, 0, 1 >
  • Ok : Basics3D::PointStatus
  • one_comp() : Vtl::Meta::det_poly_coef< Matrix, N >
  • onSameSide() : LineFun
  • open()
: IFF::FloatImageFile
, IFF::OzFile
, IFF::PBMfile
, ReadPipe
, WritePipe
  • OpenMode : YFile
  • operator &&() : YXML::DNode::Is
  • operator *() : Vtl::Plf::ColumnIteratorFast< T > , Vtl::Plf::LineIterator< T > , Quaternion< T > , Vtl::ImAlg::Conv::SliceIter< T, stride > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , Vtl::Img::Iterator_1D< T, T_stride > , SliceIter< T, stride > , Vtl::Img::Iterator_1D< T, 0 > , SliceIter< T, stride > , Vtl::Img::Iterator_1D< T, 0 > , SliceIter< T, stride > d stride , SliceIter< T, 0 > , SliceIter< T, 0 > d stride_var , SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , Vtl::Img::Iterator_ND_spec< T_Layout, false, false > , SliceIterConst< T, 0 > , Vtl::Img::Iterator_ND_spec< T_Layout, false, true > , Vtl::Img::Iterator_ND_spec< T_Layout, true, false > , SliceIterConst< T, 0 > d stride_var , Vtl::Img::Iterator_ND_spec< T_Layout, true, true > , YTimeInterval , LineIterator< T > , ColumnIteratorFast< T > , Quaternion< value_type > , Quaternion< value_type > Vector_3
  • operator *=() : YTimeInterval
  • operator const char *() : AErrorStatusBase
  • operator const int *() : Vtl::NumAlg::Implicit::Sort_base< N_ > , Vtl::NumAlg::Implicit::Sort_base< 0 >
  • operator DataString()
: WiNode
, WiNode::AttrRef
, YXML::DNode::AttrRef
, YXML::DNode
  • operator double() : DataString
  • operator float() : DataString
  • operator int() : ZoomFactor , DataString
  • operator LayoutType() : Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
  • operator pel *() : Vtl::Img::pic_plane< pel, stride >
  • operator RotationMatrix() : Quaternion< T > , Quaternion< value_type > , Quaternion< value_type > Vector_3
  • operator unsigned() : DataString
  • operator YDataTime() : DataString
  • operator YDataTimeZone() : DataString
  • operator!=() : YDataTime , Vtl::Plf::LineIterator< T > , Vtl::Plf::ImgSize , Vtl::ImAlg::Conv::SliceIter< T, stride > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , ZoomFactor2D , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , ZoomFactor2D , YPoint< T > , YPoint< int > , YRect< int > , YPoint< double > , SliceIter< T, stride > , SliceIter< T, stride > d stride , YRect< T > , SliceIter< T, 0 > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , SliceIter< T, 0 > d stride_var , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , SliceIterConst< T, 0 > , SliceIterConst< T, 0 > d stride_var , LineIterator< T > , YTimeInterval , YPoint< T > , YRect< T >
  • operator()() : Forward< T, D > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T > , Offset< T > , Vtl::ImAlg::C::YUV::Y< T > , ConvInplace< T, K2 > , ConvInplace< T, K1 > , Vtl::ImAlg::C::YUV::U< T > , Conv< T, K > , Vtl::Plf::F31::HessianDetSqrt< T > , Conv< T, K1 > , Vtl::Plf::F31::Harris< T > , CyclicConvInplace< T, K2 > , CyclicConvInplace< T, K1 > , Vtl::Plf::F31::Trace< T > , Vtl::Plf::F31::MaxEigenVal< T > , Vtl::ImAlg::C::YUV::V< T > , Vtl::Plf::F31::MinEigenVal< T > , Vtl::Plf::F31::DiffEigenVal< T > , Vtl::ImAlg::C::YUV::R< T > , Vtl::Plf::F31::StatDiff< T > , Vtl::Plf::F31::DeNoise< T > , Vtl::ImAlg::C::YUV::G< T > , Vtl::ImAlg::C::YUV::B< T > , Vtl::Plf::F51::HarrisLaplace< T > , Vtl::Plf::F23::CorrMatrix< T, Iter > , Vtl::Plf::F23::CorrMatrixAdd< T, Iter > , Vtl::Plf::F33::DiZenzo< T, Iter > , Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter > , Vtl::Plf::Fpie::HarrisNMS< T > , Vtl::Plf::Fpie::HarrisNMS_Smooth< T > , Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter > , Vtl::Plf::Fpie::Himg2< T > , Vtl::Plf::Fpie::Himg< T > , YXML::DNode::Is , Vtl::Plf::Fpie::BiLateralSmooth< T > , Vtl::Plf::Fpie::CannyNMS< T > , Vtl::ImAlg::C::IV1V2::I< T > , Vtl::Plf::Fpie::CannyNMS_2< T > , Vtl::ImAlg::C::IV1V2::V1< T > , Vtl::ImAlg::C::IV1V2::V2< T > , Vtl::ImAlg::C::IV1V2::R< T > , Hartley2Im< T > , WiNode , Vtl::ImAlg::C::IV1V2::G< T > , Vtl::ImAlg::C::IV1V2::B< T > , WiNode , Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter > , Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter > , Vtl::ImAlg::C::HSV::fromRGB< T, Iter > , Vtl::ImAlg::C::HSV::toRGB< T, Iter > , Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter > , Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter > , Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter > , Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter > , Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > , Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > , Vtl::Plf::FiltersSystem::EdgeLabel_Unknown , Vtl::Plf::FiltersSystem::EdgeLabel_DelayB , Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , YXML::DNode::IsCond , Offset< T > , Basics3D::Structure::Comp3D< T > , Basics3D::Structure::ProjectiveToMetric< T > , Basics3D::Structure::Dlt< T > , Hanina::Hessian3D< T > , Hanina::Planes3< T > , Vtl::ImAlg::C::YCbCr::G< T > , Hanina::Comb_ridge< T1, T2 > , Hanina::Check_4_grad_sign_change< T > , Hanina::FillingHessianMatrix3x3 , Hanina::ScaleScan3x3< T > , Hanina::HessianDetSqrt< T > , Hanina::HessianEigenDiff< T > , Hanina::HessianEigenDiffAndMaxCurvatureDirection , Hanina::Luv_from_xy_derivatives< T > , Hanina::ZeroCrossVisualization< T > , Hanina::ZeroCross< T > , Vtl::Plf::F31::StatDiffThresh< T > , Vtl::ImAlg::Bres::DrawGradient< Pixel > , CyclicConvInplace< float, K > , Conv< float, K > , ConvInplace< float, K > , FastGaussConvolve< float, DERIV > , Convert< float > , FastGaussConvolve< float, 0 > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , FastGaussConvolve< float, 3 > , YXML::DNode , FastGaussConvolve< float, 3 > , Convert< uint8_t > , Lin< float > lin_1mod , Convert< uint8_t > , Sum< float > , Lin< float > lin_2 , Convert< uint8_t > , Lin< float > , Abs< float > , ConvInplace< float, K4 > , Convert< uint8_t > , SetPixel< float, 1 > , is_center_max_in3x3< 1 > , HessianDetSqrt< float > , GammaCorMult< float > lin_3mod , Convert< uint8_t > , DoNothing< T > , YXML::DNode::IsOR , Test< float > , ToBounds< float > , Vtl::ImAlg::Conv::CyclicConv< T, K > , Vtl::ImAlg::Conv::CyclicConvInplace< T, K > , GammaCorMult< float > , Vtl::ImAlg::Conv::Conv< T, K > , Vtl::ImAlg::Conv::ConvInplace< T, K > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 > , YXML::DNode::IsAND , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 > , cos_Member< float, 3, 4, 1 > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 > , GammaCor< float > , Harris< float > , cos_Member< float, 2, 4, 1 > , cos_Member< float, 1, 4, 1 > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 > , cos_Member< float, 0, 4, 1 > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 > , HarrisLaplace< float > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 > , Hann< float, 3 > , Hann< float, 2 > , Hann< float, 1 > , Hann< float, 0 > , Hamming< float, 4 > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 > , Trace< float > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 > , Hamming< float, 0 > , MinEigenVal< float > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > , MaxEigenVal< float > , Mult< float > , YXML::IsElem , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > , DiffEigenVal< float > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > , HarrisNMS< float > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D > , YXML::IsName< Cmp > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D > , SqrtOfSumSqr< float > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 > , Vtl::ImAlg::Conv::FastGaussConvolve< T, D > , ReflectHalfToOther< 2, Real_t, true > , Vtl::ImAlg::Edt::isEdge< T > , Hamming< float, 1 > , Hamming< float, 2 > , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , Hamming< float, 3 > , YXML::IsAttr< T, Cmp > , Vtl::ImAlg::Tools::findMax::is_center_max_in3x3< num_equal_neihbours > , Vtl::ImAlg::Tools::findMax::SetPixel< T, stride > , YXML::IsAttrIn< T > , Hann< float, 4 > , Direct_Ref< float, int > , Direct< float, int > , Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB > , cos_Member< float, 0, 4, 1 > , Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB > , ReflectHalfToOther< 2, Real_t, true > , StatDiff< T > , cos_Member< float, 2, 4, 1 > , cos_Member< float, 3, 4, 1 > , Comb_ridge< T, uint8_t > , Vtl::ImAlg::Transf::Offset< T > , fromRGB< T, Iter > , Vtl::ImAlg::Transf::Offset< T > , Hartley2PhaseAmpDown< 2, Real_t > , Sum3< T > , Vtl::ImAlg::Transf::Affine< T > , Himg2< T > , Hartley2PhaseAmpDown< 2, Real_t > , Vtl::ImAlg::Transf::Homography< T > , ConvInplace< float, K3 > , Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > , Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC > , CorrMatrixAdd< T > , PhaseCorr< Real_t > , Vtl::ImAlg::WndFun::Bartlett< T, D > , Vtl::ImAlg::WndFun::Rect< T, D > , Vtl::ImAlg::WndFun::DoG< T, D > , Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > , Vtl::ImAlg::WndFun::Sinc< T, 0 > , Vtl::ImAlg::WndFun::Kaiser< T, D > , Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I > , Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I > , Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K > , Vtl::ImAlg::WndFun::common_Trig< T, D, K > , Vtl::ImAlg::C::YCbCr::R< T > , Vtl::NumAlg::Lin::PseudoInverseElemPositive< T > , Vtl::NumAlg::Lin::PseudoInverseElem< T > , DiZenzo< T > , PhaseCorr< Real_t > , Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > , Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > , BiLateralSmooth< T > , ConvInplace< float, K2 > , Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown > , Vtl::NumAlg::IntTransf::Utils::F::Test< T > , Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T > , Convert< uint8_t > , Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T > , Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T > , Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > , CyclicConv< T, K1 > , Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > , CyclicConv< T, K2 > , CyclicConv< T, K > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T > , CyclicConvInplace< T, K > , Conv< T, K2 > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T > , ConvInplace< T, K1 > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > , ConvInplace< T, K > , Forward< T, D > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > , Reverse< T, D > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T > , CannyNMS< float > , CorrMatrix< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T > , InterpBilinear< Real_t > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > , Vtl::ImAlg::Bres::DrawDotted< Pixel > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > , Hartley2Phase< Real_t > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > , Hartley2Phase< Real_t > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > , Hartley2PhaseAmpDown< 2, Real_t > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > , Vtl::ImAlg::Bres::Draw< Pixel > , ReflectHalfToOther< 2, Real_t, true > , InterpBilinear< Img::Pixel > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > , Vtl::Plf::F11::Convert2ByteBounded , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T > , Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > , Offset< T > , Affine< T > , ConvInplace< float, K0 > , Affine< T > , InterpBilinear< Pixel > , Hartley2Modul< T > , Hartley2Re< T > , Vtl::ImAlg::C::XYZ::X< T > , Hartley2Im< T > , Reverse< T, D > , Vtl::ImAlg::C::XYZ::Z< T > , GammaCorMult< T > , Vtl::ImAlg::C::XYZ::Y< T > , Vtl::ImAlg::C::XYZ::G< T > , Vtl::ImAlg::C::XYZ::R< T > , ConvInplace< float, K0 > , Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter > , Sharpen< T > , Himg< T > , GammaCorMult< T > P , Sqr< T > , Disp< T > , Vtl::ImAlg::C::XYZ::B< T > , DeNoise< T > , CannyNMS< T > , CorrMatrix< T, T & > , Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter > , Vtl::ImAlg::C::YCbCr::Y< T > , Hartley2Re< T > , Vtl::ImAlg::C::YCbCr::Cr< T > , Convert2ByteBounded , Abs< T > , Vtl::ImAlg::C::YCbCr::Cb< T > , Vtl::ImAlg::C::YCbCr::B< T > , Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter > , Dlt< value_type > , ProjectiveToMetric< value_type > , Comp3D< value_type > , Convert< T > , Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter > , ConvInplace< float, K0 > , ConvInplace< float, K1 > , Vtl::ImAlg::C::EElEll::E< T > , ConvInplace< float, K2 > , ConvInplace< float, K3 > , SqrtOfSumSqr< T > , Mult< T > , Vtl::ImAlg::C::EElEll::Ell< T > , ConvInplace< float, K4 > , Check_4_grad_sign_change< T > , ScaleScan3x3< T > , Vtl::Plf::F11::DoNothing< T > , Convert< uint8_t > , ConvInplace< float, K0 > , Vtl::ImAlg::C::EElEll::El< T > , Vtl::Plf::F11::Convert< T > , Vtl::Plf::F31::HessianDet< T > , Vtl::Plf::F31::Sum3< T > , Vtl::Plf::F21::Disp< T > , Vtl::ImAlg::C::EElEll::R< T > , Vtl::Plf::F21::Prod< T > , Vtl::ImAlg::C::EElEll::G< T > , Vtl::Plf::F21::AbsDif< T > , Vtl::Plf::F11::Threshold< T, Comp > , Vtl::Plf::F21::AbsDif< T > , Vtl::Plf::F21::Dif< T > , Vtl::Plf::F21::Sum< T > , Vtl::Plf::F11::Comb< T, F1, F2 > , Vtl::Plf::F11::GammaCorMult< T > , Vtl::ImAlg::C::EElEll::B< T > , Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter > , Vtl::Plf::F11::Negative< T > , Vtl::Plf::F11::Sqrt< T > , Vtl::Plf::F11::Abs< T > , Vtl::Plf::F11::Bias< T > , Vtl::Plf::F11::Mult< T > , Vtl::Plf::F11::ConvertMult< T > , Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter > , Vtl::Plf::F11::Lin< T > , Vtl::Plf::F11::ToBounds< T > , Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter > , Vtl::ImAlg::C::YIQ::Y< T > , Vtl::ImAlg::C::YIQ::I< T > , Vtl::Plf::F11::Sqr< T > , Vtl::Plf::F11::GammaCor< T > , Vtl::Plf::F11::Log< T > , Vtl::ImAlg::C::YIQ::Q< T > , Vtl::Plf::F21::SqrtOfSumSqr< T > , Vtl::ImAlg::C::YIQ::R< T > , Vtl::ImAlg::C::YIQ::G< T > , Vtl::ImAlg::C::YIQ::B< T > , Vtl::Plf::F21::AbsDif< T > , Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter > , Vtl::Plf::F21::Sharpen< T > , Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >
  • operator+() : YTimeInterval , Vtl::ImAlg::Conv::SliceIter< T, stride > , Cluster1D< T, DatumType > , Cluster2D< T, DatumType > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , SliceIter< T, stride > , SliceIter< T, stride > d stride , SliceIter< T, 0 > , SliceIter< T, 0 > d stride_var , SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , SliceIterConst< T, 0 > , SliceIterConst< T, 0 > d stride_var , YDataTime
  • operator++() : SliceIterConst< T, 0 > d stride_var , SliceIterConst< T, 0 > , Vtl::Plf::ColumnIteratorFast< T > , Vtl::Plf::LineIterator< T > , SliceIterConst< T, stride > d stride , Vtl::Plf::Strip , Vtl::ImAlg::Conv::SliceIter< T, stride > , SliceIter< T, 0 > d stride_var , SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , SliceIter< T, 0 > d stride_var , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , SliceIter< T, 0 > , SliceIter< T, stride > d stride , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , Vtl::Img::Iterator_1D< T, T_stride > , Vtl::Img::Iterator_1D< T, 0 > , SliceIter< T, stride > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , SliceIter< T, stride > d stride , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , SliceIterConst< T, 0 > , LineIterator< T > , Vtl::Img::pic_plane< pel, stride > , ColumnIteratorFast< T >
  • operator+=() : Vtl::Img::pic_plane< pel, stride > , SliceIterConst< T, 0 > d stride_var , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , Vtl::Plf::Strip , Vtl::ImAlg::Conv::SliceIter< T, stride > , SliceIter< T, stride > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , SliceIter< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , SliceIter< T, stride > d stride , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , ZoomFactor , Vtl::Img::Iterator_1D< T, 0 > , Vtl::Img::Iterator_1D< T, T_stride > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , YTimeInterval , SliceIter< T, 0 > d stride_var , SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , SliceIterConst< T, 0 > , YDataTime
  • operator-() : SliceIterConst< T, 0 > d stride_var , SliceIterConst< T, stride > d stride , Vtl::ImAlg::Conv::SliceIter< T, stride > , SliceIter< T, 0 > d stride_var , Vtl::ImAlg::Conv::SliceIter< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , SliceIter< T, stride > d stride , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , SliceIter< T, stride > , YTimeInterval , SliceIter< T, 0 > , SliceIterConst< T, stride > , SliceIterConst< T, 0 > , YTimeInterval , YDataTime
  • operator--() : SliceIterConst< T, 0 > d stride_var , SliceIterConst< T, 0 > , Vtl::Plf::ColumnIteratorFast< T > , SliceIterConst< T, stride > d stride , Vtl::Plf::LineIterator< T > , SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIter< T, stride > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , SliceIter< T, stride > , SliceIter< T, stride > d stride , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , Vtl::Img::Iterator_1D< T, T_stride > , Vtl::Img::Iterator_1D< T, 0 > , ColumnIteratorFast< T > , SliceIter< T, stride > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , SliceIter< T, 0 > , SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , SliceIter< T, stride > d stride , SliceIterConst< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , SliceIter< T, 0 > d stride_var , LineIterator< T > , Vtl::Img::pic_plane< pel, stride >
  • operator-=() : Vtl::Img::pic_plane< pel, stride > , Vtl::ImAlg::Conv::SliceIter< T, stride > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , SliceIter< T, 0 > , SliceIter< T, stride > d stride , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , ZoomFactor , Vtl::Img::Iterator_1D< T, T_stride > , Vtl::Img::Iterator_1D< T, 0 > , SliceIter< T, stride > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , SliceIter< T, 0 > d stride_var , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , SliceIterConst< T, 0 > , SliceIterConst< T, 0 > d stride_var , YTimeInterval , YDataTime
  • operator/() : Quaternion< T > , YTimeInterval , Quaternion< value_type > , Quaternion< value_type > Vector_3
  • operator/=() : YTimeInterval
  • operator<() : YTHistListTag< T > , Basics3D::SortS< T > , Vtl::ImAlg::Registration::Container< Real_t >::Point , YTimeInterval , SortS< double > , YDataTime
  • operator<<
: Affine< T >
, Vtl::Plf::ImgSize
, WiNode
, WiNode::AttrRef
, YXML::DNode
, YXML::DNode::AttrRef
, Vtl::ImAlg::Transf::Affine< T >
  • operator<=() : YTimeInterval , YDataTime
  • operator=() : Vtl::ImAlg::Transf::Homography< T > , Resample< float > , DataString , SliceIterConst< T, 0 > d stride_var , Quaternion< value_type > , Vtl::Plf::GradientModul< T, P > , Affine< T > , Vtl::Plf::FilterBase , Vtl::Plf::Detect< T, Func, P > , Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , SliceIterConst< T, stride > d stride , Vtl::Plf::InPortBase , Vtl::Plf::OutPortBase , YTArray< T > , Vtl::Plf::InPort< T > , Vtl::Plf::InPortComb< T > , Vtl::Plf::OutPortNoPostProc< T > , YTDynArray< T > , Vtl::Plf::OutPort< T, P > , Vtl::Plf::FilterElementary , Iter_Line , Vtl::Plf::Canny< T, P > , YXML::DNode::IsCond , DataString , WiNode , YPoint< T > , WiNode::AttrRef , ImageVectorT< Base, Bit8, Bit16 > , YXML::DNode , ImageProxyVector , SliceIterConst< T, stride > , SliceIter< T, stride > , ImageTransformImpl , ImageTransform , SliceIter< T, 0 > d stride_var , Vtl::ImAlg::Conv::SliceIter< T, 0 > , DatumR< T > , Canny< float > , OutPortNoPostProc< Real_t > , DiZenzo< float > , YTArray< T > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , WiNode::AttrRef , Vtl::Plf::StatDiff< T, P > , YXML::DNode::AttrRef , Vtl::ImAlg::Transf::Homography< T > , Vtl::Plf::MeanAndDisp< T, P > , YPoint< T > , ZoomFactor , YPoint< double > , Offset< T > , AverageGauss< float > , ToBounds< float > , Vtl::Plf::Resample< T, P > , MeanAndDisp< float > , ToBounds< float > , GammaCorMult< float > , BiLateral< float > , YXML::DNode::IsOR , GammaCor< float > , ZoomFactor2D , YPoint< int > , ZoomFactor2D , GammaCor< float > , YXML::DNode::IsAND , GammaCor< float > , Quaternion< value_type > Vector_3 , Vtl::Plf::HarrisLaplace< T, Func, P > , GammaCor< float > , Vtl::ImAlg::Transf::Offset< T > , WritePipe , Vtl::Plf::HImageEdge< T, P > , YTimeInterval , T_Points2DSet< C_Point2D > , InPortComb< T > , Vtl::ImAlg::Transf::Homography< T > , Average< float > , Vtl::ImAlg::Transf::Affine< T > , SliceIter< T, 0 > , YXML::DNode::AttrRef , Vtl::Plf::DiZenzo< T, P > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , Vtl::Plf::FilterComplex , Vtl::Plf::HImage< T, P > , GammaCor< float > , Base< T, Kernel::KT_Conv > , Basics3D::T_Points2DSet< Point > , Vtl::Plf::BiLateral< T, P > , SliceIter< T, stride > d stride , DatumR< T > , Vtl::ImAlg::Conv::SliceIter< T, stride > , DataString , YXML::DNode , DataString , Quaternion< T > , Basics3D::C_Point2D , Vtl::Plf::Average< T, P > , Vtl::Plf::Sharpen< T, P > , Iter_Line , Vtl::Plf::AverageGauss< T, P > , ReadPipe , Vtl::Plf::Strip , Vtl::Plf::DeNoise< T, P > , InPort< T > , T_Points2DSet< Point > , GradientModul< float > , Vtl::Plf::Port , WiNode , Vtl::Plf::GradientCorr< T, P > , Vtl::Plf::SeparableConv2D< T, P > , DataString , SliceIterConst< T, 0 >
  • operator==() : Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , SliceIterConst< T, 0 > , ZoomFactor2D , YPoint< T > , SliceIter< T, stride > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , YPoint< T > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , SliceIter< T, stride > d stride , YRect< int > , YPoint< int > , YRect< T > , SliceIter< T, 0 > , YRect< T > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , YPoint< double > , SliceIter< T, 0 > d stride_var , Vtl::ImAlg::Conv::SliceIter< T, stride > , SliceIterConst< T, stride > , ZoomFactor2D , Vtl::Plf::ImgSize , YTimeInterval , YTHistListTag< T > , YDataTime , SliceIterConst< T, 0 > d stride_var
  • operator>() : YDataTime , YTimeInterval
  • operator>=() : YDataTime , YTimeInterval
  • operator[]() : Basics3D::T_ImagesSet< Image > , YTDynArray< T > , ImageMem16 , YTArray< T > , YImageFrame , WiNode , Basics3D::C_Points2DParamSet , YXML::DNode , ImageContainer< ImgType > , YTArray< T > , T_Points2DSet< Point > , Basics3D::T_Points2DSet< Point > , VirtDib , YTDynArray< T > , ImageRef< int > , Vtl::Img::Iterator_1D< T, T_stride > , Vtl::Img::Iterator_1D< T, 0 > , T_Points2DSet< C_Point2D > , Vtl::Img::Iterator_1D< T, T_stride > , T_ImagesSet< AImageMem8 > , YTArray< T > , ImageMemFloat , ImageFragment8 , WiNode , AImageMem16 , Vtl::NumAlg::Implicit::Sort_base< N_ > , YTArray< T > , PtrArrayDel< T > , Vtl::Img::Image< P, planes, interleave > , ImageMem8 , ImageMem16Stuff , YXML::DNode , ImageFragment16 , AImageMemFloat , PtrArrayDel< T > , Vtl::Img::Iterator_1D< T, 0 > , AImageMem8 , Vtl::NumAlg::Implicit::Sort_base< 0 > , Vtl::Plf::ImageRef< T > , ImageRef< T > , YTHistList< T >
  • operator| : Vtl::Plf::Strip
  • operator|=() : Vtl::Plf::Strip
  • operator||() : YXML::DNode::Is
  • optimal_search() : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • OptimalSolution() : Basics3D::C_StructureComputation
  • OriginalType : Vtl::Types::Type2Type< T >
  • orthes() : Vtl::NumAlg::Lin::eigen
  • os_back : Vtl::Plf::Impl::GraphBuilder
  • out : SrcAImage< Real_t, AImageMem8 > , ConvolveVert< float > , EnvProc1to1< Real_t, Func, PostThresh > , Vtl::Plf::Canny< T, P > , Vtl::Plf::PixByPix2to1< T, F, P > , Canny< float > , Vtl::Plf::PixByPix3to1< T, Func, P > , ConvolveHorz< float > , Vtl::Plf::HImageEdge< T, P > , Vtl::Plf::Average< T, P > , Vtl::Plf::StatDiff< T, P > , Vtl::Plf::HImage< T, P > , Vtl::Plf::HarrisLaplace< T, Func, P > , Vtl::Plf::Resample< T, P > , Resample< float > , Vtl::Plf::Detect< T, Func, P > , ToBounds< float > , GammaCor< float > , Vtl::Plf::EnvProc3to1< T, Func, P > , Vtl::Plf::DiZenzo< T, P > , GammaCor< float > , Vtl::Plf::Sharpen< T, P > , Vtl::Plf::PixByPix4to1< T, Func, P > , GradientModul< float > , GammaCor< float > , SrcArray< Real_t, Real_t > , Vtl::Plf::Levels< T, P > , Vtl::Plf::ConvolveHorz< T, P > , Vtl::Plf::ConvolveVert< T, P > , SqrtOfSumSqr< float > , GammaCor< float > , Vtl::Plf::GradientModul< T, P > , Vtl::Plf::FilterResampleHorz< T, P > , SrcAImage< Real_t, Img > , AverageGauss< float > , ToBounds< float > , Vtl::Plf::medianFilter< T, P > , Vtl::Plf::AverageGauss< T, P > , SrcAImage< float, Img > , BiLateral< float > , SrcAImage< unsigned, Img > , Average< float > , Vtl::Plf::FilterResampleVert< T, P > , ToBounds< float > , Vtl::Plf::SrcArray< T, I, P > , Vtl::Plf::PixByPix5to1< T, Func, P > , GammaCorMult< float > , Vtl::Plf::DeNoise< T, P > , SrcAImage< Real_t, T > , Vtl::Plf::medianFilter2< T, P > , Y< float > , Vtl::Plf::SeparableConv2D< T, P > , Vtl::Plf::EnvProc1to1< T, Func, P > , DiZenzo< float > , Mult< float > , GammaCor< float > , HarrisNMS< float > , GammaCorMult< float > , Vtl::Plf::BiLateral< T, P >
  • out_1 : Vtl::Plf::SrcAImageRgb< T, I, P > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
  • out_11 : Vtl::Plf::PixByPix2to3< T, P >
  • out_12 : Vtl::Plf::PixByPix2to3< T, P >
  • out_2 : Vtl::Plf::SrcAImageRgb< T, I, P > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
  • out_22 : Vtl::Plf::PixByPix2to3< T, P >
  • out_3 : Vtl::Plf::SrcAImageRgb< T, I, P > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
  • out_disp() : Vtl::Plf::MeanAndDisp< T, P > , MeanAndDisp< float >
  • out_gx() : Vtl::Plf::GradientModul< T, P > , GradientModul< float >
  • out_gy() : Vtl::Plf::GradientModul< T, P > , GradientModul< float >
  • out_mean() : MeanAndDisp< float > , Vtl::Plf::MeanAndDisp< T, P >
  • out_ports : Vtl::Plf::FilterBase
  • out_x : Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
  • out_xx() : Vtl::Plf::GradientCorr< T, P >
  • out_xy() : Vtl::Plf::GradientCorr< T, P >
  • out_y : Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
  • out_yy() : Vtl::Plf::GradientCorr< T, P >
  • OutPort() : Vtl::Plf::OutPort< T, P > , Iter_Line , Vtl::Plf::OutPort< T, P > , Iter_Line
  • OutPortBase : Vtl::Plf::InPortBase , Iter_Line , InPort< T > , Vtl::Plf::OutPortBase , OutPortNoPostProc< Real_t >
  • OutPortNoPostProc() : Iter_Line , OutPortNoPostProc< Real_t > , Iter_Line , Vtl::Plf::OutPortNoPostProc< T >
  • OutPortNoPostProc< T > : Vtl::Plf::InPort< T > , InPortComb< T > , InPort< T > , Vtl::Plf::InPortComb< T >
  • outputArea_ : ImageTransformImpl
  • outputCoords_ : ImageTransformImpl
  • outputFragment_ : ImageTransformImpl
  • outputHeight_ : ImageTransformImpl
  • outputVector_ : ImageTransformImpl
  • outputWidth_ : ImageTransformImpl
  • OzFile() : IFF::OzFile


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- z -

  • z0 : Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > , Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
  • Z_f() : Vtl::ImAlg::C::XYZ
  • zero() : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • ZeroCross() : Hanina::ZeroCross< T >
  • ZeroCrossVisualization() : Hanina::ZeroCrossVisualization< T >
  • Zone() : YDataTimeZone
  • zone : YDataTimeZone
  • zoom : ZoomFactor
  • ZoomFactor() : ZoomFactor
  • ZoomFactor2D() : ZoomFactor2D
  • zoomMatrix_ : CoverageMatrix
  • ZoomValue() : ZoomFactor2D , ZoomFactor , ZoomFactor2D
  • ZoomValueNR() : ZoomFactor2D , ZoomFactor


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- ~ -

  • ~AErrorStatusBase() : AErrorStatusBase
  • ~AImage() : AImage
  • ~AImageMem16() : AImageMem16
  • ~AImageMem8() : AImageMem8
  • ~AImageMemFloat() : AImageMemFloat
  • ~AImageMemRgb16() : AImageMemRgb16
  • ~AImageMemRgb8() : AImageMemRgb8
  • ~AImageProxy() : AImageProxy
  • ~Average() : Vtl::Plf::Average< T, P > , Average< float >
  • ~AverageGauss() : AverageGauss< float > , Vtl::Plf::AverageGauss< T, P >
  • ~Base()
: Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >
, Vtl::ImAlg::Model::Base< T >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Base< T, Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
  • ~BaseAffine() : Vtl::ImAlg::Model::BaseAffine< T >
  • ~BiLateral() : BiLateral< float > , Vtl::Plf::BiLateral< T, P >
  • ~BmpRead() : IFF::BmpRead
  • ~BmpWrite() : IFF::BmpWrite
  • ~C_Combination() : Basics3D::C_Combination
  • ~Canny() : Canny< float > , Vtl::Plf::Canny< T, P >
  • ~childPipe() : childPipe
  • ~ConvolveHorz() : Vtl::Plf::ConvolveHorz< T, P > , ConvolveHorz< float >
  • ~ConvolveVert() : Vtl::Plf::ConvolveVert< T, P > , ConvolveVert< float >
  • ~DebugBase() : DebugBase
  • ~DebugToFile() : DebugToFile
  • ~DeNoise() : ToBounds< float > , Vtl::Plf::DeNoise< T, P >
  • ~Detect() : GammaCor< float > , Vtl::Plf::Detect< T, Func, P > , GammaCor< float >
  • ~DiZenzo() : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • ~DllModule() : DllModule
  • ~DNode() : YXML::DNode
  • ~DstAImage() : Vtl::Plf::DstAImage< T, I > , DstAImage< unsigned, Img > , DstAImage< float, Img >
  • ~DstArray() : DstArray< Real_t, Real_t > , DstAImage< unsigned, Img > , DstAImage< float, Img > , Vtl::Plf::DstArray< T, Pixel >
  • ~DstContainer() : Vtl::Plf::DstContainer< T, C, P > , DstContainer< Real_t, Container_t >
  • ~EnvProc1to1() : EnvProc1to1< Real_t, Func, PostThresh > , Vtl::Plf::EnvProc1to1< T, Func, P > , HarrisNMS< float >
  • ~EnvProc1to2() : Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
  • ~EnvProc3to1() : Vtl::Plf::EnvProc3to1< T, Func, P >
  • ~Error() : ImageMem16Stuff::Error
  • ~ErrorStatusBase() : ErrorStatusBase
  • ~Fifo() : Vtl::Plf::Fifo< T > , Fifo< int > , Fifo< Vtl::Plf::FilterElementary * >
  • ~FilterBase() : Mult< float > , SqrtOfSumSqr< float > , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , DstArray< Real_t, Real_t > , SrcAImage< Real_t, Img > , Canny< float > , SrcAImage< Real_t, AImageMem8 > , DstContainer< Real_t, Container_t > , Y< float > , DiZenzo< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , Vtl::Plf::FilterBase , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , Resample< float > , AverageGauss< float > , Average< float > , ToBounds< float > , MeanAndDisp< float > , ToBounds< float > , GammaCorMult< float > , BiLateral< float > , GradientModul< float > , GammaCor< float > , HarrisNMS< float > , ConvolveHorz< float > , ConvolveVert< float > , GammaCorMult< float >
  • ~FilterComplex() : Canny< float > , DiZenzo< float > , Vtl::Plf::FilterComplex , Resample< float > , AverageGauss< float > , Average< float > , ToBounds< float > , MeanAndDisp< float > , ToBounds< float > , GammaCorMult< float > , BiLateral< float > , GradientModul< float > , GammaCor< float >
  • ~FilterElementary() : Mult< float > , SqrtOfSumSqr< float > , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , Y< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , GammaCorMult< float > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , Vtl::Plf::FilterElementary , DstAImage< float, Img > , HarrisNMS< float > , ConvolveHorz< float > , ConvolveVert< float >
  • ~FilterResampleHorz() : Vtl::Plf::FilterResampleHorz< T, P >
  • ~FilterResampleVert() : Vtl::Plf::FilterResampleVert< T, P >
  • ~FiltersSystem() : Vtl::Plf::FiltersSystem
  • ~FKern()
: Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
  • ~FloatImageFile() : IFF::FloatImageFile
  • ~Gistogramm() : Vtl::Plf::OLSI::Gistogramm< T >
  • ~Gistogramm2() : Vtl::Plf::OLSI::Gistogramm2< T >
  • ~GradientCorr() : Vtl::Plf::GradientCorr< T, P >
  • ~GradientModul() : GradientModul< float > , Vtl::Plf::GradientModul< T, P >
  • ~HarrisLaplace() : Vtl::Plf::HarrisLaplace< T, Func, P > , GammaCor< float >
  • ~Hartley() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • ~HImage() : Vtl::Plf::HImage< T, P > , GammaCorMult< float >
  • ~HImageEdge() : Vtl::Plf::HImageEdge< T, P > , GammaCor< float >
  • ~Image()
: Vtl::Img::Image< P, planes, SEP >
, Vtl::Img::Image< P, planes, interleave >
, Vtl::Img::Image< P, planes, BIP >
  • ~ImageBase() : Vtl::Img::ImageBase< P, planes, interleave >
  • ~ImageFragment16() : ImageFragment16
  • ~ImageFragment8() : ImageFragment8
  • ~ImageFragmentRgb8() : ImageFragmentRgb8
  • ~ImageHolder() : Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >
  • ~ImageMem16() : ImageMem16
  • ~ImageMem16Stuff() : ImageMem16Stuff
  • ~ImageMem8() : ImageMem8
  • ~ImageMemFloat() : ImageMemFloat
  • ~ImageMemRgb8() : ImageMemRgb8
  • ~ImageNDref() : Vtl::Img::ImageNDref< T_SList, T_Layout >
  • ~ImageProxy() : ImageProxy< ImageT >
  • ~ImageProxyConst() : ImageProxyConst< ImageT >
  • ~ImageProxyVector() : ImageProxyVector
  • ~ImageResample() : ImageResample
  • ~ImageResize() : ImageResize
  • ~ImageRotate() : ImageRotate
  • ~ImageTransform() : ImageTransform
  • ~ImageTransformCellImpl() : ImageTransformCellImpl
  • ~ImageTransformImpl() : ImageTransformImpl
  • ~ImageTransformMatrixImpl() : ImageTransformMatrixImpl
  • ~InPort() : Vtl::Plf::InPort< T > , InPort< T >
  • ~InPortBase() : InPort< T > , Vtl::Plf::InPortBase
  • ~InPortComb() : InPortComb< T > , Vtl::Plf::InPortComb< T >
  • ~Is() : YXML::DNode::Is
  • ~IsAND() : YXML::DNode::IsAND
  • ~IsCond() : YXML::DNode::IsCond
  • ~IsOR() : YXML::DNode::IsOR
  • ~Levels() : Mult< float > , Vtl::Plf::Levels< T, P >
  • ~MeanAndDisp() : Vtl::Plf::MeanAndDisp< T, P > , MeanAndDisp< float >
  • ~medianFilter() : Vtl::Plf::medianFilter< T, P >
  • ~medianFilter2() : Vtl::Plf::medianFilter2< T, P >
  • ~MImages2Gray() : MImages2Gray
  • ~MSlidingEqualization() : MSlidingEqualization
  • ~OFlow() : OFlow< Model, AllocStrategy > , Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >
  • ~OFlowAllocStrategy() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • ~OutPort() : Vtl::Plf::OutPort< T, P > , Iter_Line
  • ~OutPortBase() : OutPortNoPostProc< Real_t > , Iter_Line , Vtl::Plf::OutPortBase , Iter_Line
  • ~OutPortNoPostProc() : OutPortNoPostProc< Real_t > , Vtl::Plf::OutPortNoPostProc< T > , Iter_Line
  • ~OzFile() : IFF::OzFile
  • ~PBMfile() : IFF::PBMfile
  • ~PixByPix2to1() : GammaCorMult< float > , Vtl::Plf::PixByPix2to1< T, F, P > , SqrtOfSumSqr< float >
  • ~PixByPix2to3() : Vtl::Plf::PixByPix2to3< T, P >
  • ~PixByPix3to1() : Y< float > , Vtl::Plf::PixByPix3to1< T, Func, P >
  • ~PixByPix3to3() : Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
  • ~PixByPix4to1() : Vtl::Plf::PixByPix4to1< T, Func, P >
  • ~PixByPix5to1() : Vtl::Plf::PixByPix5to1< T, Func, P >
  • ~Port() : OutPortNoPostProc< Real_t > , Vtl::Plf::Port , Iter_Line , InPort< T >
  • ~ProcessMatrix() : ProcessMatrix
  • ~ProgressCounter() : ProgressCounter
  • ~PtrArrayDel() : PtrArrayDel< T >
  • ~PtrDelete() : PtrDelete< T >
  • ~ReadPipe() : ReadPipe
  • ~Resample() : Vtl::Plf::Resample< T, P > , Resample< float >
  • ~SaveFormat() : Gen::Data::SaveFormat
  • ~SeparableConv2D() : Vtl::Plf::SeparableConv2D< T, P >
  • ~Sharpen() : ToBounds< float > , Vtl::Plf::Sharpen< T, P >
  • ~SrcAImage() : SrcAImage< Real_t, AImageMem8 > , SrcAImage< unsigned, Img > , SrcAImage< Real_t, T > , SrcAImage< float, Img > , SrcAImage< Real_t, Img > , Vtl::Plf::SrcAImage< T, I, P >
  • ~SrcAImageRgb() : Vtl::Plf::SrcAImageRgb< T, I, P >
  • ~SrcArray() : SrcAImage< Real_t, Img > , SrcArray< Real_t, Real_t > , Vtl::Plf::SrcArray< T, I, P > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , SrcAImage< float, Img > , SrcAImage< Real_t, AImageMem8 >
  • ~StatDiff() : ToBounds< float > , Vtl::Plf::StatDiff< T, P >
  • ~Storage() : Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >
  • ~StripBuffer() : Vtl::Plf::StripBuffer< T >
  • ~T_ImagesSet() : Basics3D::T_ImagesSet< Image > , T_ImagesSet< AImageMem8 >
  • ~Table() : Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >
  • ~Tiff8Read() : IFF::Tiff8Read
  • ~Tiff8Write() : IFF::Tiff8Write
  • ~TiffReadIFD() : IFF::TiffReadIFD
  • ~TiffWriteIFD() : IFF::TiffWriteIFD
  • ~tplAImageFragment() : tplAImageFragment< ImgT >
  • ~tplAImageReference() : tplAImageReference< ImgT >
  • ~Traits() : Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D > , Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D > , Direct< float, int > , Direct_Ref< float, int >
  • ~Traits_common() : Direct< float, int > , Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > , Direct_Ref< float, int >
  • ~TrigRecurrence() : TrigRecurrence< T, double, I > , Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >
  • ~VirtDib() : VirtDib
  • ~WritePipe() : WritePipe
  • ~Xercesc() : YXML::Xercesc
  • ~XMLdoc() : YXML::XMLdoc
  • ~YFile() : YFile
  • ~YFileRead() : YFileRead
  • ~YFileWrite() : YFileWrite
  • ~YImageFrame() : YImageFrame
  • ~YSmallAllocLtd() : YSmallAllocLtd
  • ~YTArray() : YTArray< T >
  • ~YTDynArray() : YTDynArray< T >
  • ~YTHistListTag() : YTHistListTag< T >
  • ~ZoomFactor() : ZoomFactor


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- a -

  • a : YXML::IsAttr< T, Cmp > , YXML::IsAttrIn< T >
  • A : Vtl::Meta::det_poly_coef< Matrix, N > , Affine< T >
  • a : Vtl::Meta::EnumTraits::IsEnum
  • A : StatDiff< T > , Dlt< value_type > , Vtl::ImAlg::Transf::Affine< T >
  • a() : Vtl::Meta::det< Matrix >
  • A : Vtl::ImAlg::Model::BaseAffine< T > , Vtl::Meta::det< Matrix >
  • a : Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
  • A : Vtl::ImAlg::Model::Homography< T > , Vtl::Plf::F31::StatDiff< T >
  • a
: Basics3D::g
, Basics3D::test
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • A : Basics3D::Structure::Dlt< T > , Vtl::Plf::F31::StatDiffThresh< T >
  • a : Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
  • a0 : Vtl::ImAlg::WndFun::common_Trig< T, D, K >
  • a1 : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > , FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 0 > , Vtl::ImAlg::Conv::FastGaussConvolve< T, D > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , FastGaussConvolve< float, 3 >
  • a2 : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > , FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 0 > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , FastGaussConvolve< float, 3 > , Vtl::ImAlg::Conv::FastGaussConvolve< T, D >
  • a3 : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > , FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 0 > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , Vtl::ImAlg::Conv::FastGaussConvolve< T, D > , FastGaussConvolve< float, 3 >
  • ab() : Vtl::Meta::det_poly_coef< Matrix, N >
  • ab_selector() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • acceptInputParameters() : ImageTransformImpl
  • Add() : ImageContainer< ImgType > , T_Points2DSet< C_Point2D > , Container< Real_t > , YTHistList< T > , T_Points2DSet< Point > , InPortComb< T > , Vtl::ImAlg::Registration::Container< Real_t >
  • add() : DistributionMatrix , ImageVectorT< Base, Bit8, Bit16 > , ImageProxyVector
  • Add()
: Vtl::Plf::InPortComb< T >
, Basics3D::T_Points2DSet< Point >
  • add_del_lines_to_gist()
: Vtl::Plf::OLSI::Gistogramm< T >
, Vtl::Plf::OLSI::Gistogramm2< T >
  • AddPort() : GammaCorMult< float > , SrcAImage< Real_t, Img > , SrcArray< Real_t, Real_t > , SrcAImage< Real_t, Img > , Canny< float > , EnvProc1to1< Real_t, Func, PostThresh > , Canny< float > , SrcAImage< Real_t, AImageMem8 > , DstArray< Real_t, Real_t > , SrcAImage< Real_t, AImageMem8 > , GammaCor< float > , SrcAImage< Real_t, AImageMem8 > , Y< float > , DiZenzo< float > , GammaCor< float > , Y< float > , DstContainer< Real_t, Container_t > , DiZenzo< float > , SrcAImage< Real_t, Img > , EnvProc1to1< Real_t, Func, PostThresh > , GammaCor< float > , SrcArray< Real_t, Real_t > , SrcAImage< Real_t, T > , BiLateral< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , SqrtOfSumSqr< float > , ToBounds< float > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , ConvolveHorz< float > , DstAImage< float, Img > , Resample< float > , AverageGauss< float > , Average< float > , ToBounds< float > , MeanAndDisp< float > , ToBounds< float > , Mult< float > , GammaCorMult< float > , BiLateral< float > , GradientModul< float > , GammaCor< float > , Vtl::Plf::FilterBase , GammaCor< float > , Vtl::Plf::FilterBase , Y< float > , Vtl::Plf::FilterElementary , GammaCor< float > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , GammaCor< float > , HarrisNMS< float > , ConvolveHorz< float > , ConvolveVert< float > , DstContainer< Real_t, Container_t > , GammaCorMult< float > , Mult< float > , SqrtOfSumSqr< float >
  • Adj : Vtl::Plf::Impl::Node
  • Adj_Next : Vtl::Plf::Impl::Node
  • Adj_Prev : Vtl::Plf::Impl::Node
  • AdjPrev : Vtl::Plf::Impl::Node
  • AErrorStatusBase() : AErrorStatusBase
  • Affine() : Affine< T > , Vtl::ImAlg::Transf::Affine< T > , Affine< T >
  • AfterInsert() : OFlow< Model, AllocStrategy > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > , Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >
  • AImage() : AImage
  • AImageMem16() : AImageMem16
  • AImageMem8() : AImageMem8
  • AImageMemFloat() : AImageMemFloat
  • AImageMemRgb16() : AImageMemRgb16
  • AImageMemRgb8() : AImageMemRgb8
  • Aincr : Line< SetPixelFunctor > , Vtl::ImAlg::Bres::Line< F >
  • allocator_ : DistributionMatrix
  • alpha : StatDiff< T > , Vtl::Plf::F31::StatDiffThresh< T > , Vtl::ImAlg::WndFun::Kaiser< T, D > , Vtl::Plf::F31::StatDiff< T > , Vtl::Plf::F21::Sharpen< T > , Sharpen< T >
  • amp_
: ReflectHalfToOther< 2, Real_t, true >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >
, Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >
, Hartley2PhaseAmpDown< 2, Real_t >
  • AmpPhase2ReIm() : FFT_2D
  • angle_shift_specif() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • Append() : YTDynArray< T >
  • AppendChild() : YXML::DNode
  • Apply()
: Basics3D::SolveEq
, Basics3D::C_Transform
, Basics3D::C_AbsDifference
, Basics3D::C_DrawEpipolarLines
  • ApplyRansac()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
  • areIntersecting() : LineFun
  • arg_type : Hamming< float, 0 > , Vtl::ImAlg::WndFun::Kaiser< T, D > , Hamming< float, 4 > , Vtl::ImAlg::WndFun::common_Trig< T, D, K > , Hann< float, 3 > , Hamming< float, 1 > , Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > , Hann< float, 4 > , Hamming< float, 3 > , Hamming< float, 2 > , Hann< float, 1 > , Hann< float, 2 > , Vtl::ImAlg::WndFun::Sinc< T, 0 > , Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > , Vtl::ImAlg::WndFun::DoG< T, D > , Vtl::ImAlg::WndFun::Bartlett< T, D > , Hann< float, 0 > , Direct_Ref< float, int >
  • array : YTHistList< T >
  • AsimptValue() : Basics3D::C_StructureComputation
  • Asquared : Vtl::ImAlg::Bres::Circle< T > , Vtl::ImAlg::Bres::EllipseH< F >
  • Assign() : Vtl::Plf::FiltersSystem
  • at() : DistributionMatrix , CoordArray2D , DistributionMatrix , ProcessMatrix , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , InterpBilinear< Pixel > , InterpBilinear< Real_t > , InterpBilinear< Img::Pixel >
  • AtInfinity : Basics3D::PointStatus
  • attrib : YXML::DNode::AttrRef , WiNode::AttrRef
  • ATTRIBUTE : YXML::DNode
  • AttrRef()
: YXML::DNode::AttrRef
, WiNode::AttrRef
, YXML::DNode::AttrRef
, WiNode::AttrRef
, YXML::DNode::AttrRef
  • aver : AverageGauss< float > , Vtl::Plf::AverageGauss< T, P >
  • Average() : Average< float > , Vtl::Plf::Average< T, P > , Average< float > , Vtl::Plf::Average< T, P >
  • AverageGauss() : AverageGauss< float > , Vtl::Plf::AverageGauss< T, P > , AverageGauss< float > , Vtl::Plf::AverageGauss< T, P > , AverageGauss< float >
  • avg_xx : Vtl::Plf::HarrisLaplace< T, Func, P > , Vtl::Plf::Detect< T, Func, P > , GammaCor< float >
  • avg_xy : GammaCor< float > , Vtl::Plf::HarrisLaplace< T, Func, P > , GammaCor< float > , Vtl::Plf::Detect< T, Func, P >
  • avg_yy : GammaCor< float > , Vtl::Plf::Detect< T, Func, P > , GammaCor< float > , Vtl::Plf::HarrisLaplace< T, Func, P >


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- b -

  • b : AImage::Rgb
  • B : Vtl::Meta::det_poly_coef< Matrix, N >
  • b
: Vtl::Meta::EnumTraits::IsEnum
, Hanina::p33< T, 0, 1 >
, Hanina::p33< T, 1, 2 >
, Hanina::p33< T, 0, 2 >
  • B : FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 0 > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , FastGaussConvolve< float, 3 >
  • b
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
  • B
: Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >
  • b : Offset< T > , Affine< T >
  • B
: Vtl::ImAlg::Conv::FastGaussConvolve< T, D >
, Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >
, Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >
  • b
: Vtl::ImAlg::Transf::Offset< T >
, AImage::Bgr
, IFF::RgbQuad
, Vtl::ImAlg::Transf::Affine< T >
, Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::BaseAffine< T >
, Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I >
, Vtl::Plf::SrcAImageRgb< T, I, P >
, Vtl::Img::Rgb< T >
, Vtl::Plf::Impl::DelayAdjuster
, Vtl::Plf::FiltersSystem::EdgeLabel_DelayB
, Basics3D::g
, Basics3D::test
, Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • B2 : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >
  • B_f()
: Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
  • BackEdges() : Vtl::Plf::Impl::GraphBuilder
  • backgroundColor_ : ImageTransformImpl
  • BadReproj : Basics3D::PointStatus
  • Bands() : Vtl::Meta::Layout< T, IList > , Layout< T, IList >
  • bands_stride : Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I > , stride
  • BandsIterator
: Vtl::Img::Iterator_ND_spec< T_Layout, false, false >
, Vtl::Img::BuildIter1DList< T_Layout >
, Vtl::Img::Iterator_ND_spec< T_Layout, false, true >
  • Bartlett() : Vtl::ImAlg::WndFun::Bartlett< T, D >
  • Base
: Vtl::Meta::Layout< T, IList >
, Layout< T, IList >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, Vtl::ImAlg::Model::Base< T >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • base() : ImageTransformImpl
  • Base() : Base< T, Kernel::KT_Conv >
  • base() : ImageTransform
  • Base()
: Base< T, Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • base : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >
  • base_offset : IFF::BmpWrite , IFF::BmpRead
  • BaseAffine() : Vtl::ImAlg::Model::BaseAffine< T >
  • BaseConnectedTo() : InPort< T > , Vtl::Plf::InPortBase , Vtl::Plf::InPort< T >
  • bbstride : Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >
  • BCDdate2date() : YDtTm
  • before : Vtl::Plf::Extent
  • begHour : IFF::OzFile::Header
  • begin()
: OutPortNoPostProc< Real_t >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Container< Real_t >
, Vtl::ImAlg::Registration::Container< Real_t >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, Iter_Line
, Base< T, Kernel::KT_Conv >
, CoordArray2D
, ImageProxyVector
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Vtl::Plf::OutPortNoPostProc< T >
  • begin_internal()
: FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Base< T, Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • begin_line_insert() : Vtl::Plf::StripBuffer< T >
  • beginUpdate() : OutPortNoPostProc< Real_t > , Iter_Line , Vtl::Plf::OutPortNoPostProc< T >
  • begMinutes : IFF::OzFile::Header
  • begSecond1000 : IFF::OzFile::Header
  • Behind : Basics3D::PointStatus
  • bessi() : Vtl::NumAlg::Spf::bess
  • bessj() : Vtl::NumAlg::Spf::bess
  • bessk() : Vtl::NumAlg::Spf::bess
  • bessy() : Vtl::NumAlg::Spf::bess
  • beta() : Vtl::NumAlg::Spf::Gamma
  • Between() : YDataTime
  • bfOffBits : IFF::BMP_BitMapFileHeader
  • bfReserved1 : IFF::BMP_BitMapFileHeader
  • bfReserved2 : IFF::BMP_BitMapFileHeader
  • bfSize : IFF::BMP_BitMapFileHeader
  • bfType : IFF::BMP_BitMapFileHeader
  • bi : BiLateral< float > , Vtl::Plf::BiLateral< T, P >
  • bias : Vtl::Plf::F11::Bias< T >
  • Bias() : Vtl::Plf::F11::Bias< T >
  • biBitCount : IFF::BMP_BitMapInfoHeader
  • biClrImportant : IFF::BMP_BitMapInfoHeader
  • biClrUsed : IFF::BMP_BitMapInfoHeader
  • bico() : Vtl::NumAlg::Spf::Gamma
  • biCompression : IFF::BMP_BitMapInfoHeader
  • biHeight : IFF::BMP_BitMapInfoHeader
  • BiLateral() : BiLateral< float > , Vtl::Plf::BiLateral< T, P >
  • BiLateralSmooth() : Vtl::Plf::Fpie::BiLateralSmooth< T > , BiLateralSmooth< T >
  • Bincr : Vtl::ImAlg::Bres::Line< F > , Line< SetPixelFunctor >
  • biPlanes : IFF::BMP_BitMapInfoHeader
  • biSize : IFF::BMP_BitMapInfoHeader
  • biSizeImage : IFF::BMP_BitMapInfoHeader
  • Bit16Vector : ImageVectorT< Base, Bit8, Bit16 >
  • Bit8Vector : ImageVectorT< Base, Bit8, Bit16 >
  • Bits() : tplAImageReference< ImgT > , tplAImageFragment< ImgT > , ImageMem16Stuff , IFF::BmpRead , IFF::BmpWrite , ImageMem8 , ImageMem16 , ImageMemFloat , ImageMemRgb8 , IFF::OzFile
  • bits : VirtDib::Inf
  • Bits()
: IFF::PBMfile
, IFF::TiffReadIFD
  • bits : ImageMem8 , Vtl::Meta::EnumTraits
  • Bits() : Vtl::Img::ImageBase< P, planes, interleave >
  • bits : ImageMem16 , ImageMemFloat , ImageTransformImpl , ImageMemRgb8 , ImageMem16Stuff
  • Bits : IFF::OzFile::Header
  • bits : IFF::PBMfile
  • Bits() : ImageResample , ImageRotate
  • bits : IFF::TiffWriteIFD , ImageTransform , ImageVectorT< Base, Bit8, Bit16 > , AImageProxy , ImageProxy< ImageT > , ImageProxyConst< ImageT > , IFF::TiffReadIFD , ImageProxyVector
  • Bits() : MSlidingEqualization
  • bits : AImage::Info
  • Bits() : ImageResize , AImage
  • bits_ : ImageVectorT< Base, Bit8, Bit16 > , ImageProxyVector
  • bitsPerSample : Vtl::Img::ImageInfo
  • biWidth : IFF::BMP_BitMapInfoHeader
  • biXPelsPerMeter : IFF::BMP_BitMapInfoHeader
  • biYPelsPerMeter : IFF::BMP_BitMapInfoHeader
  • Blackman() : Vtl::ImAlg::WndFun::Blackman< T, D >
  • BlackmanHarris() : Vtl::ImAlg::WndFun::BlackmanHarris< T, D >
  • BlackmanNuttall() : Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >
  • blank : InterpBilinear< Real_t > , InterpBilinear< Img::Pixel > , InterpBilinear< Pixel > , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >
  • block() : Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >
  • block_size : YTArray< T >
  • bmiHeaderInit() : VirtDib
  • BmpRead() : IFF::BmpRead
  • BmpWrite() : IFF::BmpWrite
  • BMT_GRAY8 : VirtDib
  • BMT_PAL8 : VirtDib
  • BMT_RGB8 : VirtDib
  • border() : InterpBilinear< Pixel > , InterpBilinear< Img::Pixel > , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , InterpBilinear< Real_t >
  • bottom() : YRect< T > , YRect< int > , YRect< T >
  • BottomRight : YRect< T > , YRect< int >
  • bres() : Vtl::ImAlg::Bres::Line< F > , Line< SetPixelFunctor >
  • Bsquared : Vtl::ImAlg::Bres::EllipseH< F > , Vtl::ImAlg::Bres::Circle< T >
  • Bt : MSlidingEqualization
  • BT_BILEVEL : IFF::BmpWrite , IFF::BmpRead
  • BT_INDEX : IFF::BmpWrite , IFF::BmpRead
  • BT_RGB : IFF::BmpWrite , IFF::BmpRead
  • buf : YImageFrame , ConvInplace< float, K3 > , ConvInplace< float, K2 > , ConvInplace< float, K0 > , Vtl::ImAlg::Conv::CyclicConv< T, K > , CyclicConv< T, K > , Vtl::ImAlg::Conv::CyclicConvInplace< T, K > , CyclicConvInplace< T, K2 > , Vtl::ImAlg::Conv::Conv< T, K > , Conv< T, K > , CyclicConv< T, K2 > , ConvInplace< float, K1 > , CyclicConvInplace< T, K1 > , Conv< T, K1 > , ConvInplace< T, K > , ConvInplace< T, K1 > , Conv< T, K2 > , ConvInplace< float, K0 > , ConvInplace< float, K4 > , CyclicConvInplace< float, K > , Conv< float, K > , ConvInplace< float, K > , CyclicConv< T, K1 > , CyclicConvInplace< T, K > , ConvInplace< T, K2 > , Vtl::Img::ImageDataLayoutHolder
  • buf_alloc : IFF::Tiff8Read
  • buffer : ReadString , OutPortNoPostProc< Real_t > , Iter_Line
  • Buffer() : Vtl::ImAlg::Conv::Impl::Buffer< T, K >
  • buffer : Vtl::Plf::OutPortNoPostProc< T >
  • BufType : Iter_Line , OutPortNoPostProc< Real_t > , Vtl::Plf::InPort< T > , Vtl::Plf::InPortComb< T > , Vtl::Plf::OutPortNoPostProc< T > , InPortComb< T > , InPort< T >
  • build()
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< 0, TT >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
  • Build() : VirtDib
  • build() : FKern< float, Vtl::Plf::Kernel::KT_Conv >
  • Build() : VirtDib
  • build()
: FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< n, TT >
  • Build() : VirtDib
  • build()
: FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< 0, TT >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< n, TT >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Vtl::Plf::Impl::GraphBuilder
, Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, FKern< float >
, Vtl::Plf::Impl::GraphBuilder
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< 0, TT >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< n, TT >
  • build_3D_hess() : Hanina::FillingHessianMatrix3x3
  • build_3D_hess_projection() : Hanina::FillingHessianMatrix3x3
  • build_A() : Basics3D::Structure::Dlt< T > , Dlt< value_type >
  • build_E() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • build_equation_coef() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • build_expression() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • build_Functional() : Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type >
  • build_Functional_derivative() : Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type >
  • build_Functional_derivative_d_focus_sqr() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • build_H() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • Build_K() : Basics3D::FmTools< T >
  • build_KKT() : Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type >
  • build_KKT_d_focus_sqr() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • Build_P() : Basics3D::FmTools< T >
  • build_PQPT() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • build_PQPT_KKT() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • build_Qoo() : Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type >
  • build_Qoo_d_focus_sqr() : Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • build_Qoo_d_p() : Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • Build_texture() : TriResult
  • build_W() : CameraPoseFromEssential< value_type > , Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type > , Basics3D::Fm2Essential::CameraPoseFromEssential< T >
  • buildAdj() : Vtl::Plf::Impl::Node
  • BuildB() : Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >
  • BuildEnvBlock() : childPipe
  • BuildHB() : Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >
  • BuildModelFaces() : Basics3D::C_StructureComputation
  • BuildModelPoints() : Basics3D::C_StructureComputation
  • BuildViaDecimation() : VirtDib
  • BuildVRML() : TriResult
  • butterfly_fft() : TrigRecurrence< T, double, I > , Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >
  • butterfly_Hartley() : TrigRecurrence< T, double, I > , Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >
  • byte_order : IFF::TIFF_Header
  • BytePtr : YSmallAllocLtd
  • bytes_per_row : VirtDib::Inf , VirtDib , IFF::BmpRead , IFF::BmpWrite
  • BytesPerRow() : VirtDib


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- c -

  • c
: Vtl::ImAlg::WndFun::Bartlett< T, D >
, Vtl::ImAlg::WndFun::Sinc< T, 0 >
, Vtl::ImAlg::WndFun::Kaiser< T, D >
, Vtl::ImAlg::WndFun::common_Trig< T, D, K >
, Vtl::Plf::F11::Threshold< T, Comp >
, Basics3D::g
  • C_AbsDifference() : Basics3D::C_AbsDifference
  • C_Combination() : Basics3D::C_Combination
  • C_DrawEpipolarLines() : Basics3D::C_DrawEpipolarLines
  • C_Point2D() : Basics3D::C_Point2D
  • C_Point2DParam() : Basics3D::C_Point2DParam
  • C_Points2DParamSet() : Basics3D::C_Points2DParamSet
  • C_StructureComputation() : Basics3D::C_StructureComputation
  • C_Transform() : Basics3D::C_Transform
  • C_Triangulation() : Basics3D::C_Triangulation
  • calc_2D_eigmax() : Hanina::FillingHessianMatrix3x3
  • calc_blk_size() : YTArray< T >
  • calc_deriv() : Hanina::Hessian3D< T >
  • calc_deriv_from() : Hanina::Hessian3D< T >
  • calc_grad_from() : Hanina::Hessian3D< T >
  • calcRequiredExtent() : Vtl::Plf::OutPortBase , OutPortNoPostProc< Real_t > , Iter_Line
  • CalcSize() : FFT_2D
  • calculateInputPolygon() : ImageTransformMatrixImpl
  • calculateOutputCoords() : ImageTransformImpl
  • calculateOutputData() : ImageTransformCellImpl , ImageTransformImpl , ImageTransformMatrixImpl
  • CameraPoseFromEssential() : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type >
  • canForward() : ATransformFunction
  • canICStoRCS() : ImageTransformImpl
  • canMove() : Vtl::Plf::Strip
  • Canny() : Students::Curve::EdgeDetect< T > , Canny< float > , Vtl::Plf::Canny< T, P >
  • CannyNMS() : CannyNMS< float > , CannyNMS< T > , Vtl::Plf::Fpie::CannyNMS< T >
  • CannyNMS_2() : Vtl::Plf::Fpie::CannyNMS_2< T >
  • canPICStoICS() : ImageTransformImpl
  • canRCStoICS() : ImageTransformImpl
  • canReverse() : ATransformFunction
  • Cb_f() : Vtl::ImAlg::C::YCbCr
  • cdiv() : Vtl::NumAlg::Lin::eigen
  • center() : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • Center() : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • center() : FKern< float, Vtl::Plf::Kernel::KT_Conv >
  • Center() : FKern< float, Vtl::Plf::Kernel::KT_Conv >
  • center() : FKern< float >
  • Center() : FKern< float >
  • center() : Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > , Hamming< float, 0 > , Vtl::ImAlg::WndFun::Bartlett< T, D > , Hamming< float, 1 > , Hamming< float, 2 > , Hamming< float, 3 > , Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > , Hamming< float, 4 > , Vtl::ImAlg::WndFun::DoG< T, D > , Hann< float, 0 > , Vtl::ImAlg::WndFun::Kaiser< T, D > , Vtl::ImAlg::WndFun::common_Trig< T, D, K > , Hann< float, 1 > , Hann< float, 2 > , Hann< float, 3 > , Hann< float, 4 > , Direct_Ref< float, int > , FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • Center() : FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • center() : FKern< float, Vtl::Plf::Kernel::KT_Win >
  • Center() : FKern< float, Vtl::Plf::Kernel::KT_Win >
  • center()
: Vtl::ImAlg::WndFun::Sinc< T, 0 >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • Center()
: FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • center()
: FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Base< T, Kernel::KT_Conv >
  • Center() : Base< T, Kernel::KT_Conv >
  • center_internal()
: Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Base< T, Kernel::KT_Conv >
  • Chan : IFF::OzFile::Header
  • ChangeBits() : AImage , ImageMem8 , ImageMem16
  • ChangeHeight() : AImage , tplAImageReference< ImgT >
  • check() : Vtl::Plf::Extent , Vtl::Plf::ImageRef< T > , Hanina::ZeroCross< T > , FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 0 > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , FastGaussConvolve< float, 3 > , ImageRef< int > , Vtl::ImAlg::Conv::FastGaussConvolve< T, D > , ImageRef< T >
  • Check_4_grad_sign_change() : Hanina::Check_4_grad_sign_change< T > , Check_4_grad_sign_change< T >
  • check_idl_propere() : Vtl::Img::ImageBase< P, planes, interleave >
  • check_img_info_propere()
: Vtl::Img::Image< P, planes, interleave >
, Vtl::Img::ImageBase< P, planes, interleave >
  • check_img_interleave() : Vtl::Img::ImageBase< P, planes, interleave >
  • checkCompatible() : Vtl::Plf::Extent
  • checkInGraph() : Vtl::Plf::Impl::GraphBuilder
  • checkInputParameters() : ImageTransformImpl
  • ChekImages() : FFT_2D
  • childPipe : WritePipe , ReadPipe , childPipe
  • Circle() : Vtl::ImAlg::Bres::Circle< T >
  • ClalcF1F2conj()
: Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >
, Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T >
  • ClassName() : AImageMem8 , AImageMemFloat , AImageMem16 , AImageMemRgb16 , tplAImageReference< ImgT > , ImageFragment8 , ImageFragment16 , AImageMemRgb8 , ImageFragmentRgb8 , ImageMem16Stuff , ImageMem8 , ImageMem16 , ImageMemFloat , ImageMemRgb8 , ErrorStatusBase , AErrorStatusBase , AImage
  • ClassType : MSlidingEqualization
  • Clear() : AImage , Vtl::Plf::InPortComb< T > , tplAImageReference< ImgT >
  • clear() : PtrDelete< T >
  • Clear() : Basics3D::T_Points2DSet< Point > , ImageMem16Stuff , ImageMem8 , ImageMem16 , ImageMemFloat , ImageMemRgb8
  • clear() : DistributionMatrix , CoverageMatrix , ProcessMatrix
  • Clear() : T_Points2DSet< C_Point2D >
  • clear()
: YXML::DNode::IsCond
, YXML::DNode::IsOR
, CoordArray2D
  • Clear() : InPortComb< T > , T_Points2DSet< Point >
  • clear() : PtrArrayDel< T > , YXML::DNode::IsAND
  • ClearMeans()
: Basics3D::C_Points2DParamSet
, Basics3D::T_Points2DSet< Point >
, T_Points2DSet< C_Point2D >
, T_Points2DSet< Point >
  • clone()
: YXML::IsElem
, YXML::IsAttrIn< T >
, YXML::DNode::Is
, YXML::DNode::IsCond
, YXML::DNode::IsOR
, YXML::DNode::IsAND
, ATransformFunction
, AImageProxy
, ImageProxyConst< ImageT >
, YXML::IsAttr< T, Cmp >
, YXML::IsName< Cmp >
, ImageProxy< ImageT >
  • close()
: IFF::FloatImageFile
, IFF::OzFile
, IFF::PBMfile
, WritePipe
, ReadPipe
  • Close() : childPipe , MSlidingEqualization , DebugBase , DebugToFile
  • ClosestToOriginPoint() : Basics3D::C_StructureComputation
  • CloseThis() : MSlidingEqualization
  • cls : ErrorStatusBase
  • cls_this : ErrorStatusBase
  • Cluster1D() : Cluster1D< T, DatumType >
  • Cluster2D() : Cluster2D< T, DatumType >
  • cm : Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I > , Vtl::ImAlg::WndFun::common_Trig< T, D, K > , cos_Member< float, 0, 4, 1 > , cos_Member< float, 1, 4, 1 > , cos_Member< float, 2, 4, 1 > , cos_Member< float, 3, 4, 1 >
  • coef : Vtl::Meta::det_poly_coef< Matrix, N >
  • cof() : Vtl::ImAlg::WndFun::FlatTop< T, D > , Vtl::Plf::FilterResampleVert< T, P > , Hamming< float, 0 > , Hamming< float, 1 > , Hamming< float, 2 > , Hamming< float, 3 > , Hamming< float, 4 > , Hann< float, 0 > , Hann< float, 1 > , Hann< float, 2 > , Hann< float, 3 > , Hann< float, 4 > , Vtl::ImAlg::WndFun::Hann< T, D > , Vtl::ImAlg::WndFun::Hamming< T, D > , Vtl::ImAlg::WndFun::Blackman< T, D > , Vtl::ImAlg::WndFun::BlackmanNuttall< T, D > , Vtl::ImAlg::WndFun::BlackmanHarris< T, D > , Vtl::ImAlg::WndFun::Nuttall< T, D >
  • col() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • collectCell() : DistributionMatrix
  • collectRaduis() : DistributionMatrix
  • color_modul_eigvec : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • ColorC() : Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >
  • ColorPlanes : Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > , OFlow< Model, AllocStrategy >
  • ColorSystem
: Vtl::ImAlg::C::HSV::toRGB< T, Iter >
, Vtl::ImAlg::C::XYZ::Z< T >
, Vtl::ImAlg::C::EElEll::Ell< T >
, Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::R< T >
, Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter >
, Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter >
, Vtl::ImAlg::C::XYZ::R< T >
, Vtl::ImAlg::C::EElEll::G< T >
, Vtl::ImAlg::C::IV1V2::V2< T >
, Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::B< T >
, Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::XYZ::G< T >
, Vtl::ImAlg::C::IV1V2::G< T >
, Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter >
, Vtl::ImAlg::C::XYZ::B< T >
, Vtl::ImAlg::C::YIQ::Y< T >
, Vtl::ImAlg::C::YIQ::I< T >
, Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YIQ::Q< T >
, Vtl::ImAlg::C::YIQ::R< T >
, Vtl::ImAlg::C::YIQ::G< T >
, Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YCbCr::Y< T >
, Vtl::ImAlg::C::YIQ::B< T >
, Vtl::ImAlg::C::YCbCr::Cb< T >
, Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YUV::Y< T >
, Vtl::ImAlg::C::YUV::U< T >
, Vtl::ImAlg::C::YUV::V< T >
, Vtl::ImAlg::C::YCbCr::Cr< T >
, Vtl::ImAlg::C::YUV::R< T >
, Vtl::ImAlg::C::YCbCr::R< T >
, Vtl::ImAlg::C::YUV::G< T >
, Vtl::ImAlg::C::YUV::B< T >
, Vtl::ImAlg::C::YCbCr::G< T >
, Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YCbCr::B< T >
, Vtl::ImAlg::C::IV1V2::B< T >
, Vtl::ImAlg::C::IV1V2::I< T >
, Vtl::ImAlg::C::IV1V2::V1< T >
, fromRGB< T, Iter >
, Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::XYZ::X< T >
, Vtl::ImAlg::C::IV1V2::R< T >
, Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::E< T >
, Vtl::ImAlg::C::XYZ::Y< T >
, Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::El< T >
, Vtl::ImAlg::C::HSV::fromRGB< T, Iter >
  • ColumnIteratorFast() : Vtl::Plf::ColumnIteratorFast< T > , ColumnIteratorFast< T >
  • Comb() : Convert< uint8_t > , Convert2ByteBounded , Convert< uint8_t > , Lin< float > , Convert2ByteBounded , Convert< uint8_t > , Lin< float > , Abs< float > , Convert< uint8_t > , GammaCorMult< T > P , Abs< float > , Vtl::Plf::F11::Comb< T, F1, F2 > , GammaCorMult< T > P , Convert< uint8_t > , Vtl::Plf::F11::Comb< T, F1, F2 >
  • Comb_ridge() : Comb_ridge< T, uint8_t > , Hanina::Comb_ridge< T1, T2 >
  • Combine() : T_Points2DSet< Point > , Basics3D::T_Points2DSet< Point > , T_Points2DSet< C_Point2D >
  • COMMENT : YXML::DNode
  • common_Trig() : Hamming< float, 2 > , Hann< float, 0 > , Hann< float, 2 > , Hann< float, 3 > , Hamming< float, 0 > , Hamming< float, 1 > , Hamming< float, 3 > , Hamming< float, 4 > , Hann< float, 1 > , Vtl::ImAlg::WndFun::common_Trig< T, D, K > , Hann< float, 4 >
  • comp()
: Vtl::Meta::det_poly_coef< Matrix, N >
, Vtl::NumAlg::Lin::svd
, Vtl::Meta::det_poly_coef< Matrix, N >
  • Comp3D() : Basics3D::Structure::Comp3D< T > , Comp3D< value_type >
  • ComputeMatrices() : Basics3D::T_Model< Operations > , T_Model< Operations >
  • computeZoom() : ImageTransformMatrixImpl
  • cond : YXML::DNode::IsCond
  • connected_to : Vtl::Plf::OutPortBase
  • ConnectedTo() : Vtl::Plf::InPort< T > , InPort< T >
  • Connection() : Vtl::Plf::OutPortBase::Connection
  • ConnectTo() : Vtl::Plf::OutPortNoPostProc< T > , OutPortNoPostProc< Real_t > , Iter_Line
  • ConnectTo_() : Vtl::Plf::OutPortBase , OutPortNoPostProc< Real_t > , Iter_Line
  • const_band_stride : Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
  • const_Iter : Vtl::ImAlg::Registration::Container< Real_t > , Container< Real_t >
  • const_iterator
: FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Base< T, Kernel::KT_Conv >
, ImageProxyVector
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • const_pointer_type
: FKern< float, Vtl::Plf::Kernel::KT_Win >
, Base< T, Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • const_reference_type
: FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Base< T, Kernel::KT_Conv >
, FKern< float >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • constructor() : YFileRead , YFileWrite
  • Container() : Vtl::ImAlg::Registration::Container< Real_t >
  • container : Vtl::Plf::DstContainer< T, C, P >
  • Container() : Container< Real_t >
  • container : DstContainer< Real_t, Container_t >
  • Conv() : Conv< T, K > , ConvInplace< float, K2 > , ConvInplace< float, K0 > , ConvInplace< T, K1 > , Conv< T, K2 > , ConvInplace< float, K0 > , Conv< T, K1 > , Conv< float, K > , ConvInplace< float, K3 > , ConvInplace< float, K1 > , Vtl::ImAlg::Conv::Conv< T, K > , ConvInplace< float, K > , ConvInplace< T, K2 > , ConvInplace< float, K4 > , ConvInplace< T, K >
  • conv2D : Vtl::Plf::Average< T, P > , Vtl::ImAlg::Conv::Conv2D , Average< float >
  • conv2DInplace() : Vtl::ImAlg::Conv::Conv2D
  • conv_norm_alg : Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > , Direct_Ref< float, int > , Direct< float, int >
  • ConvertMult() : Vtl::Plf::F11::ConvertMult< T >
  • ConvInplace() : ConvInplace< T, K2 > , ConvInplace< float, K4 > , ConvInplace< T, K1 > , ConvInplace< float, K0 > , ConvInplace< float, K2 > , Vtl::ImAlg::Conv::ConvInplace< T, K > , ConvInplace< float, K0 > , ConvInplace< float, K1 > , ConvInplace< float, K3 > , ConvInplace< T, K > , ConvInplace< float, K >
  • ConvolveHorz() : ConvolveHorz< float > , Vtl::Plf::ConvolveHorz< T, P > , ConvolveHorz< float > , Vtl::Plf::ConvolveHorz< T, P >
  • ConvolveVert() : Vtl::Plf::ConvolveVert< T, P > , ConvolveVert< float >
  • CoordArray2D() : CoordArray2D
  • copy() : ReadString
  • copy_line() : Vtl::Plf::SrcAImageRgb< T, I, P >
  • CopyPalette() : AImage
  • corr : GammaCor< float > , Vtl::Plf::GradientCorr< T, P > , GammaCor< float > , Vtl::Plf::HarrisLaplace< T, Func, P > , GammaCor< float > , Vtl::Plf::Detect< T, Func, P > , GammaCor< float >
  • corr_ : PhaseCorr< Real_t > , Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >
  • Correct() : Basics3D::C_StructureComputation
  • CorrMatrix() : CorrMatrix< T, T & > , Vtl::Plf::F23::CorrMatrix< T, Iter > , CorrMatrix< T >
  • CorrMatrixAdd() : Vtl::Plf::F23::CorrMatrixAdd< T, Iter > , CorrMatrixAdd< T >
  • cos_Member() : cos_Member< float, 0, 4, 1 > , Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I > , cos_Member< float, 3, 4, 1 > , Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K > , cos_Member< float, 2, 4, 1 > , cos_Member< float, 1, 4, 1 >
  • cos_Member_base() : cos_Member< float, 3, 4, 1 > , Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I > , cos_Member< float, 0, 4, 1 > , cos_Member< float, 1, 4, 1 > , cos_Member< float, 2, 4, 1 >
  • CostFunction() : Basics3D::C_StructureComputation
  • count : YSmallAllocLtd , YTHistListTag< T >
  • Count() : YTHistList< T >
  • countImage() : ImageProxyVector
  • CountInliers() : Basics3D::T_Model< Operations > , T_Model< Operations >
  • countProxy() : ImageProxyVector
  • CoverageMatrix() : CoverageMatrix
  • coverageMatrix_ : ImageTransformMatrixFastImpl
  • Cr_f() : Vtl::ImAlg::C::YCbCr
  • Create() : tplAImageReference< ImgT > , AImage , ImageMem8 , ImageMem16 , Vtl::Img::ImageStorageStrategyNew< T > , ImageMemRgb8 , ImageMem16Stuff , YXML::XMLdoc , ImageMemFloat
  • CreateSystem()
: Basics3D::C_Triangulation
, Basics3D::AbsoluteDualQuadric
, Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
, Basics3D::C_FundamentalMatrix
  • cur : Vtl::Meta::EnumTraits::MaxEnum< true, i >
  • current() : ProgressCounter
  • Cyclic() : Vtl::ImAlg::Conv::Conv2D
  • CyclicConv() : Vtl::ImAlg::Conv::CyclicConv< T, K > , CyclicConv< T, K2 > , CyclicConv< T, K1 > , CyclicConv< T, K >
  • CyclicConvInplace() : CyclicConvInplace< T, K2 > , CyclicConvInplace< T, K > , CyclicConvInplace< float, K > , Vtl::ImAlg::Conv::CyclicConvInplace< T, K > , CyclicConvInplace< T, K1 >
  • CyclicInplace() : Vtl::ImAlg::Conv::Conv2D


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- d -

  • d : Vtl::ImAlg::Bres::Line< F > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , SliceIterConst< T, 0 > d stride_var , Line< SetPixelFunctor > , Vtl::ImAlg::Bres::Circle< T > , Vtl::ImAlg::Bres::EllipseH< F > , Vtl::Plf::Impl::DelayAdjuster , Vtl::ImAlg::Conv::SliceIter< T, stride > , Basics3D::g , SliceIter< T, stride > , SliceIter< T, stride > d stride , SliceIter< T, 0 > , SliceIter< T, 0 > d stride_var , SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , SliceIterConst< T, 0 >
  • data : VirtDib , Cluster1D< T, DatumType > , Cluster2D< T, DatumType > , InterpBilinear< Real_t > , SrcArray< Real_t, Real_t > , InterpBilinear< Img::Pixel > , YTArray< T > , InterpBilinear< Pixel > , Vtl::ImAlg::Conv::Impl::Buffer< T, K > , Base< T, Kernel::KT_Conv > , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , YTArray< T > , Vtl::Img::Iterator_1D< T, T_stride > , Vtl::Img::Iterator_1D< T, 0 > , Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > , Vtl::Img::ImageNDref< T_SList, T_Layout > , YSmallAllocLtd , ImageMem16Stuff , ImageMem8 , ImageMem16 , Vtl::Plf::SrcArray< T, I, P > , Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , ImageMemFloat , Hanina::Hessian3D< T >
  • data8 : ImageMemRgb8
  • data_ : Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > , Vtl::NumAlg::IntTransf::Utils::F::Test< T > , Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T > , Test< float >
  • data_in_ : Hartley2Modul< T > , Hartley2Re< T > , Hartley2Im< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >
  • data_offset : IFF::PBMfile
  • data_out_ : Hartley2Modul< T > , Hartley2Re< T > , Hartley2Im< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >
  • data_sz : VirtDib
  • DataString() : DataString
  • DataTime() : YDataTimeZone
  • date2BCDdate() : YDtTm , YDataTime
  • DatumR() : DatumR< T >
  • DatumXY() : DatumXY< T >
  • day : IFF::OzFile::Header
  • Day() : YDataTime
  • DaysInMonth() : YDtTm , YDataTime
  • DaysInYear() : YDtTm , YDataTime
  • debug_fname : DebugToFile
  • DebugBase() : DebugBase
  • DebugFileName() : DebugToFile
  • DebugToFile() : DebugToFile
  • decomp()
: Vtl::NumAlg::Lin::cholesky
, Vtl::NumAlg::Lin::eigen
, Vtl::NumAlg::Lin::QR
, Vtl::NumAlg::Lin::svd
  • DecomposeProjMatr() : Basics3D::C_AutoCalibration
  • Default : Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >
  • DefaultPaint() : VirtDib
  • DeInit() : YSmallAllocLtd
  • del_insert_pixel_from_histogram() : Vtl::Plf::OLSI::Gistogramm< T >
  • delay() : Vtl::Plf::StripBuffer< T >
  • DelayAdjuster() : Vtl::Plf::Impl::DelayAdjuster
  • Delete() : YXML::DNode , ImageContainer< ImgType >
  • den : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >
  • DeNoise()
: Vtl::Plf::F31::DeNoise< T >
, Vtl::Plf::DeNoise< T, P >
, DeNoise< T >
  • denoise : Vtl::Plf::DeNoise< T, P >
  • DeNoise() : ToBounds< float >
  • denoise : ToBounds< float >
  • denom() : Vtl::ImAlg::Model::Homography< T >
  • Denormalize() : T_Model< Operations > , Basics3D::T_Model< Operations >
  • Deriv : Vtl::ImAlg::Conv::FastGaussConvolve< T, D > , Basics3D::IFuncWithDer , Basics3D::g , Basics3D::test , Basics3D::Eq4Degree , Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > , FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 0 > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , FastGaussConvolve< float, 3 > , Direct_Ref< float, int > , Direct< float, int >
  • Derivative() : Basics3D::T_MistakeFunc< Operations > , T_MistakeFunc< MatrixType >
  • DerivativeOfMistFunc()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
  • DerivedClassName() : AErrorStatusBase , ErrorStatusBase
  • Destroy() : Vtl::Img::ImageStorageStrategyNew< T >
  • det() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km , Vtl::Meta::det< Matrix > , Vtl::Plf::Detect< T, Func, P > , GammaCor< float > , Vtl::Plf::HarrisLaplace< T, Func, P > , GammaCor< float >
  • det_poly_coef() : Vtl::Meta::det_poly_coef< Matrix, N >
  • Detect() : GammaCor< float > , Vtl::Plf::Detect< T, Func, P > , GammaCor< float >
  • DFS_Visit() : Vtl::Plf::Impl::GraphBuilder
  • dif() : Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >
  • DiffEigenVal() : Vtl::Plf::F31::DiffEigenVal< T > , DiffEigenVal< float >
  • dir_check() : Hanina::ScaleScan3x3< T > , ScaleScan3x3< T >
  • dir_check_max_X() : ScaleScan3x3< T > , Hanina::ScaleScan3x3< T >
  • dir_check_max_Y() : ScaleScan3x3< T > , Hanina::ScaleScan3x3< T >
  • dir_check_max_Z() : Hanina::ScaleScan3x3< T > , ScaleScan3x3< T >
  • Direct() : Direct< float, int > , Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >
  • Direct_Ref() : Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > , Direct_Ref< float, int >
  • DirectMinimization() : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • DirectSearchOfFocalLenth() : Basics3D::C_AutoCalibration
  • Disable()
: Basics3D::C_Points2DParamSet
, Basics3D::T_Points2DSet< Point >
, T_Points2DSet< C_Point2D >
, T_Points2DSet< Point >
  • Disp() : Vtl::Plf::F21::Disp< T > , Disp< T >
  • disp : Vtl::Plf::MeanAndDisp< T, P > , MeanAndDisp< float >
  • Dist()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
, Cluster1D< T, DatumType >
, Cluster2D< T, DatumType >
  • distance() : YPoint< T > , YPoint< double >
  • Distance() : Basics3D::C_Point2DParam
  • distance() : YPoint< T > , YPoint< int >
  • distEuclidean() : Basics3D::Structure::Dlt< T > , Dlt< value_type >
  • DistributionMatrix() : DistributionMatrix
  • distributionMatrix_ : ImageTransformMatrixImpl
  • DistThresh()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
  • Divide() : Cluster2D< T, DatumType > , Cluster1D< T, DatumType >
  • DiZenzo() : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P > , Vtl::Plf::F33::DiZenzo< T, Iter > , Students::Curve::EdgeDetect< T > , DiZenzo< float > , DiZenzo< T >
  • dll : DllModule
  • DllModule() : DllModule
  • dlt : Comp3D< value_type > , Basics3D::Structure::Comp3D< T >
  • Dlt() : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • DNode : YXML::DNode::AttrRef , YXML::DNode
  • do_1_step() : GammaCorMult< float > , HarrisNMS< float > , SrcAImage< Real_t, AImageMem8 > , SrcAImage< Real_t, T > , DstAImage< unsigned, Img > , Mult< float > , SrcArray< Real_t, Real_t > , SqrtOfSumSqr< float > , Vtl::Plf::FilterElementary , EnvProc1to1< Real_t, Func, PostThresh > , DstArray< Real_t, Real_t > , SrcAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , SrcAImage< Real_t, Img > , ConvolveHorz< float > , Y< float > , DstContainer< Real_t, Container_t > , ConvolveVert< float >
  • DoG() : Vtl::ImAlg::WndFun::DoG< T, D >
  • double_kernel
: FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float >
, Base< T, Kernel::KT_Conv >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • Draw()
: Vtl::ImAlg::Bres::Line< F >
, Line< SetPixelFunctor >
, Vtl::ImAlg::Bres::Circle< T >
, Vtl::ImAlg::Bres::EllipseH< F >
, Vtl::ImAlg::Bres::Draw< Pixel >
  • DrawDotted() : Vtl::ImAlg::Bres::DrawDotted< Pixel >
  • DrawGradient() : Vtl::ImAlg::Bres::DrawGradient< Pixel >
  • DrawLine() : Basics3D::C_DrawEpipolarLines
  • dst : Vtl::Plf::Impl::GraphBuilder
  • DstAImage() : DstAImage< float, Img > , DstAImage< unsigned, Img > , Vtl::Plf::DstAImage< T, I >
  • DstArray() : DstAImage< float, Img > , DstAImage< unsigned, Img > , DstArray< Real_t, Real_t > , Vtl::Plf::DstArray< T, Pixel >
  • DstContainer() : DstContainer< Real_t, Container_t > , Vtl::Plf::DstContainer< T, C, P >
  • dt : YDataTimeZone
  • dx : Vtl::ImAlg::Bres::Circle< T >
  • Dx()
: Vtl::ImAlg::Model::SkewYOffset< T >
, Vtl::ImAlg::Model::Homography< T >
  • dx : YImageFrame
  • Dx() : Vtl::ImAlg::Model::SkewXOffset< T >
  • dx : Vtl::ImAlg::Bres::EllipseH< F >
  • Dx()
: Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::Affine< T >
  • dx2 : YImageFrame
  • Dy()
: Vtl::ImAlg::Model::Affine< T >
, Vtl::ImAlg::Model::SkewYOffset< T >
  • dy : Vtl::ImAlg::Bres::Circle< T > , YImageFrame , Vtl::ImAlg::Bres::EllipseH< F >
  • Dy()
: Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Model::SkewXOffset< T >
  • dy2 : YImageFrame


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- e -

  • E : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type >
  • E5() : Vtl::ImAlg::WndFun::Laws5< T >::E5
  • E_f() : Vtl::ImAlg::C::EElEll
  • eachtime() : Dbg::Format::F
  • Edge() : Vtl::ImAlg::WndFun::Laws5< T > , L5
  • EdgeDetect() : Students::Curve::EdgeDetect< T >
  • edgeH_ : ImageTransformImpl
  • EdgeLabel_DelayB() : Vtl::Plf::FiltersSystem::EdgeLabel_DelayB
  • EdgeLabel_Unknown() : Vtl::Plf::FiltersSystem::EdgeLabel_Unknown
  • edgelist : triangulateio
  • edgemarkerlist : triangulateio
  • EdgeMethod : ImageTransform
  • edges
: Vtl::Plf::Impl::DelayAdjuster
, Vtl::Plf::FiltersSystem
, Vtl::Plf::Impl::GraphBuilder
  • edgeV_ : ImageTransformImpl
  • edt()
: Vtl::ImAlg::Edt::Meijster
, Vtl::ImAlg::Edt::EdtEdgeCoord
  • edt1D()
: Vtl::ImAlg::Edt::Meijster
, Vtl::ImAlg::Edt::EdtEdgeCoord
  • eig_curr : Hanina::Planes3< T >
  • eig_next : Hanina::Planes3< T >
  • eig_prev : Hanina::Planes3< T >
  • eigen : Hanina::FillingHessianMatrix3x3
  • eigen_val_vec_2D_proj_3D() : Hanina::FillingHessianMatrix3x3
  • eigen_val_vec_3D() : Hanina::FillingHessianMatrix3x3
  • EightPointsAlg() : Basics3D::C_FundamentalMatrix
  • El_f() : Vtl::ImAlg::C::EElEll
  • El_f_toPositive() : Vtl::ImAlg::C::EElEll
  • ELEMENT : YXML::DNode
  • Ell_f() : Vtl::ImAlg::C::EElEll
  • Ell_f_toPositive() : Vtl::ImAlg::C::EElEll
  • EllipseH() : Vtl::ImAlg::Bres::EllipseH< F >
  • empty() : YRect< int > , DistributionMatrix , CoverageMatrix , Fifo< int > , Fifo< Vtl::Plf::FilterElementary * > , YRect< T > , Vtl::Plf::Fifo< T >
  • EnableAll() : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point >
  • enableGridAdjustment_ : ImageTransformImpl
  • end() : FKern< float, Vtl::Plf::Kernel::KT_Conv > , FKern< float > , FKern< float, Vtl::Plf::Kernel::KT_Corr > , Vtl::ImAlg::Registration::Container< Real_t > , FKern< float, Vtl::Plf::Kernel::KT_Win > , Iter_Line , Container< Real_t > , FKern< float, Vtl::Plf::Kernel::KT_Conv, true > , FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false > , CoordArray2D , ImageProxyVector , Iter_Line , ImageProxyVector , Base< T, Kernel::KT_Conv > , Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , Vtl::Plf::OutPortNoPostProc< T > , CoordArray2D , OutPortNoPostProc< Real_t >
  • end_internal()
: FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Base< T, Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • end_line_insert() : Vtl::Plf::StripBuffer< T >
  • endHour : IFF::OzFile::Header
  • endMinutes : IFF::OzFile::Header
  • Ends() : Basics3D::C_DrawEpipolarLines
  • endSecond1000 : IFF::OzFile::Header
  • endUpdate() : Iter_Line , Vtl::Plf::OutPort< T, P > , Vtl::Plf::OutPortNoPostProc< T > , OutPortNoPostProc< Real_t >
  • entries : IFF::TiffReadIFD , IFF::TiffWriteIFD
  • Entry0 : IFF::TIFF_IFD
  • entry_count : IFF::TIFF_IFD
  • Env : childPipe
  • envBuildBinBlock() : childPipe
  • envBuildFromBinBlock() : childPipe
  • envCalcBinBlockSize() : childPipe
  • envFreeBinBlock() : childPipe
  • envMakeBinBlock() : childPipe
  • EnvProc1to1() : HarrisNMS< float > , EnvProc1to1< Real_t, Func, PostThresh > , Vtl::Plf::EnvProc1to1< T, Func, P > , EnvProc1to1< Real_t, Func, PostThresh > , Vtl::Plf::EnvProc1to1< T, Func, P >
  • EnvProc1to2() : Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
  • EnvProc3to1() : Vtl::Plf::EnvProc3to1< T, Func, P >
  • eof_detected : ReadString
  • eps
: Vtl::NumAlg::Lin::PseudoInverseElemPositive< T >
, Vtl::NumAlg::Lin::PseudoInverseElem< T >
, Vtl::Plf::Fpie::CannyNMS_2< T >
  • eps_22 : BiLateralSmooth< T > , Vtl::Plf::Fpie::BiLateralSmooth< T >
  • Eq4Degree() : Basics3D::Eq4Degree
  • erase_all() : YSmallAllocLtd
  • err : ImageMem16Stuff::Error
  • errCantClearObject : ImageMem16Stuff::Error
  • errCantCreateObject : ImageMem16Stuff::Error
  • errCantLoadObject : ImageMem16Stuff::Error
  • errInsufficientMemory : ImageMem16Stuff::Error
  • errOK : ImageMem16Stuff::Error
  • error() : ProgressCounter
  • Error()
: AImage::Error
, ImageMem16Stuff::Error
  • errorColor_ : ImageTransformImpl
  • ErrorID() : ImageMem16Stuff::Error
  • ErrorStatus : ImageMem16Stuff::Error
  • ErrorStatusBase() : ErrorStatusBase
  • errUnknown : ImageMem16Stuff::Error
  • essential2fm() : Basics3D::FmTools< T >
  • estimateZoom() : ImageTransformMatrixFastImpl , ImageTransformMatrixImpl
  • euclidean2homogeneous() : Basics3D::Structure::Comp3D< T > , Comp3D< value_type >
  • ex : Vtl::Plf::StripBuffer< T >
  • ExeTri() : TriResult
  • exists : Vtl::Types::Conversion< T, U >
  • exitStatus : childPipe
  • ExitStatus() : childPipe
  • expand() : YRect< int > , YRect< T > , YRect< int > , YRect< T >
  • ext() : BiLateralSmooth< T > , ImageRef< int > , Vtl::Plf::Fpie::CannyNMS_2< T > , Vtl::Plf::InPortBase , Vtl::Plf::ImageRef< T > , CannyNMS< float > , CannyNMS< T > , Vtl::Plf::StripBuffer< T > , Vtl::Plf::Fpie::BiLateralSmooth< T > , Vtl::Plf::Fpie::HarrisNMS< T > , Hanina::ZeroCross< T > , Vtl::Plf::Fpie::CannyNMS< T > , ImageRef< T > , Vtl::Plf::Fpie::HarrisNMS_Smooth< T > , Himg< T > , Vtl::Plf::Fpie::Himg2< T > , HarrisNMS< float > , Vtl::Plf::Fpie::Himg< T > , Himg2< T > , InPort< T >
  • ext_required : Vtl::Plf::InPortBase
  • Extent() : Vtl::Plf::Extent
  • extent() : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > , Forward< T, D >
  • extra_delay : Vtl::Plf::Impl::Node
  • extract_() : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- f -

  • f
: YSmallAllocLtd
, Vtl::Meta::printPermutations
, Vtl::Meta::det< Matrix >
, Vtl::Meta::det_poly_coef< Matrix, N >
  • F() : Dbg::Format::F
  • f()
: Hanina::p33< T, 0, 1 >
, Hanina::p33< T, 1, 2 >
, Hanina::p33< T, 0, 2 >
, Basics3D::g
, Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >
  • F : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , TriResult
  • f0 : Students::Curve::EdgeDetect< T >
  • f1 : Students::Curve::EdgeDetect< T > , Basics3D::g
  • f_rev() : Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
  • F_Split : childPipe
  • F_StdErr : childPipe
  • F_StdIn : childPipe
  • F_StdInErr : childPipe
  • F_StdInOut : childPipe
  • F_StdInOutErr : childPipe
  • F_StdInOutErrSplit : childPipe
  • F_StdOut : childPipe
  • F_StdOutErr : childPipe
  • F_StdOutErrSplit : childPipe
  • factln() : Vtl::NumAlg::Spf::Gamma
  • factrl() : Vtl::NumAlg::Spf::Gamma
  • FastGaussConvolve() : FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 0 > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , FastGaussConvolve< float, 3 > , Vtl::ImAlg::Conv::FastGaussConvolve< T, D >
  • FF0 : Students::Curve::EdgeDetect< T >
  • FF1 : Students::Curve::EdgeDetect< T >
  • FFT() : FFT_2D
  • fheight : tplAImageFragment< ImgT >
  • Fifo() : Vtl::Plf::Fifo< T > , Fifo< int > , Fifo< Vtl::Plf::FilterElementary * >
  • fil : Vtl::Plf::Impl::Node
  • file : ErrorStatusBase
  • File() : AErrorStatusBase , ErrorStatusBase
  • filename : YXML::XMLdoc
  • fill : ImageResample::ImageResampleParams , TransformCell
  • fill_int : ImageResample::ImageResampleParams
  • fillIFD() : IFF::TiffWriteIFD
  • FillingHessianMatrix3x3() : Hanina::FillingHessianMatrix3x3
  • fillMatricesCell() : ImageTransformMatrixImpl , ImageTransformMatrixFastImpl
  • fillOutputPixel() : ImageTransformImpl
  • fillPixelsWithAverages() : ImageTransformMatrixImpl
  • fillTopologicallySortedVector() : Vtl::Plf::Impl::GraphBuilder
  • filter : Vtl::Plf::Port , Vtl::Plf::OutPortBase::Connection
  • FilterBase() : Vtl::Plf::FilterBase , ToBounds< float > , MeanAndDisp< float > , ToBounds< float > , GammaCorMult< float > , BiLateral< float > , GradientModul< float > , GammaCor< float > , HarrisNMS< float > , ConvolveHorz< float > , ConvolveVert< float > , GammaCorMult< float > , Mult< float > , SqrtOfSumSqr< float > , SrcAImage< Real_t, Img > , Canny< float > , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , SrcAImage< Real_t, AImageMem8 > , DstContainer< Real_t, Container_t > , Y< float > , DstArray< Real_t, Real_t > , Y< float > , DiZenzo< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , Resample< float > , AverageGauss< float > , Average< float > , Vtl::Plf::FilterBase , Average< float >
  • FilterComplex() : Average< float > , Vtl::Plf::FilterComplex , ToBounds< float > , Vtl::Plf::FilterComplex , MeanAndDisp< float > , ToBounds< float > , GammaCorMult< float > , BiLateral< float > , GradientModul< float > , GammaCor< float > , Canny< float > , DiZenzo< float > , Resample< float > , AverageGauss< float > , Average< float >
  • FilterElementary() : Vtl::Plf::FilterElementary , HarrisNMS< float > , ConvolveHorz< float > , ConvolveVert< float > , GammaCorMult< float > , Mult< float > , SqrtOfSumSqr< float > , SrcAImage< Real_t, Img > , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , SrcAImage< Real_t, AImageMem8 > , DstArray< Real_t, Real_t > , Y< float > , SrcArray< Real_t, Real_t > , Y< float > , DstContainer< Real_t, Container_t > , EnvProc1to1< Real_t, Func, PostThresh > , SrcAImage< Real_t, T > , GammaCorMult< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , Vtl::Plf::FilterElementary , DstAImage< float, Img > , DstArray< Real_t, Real_t >
  • filtername : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , Base< T, Kernel::KT_Conv >
  • FilterResampleHorz() : Vtl::Plf::FilterResampleHorz< T, P >
  • FilterResampleVert() : Vtl::Plf::FilterResampleVert< T, P >
  • FiltersSystem() : Vtl::Plf::FiltersSystem
  • Find()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
, Basics3D::SolveEq
  • find_rotate_scale() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • find_sing_value_dev() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • findCell() : ImageTransformMatrixImpl
  • findCellAtRadius() : ImageTransformMatrixImpl
  • findNearest() : ImageTransformMatrixImpl
  • findParentNotInGraph() : Vtl::Plf::Impl::GraphBuilder
  • findSourcesTargetsAndJunctions() : Vtl::Plf::FiltersSystem
  • Finish() : InPort< T > , Vtl::Plf::FilterElementary
  • finish() : ProgressCounter
  • Finish() : Vtl::Plf::InPortBase , Vtl::Plf::OutPortBase , DstContainer< Real_t, Container_t > , HarrisNMS< float > , ConvolveHorz< float > , SrcAImage< float, Img > , SrcAImage< Real_t, T > , SrcAImage< Real_t, AImageMem8 > , GammaCorMult< float > , SrcAImage< Real_t, Img > , ConvolveVert< float > , DstArray< Real_t, Real_t > , SqrtOfSumSqr< float > , Y< float > , Iter_Line , EnvProc1to1< Real_t, Func, PostThresh > , SrcArray< Real_t, Real_t > , OutPortNoPostProc< Real_t > , SrcAImage< unsigned, Img > , Iter_Line , DstAImage< float, Img > , Mult< float >
  • finish() : Vtl::Dbg::TimeElapsed
  • Finish() : DstAImage< unsigned, Img >
  • finished
: Vtl::Plf::FilterElementary
, Vtl::Plf::OutPortBase
, Vtl::Plf::InPortBase
  • finit_support : Direct_Ref< float, int > , Direct< float, int > , Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >
  • finit_support_left : Direct_Ref< float, int > , Direct< float, int > , Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >
  • finit_support_right : Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > , Direct_Ref< float, int > , Direct< float, int >
  • first_ : Abs< float > , GammaCorMult< T > P , Vtl::Plf::F11::Comb< T, F1, F2 > , Convert2ByteBounded , Convert< uint8_t > , Lin< float > , Convert< uint8_t >
  • first_pos2 : ReadString
  • FirstChild() : YXML::DNode
  • FKern()
: FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
  • flag : Basics3D::Structure::Pt< T >
  • flags : Gen::Data::SaveFormat
  • Flags : childPipe , Basics3D::PointStatus
  • FlatTop() : Vtl::ImAlg::WndFun::FlatTop< T, D >
  • flipH_ : ImageTransformImpl
  • flipV_ : ImageTransformImpl
  • Float2Image() : FFT_2D
  • FloatImageFile() : IFF::FloatImageFile
  • fm2essential() : Basics3D::FmTools< T >
  • Fmt() : Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > , Dbg::Fmt< T, format_type >
  • fname : WinIniFile
  • FName() : YXML::XMLdoc
  • fname : WiNode
  • fname_dot : Vtl::Plf::FiltersSystem
  • FocalLength() : Basics3D::C_AutoCalibration
  • focus : Basics3D::Structure::CameraPos< T >
  • focus_sqr : Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type >
  • forEach() : Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, k > , Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i > , forEach , Vtl::Meta::Impl::permut< IList1, Loki::NullType, isOdd, 0, 0 >
  • Format : Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >
  • forward() : ATransformFunction , Vtl::Plf::Extent
  • Forward() : Forward< T, D > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >
  • fourn() : FFT_2D
  • fp_debug : DebugToFile
  • free() : YSmallAllocLtd
  • FreeLibrary() : DllModule
  • frobenius_norm_sqr() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • frobenius_norm_sqr_derivative() : Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type >
  • from : ImageResample::ImageResampleParams , Vtl::ImAlg::Resamp::PhiGrid< T > , PhiGrid< Real_t >
  • from01toRGB()
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
  • FromHomographies() : Basics3D::C_FundamentalMatrix
  • fromRGB()
: Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, fromRGB< T, Iter >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
  • fromRGB_positive() : Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter >
  • full_search() : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • full_search_subproc() : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • full_width : Vtl::Plf::StripBuffer< T >
  • FullName() : Direct_Ref< float, int > , Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > , Direct< float, int >
  • fun() : Vtl::Plf::Fpie::BiLateralSmooth< T > , BiLateralSmooth< T >
  • func : Y< float > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > , Vtl::Plf::EnvProc3to1< T, Func, P >
  • Func()
: Basics3D::test
, Basics3D::Eq4Degree
, Basics3D::T_MistakeFunc< Operations >
, Basics3D::g
, T_MistakeFunc< MatrixType >
  • func : Vtl::Plf::EnvProc1to1< T, Func, P > , EnvProc1to1< Real_t, Func, PostThresh > , Vtl::Plf::PixByPix3to1< T, Func, P > , Vtl::Plf::PixByPix4to1< T, Func, P >
  • Func() : Basics3D::IFunc
  • func : HarrisNMS< float > , Vtl::Plf::PixByPix5to1< T, Func, P > , Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
  • functor : Vtl::Plf::PixByPix2to1< T, F, P > , Vtl::Plf::PixByPix2to3< T, P > , SqrtOfSumSqr< float > , Vtl::ImAlg::Bres::Line< F > , GammaCorMult< float > , Line< SetPixelFunctor >
  • functor_post_proc : Iter_Line , Vtl::Plf::OutPort< T, P >
  • fwidth : tplAImageFragment< ImgT >
  • fx : tplAImageFragment< ImgT >
  • fy : tplAImageFragment< ImgT >


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- g -

  • g
: AImage::Rgb
, IFF::RgbQuad
, Vtl::Plf::SrcAImageRgb< T, I, P >
, Vtl::Img::Rgb< T >
, AImage::Bgr
, Basics3D::g
  • G0 : Vtl::Plf::DiZenzo< T, P > , Vtl::Plf::Detect< T, Func, P > , AverageGauss< float > , Vtl::Plf::HarrisLaplace< T, Func, P > , MeanAndDisp< float > , Vtl::Plf::GradientModul< T, P > , GradientModul< float > , GammaCor< float >
  • g0 : Students::Curve::EdgeDetect< T >
  • G0 : GammaCor< float > , Vtl::Plf::GradientCorr< T, P > , Vtl::Plf::AverageGauss< T, P > , Vtl::Plf::MeanAndDisp< T, P > , DiZenzo< float >
  • G1 : GradientModul< float > , Vtl::Plf::DiZenzo< T, P > , Vtl::Plf::GradientModul< T, P >
  • g1 : Students::Curve::EdgeDetect< T >
  • G1 : Vtl::Plf::GradientCorr< T, P > , DiZenzo< float >
  • G_f()
: Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
  • gamma : Convert< uint8_t > , GammaCorMult< float > , Vtl::Plf::F11::GammaCor< T > , GammaCor< float > , Vtl::Plf::F11::GammaCorMult< T > , GammaCorMult< T > , GammaCorMult< float > lin_3mod
  • GammaCor() : GammaCor< float > , Vtl::Plf::F11::GammaCor< T >
  • GammaCorMult() : Convert< uint8_t > , GammaCorMult< float > , GammaCorMult< T > , Vtl::Plf::F11::GammaCorMult< T > , GammaCorMult< float > lin_3mod
  • gammln() : Vtl::NumAlg::Spf::Gamma
  • gauss : AverageGauss< float > , Vtl::Plf::Detect< T, Func, P > , MeanAndDisp< float > , Vtl::Plf::MeanAndDisp< T, P > , Vtl::Plf::HarrisLaplace< T, Func, P > , GradientModul< float > , Vtl::Plf::AverageGauss< T, P > , Vtl::Plf::DiZenzo< T, P > , GammaCor< float >
  • Gauss() : Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >
  • gauss : GammaCor< float > , Vtl::Plf::GradientModul< T, P > , Vtl::Plf::GradientCorr< T, P > , DiZenzo< float >
  • gauss_deriv : GradientModul< float > , Vtl::Plf::DiZenzo< T, P > , Vtl::Plf::GradientModul< T, P > , Vtl::Plf::GradientCorr< T, P > , DiZenzo< float >
  • gcf() : Vtl::NumAlg::Spf::Gamma
  • Get() : DataString , Vtl::Dbg::TimeElapsed
  • get() : Fifo< Vtl::Plf::FilterElementary * >
  • Get() : PtrDelete< T >
  • get() : CoverageMatrix
  • Get() : PtrArrayDel< T >
  • get() : AImageProxy , ImageProxy< ImageT > , ImageProxyConst< ImageT > , Fifo< int >
  • Get() : YTimeInterval , YDataTime
  • get() : Vtl::Plf::Fifo< T >
  • Get() : Basics3D::AbsoluteDualQuadric
  • Get3DPoint() : Basics3D::C_Triangulation
  • get_DotFName() : Vtl::Plf::FiltersSystem
  • get_gisInf() : Vtl::Plf::OLSI::Gistogramm2< T >
  • get_gistogram() : Vtl::Plf::OLSI::Gistogramm< T >
  • get_Level() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • Get_Ptr() : YTArray< T >
  • get_secont_part() : Vtl::Plf::OLSI::Gistogramm2< T >
  • get_x() : Vtl::Meta::SizeList_base< T_IList > , SizeList_base< IList >
  • getAnchor() : ImageTransformMatrixImpl , ImageTransformMatrixFastImpl
  • GetAttr() : YXML::DNode , WiNode
  • GetBlockSize() : YTArray< T >
  • getCellICS() : TransformCell
  • getCellPICS() : TransformCell
  • getCellPRCS() : TransformCell
  • getCellRCS() : TransformCell
  • getCenter() : Vtl::ImAlg::Model::Base< T >
  • GetChanel() : IFF::OzFile
  • getCof() : Vtl::ImAlg::Model::Base< T >
  • getCurStrip() : Vtl::Plf::StripBuffer< T >
  • GetDate() : IFF::OzFile
  • GetFileSize() : YFileRead
  • getFilter() : Iter_Line , InPort< T > , Vtl::Plf::Port , OutPortNoPostProc< Real_t >
  • GetFName() : WinIniFile
  • GetFrameSize() : YImageFrame
  • GetFullImage() : AImage , tplAImageReference< ImgT >
  • GetGrowStep() : YTArray< T >
  • GetH() : Basics3D::C_AutoCalibration
  • GetHeader() : IFF::OzFile
  • getHouseholder() : Vtl::NumAlg::Lin::QR
  • GetImageInfo() : AImage
  • getImageSize() : InPort< T > , Vtl::Plf::Port , Vtl::Plf::InPort< T > , Vtl::Plf::OutPortNoPostProc< T > , Iter_Line , OutPortNoPostProc< Real_t > , Iter_Line
  • GetImageStore() : AImage , AImageMem8 , AImageMem16 , AImageMemFloat , AImageMemRgb8 , AImageMemRgb16 , tplAImageReference< ImgT >
  • getImg() : Iter_Line , InPort< T > , Vtl::Plf::InPort< T > , Vtl::Plf::OutPortNoPostProc< T > , Vtl::Plf::StripBuffer< T > , OutPortNoPostProc< Real_t >
  • getInPort() : SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , Resample< float > , AverageGauss< float > , Average< float > , ToBounds< float > , MeanAndDisp< float > , ToBounds< float > , ConvolveVert< float > , GammaCorMult< float > , BiLateral< float > , GradientModul< float > , SrcArray< Real_t, Real_t > , GammaCor< float > , HarrisNMS< float > , ConvolveHorz< float > , GammaCorMult< float > , Mult< float > , SqrtOfSumSqr< float > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , SrcAImage< Real_t, Img > , Canny< float > , SrcAImage< Real_t, AImageMem8 > , Y< float > , DiZenzo< float > , Vtl::Plf::FilterBase
  • getIntersectionPoint() : LineFun
  • getIntersectionPointBres4() : LineFun
  • getIntersectionPointBres4X() : LineFun
  • getIntersectionPointBres4Y() : LineFun
  • GetLayers() : MImages2Gray
  • GetLeftRightBorderWidth() : YImageFrame
  • GetLeftTopPosAtFFT() : FFT_2D
  • getLeftUp() : YImageFrame
  • getMediana() : Vtl::Plf::OLSI::Gistogramm< T >
  • getMediana_value()
: Vtl::Plf::OLSI::Gistogramm< T >
, Vtl::Plf::OLSI::Gistogramm2< T >
  • GetMode() : YFile
  • getName() : YXML::DNode
  • GetNode() : YXML::DNode , WiNode
  • GetNumber() : MImages2Gray
  • getOutPort() : SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , DstAImage< float, Img > , Resample< float > , Average< float > , ConvolveVert< float > , MeanAndDisp< float > , ToBounds< float > , BiLateral< float > , GammaCor< float > , EnvProc1to1< Real_t, Func, PostThresh > , DstAImage< unsigned, Img > , GammaCor< float > , AverageGauss< float > , GammaCor< float > , ConvolveHorz< float > , DstArray< Real_t, Real_t > , GradientModul< float > , SrcAImage< float, Img > , GammaCorMult< float > , GammaCor< float > , SrcArray< Real_t, Real_t > , SqrtOfSumSqr< float > , GammaCorMult< float > , HarrisNMS< float > , SrcAImage< Real_t, AImageMem8 > , ToBounds< float > , Mult< float > , DiZenzo< float > , SrcAImage< Real_t, Img > , Canny< float > , Y< float > , Vtl::Plf::FilterBase , GammaCor< float > , DstContainer< Real_t, Container_t >
  • GetP() : Basics3D::C_ProjectiveMatrix
  • GetPalette() : IFF::TiffReadIFD , VirtDib , IFF::BmpRead
  • GetPaletteEntries() : IFF::BmpWrite , ImageMem8 , ImageMem16 , VirtDib , AImage , tplAImageReference< ImgT > , IFF::BmpRead
  • GetPaletteLength() : IFF::TiffReadIFD
  • GetPlane() : Vtl::Img::Image< P, planes, interleave > , AImage , AImageMemRgb8 , AImageMemRgb16
  • GetPlane16() : AImageMemRgb16
  • GetPlane8() : ImageMemRgb8 , ImageFragmentRgb8 , AImageMemRgb8
  • getPort() : InPort< T > , Iter_Line , Vtl::Plf::Port , OutPortNoPostProc< Real_t >
  • GetPosition() : YFileWrite
  • GetProcAddress() : DllModule
  • getQ() : Vtl::NumAlg::Lin::QR
  • getR() : Vtl::NumAlg::Lin::QR
  • GetRandColor() : Basics3D::C_DrawEpipolarLines
  • getRequestedStrips() : Iter_Line , Vtl::Plf::OutPortBase , OutPortNoPostProc< Real_t >
  • getRequiredStrip() : InPort< T > , Vtl::Plf::InPortBase
  • GetRightP() : Basics3D::C_AutoCalibration
  • gets() : ReadString
  • GetSample() : T_Model< Operations > , Basics3D::T_Model< Operations >
  • GetString() : Vtl::Dbg::TimeElapsed
  • getStrip() : Iter_Line , Vtl::Plf::OutPortBase , Vtl::Plf::OutPortNoPostProc< T > , OutPortNoPostProc< Real_t >
  • GetTime() : IFF::OzFile , YFileRead
  • GetTimeEnd() : IFF::OzFile
  • GetTrajectory() : IFF::OzFile
  • getTransf()
: Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::BaseAffine< T >
  • GetType() : IFF::BmpWrite
  • getType() : YXML::DNode
  • GetType() : IFF::BmpRead
  • getValue() : YXML::DNode
  • GetValue() : WiNode , YXML::DNode
  • GetW() : Basics3D::C_ProjectiveMatrix
  • getZoom() : CoverageMatrix
  • gishh : Vtl::Plf::OLSI::Gistogramm< T >
  • gisInf : Vtl::Plf::OLSI::Gistogramm2< T >
  • gisMedians : Vtl::Plf::OLSI::Gistogramm< T >
  • gisMem : Vtl::Plf::OLSI::Gistogramm< T >
  • gistogr : Vtl::Plf::medianFilter2< T, P > , Vtl::Plf::medianFilter< T, P >
  • Gistogramm() : Vtl::Plf::OLSI::Gistogramm< T >
  • grad_x_curr : Hanina::Planes3< T >
  • grad_x_next : Hanina::Planes3< T >
  • grad_y_curr : Hanina::Planes3< T >
  • grad_y_next : Hanina::Planes3< T >
  • GradientCorr() : Vtl::Plf::GradientCorr< T, P >
  • GradientModul() : Vtl::Plf::GradientModul< T, P > , GradientModul< float > , Vtl::Plf::GradientModul< T, P > , GradientModul< float > , Vtl::Plf::GradientModul< T, P >
  • graph
: Vtl::Plf::FiltersSystem
, Vtl::Plf::Impl::DelayAdjuster
, Vtl::Plf::Impl::GraphBuilder
  • GraphBuilder() : Vtl::Plf::Impl::GraphBuilder
  • gridNode_ : ImageTransformImpl
  • Grinvich() : YDataTimeZone
  • group : Vtl::Types::PixelTraits< T >
  • GroupSize() : T_Points2DSet< Point > , T_Points2DSet< C_Point2D > , Basics3D::T_Points2DSet< Point >
  • gser() : Vtl::NumAlg::Spf::Gamma
  • gt() : Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
  • gx : Vtl::Plf::GradientCorr< T, P > , Vtl::Plf::GradientModul< T, P > , GradientModul< float > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • gx_1 : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float >
  • gx_2 : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float >
  • gx_3 : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float >
  • Gxx : Hanina::Hessian3D< T >
  • Gxxx : Hanina::Hessian3D< T >
  • Gxxxx : Hanina::Hessian3D< T >
  • Gxxyy : Hanina::Hessian3D< T >
  • Gxy : Hanina::Hessian3D< T >
  • Gxyy : Hanina::Hessian3D< T >
  • gy() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > , GradientModul< float > , Vtl::Plf::GradientModul< T, P > , Vtl::Plf::GradientCorr< T, P >
  • gy_1 : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • gy_2 : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • gy_3 : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float >
  • Gyxx : Hanina::Hessian3D< T >
  • Gyy : Hanina::Hessian3D< T >
  • Gyyy : Hanina::Hessian3D< T >
  • Gyyyy : Hanina::Hessian3D< T >


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- h -

  • h : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D > , Hanina::Hessian3D< T > , Hanina::Planes3< T > , Vtl::Plf::ImageRef< T > , GammaCorMult< float > , ImageRef< int > , Forward< T, D > , Reverse< T, D > , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size
  • H() : Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >
  • h : InterpBilinear< Real_t >
  • H() : InterpBilinear< Real_t >
  • h : SrcArray< Real_t, Real_t > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , InterpBilinear< Img::Pixel > , Vtl::Plf::HImage< T, P >
  • H()
: Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
, InterpBilinear< Img::Pixel >
  • h : InterpBilinear< Pixel >
  • H() : InterpBilinear< Pixel >
  • h() : ImageRef< T > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • H : Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >
  • h : Vtl::Plf::SrcArray< T, I, P > , Vtl::Plf::SrcAImageRgb< T, I, P >
  • H : Vtl::ImAlg::Transf::Homography< T >
  • h : Vtl::Plf::DstArray< T, Pixel > , Vtl::Plf::DstContainer< T, C, P >
  • h2_x_curr : Hanina::Planes3< T >
  • h2_x_next : Hanina::Planes3< T >
  • h2_y_curr : Hanina::Planes3< T >
  • h2_y_next : Hanina::Planes3< T >
  • h2_z_curr : Hanina::Planes3< T >
  • h2_z_next : Hanina::Planes3< T >
  • h3_x_curr : Hanina::Planes3< T >
  • h3_x_next : Hanina::Planes3< T >
  • h3_y_curr : Hanina::Planes3< T >
  • h3_y_next : Hanina::Planes3< T >
  • h3_z_curr : Hanina::Planes3< T >
  • h3_z_next : Hanina::Planes3< T >
  • h_ : DistributionMatrix , CoverageMatrix , ProcessMatrix , CoordArray2D
  • h_conv : Vtl::Plf::SeparableConv2D< T, P >
  • h_max : Vtl::Plf::FilterElementary
  • h_new : Vtl::Plf::FilterResampleVert< T, P >
  • h_old : Vtl::Plf::FilterResampleVert< T, P >
  • h_resamp : Resample< float > , Vtl::Plf::Resample< T, P >
  • half_cent : Vtl::ImAlg::WndFun::Sinc< T, 0 >
  • half_height : Vtl::ImAlg::Registration::Container< Real_t > , Container< Real_t >
  • half_width : Vtl::ImAlg::WndFun::DoG< T, D > , Vtl::ImAlg::WndFun::Sinc< T, 0 > , Container< Real_t > , Vtl::ImAlg::Registration::Container< Real_t > , Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >
  • Hamming() : Hamming< float, 4 > , Hamming< float, 0 > , Hamming< float, 1 > , Hamming< float, 2 > , Hamming< float, 3 > , Vtl::ImAlg::WndFun::Hamming< T, D >
  • handle : YXML::XMLdoc , YFile , YFileRead , YFileWrite
  • handle_ : ReadPipe , WritePipe
  • Hann() : Hann< float, 3 > , Hann< float, 0 > , Hann< float, 1 > , Hann< float, 2 > , Hann< float, 4 > , Vtl::ImAlg::WndFun::Hann< T, D >
  • Harris() : Vtl::Plf::F31::Harris< T > , Harris< float >
  • HarrisLaplace()
: Vtl::Plf::HarrisLaplace< T, Func, P >
, Vtl::Plf::F51::HarrisLaplace< T >
, HarrisLaplace< float >
, GammaCor< float >
  • HarrisNMS() : HarrisNMS< float > , Vtl::Plf::Fpie::HarrisNMS< T >
  • HarrisNMS_Smooth() : Vtl::Plf::Fpie::HarrisNMS_Smooth< T >
  • Hartley() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • hartley1_ : Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > , PhaseCorr< Real_t >
  • hartley2_ : Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > , PhaseCorr< Real_t >
  • Hartley2Amp() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >
  • Hartley2AmpDown() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >
  • Hartley2Im() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T > , Hartley2Im< T >
  • Hartley2Modul() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T > , Hartley2Modul< T >
  • Hartley2Phase() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T > , Hartley2Phase< Real_t >
  • Hartley2PhaseAmp() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >
  • Hartley2PhaseAmpDown() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > , Hartley2PhaseAmpDown< 2, Real_t >
  • Hartley2Re() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T > , Hartley2Re< T >
  • hartley_
: Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >
, Hartley2PhaseAmpDown< 2, Real_t >
, Hartley2Phase< Real_t >
  • hasError() : ImageTransformMatrixImpl
  • hasInts : Vtl::Meta::Impl::SizeList_base_0< IList, sz > , SizeList_base< IList > , Layout< T, IList > , Vtl::Meta::Impl::SizeList_base_0< IList, 0 >
  • hausholder() : Vtl::NumAlg::Lin::svd
  • hdrsize : IFF::FloatImageFile::Header
  • Head : Vtl::Types::Typelist< T, U > , Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i > , forEach
  • head : IFF::FloatImageFile , IFF::OzFile
  • header : IFF::BmpRead , IFF::BmpWrite
  • HeadF()
: Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >
  • HeadR()
: Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >
  • height : IFF::PBMfile
  • Height() : ImageMemRgb8
  • height() : ImageTransform , CoordArray2D , ImageTransformImpl , YRect< int >
  • Height() : tplAImageFragment< ImgT >
  • height : Vtl::Img::ImageInfo , AImage::Info , YRect< T > , VirtDib::Inf , YImageFrame , ImageProxy< ImageT > , ImageVectorT< Base, Bit8, Bit16 >
  • Height() : ImageMem16
  • height() : YRect< T >
  • Height() : IFF::BmpWrite , AImage , tplAImageReference< ImgT > , ImageMem16Stuff , IFF::BmpRead , VirtDib
  • height : IFF::FloatImageFile::Header , ImageProxyConst< ImageT >
  • Height() : ImageMemFloat
  • height() : ImageProxyVector
  • Height() : IFF::FloatImageFile , MSlidingEqualization
  • height() : AImageProxy
  • Height() : ImageResample , Vtl::Img::ImageBase< P, planes, interleave > , ImageMem8 , ImageResize , ImageRotate
  • height : Vtl::Plf::ImgSize
  • height_ : ImageVectorT< Base, Bit8, Bit16 > , ImageProxyVector
  • hess3d : Hanina::Planes3< T >
  • Hessian3D() : Hanina::Hessian3D< T >
  • Hi : MSlidingEqualization
  • hi : Himg< T > , Vtl::Plf::Fpie::Himg< T >
  • HImage() : GammaCorMult< float >
  • himage : GammaCor< float >
  • HImage() : GammaCorMult< float > , Vtl::Plf::HImage< T, P >
  • himage : Vtl::Plf::HImageEdge< T, P >
  • HImage() : Vtl::Plf::HImage< T, P >
  • HImageEdge() : GammaCor< float > , Vtl::Plf::HImageEdge< T, P >
  • Himg() : Vtl::Plf::Fpie::Himg< T > , Himg< T >
  • Himg2() : Himg2< T > , Vtl::Plf::Fpie::Himg2< T >
  • hist : MSlidingEqualization
  • holelist : triangulateio
  • homogeneous2euclidean() : Comp3D< value_type > , Basics3D::Structure::Comp3D< T >
  • Homography() : Vtl::ImAlg::Transf::Homography< T >
  • Hough() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >
  • Hour() : YDataTime
  • hqr2() : Vtl::NumAlg::Lin::eigen


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- i -

  • i : Vtl::Meta::IL::ICount< v, i, IndexList< j, T > > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >
  • I : Vtl::Plf::OLSI::mediana< T > , Vtl::NumAlg::Spf::bess , mediana< T >
  • i : stride
  • I1() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • I2() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • I_f()
: Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::YIQ
  • i_in : Vtl::Plf::OutPortBase::Connection
  • iclass : AImage::Info
  • iClass() : Vtl::Img::ImageBase< P, planes, interleave >
  • iclass : Vtl::Img::ImageInfo
  • ics_ : TransformCell
  • ICStoPICS() : ImageTransformImpl
  • ICStoRCS() : ImageTransformImpl
  • id : SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , Y< float > , IFF::FloatImageFile::Header , Vtl::Plf::FilterElementary , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , HarrisNMS< float > , ConvolveHorz< float > , ConvolveVert< float > , GammaCorMult< float > , Mult< float > , SqrtOfSumSqr< float > , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , Basics3D::Structure::Pt< T > , Vtl::Plf::Impl::GraphBuilder , Basics3D::Structure::CameraPos< T > , Vtl::Plf::Impl::Node
  • id_edge : Vtl::Plf::Impl::Edge
  • id_if : Vtl::Plf::Impl::Edge
  • id_inp : Vtl::Plf::Impl::Edge
  • id_of : Vtl::Plf::Impl::Edge
  • id_outp : Vtl::Plf::Impl::Edge
  • Identity() : Basics3D::C_TransformMatrices
  • idl : Vtl::Img::ImageDataLayoutHolder , Vtl::Img::ImageBase< P, planes, interleave > , Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >
  • ifd : IFF::TiffReadIFD , IFF::TiffWriteIFD
  • IFD0_offset : IFF::TIFF_Header
  • IList : Vtl::Meta::SizeList_base< T_IList > , Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > , Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 > , Vtl::Img::BuildIter1DList< T_Layout > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > , SizeList_base< IList > , Layout< T, IList > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList
  • im : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • im1 : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • im2 : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • im_ : Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >
  • imag : Vtl::Img::complex_type< double > , Vtl::Img::complex_type< float >
  • Image()
: Vtl::Img::Image< P, planes, interleave >
, Vtl::Img::Image< P, planes, BIP >
, Vtl::Img::Image< P, planes, SEP >
  • image : Hanina::Planes3< T >
  • Image2Float() : FFT_2D
  • image_ : ImageProxy< ImageT > , ImageProxyConst< ImageT >
  • ImageBase() : Vtl::Img::ImageBase< P, planes, interleave >
  • ImageClass() : tplAImageReference< ImgT > , ImageMem16Stuff , ImageMem8 , ImageMem16 , ImageMemFloat , ImageMemRgb8
  • imageClass() : ImageTransformImpl
  • ImageClass() : ImageResample , ImageRotate , ImageResize
  • imageClass() : ImageTransform , ImageVectorT< Base, Bit8, Bit16 > , AImageProxy , ImageProxy< ImageT > , ImageProxyConst< ImageT > , ImageProxyVector
  • ImageClass() : MSlidingEqualization , AImage
  • imageClass_ : ImageVectorT< Base, Bit8, Bit16 > , ImageProxyVector
  • ImageClassName() : AImage
  • ImageDataLayoutHolder() : Vtl::Img::ImageDataLayoutHolder
  • ImageFragment16() : ImageFragment16
  • ImageFragment8() : ImageFragment8
  • ImageFragmentRgb8() : ImageFragmentRgb8
  • ImageHolder() : Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >
  • ImageMem16() : ImageMem16
  • ImageMem16Stuff() : ImageMem16Stuff
  • ImageMem8() : ImageMem8
  • ImageMemFloat() : ImageMemFloat
  • ImageMemRgb8() : ImageMemRgb8
  • ImageNDref() : Vtl::Img::ImageNDref< T_SList, T_Layout >
  • ImageProxy() : ImageProxy< ImageT >
  • ImageProxyConst() : ImageProxyConst< ImageT >
  • ImageProxyVector() : ImageProxyVector
  • ImageRef() : Vtl::Plf::ImageRef< T > , ImageRef< int > , ImageRef< T >
  • ImageResample() : ImageResample
  • ImageResize() : ImageResize
  • ImageRotate() : ImageRotate
  • ImageSize() : Vtl::Plf::StripBuffer< T >
  • ImageStore() : AImage
  • ImageStoreName() : AImage
  • ImageTransform() : ImageTransform
  • ImageTransformCellImpl() : ImageTransformCellImpl
  • ImageTransformImpl() : ImageTransformImpl
  • ImageTransformMatrixImpl() : ImageTransformMatrixImpl
  • ImageVectorT() : ImageVectorT< Base, Bit8, Bit16 >
  • ImageWin() : ImageWin< Real_t > , Vtl::Plf::Kernel::ImageWin< T >
  • imAuto : ImageResample
  • imAverage : ImageResample
  • imBicubical : ImageResample
  • imBilinear : ImageResample
  • imeth : ImageResample::ImageResampleParams
  • img : tplAImageReference< ImgT > , YImageFrame , Vtl::Plf::DstArray< T, Pixel > , DstArray< Real_t, Real_t >
  • img_Amp() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • img_class : IFF::BmpRead , IFF::BmpWrite , ImageMem8
  • img_H() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • img_Sino() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >
  • img_Tmp() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • IMGC_BILEVEL : AImage
  • IMGC_FLOAT : AImage
  • IMGC_GRAYSCALE : AImage
  • IMGC_PALETTE : AImage
  • IMGC_RGB : AImage
  • IMGC_UNKNOWN : AImage
  • ImgLevel : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • ImgPlane : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • IMGS_AImageMem16 : AImage
  • IMGS_AImageMem8 : AImage
  • IMGS_AImageMemFloat : AImage
  • IMGS_AImageMemRgb16 : AImage
  • IMGS_AImageMemRgb8 : AImage
  • IMGS_Unknown : AImage
  • ImgSize() : Vtl::Plf::ImgSize
  • imHistMax : ImageResample
  • imNearest : ImageResample
  • ims : Vtl::Plf::StripBuffer< T >
  • imUnknown : ImageResample
  • in() : Canny< float > , Vtl::Plf::Levels< T, P > , DstAImage< unsigned, Img > , DstAImage< float, Img > , Resample< float > , AverageGauss< float > , Average< float > , ToBounds< float > , MeanAndDisp< float > , ToBounds< float > , GammaCorMult< float > , BiLateral< float > , GradientModul< float > , Vtl::Plf::EnvProc1to1< T, Func, P > , GammaCor< float > , Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > , HarrisNMS< float > , Vtl::Plf::ConvolveHorz< T, P > , Vtl::Plf::ConvolveVert< T, P > , ConvolveVert< float > , Vtl::Plf::FilterResampleHorz< T, P > , Vtl::Plf::FilterResampleVert< T, P > , Vtl::Plf::Sharpen< T, P > , Vtl::Plf::GradientModul< T, P > , Mult< float > , Vtl::Plf::MeanAndDisp< T, P > , Vtl::Plf::StatDiff< T, P > , Vtl::Plf::DeNoise< T, P > , Vtl::Plf::HarrisLaplace< T, Func, P > , Vtl::Plf::GradientCorr< T, P > , EnvProc1to1< Real_t, Func, PostThresh > , Vtl::Plf::DstArray< T, Pixel > , Vtl::Plf::DstContainer< T, C, P > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , ConvolveHorz< float > , Vtl::Plf::medianFilter< T, P > , Vtl::Plf::medianFilter2< T, P > , Vtl::Plf::SeparableConv2D< T, P > , Vtl::Plf::Average< T, P > , Vtl::Plf::AverageGauss< T, P > , Vtl::Plf::HImage< T, P > , Vtl::Plf::BiLateral< T, P > , Vtl::Plf::Canny< T, P > , Vtl::Plf::HImageEdge< T, P > , Vtl::Plf::Detect< T, Func, P > , Vtl::Plf::Resample< T, P >
  • in_1 : DiZenzo< float > , Vtl::Plf::PixByPix2to1< T, F, P > , Vtl::Plf::PixByPix4to1< T, Func, P > , Vtl::Plf::PixByPix5to1< T, Func, P > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > , Vtl::Plf::PixByPix2to3< T, P > , GammaCorMult< float > , SqrtOfSumSqr< float > , Vtl::Plf::DiZenzo< T, P >
  • in_2 : SqrtOfSumSqr< float > , DiZenzo< float > , Vtl::Plf::PixByPix2to1< T, F, P > , Vtl::Plf::PixByPix4to1< T, Func, P > , Vtl::Plf::PixByPix5to1< T, Func, P > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > , Vtl::Plf::PixByPix2to3< T, P > , GammaCorMult< float > , Vtl::Plf::DiZenzo< T, P >
  • in_3 : DiZenzo< float > , Vtl::Plf::PixByPix4to1< T, Func, P > , Vtl::Plf::PixByPix5to1< T, Func, P > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > , Vtl::Plf::DiZenzo< T, P >
  • in_4 : Vtl::Plf::PixByPix4to1< T, Func, P > , Vtl::Plf::PixByPix5to1< T, Func, P >
  • in_5 : Vtl::Plf::PixByPix5to1< T, Func, P >
  • in_gx : Vtl::Plf::EnvProc3to1< T, Func, P >
  • in_gy : Vtl::Plf::EnvProc3to1< T, Func, P >
  • in_ports : Vtl::Plf::FilterBase
  • in_queue : Vtl::Plf::FilterElementary
  • in_val : Vtl::Plf::EnvProc3to1< T, Func, P >
  • in_xx : Y< float > , Vtl::Plf::PixByPix3to1< T, Func, P >
  • in_xy : Y< float > , Vtl::Plf::PixByPix3to1< T, Func, P >
  • in_yy : Y< float > , Vtl::Plf::PixByPix3to1< T, Func, P >
  • increase_delay_by() : OutPortNoPostProc< Real_t > , Iter_Line , Vtl::Plf::OutPortBase , Vtl::Plf::OutPortNoPostProc< T >
  • index
: Vtl::Meta::IL::ERROR__Index_out_of_IndexList_range< j >
, Vtl::NumAlg::Implicit::Sort_base< N_ >
, Vtl::NumAlg::Implicit::Sort_base< 0 >
, SortS< double >
, Basics3D::SortS< T >
  • IndexInCol : Vtl::Meta::Impl::determinant< N, Il1, Il2, j > , inRow
  • IndexInRow : Vtl::Meta::Impl::determinant< N, Il1, Il2, j > , inRow
  • indicator : ImageResample::ImageResampleParams
  • inf8pal : VirtDib
  • inf8rgb : VirtDib
  • info : IFF::BmpRead , IFF::BmpWrite , VirtDib , Vtl::Img::ImageDataLayout
  • Init() : Vtl::Plf::OLSI::Gistogramm2< T > , tplAImageReference< ImgT > , GammaCor< float > , tplAImageFragment< ImgT > , ToBounds< float > , FKern< float, Vtl::Plf::Kernel::KT_Corr > , Vtl::Plf::OLSI::Gistogramm< T > , ImageFragmentRgb8 , Vtl::Plf::medianFilter< T, P > , Vtl::Plf::medianFilter2< T, P > , SrcAImage< Real_t, Img > , YImageFrame , Canny< float > , OutPortNoPostProc< Real_t > , SrcAImage< Real_t, AImageMem8 > , Y< float > , DiZenzo< float > , FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 2 > , FastGaussConvolve< float, 1 > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , FastGaussConvolve< float, 3 > , SrcAImage< float, Img > , Iter_Line , Resample< float > , MeanAndDisp< float > , AverageGauss< float > , FKern< float, Vtl::Plf::Kernel::KT_Conv > , HarrisNMS< float > , Average< float > , FKern< float > , ToBounds< float > , GammaCor< float > , ToBounds< float > , GammaCorMult< float > , FKern< float > , GradientModul< float > , GammaCor< float > , Vtl::ImAlg::Conv::FastGaussConvolve< T, D > , GammaCor< float > , Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > , GammaCor< float > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , ConvolveHorz< float > , Vtl::Plf::SrcAImage< T, I, P > , GammaCor< float > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > , SrcAImage< Real_t, AImageMem8 > , Vtl::Plf::HarrisLaplace< T, Func, P > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > , SqrtOfSumSqr< float > , FKern< float, Vtl::Plf::Kernel::KT_Corr > , FastGaussConvolve< float, 0 > , FKern< float, Vtl::Plf::Kernel::KT_Win > , Vtl::Plf::DeNoise< T, P >
  • init() : YRect< int >
  • Init() : Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > , ImageWin< Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , GammaCorMult< float > , FKern< float, Vtl::Plf::Kernel::KT_Conv, true > , FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • init() : ImageResample
  • Init() : Mult< float >
  • init() : ImageRotate , ImageTransform
  • Init() : SrcAImage< Real_t, Img > , Vtl::Plf::FilterResampleVert< T, P > , InPort< T > , SrcArray< Real_t, Real_t >
  • init() : ImageTransformImpl
  • Init() : Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
  • init() : ImageResize , YRect< T >
  • Init()
: Iter_Line
, Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
, MSlidingEqualization
, childPipe
, Vtl::Plf::Levels< T, P >
, Vtl::Plf::PixByPix2to1< T, F, P >
, Vtl::Plf::PixByPix3to1< T, Func, P >
, Vtl::Plf::PixByPix4to1< T, Func, P >
, Vtl::Plf::PixByPix5to1< T, Func, P >
, Vtl::Plf::PixByPix2to3< T, P >
, Vtl::Plf::EnvProc1to1< T, Func, P >
, Vtl::Plf::EnvProc3to1< T, Func, P >
, Vtl::Plf::ConvolveHorz< T, P >
, Vtl::Plf::ConvolveVert< T, P >
, Vtl::Plf::FilterResampleHorz< T, P >
, Vtl::Plf::SeparableConv2D< T, P >
, Vtl::Plf::Average< T, P >
, Vtl::Plf::Sharpen< T, P >
, Vtl::Plf::AverageGauss< T, P >
, Vtl::Plf::HImage< T, P >
, Vtl::Plf::BiLateral< T, P >
, Vtl::Plf::GradientModul< T, P >
, Vtl::Plf::StatDiff< T, P >
, Vtl::Plf::MeanAndDisp< T, P >
, Vtl::Plf::Canny< T, P >
, Vtl::Plf::DiZenzo< T, P >
, Vtl::Plf::HImageEdge< T, P >
, DebugToFile
, Vtl::Plf::GradientCorr< T, P >
, Vtl::Plf::Detect< T, Func, P >
  • init() : YRect< T >
  • Init()
: Vtl::Plf::Resample< T, P >
, Vtl::Plf::SrcArray< T, I, P >
, Vtl::Plf::SrcAImageRgb< T, I, P >
, Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, Vtl::Plf::Kernel::ImageWin< T >
, YSmallAllocLtd
, Vtl::Plf::InPortBase
, Vtl::Plf::OutPortBase
, Vtl::Plf::InPort< T >
, Vtl::Plf::OutPortNoPostProc< T >
, BiLateral< float >
, ConvolveVert< float >
  • init_1() : Vtl::Plf::StripBuffer< T >
  • init_2() : Vtl::Plf::StripBuffer< T >
  • init_3() : Vtl::Plf::StripBuffer< T >
  • init_4() : Vtl::Plf::StripBuffer< T >
  • init_buffer() : OutPortNoPostProc< Real_t > , Iter_Line , Vtl::Plf::OutPortNoPostProc< T > , Iter_Line , Vtl::Plf::OutPortBase , Vtl::Plf::OutPortNoPostProc< T >
  • init_bufferExtents() : OutPortNoPostProc< Real_t > , Iter_Line , Vtl::Plf::OutPortBase , Vtl::Plf::OutPortNoPostProc< T >
  • init_buffers() : SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , SqrtOfSumSqr< float > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , HarrisNMS< float > , ConvolveVert< float > , Y< float > , GammaCorMult< float > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , ConvolveHorz< float > , DstArray< Real_t, Real_t > , Mult< float > , SrcArray< Real_t, Real_t > , Vtl::Plf::FilterElementary
  • init_buffersExtents() : Vtl::Plf::FiltersSystem
  • init_gisInf() : Vtl::Plf::OLSI::Gistogramm2< T >
  • init_OutPortsExtents() : SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , Y< float > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , DstAImage< float, Img > , Mult< float > , SrcAImage< float, Img > , SqrtOfSumSqr< float > , ConvolveHorz< float > , GammaCorMult< float > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , SrcArray< Real_t, Real_t > , Vtl::Plf::FilterElementary , SrcAImage< Real_t, T > , HarrisNMS< float > , ConvolveVert< float >
  • init_secondParts() : Vtl::Plf::OLSI::Gistogramm2< T >
  • initGis_of_one_line()
: Vtl::Plf::OLSI::Gistogramm< T >
, Vtl::Plf::OLSI::Gistogramm2< T >
  • InitGroupSize() : Basics3D::T_Points2DSet< Point > , T_Points2DSet< Point > , T_Points2DSet< C_Point2D >
  • initMatrices() : ImageTransformMatrixFastImpl , ImageTransformMatrixImpl
  • initMediansForGistogramms()
: Vtl::Plf::OLSI::Gistogramm2< T >
, Vtl::Plf::OLSI::Gistogramm< T >
  • initResize() : ImageResample
  • initRotate() : ImageResample
  • InitStripBuffers() : Vtl::Plf::FiltersSystem
  • inPopTailStage() : OutPortNoPostProc< Real_t > , Iter_Line , Vtl::Plf::OutPortBase , Vtl::Plf::OutPortNoPostProc< T >
  • InPort() : Vtl::Plf::InPort< T > , InPort< T > , Vtl::Plf::InPort< T >
  • InPort< T > : OutPortNoPostProc< Real_t > , Vtl::Plf::OutPortNoPostProc< T > , Iter_Line
  • InPortBase() : InPort< T > , Vtl::Plf::InPortBase
  • InPortComb() : InPortComb< T > , Vtl::Plf::InPortComb< T >
  • InProgress() : ProgressCounter
  • inps : InPortComb< T > , Vtl::Plf::InPortComb< T >
  • input : Vtl::Plf::InPort< T > , InPort< T >
  • inputCoords_ : ImageTransformImpl
  • inputFragment_ : ImageTransformImpl
  • inputHeight_ : ImageTransformImpl
  • inputImageHeight_ : ImageTransformImpl
  • inputImageWidth_ : ImageTransformImpl
  • inputVector_ : ImageTransformImpl
  • inputWidth_ : ImageTransformImpl
  • inRow() : Vtl::Meta::Impl::determinant< N, Il1, Il2, N > , Vtl::Meta::Impl::determinant< 1, Il1, Il2, 0 > , Vtl::Meta::Impl::determinant< N, Il1, Il2, j > , inRow
  • ins() : Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >
  • Insert() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , YTArray< T > , YTDynArray< T > , YTArray< T > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >
  • Insert1() : OFlow< Model, AllocStrategy > , Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >
  • Insert2() : Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > , OFlow< Model, AllocStrategy >
  • InsertAfter() : YXML::DNode
  • InsertBefore() : YXML::DNode
  • InsertNextLineFinished() : Vtl::Plf::StripBuffer< T >
  • InsertNextLineStart() : Vtl::Plf::StripBuffer< T >
  • Int : Vtl::Types::IntOrReal
  • Int_J0() : Vtl::NumAlg::Spf::bess
  • Interleave : Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • interleave : Vtl::Img::ImageInfo
  • Interp()
: Vtl::ImAlg::Model::BaseAffine< T >
, Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::Homography< T >
  • InterpBilinear() : InterpBilinear< Pixel > , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , InterpBilinear< Img::Pixel > , InterpBilinear< Real_t >
  • interpolateAverage() : ImageTransformMatrixImpl
  • interpolateBicubical() : ImageTransformMatrixImpl
  • InterpolationMethod : ImageResample
  • intersection() : YRect< T > , YRect< int > , YRect< T >
  • intersects() : YRect< int > , YRect< T >
  • Inverse() : Vtl::ImAlg::Model::SkewYOffset< T >
  • inverse() : Quaternion< T > , Quaternion< value_type >
  • Inverse()
: Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Model::SkewXOffset< T >
  • inverse() : Quaternion< value_type > Vector_3
  • Inverse() : Vtl::ImAlg::Model::Similarity< T >
  • inverse()
: Vtl::NumAlg::Lin::eigen
, Vtl::NumAlg::Lin::svd
  • Inverse() : Vtl::ImAlg::Model::Affine< T >
  • inverse_save() : Vtl::NumAlg::Lin::svd
  • ir : Vtl::Plf::StripBuffer< T >
  • Is() : childPipe
  • is_edged : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • is_float : Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
  • is_metric
: Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::HSV
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::YIQ
  • is_next : Vtl::Meta::Align< T, sz, align_to >::Align_< next, size > , Vtl::Meta::Align< T, sz, align_to >
  • is_Odd : Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i > , forEach
  • is_sample_cyclic_var()
: Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::YIQ
  • is_sample_sign_alternating()
: Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::YUV
  • is_signed : Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
  • is_struct : Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
  • is_system
: Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::HSV
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::XYZ
  • is_valid : ImageResample::ImageResampleParams
  • IsAND() : YXML::DNode::IsAND
  • IsAttr() : YXML::IsAttr< T, Cmp >
  • IsAttrIn() : YXML::IsAttrIn< T >
  • IsAvail() : ReadString
  • isComplex() : GammaCor< float > , DstArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , Resample< float > , SrcAImage< Real_t, Img > , Canny< float > , SqrtOfSumSqr< float > , GammaCor< float > , GammaCorMult< float > , HarrisNMS< float > , GradientModul< float > , ConvolveHorz< float > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DiZenzo< float > , ToBounds< float > , AverageGauss< float > , Y< float > , GammaCor< float > , SrcAImage< Real_t, AImageMem8 > , DstAImage< float, Img > , GammaCor< float > , MeanAndDisp< float > , GammaCor< float > , ConvolveVert< float > , DstContainer< Real_t, Container_t > , SrcAImage< unsigned, Img > , Average< float > , GammaCorMult< float > , GammaCor< float > , SrcAImage< Real_t, T > , BiLateral< float > , Vtl::Plf::FilterBase , Vtl::Plf::FilterElementary , Vtl::Plf::FilterComplex , ToBounds< float > , SrcArray< Real_t, Real_t > , Mult< float >
  • IsCond() : YXML::DNode::IsCond
  • isConst : Vtl::Types::Traits< T >
  • isContains() : Vtl::Plf::Strip
  • isDataReady() : Vtl::Plf::InPortBase , InPort< T > , Vtl::Plf::InPort< T >
  • isEdge() : Vtl::ImAlg::Edt::isEdge< T >
  • isEmpty() : Vtl::Plf::Strip
  • isEnum() : Vtl::Meta::SizeList_base< T_IList > , SizeList_base< IList > , Layout< T, IList >
  • IsEOF() : ReadString
  • isEof() : ReadPipe , WritePipe
  • IsFileExist() : YXML::XMLdoc
  • isFilledPixel() : ImageTransformMatrixFastImpl , ImageTransformMatrixImpl
  • isFinished() : SqrtOfSumSqr< float > , Vtl::Plf::OutPortBase , Iter_Line , DstContainer< Real_t, Container_t > , Vtl::Plf::InPortBase , EnvProc1to1< Real_t, Func, PostThresh > , Y< float > , SrcAImage< Real_t, T > , InPort< T > , Mult< float > , SrcAImage< Real_t, AImageMem8 > , DstAImage< unsigned, Img > , DstAImage< float, Img > , DstArray< Real_t, Real_t > , OutPortNoPostProc< Real_t > , ConvolveHorz< float > , SrcAImage< float, Img > , HarrisNMS< float > , Iter_Line , Vtl::Plf::FilterElementary , SrcArray< Real_t, Real_t > , SrcAImage< Real_t, Img > , ConvolveVert< float > , SrcAImage< unsigned, Img > , GammaCorMult< float >
  • isFullRank() : Vtl::NumAlg::Lin::QR
  • isGray
: Layout< T, IList >
, Vtl::Plf::Impl::GraphBuilder
, Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
, Vtl::Meta::Layout< T, IList >
  • isIn() : Vtl::Plf::Strip , YRect< T > , YRect< int > , YRect< T >
  • IsInlier() : T_Model< Operations > , Basics3D::T_Model< Operations >
  • isInLine() : LineFun
  • isInLineBres4() : LineFun
  • IsLeapYear() : YDtTm , YDataTime
  • isLinear
: Vtl::ImAlg::Model::BaseAffine< T >
, Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Model::Offset< T >
  • isMemberPointer : Vtl::Types::Traits< T >
  • IsName() : YXML::IsName< Cmp >
  • IsNode() : YXML::DNode , WiNode
  • IsOk() : ImageMemFloat , DllModule , AImage , YDataTime , tplAImageReference< ImgT > , ImageMem16Stuff , IFF::PBMfile , ImageMem8 , YFile , ImageMemRgb8 , YSmallAllocLtd , ImageMem16
  • IsOneSeance() : IFF::OzFile
  • IsOR() : YXML::DNode::IsOR
  • isPointer : Vtl::Types::Traits< T >
  • isPointInPolygon() : PolyFun
  • isQualifiedType : Vtl::Types::Traits< T >
  • isReadyForUpdate() : Vtl::Plf::OutPortBase , OutPortNoPostProc< Real_t > , Iter_Line
  • isReference : Vtl::Types::Traits< T >
  • isRunning() : childPipe
  • isSigned : Vtl::Meta::EnumTraits
  • isStdArith : Vtl::Types::Traits< T >
  • isStdArithAll : Vtl::Types::Traits< T >
  • isStdFundamental : Vtl::Types::Traits< T >
  • isStdInteger : Vtl::Types::Traits< T >
  • isStdIntegerAll : Vtl::Types::Traits< T >
  • isStdOtherInt : Vtl::Types::Traits< T >
  • isStdReal : Vtl::Types::Traits< T >
  • isStdSignedInt : Vtl::Types::Traits< T >
  • isStdUnsignedInt : Vtl::Types::Traits< T >
  • isStrightLineSaving
: Vtl::ImAlg::Transf::Affine< T >
, Vtl::ImAlg::Model::Offset< T >
, Affine< T >
, Vtl::ImAlg::Transf::Offset< T >
, Vtl::ImAlg::Model::BaseAffine< T >
, Vtl::ImAlg::Transf::Homography< T >
, Offset< T >
, Vtl::ImAlg::Model::Homography< T >
  • isSymmetric() : Vtl::NumAlg::Lin::eigen
  • istore : AImage::Info
  • isVolatile : Vtl::Types::Traits< T >
  • isWhite() : Vtl::Plf::Impl::GraphBuilder
  • It() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • Iter : Iter_Line , OutPortNoPostProc< Real_t > , Iter_Line , Vtl::Plf::OutPortNoPostProc< T >
  • Iter1DList
: Vtl::Img::ImageNDref< T_SList, T_Layout >
, Vtl::Img::Iterator_ND_spec< T_Layout, false, false >
, Vtl::Img::Iterator_ND_spec< T_Layout, false, true >
  • Iter_Line : Vtl::Plf::StripBuffer< T >
  • iterator
: ImageProxyVector
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Base< T, Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • iterator16 : ImageVectorT< Base, Bit8, Bit16 >
  • iterator8 : ImageVectorT< Base, Bit8, Bit16 >
  • Iterator_1D()
: Vtl::Img::Iterator_1D< T, 0 >
, Vtl::Img::Iterator_1D< T, T_stride >
, Vtl::Img::Iterator_1D< T, 0 >
, Vtl::Img::Iterator_1D< T, T_stride >
  • Iterator_ND() : Vtl::Img::Iterator_ND< T_Layout >
  • Iterator_ND_base() : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
  • Iterator_ND_spec()
: Vtl::Img::Iterator_ND_spec< T_Layout, false, false >
, Vtl::Img::Iterator_ND_spec< T_Layout, true, true >
, Vtl::Img::Iterator_ND_spec< T_Layout, false, true >
, Vtl::Img::Iterator_ND_spec< T_Layout, true, false >
  • IterND : Vtl::Img::ImageNDref< T_SList, T_Layout >


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- p -

  • p : DMatrixElem
  • P : TriResult , Vtl::NumAlg::Spf::Gamma
  • p : DatumXY< T >
  • p1 : Basics3D::Structure::Pt< T >
  • P1 : Basics3D::Structure::ProjectiveToMetric< T > , Dlt< value_type > , ProjectiveToMetric< value_type > , Basics3D::Structure::Dlt< T >
  • p1_1 : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • p1_2 : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • p1_3 : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • P2 : Dlt< value_type >
  • p2 : Basics3D::Structure::Pt< T >
  • P2 : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T > , Basics3D::Structure::Dlt< T >
  • p2_1 : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • p2_2 : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • p2_3 : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • p33()
: Hanina::p33< T, 0, 1 >
, Hanina::p33< T, 1, 2 >
, Hanina::p33< T, 0, 2 >
  • p3D : Basics3D::Structure::Pt< T >
  • p_ : CoordArray2D
  • Paint() : VirtDib
  • pal : Vtl::Img::ImageDataLayout , ImageMem8
  • pal_entries : ImageMem8 , IFF::BmpRead , IFF::BmpWrite , VirtDib::Inf , VirtDib
  • pal_length : IFF::TiffReadIFD , IFF::TiffWriteIFD
  • pal_offset
: IFF::BmpWrite
, IFF::TiffWriteIFD
, IFF::TiffReadIFD
  • Palette() : AImage , tplAImageReference< ImgT > , ImageMem8 , ImageMem16
  • palette_entries : Vtl::Img::PaletteAccess
  • palette_ptr : Vtl::Img::PaletteAccess
  • palette_type : Vtl::Img::PaletteAccess
  • Param() : Basics3D::C_Point2DParam
  • ParamNumb() : Basics3D::C_Point2DParam
  • Parent() : YXML::DNode
  • PBM_GRAYSCALE : IFF::PBMfile
  • PBM_RGB : IFF::PBMfile
  • PBM_UNKNOWN : IFF::PBMfile
  • PBMfile() : IFF::PBMfile
  • phase_ : Hartley2Phase< Real_t > , Hartley2PhaseAmpDown< 2, Real_t > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >
  • PhaseCorr() : PhaseCorr< Real_t > , Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >
  • phi : Vtl::ImAlg::Model::Similarity< T >
  • PhiGrid() : PhiGrid< Real_t > , Vtl::ImAlg::Resamp::PhiGrid< T >
  • pi : childPipe
  • pic_plane() : Vtl::Img::pic_plane< pel, stride >
  • pics_ : TransformCell
  • PICStoICS() : ImageTransformImpl
  • pImpl_ : ImageTransform
  • PixByPix2to1() : Vtl::Plf::PixByPix2to1< T, F, P > , GammaCorMult< float > , SqrtOfSumSqr< float >
  • PixByPix2to3() : Vtl::Plf::PixByPix2to3< T, P >
  • PixByPix3to1() : Vtl::Plf::PixByPix3to1< T, Func, P > , Y< float >
  • PixByPix3to3() : Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
  • PixByPix4to1() : Vtl::Plf::PixByPix4to1< T, Func, P >
  • PixByPix5to1() : Vtl::Plf::PixByPix5to1< T, Func, P >
  • Pixel : AImageMem16 , Vtl::Plf::ImageRef< T > , ImageRef< T > , AImageMemFloat , AImageMemRgb8 , AImageMem8 , AImageMemRgb16 , YImageFrame , ImageRef< int >
  • PixelType : Vtl::Types::PixelTraits< T >
  • pl : ImageFragmentRgb8
  • plane
: Hanina::p33< T, 0, 1 >
, Hanina::p33< T, 1, 2 >
, Hanina::p33< T, 0, 2 >
, Vtl::Img::pic_plane< pel, stride >
  • PlaneImageType : AImageMemRgb8 , AImageMemRgb16
  • Planes() : Vtl::Img::ImageBase< P, planes, interleave >
  • planes : Vtl::Img::ImageInfo
  • Planes3() : Hanina::Planes3< T >
  • Planes_t
: ScaleScan3x3< T >
, Hanina::p33< T, 0, 1 >
, Hanina::p33< T, 1, 2 >
, Hanina::p33< T, 0, 2 >
, Hanina::ScaleScan3x3< T >
  • planesBegin16() : ImageVectorT< Base, Bit8, Bit16 >
  • planesBegin8() : ImageVectorT< Base, Bit8, Bit16 >
  • planesCount16() : ImageVectorT< Base, Bit8, Bit16 >
  • planesCount8() : ImageVectorT< Base, Bit8, Bit16 >
  • planesEnd16() : ImageVectorT< Base, Bit8, Bit16 >
  • planesEnd8() : ImageVectorT< Base, Bit8, Bit16 >
  • Point() : Vtl::ImAlg::Registration::Container< Real_t >::Point
  • pointattributelist : triangulateio
  • PointeeType : Vtl::Types::Traits< T >
  • pointer_type
: FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Base< T, Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • pointlist : triangulateio
  • pointmarkerlist : triangulateio
  • points : Comp3D< value_type > , Basics3D::Structure::Comp3D< T >
  • points2D : Basics3D::Structure::Comp3D< T > , Comp3D< value_type >
  • polygon_ : ImageTransformMatrixImpl
  • pop() : Vtl::ImAlg::Conv::Impl::Buffer< T, K >
  • PopTail() : Iter_Line , Vtl::Plf::OutPortBase , Vtl::Plf::OutPortNoPostProc< T > , Vtl::Plf::StripBuffer< T > , OutPortNoPostProc< Real_t > , Iter_Line
  • Port() : Iter_Line
  • port : Vtl::Plf::Port
  • Port() : InPort< T > , Vtl::Plf::Port , Iter_Line , OutPortNoPostProc< Real_t >
  • pos
: ReadString
, Vtl::ImAlg::Bres::DrawGradient< Pixel >
, Vtl::ImAlg::Conv::Impl::Buffer< T, K >
, Hanina::ZeroCross< T >
  • PostProc : Vtl::Plf::GradientModul< T, P > , GradientModul< float > , Canny< float > , Vtl::Plf::Canny< T, P >
  • prcs_ : TransformCell
  • PRCStoRCS() : ImageTransformImpl
  • prec_ : Dbg::Format::F
  • prev
: Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >
  • Prev() : YXML::DNode
  • print() : Container< Real_t >
  • Print() : T_Points2DSet< Point >
  • print : Layout< T, IList > , Iter_Line , InPort< T > , Vtl::Plf::Port
  • Print()
: T_Points2DSet< C_Point2D >
, Basics3D::T_MatrixOperations
, Basics3D::C_Point2D
, Basics3D::T_Points2DSet< Point >
  • print() : OutPortNoPostProc< Real_t > , Vtl::ImAlg::Registration::Container< Real_t > , Iter_Line , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > , Vtl::Meta::IL::Debug< IndexList< i, Tail > > , Vtl::Meta::IL::Debug< IndexList< i, Loki::NullType > > , Vtl::Meta::IL::Debug< Loki::NullType > , Vtl::Meta::Layout< T, IList >
  • Print() : Cluster1D< T, DatumType > , Cluster2D< T, DatumType >
  • print_ab() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • printf() : DebugBase , DebugToFile
  • printList() : Vtl::Plf::FiltersSystem
  • printRatio() : Vtl::ImAlg::Registration::Container< Real_t > , Container< Real_t >
  • prms : ImageResample
  • proc() : Iter_Line , Vtl::Plf::OutPort< T, P >
  • processed_ : ImageTransformCellImpl
  • processLine() : Vtl::Plf::SrcAImageRgb< T, I, P > , Vtl::Plf::EnvProc3to1< T, Func, P > , EnvProc1to1< Real_t, Func, PostThresh > , DstArray< Real_t, Real_t > , DstContainer< Real_t, Container_t > , Vtl::Plf::medianFilter2< T, P > , SqrtOfSumSqr< float > , SrcAImage< float, Img > , Vtl::Plf::DstContainer< T, C, P > , Vtl::Plf::PixByPix2to1< T, F, P > , Vtl::Plf::Levels< T, P > , Mult< float > , Vtl::Plf::PixByPix4to1< T, Func, P > , DstAImage< float, Img > , Vtl::Plf::PixByPix5to1< T, Func, P > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > , Vtl::Plf::PixByPix3to1< T, Func, P > , Vtl::Plf::PixByPix2to3< T, P > , Vtl::Plf::FilterElementary , Vtl::Plf::ConvolveHorz< T, P > , Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > , Vtl::Plf::SrcArray< T, I, P > , Vtl::Plf::DstArray< T, Pixel > , SrcAImage< Real_t, Img > , Vtl::Plf::ConvolveVert< T, P > , SrcArray< Real_t, Real_t > , ConvolveHorz< float > , Vtl::Plf::medianFilter< T, P > , Vtl::Plf::FilterResampleHorz< T, P > , SrcAImage< Real_t, AImageMem8 > , Y< float > , HarrisNMS< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , Vtl::Plf::EnvProc1to1< T, Func, P > , Vtl::Plf::FilterResampleVert< T, P > , ConvolveVert< float > , GammaCorMult< float >
  • ProcessMatrix() : ProcessMatrix
  • processPixel() : ImageTransformMatrixImpl
  • ProgressCounter() : ProgressCounter
  • ProjectiveToMetric() : Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type >
  • propagateImageSize() : Vtl::Plf::FiltersSystem
  • Properties() : Direct< float, int > , Direct_Ref< float, int > , Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >
  • proxies_ : ImageProxyVector
  • PseudoInverseElem() : Vtl::NumAlg::Lin::PseudoInverseElem< T >
  • PseudoInverseElemPositive() : Vtl::NumAlg::Lin::PseudoInverseElemPositive< T >
  • ptr : Vtl::Img::pic_plane< pel, stride > , Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > , ColumnIteratorFast< T > , LineIterator< T > , Vtl::Plf::LineIterator< T > , PtrDelete< T > , Vtl::Plf::ColumnIteratorFast< T > , PtrArrayDel< T >
  • ptr_after_right : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , Base< T, Kernel::KT_Conv >
  • ptr_beg_ins : Vtl::Plf::StripBuffer< T >
  • ptr_center : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , Base< T, Kernel::KT_Conv >
  • ptr_left : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , Base< T, Kernel::KT_Conv >
  • ptr_sizeof : Vtl::Img::ImageDataLayout
  • PtrArrayDel() : PtrArrayDel< T >
  • PtrDelete() : PtrDelete< T >
  • ptrLine0() : Vtl::Plf::StripBuffer< T >
  • ptrLineStart() : Vtl::Plf::StripBuffer< T >
  • push() : Vtl::ImAlg::Conv::Impl::Buffer< T, K >
  • put() : Fifo< int > , Vtl::Plf::Fifo< T > , Fifo< Vtl::Plf::FilterElementary * >
  • put_in_queue() : DstAImage< float, Img > , SqrtOfSumSqr< float > , SrcAImage< Real_t, Img > , DstContainer< Real_t, Container_t > , SrcAImage< unsigned, Img > , ConvolveHorz< float > , DstAImage< unsigned, Img > , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , GammaCorMult< float > , Mult< float > , SrcAImage< float, Img > , ConvolveVert< float > , Vtl::Plf::FilterElementary , SrcAImage< Real_t, T > , SrcAImage< Real_t, AImageMem8 > , DstArray< Real_t, Real_t > , Y< float > , HarrisNMS< float >
  • putConnectionsInQueue() : Vtl::Plf::OutPortBase , Iter_Line , OutPortNoPostProc< Real_t >
  • PutPalette() : IFF::TiffWriteIFD


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- q -

  • q : Quaternion< T > , Quaternion< value_type >
  • Q() : Vtl::NumAlg::Spf::Gamma
  • q : Quaternion< value_type > Vector_3
  • Q_f() : Vtl::ImAlg::C::YIQ
  • Quaternion() : Quaternion< value_type > Vector_3 , Quaternion< T > , Quaternion< value_type > , Quaternion< T > , Quaternion< value_type > Vector_3 , Quaternion< T > , Quaternion< value_type > Vector_3


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- r -

  • r
: YXML::DNode::IsOR
, AImage::Rgb
, AImage::Bgr
, Vtl::Plf::F11::Threshold< T, Comp >
, IFF::RgbQuad
, Vtl::Plf::Fpie::Himg2< T >
, Vtl::Plf::Fpie::BiLateralSmooth< T >
, BiLateralSmooth< T >
, Himg2< T >
, Vtl::Plf::SrcAImageRgb< T, I, P >
  • R : CameraPoseFromEssential< value_type >
  • r : Vtl::Img::Rgb< T >
  • R : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , Basics3D::Structure::CameraPos< T >
  • r
: Vtl::Plf::medianFilter< T, P >
, Vtl::Plf::medianFilter2< T, P >
, YXML::DNode::IsAND
  • R0 : CameraPoseFromEssential< value_type > , Basics3D::Fm2Essential::CameraPoseFromEssential< T >
  • R5() : Vtl::ImAlg::WndFun::Laws5< T >::R5
  • R_f()
: Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
  • radians : ImageResample::ImageResampleParams
  • rank : Vtl::Plf::Impl::Node
  • raw_data : Vtl::Img::Image< P, planes, interleave >
  • rcs_ : TransformCell
  • RCStoICS() : ImageTransformImpl
  • RCStoPRCS() : ImageTransformImpl
  • RCStoPRCSr() : ImageTransformImpl
  • rdpipe_ : ReadString
  • re : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • re1 : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • re2 : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • re_ : Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >
  • read() : YFileRead , AImage , tplAImageReference< ImgT > , ImageFragment8 , ImageFragment16 , ImageFragmentRgb8 , ImageMem16Stuff , IFF::BmpRead , IFF::FloatImageFile , ImageMem8 , ImageMem16 , ImageMemFloat , ImageMemRgb8 , IFF::OzFile , IFF::PBMfile
  • readHeader()
: IFF::FloatImageFile
, IFF::OzFile
, IFF::PBMfile
  • readIFD() : IFF::TiffReadIFD
  • readImage() : IFF::Tiff8Read
  • readNoWait() : ReadPipe
  • ReadPipe() : ReadPipe
  • readSlow() : YImageFrame
  • ReadString() : ReadString
  • readStrip() : IFF::Tiff8Read
  • readWait() : ReadPipe
  • real : Vtl::Img::complex_type< float >
  • Real : Vtl::Types::SUIntOrReal
  • real : Vtl::Img::complex_type< double >
  • Real : Vtl::Types::IntOrReal
  • RecomputeWithAllPoints()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
  • Reconstruction() : Basics3D::C_StructureComputation
  • Rect() : Vtl::ImAlg::WndFun::Rect< T, D >
  • reference_counter : YXML::Xercesc
  • reference_type
: FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Base< T, Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
  • ReferredType : Vtl::Types::Traits< T >
  • Reflect() : Vtl::ImAlg::Conv::Conv2D
  • ReflectHalfToOther() : ReflectHalfToOther< 2, Real_t, true > , Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >
  • ReflectInplace() : Vtl::ImAlg::Conv::Conv2D
  • regionlist : triangulateio
  • ReIm2AmpPhase() : FFT_2D
  • Remove() : YTArray< T > , YTDynArray< T >
  • RemoveGroup() : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::T_Points2DSet< Point >
  • report() : TriResult
  • reProjectionStdDev() : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • Resample() : Vtl::Plf::Resample< T, P > , Resample< float >
  • reserv
: Vtl::Img::SampleAccess
, Vtl::Img::PaletteAccess
, Vtl::Img::ImageDataLayout
  • reserved
: IFF::RgbQuad
, IFF::FloatImageFile::Header
, IFF::OzFile::Header
  • Restart() : SrcArray< Real_t, Real_t > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , Vtl::Plf::SrcArray< T, I, P > , Vtl::Plf::SrcAImageRgb< T, I, P > , Vtl::Plf::DstArray< T, Pixel > , Vtl::Plf::DstContainer< T, C, P > , SrcAImage< unsigned, Img > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , SrcAImage< Real_t, T > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img >
  • Result : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList , Vtl::Img::T2DataType< T >
  • result() : Vtl::ImAlg::WndFun::Bartlett< T, D >
  • Result : Vtl::Img::DataTypeList2TypeList< Types::Typelist< T1, T2 > > , stride , Vtl::Types::TL::AppendIf< TList, U, append > , Vtl::Img::DataTypeList2TypeList< T > , stride , Vtl::Types::isIntOrReal< T > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I > , Vtl::Types::TL::isIn< TList, T > , Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >
  • result()
: Vtl::ImAlg::WndFun::Rect< T, D >
, Vtl::ImAlg::WndFun::Bartlett< T, D >
  • Result : Vtl::Types::isSUIntOrReal< T > , Vtl::Meta::IL::Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >
  • result() : Vtl::ImAlg::WndFun::DoG< T, D >
  • Result : Vtl::Meta::IL::MakeInRange< i, n >
  • result()
: Vtl::ImAlg::WndFun::Kaiser< T, D >
, Vtl::ImAlg::WndFun::common_Trig< T, D, K >
  • Result : Vtl::Meta::IL::MakeInRange< n, n > , Vtl::Meta::IL::PushFront< i, IList > , Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, i > , Vtl::Meta::IL::PushBack< i, Loki::NullType > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::MoveX_selector< i > , Vtl::Types::TL::MakeTypelist<> , Vtl::Meta::IL::ConCat< Head, Loki::NullType > , Vtl::Meta::IL::ConCat< Head, IndexList< i, Tail > > , Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 > , Vtl::Meta::IL::Erase< i, Loki::NullType > , Vtl::Img::BuildIter1DList< T_Layout >::build< i > , Vtl::Meta::IL::Erase< i, IndexList< i, T > > , Vtl::Meta::IL::Erase< i, IndexList< j, T > > , Vtl::Img::BuildIter1DList< T_Layout >::build< ND > , Vtl::Meta::IL::EraseAt< i, Loki::NullType > , Vtl::Types::Traits< T > , Vtl::Meta::IL::EraseAt< 0, IndexList< j, T > > , Vtl::Img::BuildIter1DList< T_Layout > , Vtl::Meta::IL::EraseAt< i, IndexList< j, T > > , Vtl::Meta::IL::PushBack< i, IndexList< j, Tail > >
  • result : Vtl::Meta::det< Matrix >
  • Result : Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, 1 > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< i > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< ND > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >
  • result_type : Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , InterpBilinear< Real_t > , InterpBilinear< Img::Pixel > , InterpBilinear< Pixel >
  • RetPoints() : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::T_Points2DSet< Point >
  • Reverse() : Reverse< T, D > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D >
  • reverse() : ATransformFunction
  • Rewind() : Vtl::Plf::StripBuffer< T > , Iter_Line
  • rewind() : Vtl::ImAlg::Conv::Impl::Buffer< T, K >
  • Rewind()
: InPort< T >
, OutPortNoPostProc< Real_t >
, Vtl::Plf::OutPortNoPostProc< T >
, Vtl::Plf::InPortBase
, Vtl::Plf::OutPortBase
  • rgb()
: Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::XYZ
  • RGBto01()
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
  • Right() : FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • right() : YRect< int > , Vtl::Plf::Extent
  • Right() : FKern< float, Vtl::Plf::Kernel::KT_Win >
  • right() : FKern< float > , Hamming< float, 2 > , Hamming< float, 3 > , Hann< float, 3 > , YRect< T >
  • Right() : FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • right() : Vtl::ImAlg::WndFun::DoG< T, D >
  • Right() : FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • right() : Direct_Ref< float, int >
  • Right()
: Basics3D::C_Epipole
, Basics3D::C_ProjectiveMatrix
  • right() : Hamming< float, 0 > , Hamming< float, 4 > , YRect< int > , Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > , Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > , Hamming< float, 1 > , Vtl::ImAlg::WndFun::Sinc< T, 0 > , Vtl::ImAlg::WndFun::common_Trig< T, D, K > , FKern< float, Vtl::Plf::Kernel::KT_Conv, true > , FKern< float, Vtl::Plf::Kernel::KT_Conv > , Hann< float, 4 > , FKern< float, Vtl::Plf::Kernel::KT_Win >
  • Right() : FKern< float >
  • right() : YRect< T > , FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • Right() : Base< T, Kernel::KT_Conv >
  • right() : YRect< T >
  • Right() : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • right()
: FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::ImAlg::WndFun::Bartlett< T, D >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, YRect< T >
  • Right() : FKern< float, Vtl::Plf::Kernel::KT_Conv >
  • right()
: Vtl::ImAlg::WndFun::Kaiser< T, D >
, Base< T, Kernel::KT_Conv >
, Hann< float, 1 >
  • Right() : Basics3D::C_ProjectiveMatrix
  • right() : Hann< float, 2 > , Hann< float, 0 >
  • Ripple() : L5 , Vtl::ImAlg::WndFun::Laws5< T >
  • Role : Vtl::Plf::Impl::Node
  • role : Vtl::Plf::Impl::Node
  • Root() : WinIniFile , YXML::XMLdoc
  • Rotation() : Basics3D::C_TransformMatrices
  • RotationMatrix : Quaternion< value_type > , Quaternion< T > , Quaternion< value_type > Vector_3
  • RotationX() : Basics3D::C_TransformMatrices
  • RotationY() : Basics3D::C_TransformMatrices
  • RotationZ() : Basics3D::C_TransformMatrices
  • RowsAndCols : Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >
  • RowsPerStrip()
: IFF::TiffWriteIFD
, IFF::TiffReadIFD
  • rowsPS : IFF::TiffWriteIFD , IFF::TiffReadIFD
  • run() : ImageTransformCellImpl
  • Run() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >
  • run() : ImageTransformImpl , ImageTransformMatrixImpl
  • Run() : Vtl::Plf::Kernel::ImageWin< T > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > , ImageResize , Vtl::Plf::Impl::DelayAdjuster
  • run() : ImageTransform
  • Run() : ImageResample
  • run() : ImageTransform
  • Run() : Vtl::Plf::FiltersSystem , MSlidingEqualization , ImageRotate , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , ImageWin< Real_t >
  • RunTri() : TriResult
  • russian() : ProgressCounter


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- s -

  • s1 : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >
  • s2 : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >
  • s3 : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >
  • S5() : Vtl::ImAlg::WndFun::Laws5< T >::S5
  • sameType : Vtl::Types::Traits< T > , Vtl::Types::Conversion< T, U >
  • sample
: Vtl::Img::ImageDataLayout
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
  • sample_max()
: Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
  • sample_max_saturation()
: Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
  • sample_maxabs()
: Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
  • sample_min()
: Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
  • sample_name()
: Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::HSV
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
  • sample_nextLineShift : Vtl::Img::SampleAccess
  • sample_ptr : Vtl::Img::SampleAccess
  • sample_size : Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
  • sample_step : Vtl::Img::SampleAccess
  • sample_type : Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
  • sample_type_id : Vtl::Img::ImageInfo
  • SampleSize()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
  • Save() : YXML::XMLdoc , T_Points2DSet< C_Point2D >
  • save : CyclicConvInplace< T, K1 > , CyclicConvInplace< T, K2 > , CyclicConvInplace< T, K > , ConvInplace< T, K1 > , ConvInplace< T, K2 > , ConvInplace< T, K >
  • Save() : tplAImageReference< ImgT > , T_Points2DSet< Point >
  • save : ConvInplace< float, K0 > , ConvInplace< float, K1 > , ConvInplace< float, K2 > , ConvInplace< float, K3 > , ConvInplace< float, K4 > , ConvInplace< float, K0 >
  • Save()
: Basics3D::C_AbsDifference
, Basics3D::C_Combination
, Basics3D::C_DrawEpipolarLines
, Basics3D::T_MatrixOperations
, Basics3D::T_Points2DSet< Point >
, Basics3D::C_Transform
  • save : Vtl::ImAlg::Conv::CyclicConvInplace< T, K > , Vtl::ImAlg::Conv::ConvInplace< T, K > , CyclicConvInplace< float, K > , ConvInplace< float, K >
  • SaveFormat() : Gen::Data::SaveFormat
  • SaveForMathLab()
: FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Base< T, Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • SaveGraphAsDot() : Vtl::Plf::FiltersSystem
  • SaveImage() : Hanina::Planes3< T >
  • scale : Vtl::ImAlg::Model::Similarity< T >
  • Scale()
: Basics3D::T_MatrixOperations
, Basics3D::C_Point2D
  • scale_ : ImageTransformImpl
  • ScaleScan3x3() : ScaleScan3x3< T > , Hanina::ScaleScan3x3< T >
  • Scaling() : Basics3D::C_TransformMatrices
  • sec_digits : DataString
  • second_ : Convert2ByteBounded , GammaCorMult< T > P , Convert< uint8_t > , Vtl::Plf::F11::Comb< T, F1, F2 > , Convert< uint8_t > , Lin< float > , Abs< float > , Convert< uint8_t >
  • secondParts : Vtl::Plf::OLSI::Gistogramm2< T >
  • Seconds() : YDataTime
  • SecondsInYear() : YDtTm , YDataTime
  • segmentlist : triangulateio
  • segmentmarkerlist : triangulateio
  • SeparableConv2D() : Vtl::Plf::SeparableConv2D< T, P >
  • Set() : PtrDelete< T >
  • set() : Vtl::ImAlg::Transf::Homography< T >
  • Set() : YTimeInterval
  • set()
: Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::SkewYOffset< T >
  • Set() : YTimeInterval
  • set() : Vtl::ImAlg::Model::SkewYOffset< T >
  • Set() : YTimeInterval
  • set()
: Vtl::ImAlg::Model::SkewXOffset< T >
, Vtl::ImAlg::Model::Similarity< T >
  • Set() : YDataTime
  • set()
: Vtl::ImAlg::Model::Similarity< T >
, Vtl::ImAlg::Model::Affine< T >
  • Set() : YDataTimeZone
  • set() : Vtl::ImAlg::Model::Homography< T >
  • Set() : YDataTimeZone
  • set() : CoverageMatrix , ProcessMatrix , CoverageMatrix , AImageProxy , ImageProxy< ImageT > , ImageProxyConst< ImageT > , SizeList_base< IList > , Layout< T, IList > , Vtl::Meta::SizeList_base< T_IList >
  • Set() : DataString
  • Set0() : Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >
  • Set4Pixels()
: Vtl::ImAlg::Bres::Circle< T >
, Vtl::ImAlg::Bres::EllipseH< F >
  • set_1() : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • set_2() : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • set_all() : Layout< T, IList > , Vtl::Meta::SizeList_base< T_IList > , SizeList_base< IList >
  • set_all_() : SizeList_base< IList > , Vtl::Meta::SizeList_base< T_IList >
  • set_amp()
: Hartley2PhaseAmpDown< 2, Real_t >
, ReflectHalfToOther< 2, Real_t, true >
, Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >
, ReflectHalfToOther< 2, Real_t, true >
  • set_BIL_data() : Vtl::Img::ImageDataLayoutHolder
  • set_BIP_data() : Vtl::Img::ImageDataLayoutHolder
  • set_BSQ_data() : Vtl::Img::ImageDataLayoutHolder
  • set_bufferImgSize() : Iter_Line , Vtl::Plf::OutPortBase , Vtl::Plf::OutPortNoPostProc< T > , OutPortNoPostProc< Real_t >
  • set_DotFName() : Vtl::Plf::FiltersSystem
  • set_IterNextLineShift()
: HarrisNMS< float >
, CannyNMS< float >
, Himg< T >
, BiLateralSmooth< T >
, CannyNMS< T >
, Himg2< T >
, Vtl::Plf::Fpie::HarrisNMS< T >
, Vtl::Plf::Fpie::HarrisNMS_Smooth< T >
, Vtl::Plf::Fpie::Himg2< T >
, Vtl::Plf::Fpie::Himg< T >
, Vtl::Plf::Fpie::BiLateralSmooth< T >
, Vtl::Plf::Fpie::CannyNMS< T >
, Vtl::Plf::Fpie::CannyNMS_2< T >
, Hanina::ZeroCross< T >
  • set_Level() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • set_m() : mediana< T > , Vtl::Plf::OLSI::mediana< T >
  • set_OutPortsImagesSizeAndInPortsExtents() : SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , HarrisNMS< float > , ConvolveHorz< float > , ConvolveVert< float > , GammaCorMult< float > , Mult< float > , SqrtOfSumSqr< float > , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , Vtl::Plf::FilterElementary , Vtl::Plf::PixByPix3to1< T, Func, P > , Vtl::Plf::PixByPix4to1< T, Func, P > , Vtl::Plf::PixByPix5to1< T, Func, P > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > , Vtl::Plf::FilterResampleHorz< T, P > , Vtl::Plf::PixByPix2to3< T, P > , Vtl::Plf::FilterResampleVert< T, P > , Vtl::Plf::SrcArray< T, I, P > , Vtl::Plf::SrcAImageRgb< T, I, P > , Vtl::Plf::DstArray< T, Pixel > , Vtl::Plf::DstContainer< T, C, P > , Vtl::Plf::medianFilter< T, P > , Vtl::Plf::medianFilter2< T, P > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , Y< float > , SrcAImage< Real_t, T >
  • set_Palette() : Vtl::Img::ImageDataLayoutHolder
  • set_SEP_data() : Vtl::Img::ImageDataLayoutHolder
  • set_total_delay() : SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , HarrisNMS< float > , ConvolveHorz< float > , ConvolveVert< float > , GammaCorMult< float > , EnvProc1to1< Real_t, Func, PostThresh > , DstArray< Real_t, Real_t > , Iter_Line , Mult< float > , Vtl::Plf::FilterElementary , Vtl::Plf::OutPortBase , SrcArray< Real_t, Real_t > , DstContainer< Real_t, Container_t > , SrcAImage< Real_t, Img > , OutPortNoPostProc< Real_t > , SrcAImage< Real_t, AImageMem8 > , Y< float > , SqrtOfSumSqr< float > , SrcAImage< Real_t, T >
  • set_x() : SizeList_base< IList > , Vtl::Meta::SizeList_base< T_IList > , SizeList_base< IList >
  • set_zero() : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • SetAll() : YTArray< T >
  • SetAttr() : YXML::DNode , WiNode
  • setBackgroundColor() : ImageTransformImpl , ImageTransform
  • SetChanel() : IFF::OzFile
  • setDataTime_Precision() : DataString
  • SetDate() : IFF::OzFile
  • setDstImage() : DstAImage< unsigned, Img > , DstAImage< float, Img > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , Vtl::Plf::DstArray< T, Pixel > , Vtl::Plf::DstAImage< T, I > , Vtl::Plf::DstContainer< T, C, P >
  • setErrorColor() : ImageTransformImpl , ImageTransform
  • setFlipHorizontal() : ImageTransform , ImageTransformImpl
  • setFlipVertical() : ImageTransform , ImageTransformImpl
  • SetGrayPalette() : VirtDib
  • setGridAdjustment() : ImageTransformImpl , ImageTransform
  • SetGrowStep() : YTArray< T >
  • SetHeader() : IFF::OzFile
  • setIdentity()
: Vtl::ImAlg::Model::Similarity< T >
, Vtl::ImAlg::Model::Affine< T >
, Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Model::SkewXOffset< T >
, Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::SkewYOffset< T >
  • SetImagePalette() : VirtDib
  • setName() : SrcAImage< unsigned, Img > , SrcAImage< float, Img > , DstArray< Real_t, Real_t > , Resample< float > , Average< float > , ToBounds< float > , MeanAndDisp< float > , ToBounds< float > , GammaCorMult< float > , BiLateral< float > , GammaCor< float > , GammaCorMult< float > , ConvolveHorz< float > , GammaCor< float > , GradientModul< float > , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , Mult< float > , Vtl::Plf::FilterBase , SrcAImage< Real_t, T > , HarrisNMS< float > , DstAImage< float, Img > , AverageGauss< float > , DstAImage< unsigned, Img > , SrcAImage< Real_t, Img > , Canny< float > , SrcAImage< Real_t, AImageMem8 > , Y< float > , DiZenzo< float > , DstContainer< Real_t, Container_t > , SqrtOfSumSqr< float > , ConvolveVert< float >
  • SetNumb() : Basics3D::C_Point2D
  • SetPixel() : Vtl::ImAlg::Tools::findMax::SetPixel< T, stride > , SetPixel< float, 1 >
  • SetPixelGray() : Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >
  • SetPosition() : YFileRead , YFileWrite
  • setPostProc() : Iter_Line , Vtl::Plf::OutPort< T, P >
  • SetSize() : YTArray< T >
  • setSize() : CoverageMatrix
  • SetSize() : YTArray< T >
  • setSize() : DistributionMatrix , CoordArray2D , ProcessMatrix
  • SetTime() : IFF::OzFile
  • SetTimeEnd() : IFF::OzFile
  • SetTo() : AImageMemRgb8 , YImageFrame , ImageFragmentRgb8 , AImageMem8 , AImageMemRgb8 , AImageMemFloat , AImageMem16 , ImageFragment16 , ImageMemFloat , AImageMemRgb16 , AImageMem16 , ImageFragment8
  • SetTrajectory() : IFF::OzFile
  • setValue() : YXML::DNode
  • SetValue() : WiNode , YXML::DNode
  • SevenPointsAlg() : Basics3D::C_FundamentalMatrix
  • sgn : DatumR< T >
  • sharp : ToBounds< float > , Vtl::Plf::Sharpen< T, P >
  • Sharpen() : ToBounds< float > , Vtl::Plf::Sharpen< T, P > , Vtl::Plf::F21::Sharpen< T > , Sharpen< T >
  • Shift() : Basics3D::C_Point2D
  • shiftCell() : ImageTransformMatrixImpl
  • shiftx : ImageResample::ImageResampleParams
  • shifty : ImageResample::ImageResampleParams
  • show_lists() : Vtl::Plf::FiltersSystem
  • sigma
: GradientModul< float >
, Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >
, Vtl::ImAlg::WndFun::DoG< T, D >
, SortS< double >
, Vtl::Plf::DiZenzo< T, P >
, Vtl::Plf::GradientCorr< T, P >
, Vtl::Plf::Canny< T, P >
, Basics3D::SortS< T >
, Students::Curve::EdgeDetect< T >
, Canny< float >
, DiZenzo< float >
, Vtl::Plf::GradientModul< T, P >
  • sigma_22 : Vtl::Plf::Fpie::BiLateralSmooth< T > , BiLateralSmooth< T >
  • sigma_d : StatDiff< T > , Vtl::Plf::F31::StatDiff< T > , Vtl::Plf::F31::StatDiffThresh< T >
  • sign_ : Dbg::Format::F
  • Signed : Vtl::Meta::EnumTraits::IsEnum
  • sinc() : Vtl::ImAlg::WndFun::Sinc< T, 0 >
  • Sinc() : Vtl::ImAlg::WndFun::Sinc< T, 0 >
  • SInt : Vtl::Types::SUIntOrReal
  • Size() : PtrDelete< T > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > , YTArray< T >
  • size() : Hamming< float, 2 > , Hamming< float, 4 > , Hamming< float, 0 > , Direct_Ref< float, int > , FKern< float, Vtl::Plf::Kernel::KT_Win >
  • Size() : T_ImagesSet< AImageMem8 >
  • size() : Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >
  • Size() : T_Points2DSet< C_Point2D > , YTArray< T >
  • size()
: Vtl::ImAlg::WndFun::Bartlett< T, D >
, Vtl::ImAlg::WndFun::DoG< T, D >
, Vtl::ImAlg::WndFun::Sinc< T, 0 >
, Vtl::ImAlg::WndFun::common_Trig< T, D, K >
, Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Hamming< float, 1 >
, Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
, SizeList_base< IList >
, Vtl::Meta::SizeList_base< T_IList >
  • Size() : T_Points2DSet< Point >
  • size : YTArray< T > , FKern< float > , Hann< float, 3 > , FKern< float, Vtl::Plf::Kernel::KT_Conv, true > , YTArray< T > , Hann< float, 0 >
  • Size() : PtrArrayDel< T >
  • size() : Base< T, Kernel::KT_Conv > , Hann< float, 2 > , Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , Layout< T, IList >
  • Size() : Basics3D::T_ImagesSet< Image >
  • size() : Hann< float, 4 > , Hamming< float, 3 >
  • Size() : Basics3D::T_Points2DSet< Point >
  • size() : Vtl::ImAlg::WndFun::Kaiser< T, D > , FKern< float, Vtl::Plf::Kernel::KT_Conv > , ImageContainer< ImgType > , Hann< float, 1 > , PtrArrayDel< T >
  • Size() : Basics3D::C_Points2DParamSet
  • size() : FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • size_type : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • SizeList() : Vtl::Meta::SizeList< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >
  • SizeOfObject() : YSmallAllocLtd
  • sizes : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > , Vtl::Img::ImageNDref< T_SList, T_Layout >
  • SkewSymmetric() : Basics3D::C_TransformMatrices
  • SliceIter() : Vtl::ImAlg::Conv::SliceIter< T, stride > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , SliceIter< T, stride > d stride , SliceIter< T, 0 > , SliceIter< T, stride > , SliceIter< T, 0 > d stride_var , SliceIter< T, 0 >
  • SliceIterConst() : SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , SliceIterConst< T, stride > d stride , SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , SliceIterConst< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , SliceIterConst< T, 0 > , SliceIterConst< T, 0 > d stride_var
  • SList : Vtl::Meta::Layout< T, IList > , Layout< T, IList > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
  • solve()
: Vtl::NumAlg::Lin::svd
, Vtl::NumAlg::Lin::cholesky
  • solve_qe() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • solve_save() : Vtl::NumAlg::Lin::svd
  • SolveDet0() : Basics3D::AbsoluteDualQuadric
  • Sort() : YTHistList< T > , Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >
  • sort() : Vtl::NumAlg::Lin::svd
  • Sort() : Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >
  • Sort_base()
: Vtl::NumAlg::Implicit::Sort_base< N_ >
, Vtl::NumAlg::Implicit::Sort_base< 0 >
  • SortColumns()
: Basics3D::C_ProjectiveMatrix
, Basics3D::T_MatrixOperations
  • sorted : Vtl::Plf::Impl::GraphBuilder
  • SortS() : Basics3D::SortS< T > , SortS< double > , Basics3D::SortS< T > , SortS< double >
  • SortSV() : Basics3D::C_ProjectiveMatrix
  • Source : Vtl::Plf::Impl::Node
  • sources : Vtl::Plf::FiltersSystem
  • spi : IFF::TiffWriteIFD , IFF::TiffReadIFD
  • SplitEvenOdd() : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • Spot() : L5 , Vtl::ImAlg::WndFun::Laws5< T >
  • sprod() : Check_4_grad_sign_change< T > , Hanina::Check_4_grad_sign_change< T >
  • sqr : MeanAndDisp< float > , Vtl::Plf::MeanAndDisp< T, P > , Vtl::ImAlg::Model::Homography< T > , Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 > , Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 >
  • sqr_mean : MeanAndDisp< float > , Vtl::Plf::MeanAndDisp< T, P >
  • SqrtOfSumSqr() : Vtl::Plf::F21::SqrtOfSumSqr< T > , SqrtOfSumSqr< T > , SqrtOfSumSqr< float >
  • SqrType : Vtl::Types::PixelTraits< T >
  • src : Vtl::ImAlg::Tools::findMax::SetPixel< T, stride > , SetPixel< float, 1 > , Vtl::Plf::Impl::GraphBuilder
  • src_image : MSlidingEqualization
  • SrcAImage() : SrcAImage< unsigned, Img > , SrcAImage< Real_t, Img > , SrcAImage< float, Img > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, T > , SrcAImage< float, Img > , SrcAImage< unsigned, Img > , SrcAImage< Real_t, T > , SrcAImage< Real_t, AImageMem8 > , Vtl::Plf::SrcAImage< T, I, P > , SrcAImage< Real_t, AImageMem8 > , Vtl::Plf::SrcAImage< T, I, P >
  • SrcAImageRgb() : Vtl::Plf::SrcAImageRgb< T, I, P >
  • SrcArray() : SrcAImage< Real_t, AImageMem8 > , SrcArray< Real_t, Real_t > , SrcAImage< unsigned, Img > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , SrcAImage< Real_t, T > , Vtl::Plf::SrcArray< T, I, P > , SrcAImage< Real_t, Img > , Vtl::Plf::SrcArray< T, I, P > , SrcAImage< float, Img > , SrcArray< Real_t, Real_t > , SrcAImage< float, Img >
  • SS : Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >
  • start() : ProgressCounter , Vtl::Dbg::TimeElapsed
  • stat : Vtl::Plf::StatDiff< T, P > , ToBounds< float >
  • StatDiff() : Vtl::Plf::F31::StatDiff< T > , StatDiff< T > , ToBounds< float > , Vtl::Plf::StatDiff< T, P > , ToBounds< float > , Vtl::Plf::StatDiff< T, P >
  • StatDiffThresh() : Vtl::Plf::F31::StatDiffThresh< T >
  • Stderr() : childPipe
  • stderr_ : childPipe
  • Stdin() : childPipe
  • stdin_ : childPipe
  • Stdout() : childPipe
  • stdout_ : childPipe
  • step : Vtl::ImAlg::Resamp::LinGrid< T > , YTArray< T > , Vtl::ImAlg::Resamp::PhiGrid< T > , PhiGrid< Real_t >
  • Storage() : Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >
  • storage_ : Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • Storage_t : Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • str() : Vtl::Types::TL::Print< TList >
  • str_length : IFF::TiffReadIFD , IFF::TiffWriteIFD
  • str_offset : IFF::TiffWriteIFD , IFF::TiffReadIFD
  • stream_ : Gen::Data::SaveFormat
  • stride() : Vtl::Meta::Layout< T, IList > , stride
  • Stride() : Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • stride : stride , Layout< T, IList >
  • Stride() : Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
  • stride : Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i > , Vtl::Img::Iterator_1D< T, 0 >
  • Stride() : Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
  • stride : Vtl::Plf::ColumnIteratorFast< T > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , Vtl::Img::Iterator_1D< T, T_stride >
  • Stride() : Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • stride : ColumnIteratorFast< T >
  • Stride() : Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • stride : Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I >
  • stride_0 : Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • stride_band() : Vtl::Meta::Layout< T, IList > , Layout< T, IList >
  • stride_var : Vtl::ImAlg::Conv::SliceIter< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 >
  • StrideIsEnum() : Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
  • strides : Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 > , Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > , Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
  • strides_array_len : Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
  • strides_size : Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 > , Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
  • StringToTime() : DataString
  • strip : Vtl::Plf::InPortBase
  • Strip() : Vtl::Plf::Strip
  • StripBuffer() : Vtl::Plf::StripBuffer< T >
  • StripLength : IFF::Tiff8Read
  • StripLengthOffset : IFF::TIFF_ImageParms
  • StripOffset : IFF::TIFF_ImageParms , IFF::Tiff8Read
  • StripsPerImage()
: IFF::TiffWriteIFD
, IFF::TiffReadIFD
, IFF::TIFF_ImageParms
  • struct_sz : Vtl::Img::ImageDataLayout
  • sum : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >
  • Sum3() : Sum3< T > , Vtl::Plf::F31::Sum3< T >
  • sum_1 : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • sum_2 : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • sum_3 : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • sum_sqr : Vtl::Plf::GradientModul< T, P > , GradientModul< float > , Vtl::Plf::HImageEdge< T, P > , GammaCor< float >
  • sw() : Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, nd > , sw , Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, 1 >
  • sz : Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to > , Hanina::Planes3< T > , YImageFrame , Hanina::Hessian3D< T >
  • sz2 : Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- t -

  • T : Vtl::Meta::det_poly_coef< Matrix, N >
  • t : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , Basics3D::Structure::CameraPos< T >
  • T : OFlow< Model, AllocStrategy >
  • t : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D >
  • T : Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >
  • t : Forward< T, D > , Reverse< T, D > , CameraPoseFromEssential< value_type >
  • t0 : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type >
  • t33 : Hanina::FillingHessianMatrix3x3
  • T_ImagesSet() : Basics3D::T_ImagesSet< Image > , T_ImagesSet< AImageMem8 >
  • T_MistakeFunc() : Basics3D::T_MistakeFunc< Operations > , T_MistakeFunc< MatrixType >
  • T_Model() : Basics3D::T_Model< Operations > , T_Model< Operations >
  • T_Points2DSet() : Basics3D::T_Points2DSet< Point > , T_Points2DSet< C_Point2D > , T_Points2DSet< Point >
  • T_temp
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
  • Table() : Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >
  • tag : IFF::TIFF_IFDentry
  • Tag : YTHistList< T >
  • tag : IFF::TiffTag
  • Tail : Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > , Vtl::Types::Typelist< T, U > , forEach
  • TailResult : Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >
  • Target : Vtl::Plf::Impl::Node
  • targets : Vtl::Plf::FiltersSystem
  • temp : Vtl::Meta::BitsIn< 0 > , Vtl::Meta::BitsIn< n >
  • Temp : Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >
  • temp : Vtl::Meta::IL::IndexOf< i, IndexList< j, T > >
  • terminate() : childPipe
  • Test() : Vtl::NumAlg::IntTransf::Utils::F::Test< T >
  • test() : Basics3D::test
  • Test() : Test< float >
  • TEXT : YXML::DNode
  • the_same_stderr_stdout : childPipe
  • theta : TrigRecurrence< T, double, I > , Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >
  • this_delay()
: Vtl::Plf::OutPortBase
, Vtl::Plf::OutPortNoPostProc< T >
, OutPortNoPostProc< Real_t >
, Iter_Line
  • ThisClassName() : AImage , AImageMem8 , AImageMem16 , AImageMemFloat , AImageMemRgb8 , AImageMemRgb16 , ImageFragment8 , ImageFragment16 , ImageFragmentRgb8 , ImageMem16Stuff , ImageMem8 , ImageMemRgb8 , ImageMemFloat , ImageMem16
  • thr : Vtl::Plf::Fpie::CannyNMS< T > , Vtl::Plf::Fpie::CannyNMS_2< T > , Hanina::ScaleScan3x3< T > , Hanina::ZeroCross< T > , CannyNMS< float > , CannyNMS< T > , ScaleScan3x3< T >
  • thresh
: Vtl::Plf::DstContainer< T, C, P >
, Vtl::Plf::F31::StatDiffThresh< T >
, Vtl::ImAlg::Edt::isEdge< T >
, DstContainer< Real_t, Container_t >
  • threshold : Vtl::Plf::F11::Log< T >
  • Threshold() : Vtl::Plf::F11::Threshold< T, Comp >
  • Tiff8Read() : IFF::Tiff8Read
  • Tiff8Write() : IFF::Tiff8Write
  • TiffReadIFD() : IFF::TiffReadIFD
  • TiffWriteIFD() : IFF::TiffWriteIFD
  • TimeElapsed() : Vtl::Dbg::TimeElapsed
  • TimeToString() : DataString
  • tmp : Vtl::Plf::ConvolveHorz< T, P > , Vtl::Plf::ConvolveVert< T, P > , Vtl::Plf::FilterResampleHorz< T, P > , Vtl::Plf::DstContainer< T, C, P > , ConvolveHorz< float > , ConvolveVert< float > , GammaCorMult< float > , Mult< float > , SqrtOfSumSqr< float > , DstContainer< Real_t, Container_t > , Vtl::Plf::Levels< T, P > , Vtl::Plf::PixByPix2to1< T, F, P >
  • tmp33 : Hanina::FillingHessianMatrix3x3
  • to_bits : ImageResample::ImageResampleParams
  • to_class : ImageResample::ImageResampleParams
  • to_height : ImageResample::ImageResampleParams
  • to_single_focus() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • to_width : ImageResample::ImageResampleParams
  • ToBounds() : Vtl::Plf::F11::ToBounds< T > , ToBounds< float >
  • toEuclidean() : Basics3D::Structure::Dlt< T > , Dlt< value_type >
  • ToNextLine() : InPort< T > , Vtl::Plf::InPortBase
  • top() : YRect< T > , YRect< int > , YRect< T >
  • TopLeft : YRect< T > , YRect< int >
  • toRGB()
: Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >
  • toRot() : Quaternion< T > , Quaternion< value_type > , Quaternion< value_type > Vector_3
  • total_delay : Vtl::Plf::InPortBase , InPort< T >
  • tplAImageFragment() : tplAImageFragment< ImgT >
  • tplAImageReference() : tplAImageReference< ImgT >
  • tql2() : Vtl::NumAlg::Lin::eigen
  • tr : Vtl::Plf::F11::Threshold< T, Comp >
  • Trace() : Vtl::Plf::F31::Trace< T > , Trace< float >
  • Traits() : Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D > , Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D > , Direct< float, int > , Direct_Ref< float, int > , Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D > , Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D >
  • Trajectory : IFF::OzFile::Header
  • Transf
: Vtl::ImAlg::Model::BaseAffine< T >
, Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::Homography< T >
  • Transform() : T_Model< Operations > , Basics3D::T_Model< Operations > , T_Model< Operations >
  • Transform2Power() : FFT_2D
  • transform_ : TransformCell
  • TransformCell() : TransformCell
  • Transformer : Vtl::Plf::Impl::Node
  • transformFunction_ : ImageTransformImpl
  • TransformIntoNormCoord() : Basics3D::T_MatrixOperations
  • TransformIntoPixelCoord() : Basics3D::T_MatrixOperations
  • Translational() : Basics3D::C_TransformMatrices
  • TranslationalInverse() : Basics3D::C_TransformMatrices
  • TransposeQuarters() : FFT_2D
  • tred2() : Vtl::NumAlg::Lin::eigen
  • tri : TriResult
  • trianglearealist : triangulateio
  • triangleattributelist : triangulateio
  • trianglelist : triangulateio
  • Triggs() : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >
  • TriggsM() : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >
  • TrigRecurrence() : Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > , TrigRecurrence< T, double, I >
  • TryPutInQueue() : SrcAImage< float, Img > , ConvolveVert< float > , Vtl::Plf::FilterElementary , SrcArray< Real_t, Real_t > , SrcAImage< unsigned, Img > , Mult< float > , GammaCorMult< float > , DstContainer< Real_t, Container_t > , DstAImage< float, Img > , DstArray< Real_t, Real_t > , DstAImage< unsigned, Img > , HarrisNMS< float > , SqrtOfSumSqr< float > , ConvolveHorz< float > , EnvProc1to1< Real_t, Func, PostThresh > , Y< float > , SrcAImage< Real_t, T > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 >
  • TwoAsquared : Vtl::ImAlg::Bres::EllipseH< F > , Vtl::ImAlg::Bres::Circle< T >
  • TwoBsquared : Vtl::ImAlg::Bres::EllipseH< F > , Vtl::ImAlg::Bres::Circle< T >
  • typ : Vtl::Img::DataTypeId< T >
  • Type : VirtDib , Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::IterBands , Vtl::Img::ImageNDref< T_SList, T_Layout >::IterBands
  • TYPE : IFF::PBMfile
  • type()
: Base< T, Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
  • Type : IFF::BmpRead
  • type : IFF::TiffTag
  • Type : Vtl::Img::ImageNDref< T_SList, T_Layout >::Iter1D< i > , YXML::DNode
  • type()
: FKern< float, Vtl::Plf::Kernel::KT_Corr >
, IFF::PBMfile
, IFF::TIFF_IFDentry
  • Type : Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::IterBands , IFF::BmpWrite
  • type() : FKern< float > , FKern< float, Vtl::Plf::Kernel::KT_Win >
  • Type : Vtl::Types::Select< flag, Type1, Type2 >
  • type()
: FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • Type() : IFF::PBMfile
  • type_id : Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
  • Types : Vtl::Types::IntOrReal , Vtl::Types::SUIntOrReal
  • TypesGroup : Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::SInt > , Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::UInt > , Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::Real > , Vtl::Types::PixelTraits< T >


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- u -

  • U_f() : Vtl::ImAlg::C::YUV
  • UInt : Vtl::Types::SUIntOrReal
  • UIO_CREATE : YFile
  • UIO_CREATE_OVERWRITE : YFile
  • UIO_MODIFY : YFile
  • UIO_RDONLY : YFile
  • UIO_UNKNOWN : YFile
  • Uncertain : Basics3D::PointStatus
  • Unknown : Vtl::Types::SUIntOrReal , Vtl::Types::IntOrReal
  • UnqualifiedType : Vtl::Types::Traits< T >
  • UNSUPPORTED : YXML::DNode
  • UpdateByNewAfterThis()
: Vtl::ImAlg::Model::SkewYOffset< T >
, Vtl::ImAlg::Model::Similarity< T >
, Vtl::ImAlg::Model::SkewXOffset< T >
, Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Model::Affine< T >
, Vtl::ImAlg::Model::Offset< T >
  • UseMask : Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > , OFlow< Model, AllocStrategy >
  • uv : TriResult


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- v -

  • v : YXML::IsAttr< T, Cmp > , Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, m > , Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 > , Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 > , Vtl::Alg::x_to_N< N >::x_to_N__< 1, 1 > , Vtl::Alg::x_to_N< N >::x_to_N__< 0, 0 > , Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, m > , Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, n > , Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n,-1 > , Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, n > , Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > , Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
  • v1 : YXML::IsAttrIn< T >
  • V1_f() : Vtl::ImAlg::C::IV1V2
  • v2 : YXML::IsAttrIn< T >
  • V2_f() : Vtl::ImAlg::C::IV1V2
  • v_conv : Vtl::Plf::SeparableConv2D< T, P >
  • V_f() : Vtl::ImAlg::C::YUV
  • v_resamp : Resample< float > , Vtl::Plf::Resample< T, P >
  • val : Cluster1D< T, DatumType > , DatumR< T > , Hanina::Comb_ridge< T1, T2 > , DatumR< T > , Comb_ridge< T, uint8_t >
  • vals : Direct_Ref< float, int > , Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > , Direct< float, int > , Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >
  • value
: Vtl::Meta::IL::Length< Loki::NullType >
, Vtl::Types::TL::NE< s1, s2 >
, Vtl::Meta::IL::Length< IndexList< i, T > >
, Vtl::Types::TL::LT< s1, s2 >
, Vtl::Alg::x_to_N< N >
, Vtl::ImAlg::Registration::Container< Real_t >::Point
, Vtl::Meta::IL::IndexOf< i, Loki::NullType >
, Vtl::Meta::IL::IndexOf< i, IndexList< i, T > >
, Vtl::ImAlg::Resamp::LinGrid< T >
, stride
, Vtl::ImAlg::Resamp::LogGrid< T >
, Vtl::ImAlg::Resamp::PhiGrid< T >
, Vtl::Alg::Factorial< N >
, Vtl::Meta::IL::IndexOf< i, IndexList< j, T > >
, Vtl::Meta::IL::Elem< 0, IndexList< j, T > >
, dsin< D-1 > c
, Vtl::Meta::IL::Elem< i, IndexList< j, T > >
, Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, 0 >
, Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, ndim >
, stride
, value
, Vtl::Meta::IL::Elem< i, Loki::NullType >
, Vtl::Meta::IL::Erase< i, Loki::NullType >
, Vtl::Meta::IL::EraseAt< i, Loki::NullType >
, LogGrid< float >
, Vtl::Alg::Factorial< 0 >
, PhiGrid< Real_t >
, Vtl::Meta::IL::Count< v, Loki::NullType >
, Vtl::Types::isSameType< T1, T2 >
, Vtl::Meta::IL::Count< v, IndexList< i, Tail > >
, Vtl::Types::TL::GE< s1, s2 >
, forEach
, Vtl::Alg::isOdd< N >
, Vtl::Meta::IL::ICount< v, 0, IndexList< j, T > >
, Vtl::Meta::IL::ICount< v, i, IndexList< j, T > >
, Vtl::Meta::IL::ICount< v, i, Loki::NullType >
, Vtl::Meta::BitsIn< n >
, Vtl::Types::Int2Type< v >
, Vtl::Meta::BitsIn< 0 >
, Vtl::Types::TL::LE< s1, s2 >
, Layout< T, IList >
, Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >
, Int2Type< Vtl::Types::SUIntOrReal::SInt >
, Int2Type< Vtl::Types::SUIntOrReal::UInt >
, Int2Type< Vtl::Types::SUIntOrReal::Real >
, Vtl::Types::TL::GT< s1, s2 >
, Vtl::Meta::Layout< T, IList >
, Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >
, Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >
, Loki::Bool2Type< v >
, Vtl::Types::TL::EQ< s1, s2 >
, Vtl::Img::DataTypeId< T >::Comp< T1, T2 >
, Vtl::Meta::EnumTraits::MaxEnum< false, i >
, Dbg::Fmt< T, format_type >
, Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >
, Vtl::Meta::EnumTraits::MaxEnum< true, i >
, Vtl::Img::DataTypeId< T >
, Vtl::Meta::EnumTraits::Bits< mask >
, Vtl::Meta::EnumTraits::Bits< 0 >
, YTHistListTag< T >
, Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >
, Vtl::Meta::Align< T, sz, align_to >::Align_< 0, size >
, Vtl::Meta::IndexList< i, T >
, Vtl::Meta::Align< T, sz, align_to >
  • value_max : Vtl::ImAlg::Resamp::LinGrid< T > , Vtl::ImAlg::Resamp::LogGrid< T > , LogGrid< float >
  • value_min : Vtl::ImAlg::Resamp::LogGrid< T > , LogGrid< float > , Vtl::ImAlg::Resamp::LinGrid< T >
  • value_or_offset : IFF::TIFF_IFDentry , IFF::TiffTag
  • value_type
: Offset< T >
, Affine< T >
, Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, Layout< T, IList >
, Comp3D< value_type >
, Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
, Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
, Vtl::ImAlg::Transf::Affine< T >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Vtl::ImAlg::Model::Homography< T >
, Vtl::Img::Iterator_1D< T, T_stride >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, Vtl::ImAlg::Model::Base< T >
, FKern< float >
, Basics3D::Fm2Essential::CameraPoseFromEssential< T >
, Vtl::Img::Iterator_1D< T, 0 >
, Direct_Ref< float, int >
, Direct< float, int >
, Base< T, Kernel::KT_Conv >
, Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >
, Vtl::Img::BuildIter1DList< T_Layout >
, Vtl::ImAlg::Transf::Homography< T >
, Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >
, Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
, Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >
, Dlt< value_type >
, Vtl::Meta::det< Matrix >
, CameraPoseFromEssential< value_type >
, Vtl::ImAlg::Transf::Offset< T >
, ProjectiveToMetric< value_type >
, Vtl::Img::ImageNDref< T_SList, T_Layout >
, Vtl::Meta::Layout< T, IList >
, Basics3D::Types< T >
, Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
, Basics3D::FmTools< T >
, Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
, Vtl::Img::ImageNDref< T_SList, T_Layout >
, Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
, Basics3D::Structure::Dlt< T >
, Basics3D::Structure::Comp3D< T >
, Basics3D::Structure::ProjectiveToMetric< T >
  • values_ratio() : LogGrid< float > , Vtl::ImAlg::Resamp::LogGrid< T >
  • values_shift() : Vtl::ImAlg::Resamp::LinGrid< T >
  • vec()
: Vtl::ImAlg::Registration::Impl::OFlow::BuildG< n >
, Vtl::ImAlg::Registration::Impl::OFlow::BuildG< 0 >
, Vtl::Plf::StripBuffer< T >
  • vec16_ : ImageVectorT< Base, Bit8, Bit16 >
  • vec8_ : ImageVectorT< Base, Bit8, Bit16 >
  • Vector : Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > , Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > , Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • Vector2
: Dlt< value_type >
, Vtl::ImAlg::Transf::Homography< T >
, Vtl::ImAlg::Model::Base< T >
, Basics3D::Structure::Dlt< T >
  • Vector3 : Quaternion< value_type > , Basics3D::FmTools< T > , Quaternion< value_type > Vector_3 , Vtl::ImAlg::Transf::Homography< T > , Dlt< value_type > , Basics3D::Structure::Dlt< T > , Quaternion< T >
  • Vector4 : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • Vector_2 : Basics3D::Types< T > , Basics3D::Structure::Comp3D< T > , Comp3D< value_type >
  • Vector_3 : CameraPoseFromEssential< value_type > , Basics3D::Structure::Comp3D< T > , ProjectiveToMetric< value_type > , Comp3D< value_type > , Basics3D::Structure::ProjectiveToMetric< T > , Basics3D::Fm2Essential::CameraPoseFromEssential< T > , Basics3D::Types< T >
  • Vector_4 : ProjectiveToMetric< value_type > , Basics3D::Types< T > , Comp3D< value_type > , CameraPoseFromEssential< value_type > , Basics3D::Structure::Comp3D< T > , Basics3D::Structure::ProjectiveToMetric< T > , Basics3D::Fm2Essential::CameraPoseFromEssential< T >
  • VectorB : Vtl::ImAlg::Model::Offset< T > , Affine< T > , Vtl::ImAlg::Transf::Affine< T > , Offset< T > , Vtl::ImAlg::Model::BaseAffine< T > , Vtl::ImAlg::Transf::Offset< T >
  • version : IFF::TIFF_Header , Vtl::Img::ImageDataLayout
  • VirtDib() : VirtDib
  • vorout : TriResult


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- w -

  • w
: Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >
, Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size
, Vtl::Plf::SrcArray< T, I, P >
, Vtl::Plf::SrcAImageRgb< T, I, P >
, Vtl::Plf::DstArray< T, Pixel >
, Vtl::Plf::DstContainer< T, C, P >
  • W : Basics3D::Fm2Essential::CameraPoseFromEssential< T >
  • w
: Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
, Hanina::Hessian3D< T >
, Hanina::Planes3< T >
  • W()
: Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >
, Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • w()
: Vtl::Plf::ImageRef< T >
, Vtl::Plf::Impl::DelayAdjuster
, ImageRef< int >
, InterpBilinear< Real_t >
  • W() : InterpBilinear< Real_t >
  • w : SrcArray< Real_t, Real_t > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , InterpBilinear< Img::Pixel >
  • W() : InterpBilinear< Img::Pixel >
  • w : InterpBilinear< Pixel >
  • W() : InterpBilinear< Pixel >
  • w() : ImageRef< T >
  • W : CameraPoseFromEssential< value_type >
  • w_ : DistributionMatrix , CoverageMatrix , ProcessMatrix , CoordArray2D
  • w_new : Vtl::Plf::FilterResampleHorz< T, P >
  • w_old : Vtl::Plf::FilterResampleHorz< T, P >
  • wait() : childPipe
  • Wd : MSlidingEqualization
  • wi : Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > , TrigRecurrence< T, double, I >
  • wid : ImageMem16Stuff , ImageMem16 , ImageMemFloat , ImageMemRgb8 , ImageMem8
  • width() : AImageProxy
  • Width() : IFF::BmpWrite
  • width : VirtDib::Inf , Vtl::Img::ImageInfo
  • Width() : IFF::FloatImageFile , ImageMem8 , IFF::PBMfile
  • width() : YRect< T >
  • Width() : ImageMem16 , ImageMemFloat , ImageResample
  • width : AImage::Info
  • Width() : ImageMemRgb8 , IFF::OzFile , ImageResize
  • width : Vtl::Plf::ImgSize
  • Width() : tplAImageFragment< ImgT >
  • width : YImageFrame
  • Width()
: IFF::TiffWriteIFD
, IFF::TiffReadIFD
, VirtDib
, IFF::BmpRead
, ImageMem16Stuff
, Vtl::Img::ImageBase< P, planes, interleave >
, AImage
, MSlidingEqualization
, IFF::OzFile::Header
  • width() : ImageTransformImpl
  • Width() : ImageRotate
  • width() : ImageTransform , CoordArray2D , ImageVectorT< Base, Bit8, Bit16 > , ImageProxy< ImageT > , ImageProxyConst< ImageT > , ImageProxyVector , IFF::PBMfile , YRect< T > , YRect< int > , IFF::TIFF_ImageParms , IFF::TiffWriteIFD
  • Width() : tplAImageReference< ImgT >
  • width : IFF::FloatImageFile::Header , IFF::TiffReadIFD
  • width_ : Dbg::Format::F , ImageVectorT< Base, Bit8, Bit16 > , ImageProxyVector
  • WinIniFile : WiNode , WinIniFile
  • WiNode : WiNode::AttrRef , WiNode
  • work : Hanina::FillingHessianMatrix3x3
  • wpi : TrigRecurrence< T, double, I > , Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >
  • wpr : TrigRecurrence< T, double, I > , Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >
  • wr : Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > , TrigRecurrence< T, double, I >
  • write()
: IFF::PBMfile
, IFF::OzFile
, IFF::BmpWrite
, Dbg::Fmt< T, format_type >
, YFileWrite
, IFF::FloatImageFile
, Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >
  • write_() : Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >
  • writeHeader()
: IFF::OzFile
, IFF::PBMfile
, IFF::FloatImageFile
  • writeIFD() : IFF::TiffWriteIFD
  • writeImage() : IFF::Tiff8Write
  • writeNoWait() : WritePipe
  • WritePipe() : WritePipe
  • writeStrip() : IFF::Tiff8Write
  • writeWait() : WritePipe
  • WT : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type >


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- x -

  • x : YPoint< T > , Vtl::Plf::F11::ToBounds< T > , Cluster2D< T, DatumType > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > , DatumR< T > , YPoint< double > , YPoint< int > , Vtl::Meta::SizeList_base< T_IList >
  • X() : Basics3D::C_Point2D
  • x : DatumR< T > , ToBounds< float > , DatumXY< T >
  • X() : YImageFrame , ZoomFactor2D
  • x : YPoint< T > , SizeList_base< IList > , Layout< T, IList > , Vtl::ImAlg::Registration::Container< Real_t >::Point
  • x0 : Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > , Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >
  • x_cent : YImageFrame
  • X_f() : Vtl::ImAlg::C::XYZ
  • Xercesc() : YXML::Xercesc
  • XMLdoc() : YXML::XMLdoc
  • xx_lst : Vtl::Img::DataTypeId< T >


Pipe Line Filters: Члены классов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

Список всех членов классов со ссылками на классы, к которым они принадлежат.

- y -

  • y : YPoint< T >
  • Y : ZoomFactor2D
  • y : Vtl::Plf::DstArray< T, Pixel > , Vtl::Plf::DstContainer< T, C, P >
  • Y()
: Vtl::Plf::InPortBase
, Vtl::Plf::OutPortNoPostProc< T >
, Vtl::Plf::StripBuffer< T >
, Basics3D::C_Point2D
, OutPortNoPostProc< Real_t >
  • y : Vtl::ImAlg::Registration::Container< Real_t >::Point , Cluster2D< T, DatumType > , DatumR< T > , YPoint< int > , DatumXY< T > , YPoint< double > , SrcArray< Real_t, Real_t > , Vtl::Plf::FilterResampleVert< T, P > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , DatumR< T >
  • Y() : Iter_Line , InPort< T >
  • y : YPoint< T > , Vtl::Plf::SrcArray< T, I, P >
  • Y() : YImageFrame
  • y : Vtl::Plf::SrcAImageRgb< T, I, P >
  • Y() : Vtl::NumAlg::Spf::bess
  • y0 : Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > , Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
  • y_cent : YImageFrame
  • Y_f()
: Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
  • Y_last() : Vtl::Plf::StripBuffer< T >
  • y_last : Vtl::Plf::Strip
  • Y_pos() : Vtl::Plf::FilterElementary
  • y_pos : Vtl::Plf::FilterElementary
  • Y_pos() : SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , Y< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , HarrisNMS< float > , ConvolveHorz< float > , ConvolveVert< float > , GammaCorMult< float > , Mult< float > , DstContainer< Real_t, Container_t > , SrcArray< Real_t, Real_t > , DstAImage< unsigned, Img > , EnvProc1to1< Real_t, Func, PostThresh > , DstArray< Real_t, Real_t > , SqrtOfSumSqr< float >
  • Y_wait()
: Vtl::Plf::OutPortNoPostProc< T >
, Vtl::Plf::StripBuffer< T >
  • y_wait : Vtl::Plf::StripBuffer< T >
  • Y_wait() : OutPortNoPostProc< Real_t > , Iter_Line
  • y_wait : Vtl::Plf::Strip
  • YDataTime : YTimeInterval , YDataTime
  • YDataTimeZone() : YDataTimeZone
  • Year() : YDataTime
  • year : IFF::OzFile::Header , YDataTime
  • YearDay() : YDataTime , YDtTm
  • YearDayDay() : YDtTm
  • YearDayMonth() : YDtTm
  • YearDaySec() : YDataTime
  • YFile() : YFile
  • YFileRead() : YFileRead
  • YFileWrite() : YFileWrite
  • YImageClass : AImage
  • YImageFrame() : YImageFrame
  • YImageStore : AImage
  • YPoint() : YPoint< T > , YPoint< int > , YPoint< double >
  • YRect() : YRect< int > , YRect< T > , YRect< int > , YRect< T >
  • YSmallAllocLtd() : YSmallAllocLtd
  • YTArray() : YTArray< T >
  • YTDynArray() : YTDynArray< T >
  • YTHistListTag() : YTHistListTag< T >
  • YTimeInterval() : YTimeInterval


Pipe Line Filters: Члены классов - Перечисления

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции

  • EdgeMethod : ImageTransform
  • ErrorStatus : ImageMem16Stuff::Error
  • Flags : childPipe , Basics3D::PointStatus
  • Format : Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >
  • InterpolationMethod : ImageResample
  • ModifyType : ImageResample
  • OpenMode : YFile
  • Role : Vtl::Plf::Impl::Node
  • Type : YXML::DNode , VirtDib , IFF::BmpRead , IFF::BmpWrite
  • TYPE : IFF::PBMfile
  • Types : Vtl::Types::SUIntOrReal , Vtl::Types::IntOrReal
  • YImageClass : AImage
  • YImageStore : AImage


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- a -

  • a : Vtl::Meta::EnumTraits::IsEnum
  • AtInfinity : Basics3D::PointStatus
  • ATTRIBUTE : YXML::DNode


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- k -

  • kernel_type
: Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Base< T, Kernel::KT_Conv >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- m -

  • M : Basics3D::Structure::Dlt< T > , Dlt< value_type >
  • mask : Vtl::Meta::det_poly_coef< Matrix, N >
  • max : Vtl::Meta::EnumTraits
  • MaxFindRadius : ImageTransformMatrixImpl
  • min : Vtl::Meta::EnumTraits
  • mtResize : ImageResample
  • mtRotate : ImageResample


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- n -

  • N : Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > , Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > , Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > , Vtl::NumAlg::Implicit::Sort_base< N_ >
  • n : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • N
: Basics3D::Structure::Dlt< T >
, Dlt< value_type >
, Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::SkewYOffset< T >
, Vtl::ImAlg::Model::SkewXOffset< T >
, Vtl::ImAlg::Model::Similarity< T >
, Vtl::ImAlg::Model::Affine< T >
, Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >
  • n : Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, m >
  • N3 : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type >
  • N4 : CameraPoseFromEssential< value_type > , Basics3D::Fm2Essential::CameraPoseFromEssential< T >
  • n_components
: Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::HSV
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
  • Nbands : Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
  • NbandsIsConst : Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
  • ND : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList , Vtl::Img::BuildIter1DList< T_Layout >
  • ndim : Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > , Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >
  • Ndim : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > , Vtl::Img::ImageNDref< T_SList, T_Layout > , Layout< T, IList > , Vtl::Meta::Layout< T, IList >
  • next : Vtl::Meta::EnumTraits::MaxEnum< true, i >
  • None : ImageTransform


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- o -

  • Ok : Basics3D::PointStatus


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- b -

  • b : Vtl::Meta::EnumTraits::IsEnum
  • BadReproj : Basics3D::PointStatus
  • bands_stride : Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 > , stride , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >
  • bbstride : Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >
  • Behind : Basics3D::PointStatus
  • bits : Vtl::Meta::EnumTraits
  • BMT_GRAY8 : VirtDib
  • BMT_PAL8 : VirtDib
  • BMT_RGB8 : VirtDib
  • BT_BILEVEL : IFF::BmpWrite , IFF::BmpRead
  • BT_INDEX : IFF::BmpWrite , IFF::BmpRead
  • BT_RGB : IFF::BmpWrite , IFF::BmpRead


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- c -

  • ColorPlanes : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > , OFlow< Model, AllocStrategy > , Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >
  • COMMENT : YXML::DNode
  • const_band_stride : Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • conv_norm_alg : Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > , Direct< float, int > , Direct_Ref< float, int >
  • cur : Vtl::Meta::EnumTraits::MaxEnum< true, i >


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- d -

  • Default : Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >
  • Deriv : Vtl::ImAlg::Conv::FastGaussConvolve< T, D > , Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > , FastGaussConvolve< float, 2 > , FastGaussConvolve< float, 3 > , FastGaussConvolve< float, DERIV > , Direct< float, int > , FastGaussConvolve< float, 0 > , Direct_Ref< float, int > , FastGaussConvolve< float, 1 >
  • double_kernel
: FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Base< T, Kernel::KT_Conv >
, FKern< float >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- e -

  • ELEMENT : YXML::DNode
  • errCantClearObject : ImageMem16Stuff::Error
  • errCantCreateObject : ImageMem16Stuff::Error
  • errCantLoadObject : ImageMem16Stuff::Error
  • errInsufficientMemory : ImageMem16Stuff::Error
  • errOK : ImageMem16Stuff::Error
  • errUnknown : ImageMem16Stuff::Error
  • exists : Vtl::Types::Conversion< T, U >


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- f -

  • F_Split : childPipe
  • F_StdErr : childPipe
  • F_StdIn : childPipe
  • F_StdInErr : childPipe
  • F_StdInOut : childPipe
  • F_StdInOutErr : childPipe
  • F_StdInOutErrSplit : childPipe
  • F_StdOut : childPipe
  • F_StdOutErr : childPipe
  • F_StdOutErrSplit : childPipe
  • finit_support : Direct_Ref< float, int > , Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > , Direct< float, int >
  • finit_support_left : Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > , Direct_Ref< float, int > , Direct< float, int >
  • finit_support_right : Direct_Ref< float, int > , Direct< float, int > , Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- g -

  • group : Vtl::Types::PixelTraits< T >


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- h -

  • hasInts : Vtl::Meta::Impl::SizeList_base_0< IList, sz > , Layout< T, IList > , SizeList_base< IList > , Vtl::Meta::Impl::SizeList_base_0< IList, 0 >


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- i -

  • i : Vtl::Meta::IL::ICount< v, i, IndexList< j, T > > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i > , stride
  • imAuto : ImageResample
  • imAverage : ImageResample
  • imBicubical : ImageResample
  • imBilinear : ImageResample
  • IMGC_BILEVEL : AImage
  • IMGC_FLOAT : AImage
  • IMGC_GRAYSCALE : AImage
  • IMGC_PALETTE : AImage
  • IMGC_RGB : AImage
  • IMGC_UNKNOWN : AImage
  • ImgLevel : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • ImgPlane : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • IMGS_AImageMem16 : AImage
  • IMGS_AImageMem8 : AImage
  • IMGS_AImageMemFloat : AImage
  • IMGS_AImageMemRgb16 : AImage
  • IMGS_AImageMemRgb8 : AImage
  • IMGS_Unknown : AImage
  • imHistMax : ImageResample
  • imNearest : ImageResample
  • imUnknown : ImageResample
  • Int : Vtl::Types::IntOrReal
  • Interleave : Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • is_float : Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
  • is_metric
: Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::HSV
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::Lab
  • is_next : Vtl::Meta::Align< T, sz, align_to > , Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >
  • is_Odd : Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i > , forEach
  • is_signed : Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
  • is_struct : Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
  • is_system
: Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::HSV
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::Lab
  • isConst : Vtl::Types::Traits< T >
  • isGray : Vtl::Meta::Layout< T, IList > , Layout< T, IList > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
  • isLinear
: Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Model::BaseAffine< T >
  • isMemberPointer : Vtl::Types::Traits< T >
  • isPointer : Vtl::Types::Traits< T >
  • isQualifiedType : Vtl::Types::Traits< T >
  • isReference : Vtl::Types::Traits< T >
  • isSigned : Vtl::Meta::EnumTraits
  • isStdArith : Vtl::Types::Traits< T >
  • isStdArithAll : Vtl::Types::Traits< T >
  • isStdFundamental : Vtl::Types::Traits< T >
  • isStdInteger : Vtl::Types::Traits< T >
  • isStdIntegerAll : Vtl::Types::Traits< T >
  • isStdOtherInt : Vtl::Types::Traits< T >
  • isStdReal : Vtl::Types::Traits< T >
  • isStdSignedInt : Vtl::Types::Traits< T >
  • isStdUnsignedInt : Vtl::Types::Traits< T >
  • isStrightLineSaving : Vtl::ImAlg::Model::Offset< T > , Vtl::ImAlg::Transf::Homography< T > , Offset< T > , Vtl::ImAlg::Transf::Affine< T > , Vtl::ImAlg::Model::BaseAffine< T > , Affine< T > , Vtl::ImAlg::Model::Homography< T > , Vtl::ImAlg::Transf::Offset< T >
  • isVolatile : Vtl::Types::Traits< T >


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- p -

  • PBM_GRAYSCALE : IFF::PBMfile
  • PBM_RGB : IFF::PBMfile
  • PBM_UNKNOWN : IFF::PBMfile


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- r -

  • Real : Vtl::Types::IntOrReal , Vtl::Types::SUIntOrReal
  • Result
: Vtl::Types::isSUIntOrReal< T >
, Vtl::Types::isIntOrReal< T >
, Vtl::Types::Traits< T >
, Vtl::Types::TL::isIn< TList, T >
  • RowsAndCols : Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- s -

  • sameType : Vtl::Types::Conversion< T, U > , Vtl::Types::Traits< T >
  • sample_size : Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
  • Signed : Vtl::Meta::EnumTraits::IsEnum
  • SInt : Vtl::Types::SUIntOrReal
  • size : Vtl::Meta::SizeList_base< T_IList > , SizeList_base< IList > , Layout< T, IList >
  • Source : Vtl::Plf::Impl::Node
  • stride : stride , Vtl::Img::Iterator_1D< T, T_stride > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 > , stride , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >
  • stride_0 : Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • strides_array_len : Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
  • strides_size : Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 > , Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
  • sz : Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >
  • sz2 : Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- t -

  • Target : Vtl::Plf::Impl::Node
  • temp : Vtl::Meta::BitsIn< n > , Vtl::Meta::BitsIn< 0 > , Vtl::Meta::IL::IndexOf< i, IndexList< j, T > >
  • TEXT : YXML::DNode
  • Transformer : Vtl::Plf::Impl::Node
  • type_id : Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- u -

  • UInt : Vtl::Types::SUIntOrReal
  • UIO_CREATE : YFile
  • UIO_CREATE_OVERWRITE : YFile
  • UIO_MODIFY : YFile
  • UIO_RDONLY : YFile
  • UIO_UNKNOWN : YFile
  • Uncertain : Basics3D::PointStatus
  • Unknown : Vtl::Types::IntOrReal , Vtl::Types::SUIntOrReal
  • UNSUPPORTED : YXML::DNode
  • UseMask : Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > , OFlow< Model, AllocStrategy >


Pipe Line Filters: Члены классов - Элементы перечислений

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v

- v -

  • v
: Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, m >
, Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n,-1 >
, Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, n >
  • value
: Int2Type< Vtl::Types::SUIntOrReal::SInt >
, stride
, Layout< T, IList >
, forEach
, Vtl::Meta::IL::Erase< i, Loki::NullType >
, Vtl::Alg::isOdd< N >
, Vtl::Meta::IL::Elem< i, Loki::NullType >
, Vtl::Meta::Align< T, sz, align_to >
, Vtl::Meta::Align< T, sz, align_to >::Align_< 0, size >
, Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >
, Vtl::Meta::EnumTraits::Bits< 0 >
, Vtl::Meta::EnumTraits::Bits< mask >
, Vtl::Meta::EnumTraits::MaxEnum< true, i >
, Vtl::Meta::EnumTraits::MaxEnum< false, i >
, Loki::Bool2Type< v >
, Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >
, Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >
, Vtl::Meta::Layout< T, IList >
, Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >
, Vtl::Meta::BitsIn< 0 >
, Vtl::Meta::BitsIn< n >
, Vtl::Meta::IL::ICount< v, i, Loki::NullType >
, Vtl::Meta::IL::ICount< v, i, IndexList< j, T > >
, Vtl::Meta::IL::ICount< v, 0, IndexList< j, T > >
, Vtl::Meta::IL::Count< v, IndexList< i, Tail > >
, Vtl::Meta::IL::Count< v, Loki::NullType >
, Vtl::Meta::IL::EraseAt< i, Loki::NullType >
, Vtl::Types::isSameType< T1, T2 >
, Vtl::Types::TL::GE< s1, s2 >
, Vtl::Meta::IL::Elem< i, IndexList< j, T > >
, Vtl::Meta::IL::Elem< 0, IndexList< j, T > >
, Vtl::Meta::IL::IndexOf< i, IndexList< j, T > >
, Vtl::Meta::IL::IndexOf< i, IndexList< i, T > >
, Vtl::Meta::IL::IndexOf< i, Loki::NullType >
, Vtl::Meta::IL::Length< IndexList< i, T > >
, Vtl::Meta::IL::Length< Loki::NullType >
, Vtl::Meta::IndexList< i, T >
, Vtl::Img::DataTypeId< T >
, Vtl::Img::DataTypeId< T >::Comp< T1, T2 >
, Vtl::Types::Int2Type< v >
, Vtl::Alg::Factorial< 0 >
, Vtl::Alg::Factorial< N >
, Vtl::Types::TL::NE< s1, s2 >
, Vtl::Types::TL::EQ< s1, s2 >
, Vtl::Types::TL::LE< s1, s2 >
, Int2Type< Vtl::Types::SUIntOrReal::Real >
, Vtl::Types::TL::LT< s1, s2 >
, Vtl::Types::TL::GT< s1, s2 >
, Int2Type< Vtl::Types::SUIntOrReal::UInt >


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- _ -

  • _buildMatrix() : Vtl::ImAlg::Model::Similarity< T >
  • _central() : Vtl::ImAlg::Conv::CyclicConvInplace< T, K > , CyclicConv< T, K1 > , ConvInplace< float, K0 > , ConvInplace< float, K1 > , ConvInplace< float, K2 > , ConvInplace< float, K3 > , Vtl::ImAlg::Conv::Conv< T, K > , CyclicConv< T, K2 > , ConvInplace< float, K4 > , CyclicConv< T, K > , ConvInplace< float, K0 > , CyclicConvInplace< T, K1 > , CyclicConvInplace< T, K2 > , CyclicConvInplace< T, K > , Vtl::ImAlg::Conv::CyclicConv< T, K > , CyclicConvInplace< float, K > , Conv< T, K1 > , Conv< T, K2 > , Conv< T, K > , Conv< float, K > , ConvInplace< T, K1 > , ConvInplace< float, K > , ConvInplace< T, K2 > , ConvInplace< T, K >
  • _central_2() : ConvInplace< float, K0 > , ConvInplace< float, K1 > , ConvInplace< float, K2 > , ConvInplace< float, K3 > , ConvInplace< float, K4 > , ConvInplace< float, K0 > , Vtl::ImAlg::Conv::ConvInplace< T, K > , ConvInplace< T, K1 > , ConvInplace< float, K > , ConvInplace< T, K2 > , ConvInplace< T, K >
  • _close() : YFileWrite , YFile , YFileRead
  • _D()
: Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Model::Affine< T >
  • _D3x() : Vtl::ImAlg::Model::Homography< T >
  • _D3y() : Vtl::ImAlg::Model::Homography< T >
  • _double_ker()
: Base< T, Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • _fillVec() : Vtl::Plf::FiltersSystem
  • _GetYXML_NodeHandle() : YXML::DNode
  • _hFlipLeft() : Vtl::Plf::StripBuffer< T >
  • _hFlipRight() : Vtl::Plf::StripBuffer< T >
  • _img() : Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >
  • _Init() : FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • _init() : Iter_Line
  • _Init() : FKern< float > , Base< T, Kernel::KT_Conv >
  • _init() : InPort< T >
  • _Init() : tplAImageFragment< ImgT > , Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , FKern< float, Vtl::Plf::Kernel::KT_Corr > , tplAImageFragment< ImgT > , FKern< float, Vtl::Plf::Kernel::KT_Win >
  • _init()
: Vtl::Plf::Port
, Vtl::Plf::InPortBase
, OutPortNoPostProc< Real_t >
  • _Init()
: FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
  • _Init_conv()
: FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • _Init_Last_step()
: FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Base< T, Kernel::KT_Conv >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • _Init_win()
: FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • _Insert() : Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >
  • _left() : ConvInplace< float, K3 > , ConvInplace< float, K1 > , ConvInplace< float, K4 > , ConvInplace< float, K0 > , CyclicConvInplace< T, K1 > , CyclicConvInplace< T, K2 > , CyclicConvInplace< T, K > , Vtl::ImAlg::Conv::CyclicConvInplace< T, K > , Conv< T, K1 > , Vtl::ImAlg::Conv::Conv< T, K > , Conv< T, K2 > , Conv< T, K > , CyclicConvInplace< float, K > , ConvInplace< T, K1 > , Conv< float, K > , ConvInplace< float, K0 > , ConvInplace< float, K2 > , ConvInplace< T, K2 > , ConvInplace< float, K > , ConvInplace< T, K >
  • _left_2() : ConvInplace< T, K > , ConvInplace< float, K2 > , ConvInplace< T, K2 > , ConvInplace< float, K1 > , ConvInplace< float, K3 > , ConvInplace< float, K4 > , Vtl::ImAlg::Conv::ConvInplace< T, K > , ConvInplace< T, K1 > , ConvInplace< float, K0 > , ConvInplace< float, K >
  • _mirrorLineRelCenter() : Vtl::Plf::StripBuffer< T >
  • _open() : YFile
  • _read() : YFile
  • _right() : ConvInplace< T, K1 > , ConvInplace< T, K > , ConvInplace< float, K0 > , CyclicConvInplace< T, K1 > , Vtl::ImAlg::Conv::Conv< T, K > , Conv< T, K2 > , ConvInplace< float, K3 > , ConvInplace< float, K4 > , ConvInplace< float, K0 > , ConvInplace< float, K1 > , CyclicConvInplace< T, K > , Conv< T, K1 > , Conv< T, K > , CyclicConvInplace< float, K > , Vtl::ImAlg::Conv::CyclicConvInplace< T, K > , CyclicConvInplace< T, K2 > , ConvInplace< T, K2 > , Conv< float, K > , ConvInplace< float, K > , ConvInplace< float, K2 >
  • _right_2() : ConvInplace< float, K0 > , Vtl::ImAlg::Conv::ConvInplace< T, K > , ConvInplace< float, K0 > , ConvInplace< float, K1 > , ConvInplace< float, K2 > , ConvInplace< float, K4 > , ConvInplace< T, K1 > , ConvInplace< float, K3 > , ConvInplace< float, K > , ConvInplace< T, K2 > , ConvInplace< T, K >
  • _right_end_left() : Vtl::ImAlg::Conv::CyclicConv< T, K > , CyclicConv< T, K2 > , CyclicConv< T, K > , CyclicConv< T, K1 >
  • _RotScaleOffset_1() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • _SaveGraphAsDot() : Vtl::Plf::FiltersSystem
  • _setIdentity() : Vtl::ImAlg::Model::BaseAffine< T >
  • _SkewOffset_2() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >
  • _start() : CyclicConv< T, K > , CyclicConv< T, K2 > , CyclicConv< T, K1 > , Vtl::ImAlg::Conv::CyclicConv< T, K >
  • _write() : YFile
  • _ZoomValue() : ZoomFactor
  • _ZoomValueNR() : ZoomFactor


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- j -

  • J() : Vtl::NumAlg::Spf::bess
  • job_c()
: Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >
, Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >
, job_nc
  • job_nc() : job_nc , Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half > , Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >
  • job_single_left() : Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half > , job_nc , Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >
  • job_single_right() : Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half > , job_nc , Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- k -

  • K() : Vtl::NumAlg::Spf::bess
  • Kaiser() : Vtl::ImAlg::WndFun::Kaiser< T, D >
  • Km() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • KruppaEq() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- l -

  • L5() : Vtl::ImAlg::WndFun::Laws5< T >::L5
  • last() : Vtl::Plf::Strip
  • LastChild() : YXML::DNode
  • Layout() : Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > , Vtl::Img::ImageDataLayoutHolder , Vtl::Meta::Layout< T, IList > , Layout< T, IList >
  • LayoutListDefault() : Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
  • LayoutListDirect() : Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >
  • left() : YRect< T >
  • Left() : FKern< float, Vtl::Plf::Kernel::KT_Conv >
  • left() : YRect< int > , FKern< float, Vtl::Plf::Kernel::KT_Conv >
  • Left() : FKern< float >
  • left() : Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > , FKern< float > , Vtl::ImAlg::WndFun::Bartlett< T, D > , Direct_Ref< float, int > , Hamming< float, 0 > , Hann< float, 3 > , Hann< float, 2 > , Hann< float, 1 > , Hann< float, 0 > , Hamming< float, 4 > , Hamming< float, 3 > , YRect< T > , Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > , Hamming< float, 1 > , Hamming< float, 2 > , Vtl::ImAlg::WndFun::DoG< T, D > , YRect< T > , Vtl::ImAlg::WndFun::Sinc< T, 0 > , Vtl::ImAlg::WndFun::Kaiser< T, D >
  • Left()
: FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Base< T, Kernel::KT_Conv >
  • left() : Vtl::ImAlg::WndFun::common_Trig< T, D, K > , Hann< float, 4 >
  • Left() : FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • left() : FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • Left() : FKern< float, Vtl::Plf::Kernel::KT_Win >
  • left() : FKern< float, Vtl::Plf::Kernel::KT_Win > , YRect< int > , Base< T, Kernel::KT_Conv >
  • Left() : FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • left() : FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • Left() : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • left()
: FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, YRect< T >
  • Left()
: Basics3D::C_Epipole
, Basics3D::C_ProjectiveMatrix
  • Length()
: IFF::PBMfile
, IFF::TiffWriteIFD
, IFF::TiffReadIFD
, IFF::OzFile
  • Level() : L5 , Vtl::ImAlg::WndFun::Laws5< T >
  • Levels() : Mult< float > , Vtl::Plf::Levels< T, P > , Mult< float > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • Lin() : Convert< uint8_t > , Lin< float > lin_2 , Convert< uint8_t > , Vtl::Plf::F11::Lin< T > , Lin< float > lin_2 , Convert< uint8_t > , Lin< float > lin_1mod , Convert< uint8_t > , Lin< float > lin_1mod , Convert< uint8_t >
  • Line() : Vtl::ImAlg::Bres::Line< F > , AErrorStatusBase , ErrorStatusBase , Line< SetPixelFunctor >
  • LineIterator() : Vtl::Plf::LineIterator< T > , LineIterator< T >
  • LinGrid() : Vtl::ImAlg::Resamp::LinGrid< T >
  • Load() : T_Points2DSet< C_Point2D > , YXML::XMLdoc , Basics3D::C_Points2DParamSet , T_Points2DSet< Point > , ImageMem16Stuff , Basics3D::T_Points2DSet< Point > , tplAImageReference< ImgT > , WinIniFile
  • LoadLibrary() : DllModule
  • Log() : Vtl::Plf::F11::Log< T >
  • LogGrid() : Vtl::ImAlg::Resamp::LogGrid< T > , LogGrid< float > , Vtl::ImAlg::Resamp::LogGrid< T > , LogGrid< float >
  • lt() : Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- m -

  • Make() : PtrDelete< T > , PtrArrayDel< T > , Basics3D::C_Combination
  • makeCellPoly() : ImageTransformMatrixImpl
  • makeCellRect() : ImageTransformMatrixImpl
  • malloc() : YSmallAllocLtd
  • MarkCorrespondences() : Basics3D::C_Combination
  • mask() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • Matrix() : Basics3D::C_Point2D
  • max() : Vtl::Plf::Extent
  • max_err_at_rect()
: Vtl::ImAlg::Model::BaseAffine< T >
, Vtl::ImAlg::Model::Offset< T >
  • MaxColor() : Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
  • MaxEigenVal() : MaxEigenVal< float > , Vtl::Plf::F31::MaxEigenVal< T >
  • maxValue() : AImageProxy , ImageProxy< ImageT > , ImageProxyConst< ImageT >
  • MeanAndDisp() : MeanAndDisp< float > , Vtl::Plf::MeanAndDisp< T, P >
  • MeanDev() : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point >
  • MeanX() : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point >
  • MeanY() : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point >
  • mediana() : mediana< T > , Vtl::Plf::OLSI::mediana< T > , mediana< T >
  • medianFilter() : Vtl::Plf::medianFilter< T, P >
  • medianFilter2() : Vtl::Plf::medianFilter2< T, P >
  • MicroSecondsInYear() : YDataTime , YDtTm
  • MImages2Gray() : MImages2Gray
  • MinEigenVal() : MinEigenVal< float > , Vtl::Plf::F31::MinEigenVal< T >
  • MinusMean() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • Minutes() : YDataTime
  • MistFunc()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
  • Modul() : Quaternion< value_type > , Quaternion< value_type > Vector_3 , Quaternion< T >
  • Month() : YDataTime
  • MonthInYear() : YDataTime , YDtTm
  • move() : Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > , Line< SetPixelFunctor > , Vtl::ImAlg::Bres::Line< F >
  • MoveDown() : YImageFrame
  • MoveDownSlow() : YImageFrame
  • MoveX() : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >
  • Msg() : AErrorStatusBase , ErrorStatusBase
  • MSlidingEqualization() : MSlidingEqualization
  • mul()
: Vtl::Meta::det< Matrix >
, Vtl::Meta::det_poly_coef< Matrix, N >
, Vtl::Meta::det< Matrix >
, Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • Mult() : Vtl::Plf::F11::Mult< T > , Mult< float > , FastGaussConvolve< float, DERIV > , Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > , Mult< float > , FastGaussConvolve< float, 0 > , Mult< T >
  • mult() : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type >
  • Mult() : Mult< T > , FastGaussConvolve< float, 3 > , Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale > , Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > , Vtl::ImAlg::Conv::FastGaussConvolve< T, D > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , Vtl::Plf::F11::Mult< T >
  • multBy()
: Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Base< T, Kernel::KT_Conv >
  • MultI() : Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > , TrigRecurrence< T, double, I >
  • MultR() : TrigRecurrence< T, double, I > , Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- n -

  • N()
: Vtl::ImAlg::Resamp::LinGrid< T >
, Vtl::ImAlg::Resamp::LogGrid< T >
, Vtl::ImAlg::Resamp::PhiGrid< T >
, Basics3D::g
, Basics3D::Eq4Degree
, LogGrid< float >
, PhiGrid< Real_t >
  • name() : Vtl::ImAlg::C::EElEll
  • Name()
: Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >
, Vtl::ImAlg::WndFun::BlackmanHarris< T, D >
, Resample< float >
, Vtl::ImAlg::WndFun::Nuttall< T, D >
, AverageGauss< float >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, Vtl::ImAlg::WndFun::FlatTop< T, D >
, Average< float >
, FKern< float >
  • name() : Vtl::ImAlg::C::YIQ
  • Name() : Vtl::Plf::FilterBase , ToBounds< float > , MeanAndDisp< float > , ToBounds< float >
  • name() : Vtl::ImAlg::C::YUV
  • Name() : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , ToBounds< float >
  • name() : Vtl::ImAlg::C::IV1V2
  • Name() : GammaCorMult< float > , BiLateral< float > , GradientModul< float > , GammaCor< float >
  • name() : Vtl::ImAlg::C::HSI< LinSys >
  • Name() : GammaCor< float >
  • name()
: Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::Lab
  • Name() : GammaCor< float >
  • name() : Vtl::ImAlg::C::XYZ
  • Name() : GammaCor< float >
  • name() : Vtl::ImAlg::C::YCbCr
  • Name() : HarrisNMS< float >
  • name() : Vtl::ImAlg::C::HSV
  • Name() : ConvolveHorz< float > , Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > , Vtl::ImAlg::WndFun::Laws5< T >::L5 , FKern< float, Vtl::Plf::Kernel::KT_Corr > , SrcAImage< Real_t, Img > , Direct_Ref< float, int > , ConvolveVert< float > , GammaCorMult< float > , Mult< float > , Hann< float, 1 > , Vtl::ImAlg::WndFun::Laws5< T >::E5 , Hamming< float, 4 > , Canny< float > , SqrtOfSumSqr< float > , Hamming< float, 0 > , Hamming< float, 1 > , Hamming< float, 2 > , Vtl::ImAlg::WndFun::Laws5< T >::S5 , Vtl::ImAlg::WndFun::Laws5< T >::R5 , SrcAImage< Real_t, AImageMem8 > , Hamming< float, 3 > , Hann< float, 0 > , Hann< float, 2 > , Hann< float, 3 > , Hann< float, 4 > , Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC > , Y< float > , Direct< float, int > , Vtl::ImAlg::WndFun::Rect< T, D > , FKern< float, Vtl::Plf::Kernel::KT_Win > , DiZenzo< float > , Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > , Vtl::ImAlg::WndFun::Bartlett< T, D > , SrcAImage< Real_t, T > , Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > , SrcArray< Real_t, Real_t > , Vtl::ImAlg::WndFun::DoG< T, D > , SrcAImage< unsigned, Img > , EnvProc1to1< Real_t, Func, PostThresh > , Vtl::ImAlg::WndFun::Sinc< T, 0 > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , Vtl::ImAlg::WndFun::Kaiser< T, D > , Vtl::ImAlg::WndFun::Hann< T, D > , DstAImage< unsigned, Img > , FKern< float, Vtl::Plf::Kernel::KT_Conv, true > , SrcAImage< float, Img > , FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false > , Vtl::ImAlg::WndFun::Hamming< T, D > , Vtl::ImAlg::WndFun::Blackman< T, D > , DstAImage< float, Img > , Base< T, Kernel::KT_Conv >
  • nearest() : YPoint< T > , YPoint< int > , YPoint< double >
  • Negative() : Vtl::Plf::F11::Negative< T >
  • Next() : YXML::DNode
  • next() : Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >
  • Next() : YXML::DNode
  • next() : TrigRecurrence< T, double, I >
  • NextLineShift() : tplAImageFragment< ImgT > , ImageMem16Stuff , ImageMem8 , AImage , ImageMem16 , ImageMemFloat , ImageMemRgb8 , tplAImageReference< ImgT >
  • NIter() : Vtl::Img::ImageNDref< T_SList, T_Layout >
  • Nls() : ScaleScan3x3< T >
  • nls() : ImageRef< T > , Vtl::Plf::ImageRef< T >
  • Nls() : Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , InterpBilinear< Real_t > , Hanina::ScaleScan3x3< T >
  • nls() : ImageRef< int >
  • Nls() : InterpBilinear< Pixel > , InterpBilinear< Img::Pixel >
  • Node() : Vtl::Plf::Impl::Node
  • Normalization() : Basics3D::C_TransformMatrices
  • NormalizationInverse() : Basics3D::C_TransformMatrices
  • Normalize() : T_Points2DSet< Point > , Quaternion< value_type > Vector_3 , Quaternion< value_type >
  • normalize()
: Base< T, Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • Normalize()
: Basics3D::C_Epipole
, Basics3D::T_MatrixOperations
  • normalize() : FKern< float, Vtl::Plf::Kernel::KT_Win >
  • Normalize() : Basics3D::T_Points2DSet< Point > , Quaternion< T >
  • normalize() : FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • Normalize() : T_Points2DSet< C_Point2D > , Basics3D::C_Points2DParamSet
  • normalize() : FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • normalize_window()
: FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Base< T, Kernel::KT_Conv >
  • Normalizer()
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
  • NormMatrix()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
  • nullify() : childPipe , ImageResample , ImageMem8 , ImageMem16 , ImageMemRgb8 , ImageMemFloat , IFF::PBMfile , YSmallAllocLtd
  • nullifyPrms() : ImageResample
  • Numb() : Basics3D::C_Point2D
  • NumberFastMove() : YImageFrame
  • NumberFree() : YSmallAllocLtd
  • NumberMax() : YSmallAllocLtd
  • NumberUsed() : YSmallAllocLtd
  • NumConnectedTo() : Iter_Line , Vtl::Plf::OutPortBase , Iter_Line , OutPortNoPostProc< Real_t >
  • NumInputs() : GammaCor< float > , DstContainer< Real_t, Container_t > , DstAImage< unsigned, Img > , BiLateral< float > , AverageGauss< float > , DstAImage< float, Img > , Vtl::Plf::FilterBase , SrcAImage< Real_t, T > , SrcAImage< float, Img > , MeanAndDisp< float > , ToBounds< float > , DstArray< Real_t, Real_t > , Resample< float > , GammaCor< float > , SrcArray< Real_t, Real_t > , SrcAImage< unsigned, Img > , GradientModul< float > , EnvProc1to1< Real_t, Func, PostThresh > , Y< float > , GammaCor< float > , ToBounds< float > , ConvolveHorz< float > , GammaCor< float > , SrcAImage< Real_t, Img > , GammaCorMult< float > , SrcAImage< Real_t, AImageMem8 > , ConvolveVert< float > , Mult< float > , Canny< float > , SqrtOfSumSqr< float > , Average< float > , GammaCor< float > , DiZenzo< float > , HarrisNMS< float > , GammaCor< float >
  • NumOutputs() : SrcAImage< float, Img > , Vtl::Plf::FilterBase , DiZenzo< float > , ToBounds< float > , SrcAImage< Real_t, Img > , Average< float > , GammaCorMult< float > , Resample< float > , EnvProc1to1< Real_t, Func, PostThresh > , SrcAImage< Real_t, AImageMem8 > , Mult< float > , SrcArray< Real_t, Real_t > , ConvolveVert< float > , MeanAndDisp< float > , ToBounds< float > , Y< float > , ConvolveHorz< float > , GammaCorMult< float > , Canny< float > , GammaCor< float > , BiLateral< float > , GammaCor< float > , SrcAImage< Real_t, T > , GradientModul< float > , GammaCor< float > , HarrisNMS< float > , DstContainer< Real_t, Container_t > , ToBounds< float > , DstAImage< float, Img > , SqrtOfSumSqr< float > , GammaCor< float > , AverageGauss< float > , GammaCor< float > , DstAImage< unsigned, Img > , DstArray< Real_t, Real_t > , SrcAImage< unsigned, Img >
  • NumPlanes() : tplAImageReference< ImgT > , AImageMemRgb16 , AImage , AImageMemRgb8
  • Nuttall() : Vtl::ImAlg::WndFun::Nuttall< T, D >


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- o -

  • Offset()
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::Transf::Offset< T >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Offset< T >
  • offset_by()
: Vtl::ImAlg::Model::SkewYOffset< T >
, Vtl::ImAlg::Model::SkewXOffset< T >
  • OFlow() : OFlow< Model, AllocStrategy > , Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >
  • OFlowAllocStrategy() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • ofs()
: Vtl::Img::Iterator_ND_spec< T_Layout, true, true >
, Vtl::Img::Iterator_ND_spec< T_Layout, true, false >
, Vtl::Img::Iterator_ND_spec< T_Layout, false, false >
, Vtl::Img::Iterator_ND_spec< T_Layout, false, true >
, Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride >
, Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >
  • one_comp() : Vtl::Meta::det_poly_coef< Matrix, N >
  • onSameSide() : LineFun
  • open()
: ReadPipe
, WritePipe
, IFF::FloatImageFile
, IFF::OzFile
, IFF::PBMfile
  • operator &&() : YXML::DNode::Is
  • operator *() : Vtl::Img::Iterator_1D< T, 0 > , Quaternion< T > , Vtl::Img::Iterator_1D< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , YTimeInterval , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , Vtl::Img::Iterator_ND_spec< T_Layout, false, false > , Vtl::Img::Iterator_ND_spec< T_Layout, false, true > , Vtl::Img::Iterator_ND_spec< T_Layout, true, false > , Vtl::Img::Iterator_ND_spec< T_Layout, true, true > , SliceIter< T, stride > , SliceIter< T, stride > d stride , SliceIter< T, 0 > , SliceIter< T, 0 > d stride_var , SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , SliceIterConst< T, 0 > , SliceIterConst< T, 0 > d stride_var , LineIterator< T > , ColumnIteratorFast< T > , Quaternion< value_type > , Quaternion< value_type > Vector_3 , Vtl::Img::Iterator_1D< T, T_stride > , Vtl::ImAlg::Conv::SliceIter< T, stride > , Vtl::Plf::ColumnIteratorFast< T > , Vtl::Img::Iterator_1D< T, T_stride > , Vtl::ImAlg::Conv::SliceIter< T, stride > , Vtl::Plf::LineIterator< T > , Vtl::ImAlg::Conv::SliceIter< T, 0 >
  • operator *=() : YTimeInterval
  • operator const char *() : AErrorStatusBase
  • operator const int *() : Vtl::NumAlg::Implicit::Sort_base< N_ > , Vtl::NumAlg::Implicit::Sort_base< 0 >
  • operator DataString()
: WiNode
, WiNode::AttrRef
, YXML::DNode::AttrRef
, YXML::DNode
  • operator double() : DataString
  • operator float() : DataString
  • operator int() : DataString , ZoomFactor
  • operator LayoutType() : Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
  • operator pel *() : Vtl::Img::pic_plane< pel, stride >
  • operator RotationMatrix() : Quaternion< T > , Quaternion< value_type > , Quaternion< value_type > Vector_3
  • operator unsigned() : DataString
  • operator YDataTime() : DataString
  • operator YDataTimeZone() : DataString
  • operator!=() : Vtl::ImAlg::Conv::SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , YTimeInterval , YPoint< T > , YPoint< int > , YRect< int > , YPoint< double > , YDataTime , SliceIter< T, stride > , SliceIter< T, stride > d stride , SliceIter< T, 0 > , YRect< T > , SliceIter< T, 0 > d stride_var , SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , SliceIterConst< T, 0 > , SliceIterConst< T, 0 > d stride_var , LineIterator< T > , YPoint< T > , ZoomFactor2D , YRect< T > , ZoomFactor2D , Vtl::ImAlg::Conv::SliceIter< T, stride > , Vtl::Plf::LineIterator< T > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , Vtl::Plf::ImgSize
  • operator()() : Hartley2PhaseAmpDown< 2, Real_t > , Hartley2Im< T > , SqrtOfSumSqr< T > , Vtl::Plf::F11::Negative< T > , ConvInplace< float, K1 > , ConvInplace< float, K2 > , Forward< T, D > , YXML::DNode::IsOR , ConvInplace< T, K > , Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , ConvInplace< T, K2 > , Basics3D::Structure::Comp3D< T > , Basics3D::Structure::ProjectiveToMetric< T > , Basics3D::Structure::Dlt< T > , Conv< T, K2 > , Conv< T, K1 > , CyclicConvInplace< T, K > , Hanina::Hessian3D< T > , Vtl::Plf::F11::Convert2ByteBounded , Hanina::Planes3< T > , Hanina::Comb_ridge< T1, T2 > , ProjectiveToMetric< value_type > , Hanina::Check_4_grad_sign_change< T > , Hanina::FillingHessianMatrix3x3 , Hanina::ScaleScan3x3< T > , Hanina::HessianDetSqrt< T > , Hanina::HessianEigenDiff< T > , Hanina::HessianEigenDiffAndMaxCurvatureDirection , Dlt< value_type > , Hanina::Luv_from_xy_derivatives< T > , Hanina::ZeroCrossVisualization< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > , Hanina::ZeroCross< T > , Vtl::Plf::F31::StatDiffThresh< T > , CyclicConvInplace< float, K > , Conv< float, K > , ConvInplace< float, K > , Vtl::ImAlg::Conv::CyclicConv< T, K > , FastGaussConvolve< float, DERIV > , Vtl::ImAlg::Conv::CyclicConvInplace< T, K > , Convert< float > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > , FastGaussConvolve< float, 0 > , Comp3D< value_type > , Vtl::ImAlg::Conv::Conv< T, K > , FastGaussConvolve< float, 0 > , FastGaussConvolve< float, 1 > , Vtl::ImAlg::Conv::ConvInplace< T, K > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , YXML::DNode::IsAND , Vtl::ImAlg::Conv::ConvInplace< T, K > , FastGaussConvolve< float, 2 > , Vtl::ImAlg::C::YCbCr::G< T > , FastGaussConvolve< float, 3 > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 > , FastGaussConvolve< float, 3 > , Convert< uint8_t > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 > , Convert< uint8_t > , Lin< float > lin_1mod , Convert< uint8_t > , Sum< float > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 > , Lin< float > lin_2 , Convert< uint8_t > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 > , Lin< float > , Abs< float > , Affine< T > , YXML::DNode::Is , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 > , Convert< uint8_t > , SetPixel< float, 1 > , is_center_max_in3x3< 1 > , HessianDetSqrt< float > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 > , GammaCorMult< float > lin_3mod , Convert< uint8_t > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > , Test< float > , YXML::IsElem , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > , Test< float > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D > , ConvInplace< float, K4 > , Vtl::NumAlg::Lin::PseudoInverseElem< T > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D > , ToBounds< float > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 > , YXML::IsName< Cmp > , Vtl::ImAlg::Conv::FastGaussConvolve< T, D > , Vtl::ImAlg::Edt::isEdge< T > , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , GammaCorMult< float > , ConvInplace< float, K4 > , Vtl::ImAlg::Tools::findMax::is_center_max_in3x3< num_equal_neihbours > , Vtl::ImAlg::Tools::findMax::SetPixel< T, stride > , Vtl::Plf::F11::Threshold< T, Comp > , YXML::IsAttr< T, Cmp > , GammaCor< float > , Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB > , Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB > , Harris< float > , Comb_ridge< T, uint8_t > , HarrisLaplace< float > , ScaleScan3x3< T > , Convert< uint8_t > , Trace< float > , Convert< uint8_t > , MinEigenVal< float > , YXML::IsAttrIn< T > , Vtl::ImAlg::Transf::Offset< T > , MaxEigenVal< float > , Vtl::ImAlg::Transf::Offset< T > , DiffEigenVal< float > , Vtl::ImAlg::Transf::Offset< T > , Vtl::ImAlg::Transf::Affine< T > , HarrisNMS< float > , SqrtOfSumSqr< float > , Mult< float > , Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > , Vtl::ImAlg::Transf::Affine< T > , Hamming< float, 0 > , Hamming< float, 1 > , cos_Member< float, 3, 4, 1 > , cos_Member< float, 2, 4, 1 > , Vtl::ImAlg::Transf::Affine< T > , cos_Member< float, 1, 4, 1 > , Hamming< float, 2 > , Hamming< float, 3 > , Direct< float, int > , InterpBilinear< Img::Pixel > , Vtl::ImAlg::Transf::Homography< T > , Hamming< float, 4 > , Hann< float, 0 > , Hann< float, 1 > , Hann< float, 2 > , Hann< float, 3 > , Hann< float, 4 > , Direct_Ref< float, int > , Vtl::ImAlg::Transf::Homography< T > , cos_Member< float, 0, 4, 1 > , Vtl::ImAlg::Transf::Homography< T > , Vtl::Plf::F21::Dif< T > , cos_Member< float, 2, 4, 1 > , Vtl::ImAlg::Transf::Homography< T > , Offset< T > , ConvInplace< float, K0 > , Vtl::ImAlg::Bres::Draw< Pixel > , ConvInplace< float, K2 > , Vtl::ImAlg::Bres::DrawDotted< Pixel > , Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC > , Vtl::ImAlg::WndFun::Rect< T, D > , Vtl::ImAlg::WndFun::Bartlett< T, D > , fromRGB< T, Iter > , Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > , Vtl::ImAlg::WndFun::DoG< T, D > , Vtl::ImAlg::Bres::DrawGradient< Pixel > , Vtl::ImAlg::WndFun::Sinc< T, 0 > , WiNode , Vtl::ImAlg::WndFun::Kaiser< T, D > , Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I > , WiNode , Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I > , Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K > , ConvInplace< float, K3 > , Vtl::ImAlg::WndFun::common_Trig< T, D, K > , ConvInplace< float, K0 > , Vtl::ImAlg::C::XYZ::X< T > , Convert2ByteBounded , Vtl::NumAlg::Lin::PseudoInverseElemPositive< T > , Abs< T > , Vtl::ImAlg::C::XYZ::Z< T > , Vtl::ImAlg::C::XYZ::Y< T > , Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > , Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > , Vtl::ImAlg::C::XYZ::R< T > , Vtl::ImAlg::C::XYZ::G< T > , Vtl::ImAlg::C::XYZ::B< T > , Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown > , Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter > , Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown > , Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter > , Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown > , Vtl::NumAlg::IntTransf::Utils::F::Test< T > , Vtl::ImAlg::C::YCbCr::Y< T > , Vtl::NumAlg::IntTransf::Utils::F::Test< T > , Vtl::ImAlg::C::YCbCr::Cb< T > , Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T > , Vtl::ImAlg::C::YCbCr::Cr< T > , Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T > , Vtl::ImAlg::C::YCbCr::R< T > , Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout > , YXML::DNode::IsCond , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T > , Himg2< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T > , Vtl::ImAlg::C::YCbCr::B< T > , Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter > , Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > , Vtl::ImAlg::C::EElEll::E< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T > , ReflectHalfToOther< 2, Real_t, true > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T > , Vtl::ImAlg::C::EElEll::El< T > , Vtl::ImAlg::C::EElEll::Ell< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > , Vtl::ImAlg::C::EElEll::R< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > , Vtl::ImAlg::C::EElEll::G< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > , Vtl::ImAlg::C::EElEll::B< T > , Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T > , CyclicConv< T, K1 > , CyclicConv< T, K2 > , CyclicConv< T, K > , CyclicConvInplace< T, K1 > , Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > , CyclicConvInplace< T, K2 > , Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > , Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter > , Conv< T, K > , ConvInplace< T, K1 > , Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter > , ConvInplace< T, K2 > , ConvInplace< T, K > , Vtl::ImAlg::C::YIQ::Y< T > , Vtl::ImAlg::C::YIQ::I< T > , Forward< T, D > , Reverse< T, D > , Mult< T > , CannyNMS< float > , CorrMatrix< T > , Vtl::ImAlg::C::YIQ::Q< T > , DiZenzo< T > , InterpBilinear< Real_t > , PhaseCorr< Real_t > , Vtl::ImAlg::C::YIQ::R< T > , Hartley2Phase< Real_t > , Hartley2PhaseAmpDown< 2, Real_t > , ConvInplace< float, K0 > , Vtl::Plf::F21::SqrtOfSumSqr< T > , YXML::DNode , Hartley2PhaseAmpDown< 2, Real_t > , ReflectHalfToOther< 2, Real_t, true > , Vtl::ImAlg::C::YIQ::G< T > , DoNothing< T > , Vtl::ImAlg::C::YIQ::B< T > , Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter > , Offset< T > , Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter > , Affine< T > , Vtl::ImAlg::C::YUV::Y< T > , Vtl::ImAlg::C::YUV::U< T > , InterpBilinear< Pixel > , Hartley2Modul< T > , Hartley2Re< T > , Hartley2Im< T > , Vtl::ImAlg::C::YUV::V< T > , Vtl::ImAlg::C::YUV::R< T > , Hartley2Modul< T > , Vtl::ImAlg::C::YUV::G< T > , Vtl::ImAlg::C::YUV::B< T > , GammaCorMult< T > , Convert< T > , Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter > , Sharpen< T > , Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter > , Himg< T > , GammaCorMult< T > P , ConvInplace< float, K0 > , Vtl::ImAlg::C::IV1V2::I< T > , Disp< T > , StatDiff< T > , DeNoise< T > , Vtl::ImAlg::C::IV1V2::V1< T > , Sum3< T > , CorrMatrix< T, T & > , Vtl::ImAlg::C::IV1V2::V2< T > , Vtl::ImAlg::C::IV1V2::R< T > , Vtl::Plf::Fpie::BiLateralSmooth< T > , Vtl::Plf::F11::DoNothing< T > , Vtl::Plf::F11::Convert< T > , Sqr< T > , Vtl::Plf::Fpie::HarrisNMS< T > , Vtl::ImAlg::C::IV1V2::B< T > , Vtl::ImAlg::C::IV1V2::G< T > , Vtl::Plf::F11::Comb< T, F1, F2 > , CannyNMS< T > , Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter > , Vtl::Plf::F11::Bias< T > , Vtl::Plf::F11::Mult< T > , Vtl::Plf::F31::MinEigenVal< T > , Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter > , Vtl::Plf::F11::ConvertMult< T > , Vtl::Plf::F11::Lin< T > , Vtl::Plf::F31::HessianDetSqrt< T > , Vtl::ImAlg::C::HSV::toRGB< T, Iter > , Vtl::Plf::F11::ToBounds< T > , ConvInplace< float, K1 > , Vtl::Plf::F21::Sharpen< T > , Vtl::Plf::F21::Prod< T > , Vtl::Plf::F21::AbsDif< T > , Vtl::Plf::F11::Abs< T > , Vtl::Plf::F21::AbsDif< T > , Vtl::Plf::F11::Sqrt< T > , ConvInplace< float, K3 > , Vtl::Plf::F11::Sqr< T > , Vtl::ImAlg::C::HSV::fromRGB< T, Iter > , Vtl::Plf::F11::GammaCor< T > , Check_4_grad_sign_change< T > , Vtl::Plf::F11::Log< T > , Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter > , Vtl::Plf::F11::GammaCorMult< T > , Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter > , CorrMatrixAdd< T > , PhaseCorr< Real_t > , Hartley2Phase< Real_t > , Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter > , Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter > , Vtl::Plf::F21::Sum< T > , Vtl::Plf::F21::AbsDif< T > , Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > , Vtl::Plf::F21::AbsDif< T > , Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > , Vtl::Plf::F21::Disp< T > , Vtl::Plf::F31::Sum3< T > , Vtl::Plf::F31::HessianDet< T > , Vtl::Plf::F31::Harris< T > , Vtl::Plf::F31::Trace< T > , Vtl::Plf::F31::MaxEigenVal< T > , Vtl::Plf::F31::DiffEigenVal< T > , Vtl::Plf::F31::StatDiff< T > , Vtl::Plf::F31::DeNoise< T > , Vtl::Plf::F51::HarrisLaplace< T > , Vtl::Plf::F23::CorrMatrix< T, Iter > , Vtl::Plf::F23::CorrMatrixAdd< T, Iter > , Vtl::Plf::F33::DiZenzo< T, Iter > , BiLateralSmooth< T > , Vtl::Plf::Fpie::HarrisNMS_Smooth< T > , Vtl::Plf::Fpie::Himg2< T > , Vtl::Plf::Fpie::Himg< T > , Vtl::Plf::Fpie::CannyNMS_2< T > , Vtl::Plf::Fpie::CannyNMS< T > , Vtl::Plf::FiltersSystem::EdgeLabel_Unknown , Vtl::Plf::FiltersSystem::EdgeLabel_DelayB
  • operator+() : Vtl::ImAlg::Conv::SliceIterConst< T, stride > , Cluster2D< T, DatumType > , Cluster1D< T, DatumType > , SliceIterConst< T, 0 > d stride_var , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , SliceIterConst< T, 0 > , SliceIterConst< T, stride > d stride , YDataTime , SliceIter< T, stride > , SliceIter< T, stride > d stride , SliceIter< T, 0 > , SliceIter< T, 0 > d stride_var , SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIter< T, stride > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , YTimeInterval
  • operator++() : SliceIterConst< T, 0 > d stride_var , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , SliceIterConst< T, stride > d stride , SliceIterConst< T, 0 > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , SliceIterConst< T, stride > , SliceIter< T, 0 > , SliceIter< T, stride > d stride , Vtl::Img::pic_plane< pel, stride > , SliceIter< T, stride > , SliceIter< T, stride > d stride , SliceIter< T, 0 > d stride_var , SliceIterConst< T, stride > d stride , SliceIterConst< T, 0 > d stride_var , LineIterator< T > , Vtl::Plf::ColumnIteratorFast< T > , ColumnIteratorFast< T > , Vtl::ImAlg::Conv::SliceIter< T, stride > , Vtl::Img::Iterator_1D< T, T_stride > , Vtl::Plf::LineIterator< T > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , Vtl::Plf::Strip , Vtl::Img::Iterator_1D< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, stride >
  • operator+=() : Vtl::Img::Iterator_1D< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , SliceIterConst< T, 0 > d stride_var , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , SliceIterConst< T, 0 > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , SliceIter< T, 0 > d stride_var , YDataTime , SliceIter< T, stride > d stride , Vtl::Img::pic_plane< pel, stride > , ZoomFactor , SliceIter< T, stride > , SliceIter< T, 0 > , SliceIterConst< T, stride > d stride , SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , YTimeInterval , Vtl::ImAlg::Conv::SliceIter< T, stride > , Vtl::Img::Iterator_1D< T, T_stride > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , Vtl::Plf::Strip
  • operator-() : YTimeInterval , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , SliceIterConst< T, 0 > d stride_var , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , SliceIterConst< T, 0 > , SliceIter< T, 0 > , SliceIter< T, 0 > d stride_var , YDataTime , SliceIter< T, stride > , SliceIter< T, stride > d stride , SliceIterConst< T, stride > d stride , SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIter< T, stride > , YTimeInterval , Vtl::ImAlg::Conv::SliceIter< T, 0 >
  • operator--() : Vtl::ImAlg::Conv::SliceIterConst< T, stride > , SliceIterConst< T, 0 > d stride_var , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , SliceIterConst< T, 0 > , SliceIterConst< T, stride > d stride , SliceIterConst< T, stride > , SliceIter< T, 0 > d stride_var , SliceIter< T, 0 > , SliceIter< T, stride > , Vtl::Img::pic_plane< pel, stride > , SliceIter< T, stride > d stride , SliceIter< T, 0 > d stride_var , SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , SliceIterConst< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , ColumnIteratorFast< T > , Vtl::Img::Iterator_1D< T, T_stride > , Vtl::ImAlg::Conv::SliceIter< T, stride > , Vtl::Plf::ColumnIteratorFast< T > , Vtl::Plf::LineIterator< T > , LineIterator< T > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , Vtl::Img::Iterator_1D< T, 0 >
  • operator-=() : Vtl::Img::Iterator_1D< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , SliceIterConst< T, 0 > d stride_var , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , SliceIterConst< T, 0 > , SliceIterConst< T, stride > d stride , SliceIterConst< T, stride > , SliceIter< T, 0 > d stride_var , YDataTime , SliceIter< T, stride > d stride , ZoomFactor , Vtl::Img::pic_plane< pel, stride > , SliceIter< T, stride > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , SliceIter< T, 0 > , Vtl::Img::Iterator_1D< T, T_stride > , Vtl::ImAlg::Conv::SliceIter< T, stride > , YTimeInterval , Vtl::ImAlg::Conv::SliceIter< T, 0 >
  • operator/() : Quaternion< T > , YTimeInterval , Quaternion< value_type > , Quaternion< value_type > Vector_3
  • operator/=() : YTimeInterval
  • operator<() : Basics3D::SortS< T > , YTHistListTag< T > , Vtl::ImAlg::Registration::Container< Real_t >::Point , YDataTime , YTimeInterval , SortS< double >
  • operator<=() : YTimeInterval , YDataTime
  • operator=() : YXML::DNode::IsOR , ZoomFactor , ImageProxyVector , Vtl::Plf::FilterComplex , Vtl::Plf::SeparableConv2D< T, P > , DatumR< T > , ReadPipe , YTArray< T > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , Canny< float > , DiZenzo< float > , YXML::DNode::IsAND , YPoint< double > , YXML::DNode , YTDynArray< T > , Vtl::ImAlg::Transf::Affine< T > , DataString , YXML::DNode , Vtl::Plf::BiLateral< T, P > , WiNode , Resample< float > , Average< float > , ImageVectorT< Base, Bit8, Bit16 > , Vtl::Plf::HarrisLaplace< T, Func, P > , Vtl::Plf::MeanAndDisp< T, P > , Vtl::ImAlg::Transf::Offset< T > , ToBounds< float > , BiLateral< float > , Quaternion< value_type > , YTArray< T > , T_Points2DSet< Point > , YPoint< int > , SliceIter< T, stride > , Offset< T > , T_Points2DSet< C_Point2D > , Vtl::Plf::Resample< T, P > , Vtl::Plf::StatDiff< T, P > , Vtl::ImAlg::Transf::Homography< T > , GammaCor< float > , YPoint< T > , DataString , GammaCor< float > , Vtl::Plf::OutPortNoPostProc< T > , WiNode , GammaCor< float > , Vtl::Plf::Canny< T, P > , Iter_Line , YXML::DNode::IsCond , ImageTransform , Basics3D::T_Points2DSet< Point > , SliceIter< T, stride > d stride , Vtl::Plf::Sharpen< T, P > , Vtl::Plf::FilterElementary , GradientModul< float > , GammaCorMult< float > , GammaCor< float > , SliceIter< T, 0 > , ToBounds< float > , AverageGauss< float > , WiNode::AttrRef , SliceIterConst< T, 0 > , DataString , GammaCor< float > , InPortComb< T > , Vtl::Plf::GradientModul< T, P > , SliceIterConst< T, stride > , ImageTransformImpl , SliceIterConst< T, stride > d stride , WiNode::AttrRef , Vtl::Plf::HImage< T, P > , OutPortNoPostProc< Real_t > , DatumR< T > , WritePipe , Quaternion< value_type > Vector_3 , Vtl::Plf::FilterBase , SliceIterConst< T, 0 > d stride_var , Quaternion< T > , Vtl::Plf::Average< T, P > , Basics3D::C_Point2D , Affine< T > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , Vtl::Plf::DeNoise< T, P > , ToBounds< float > , Vtl::Plf::OutPort< T, P > , Vtl::Plf::DiZenzo< T, P > , Vtl::Plf::HImageEdge< T, P > , Vtl::Plf::InPort< T > , Vtl::Plf::InPortBase , Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , Vtl::ImAlg::Conv::SliceIter< T, stride > , SliceIter< T, 0 > d stride_var , YTimeInterval , DataString , ZoomFactor2D , YPoint< T > , ZoomFactor2D , YXML::DNode::AttrRef , DataString , InPort< T > , Vtl::Plf::Detect< T, Func, P > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , Iter_Line , Base< T, Kernel::KT_Conv > , Vtl::Plf::Port , Vtl::Plf::OutPortBase , Vtl::Plf::InPortComb< T > , MeanAndDisp< float > , YXML::DNode::AttrRef , Vtl::Plf::GradientCorr< T, P > , Vtl::Plf::Strip , Vtl::Plf::AverageGauss< T, P >
  • operator==() : YRect< int > , SliceIter< T, 0 > d stride_var , YPoint< int > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , Vtl::Plf::ImgSize , YPoint< T > , YDataTime , YPoint< double > , ZoomFactor2D , YTHistListTag< T > , SliceIter< T, stride > d stride , SliceIter< T, stride > , YRect< T > , SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , SliceIterConst< T, 0 > , SliceIter< T, 0 > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , YTimeInterval , SliceIterConst< T, stride > d stride , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , SliceIterConst< T, 0 > d stride_var , YRect< T > , ZoomFactor2D , Vtl::ImAlg::Conv::SliceIter< T, stride > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , YPoint< T >
  • operator>() : YDataTime , YTimeInterval
  • operator>=() : YTimeInterval , YDataTime
  • operator[]() : VirtDib , Vtl::Img::Iterator_1D< T, 0 > , ImageMem8 , ImageMem16 , YImageFrame , YTArray< T > , AImageMemFloat , YTDynArray< T > , Basics3D::T_ImagesSet< Image > , ImageRef< T > , Basics3D::T_Points2DSet< Point > , YXML::DNode , Vtl::Img::Image< P, planes, interleave > , ImageContainer< ImgType > , YTArray< T > , YTHistList< T > , T_ImagesSet< AImageMem8 > , WiNode , ImageMemFloat , YTDynArray< T > , AImageMem8 , YXML::DNode , Vtl::Img::Iterator_1D< T, 0 > , T_Points2DSet< C_Point2D > , AImageMem16 , PtrArrayDel< T > , ImageRef< int > , Vtl::NumAlg::Implicit::Sort_base< 0 > , T_Points2DSet< Point > , Vtl::NumAlg::Implicit::Sort_base< N_ > , YTArray< T > , PtrArrayDel< T > , WiNode , ImageMem16Stuff , YTArray< T > , Basics3D::C_Points2DParamSet , Vtl::Plf::ImageRef< T > , Vtl::Img::Iterator_1D< T, T_stride > , ImageFragment8 , Vtl::Img::Iterator_1D< T, T_stride > , ImageFragment16
  • operator|=() : Vtl::Plf::Strip
  • operator||() : YXML::DNode::Is
  • optimal_search() : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • OptimalSolution() : Basics3D::C_StructureComputation
  • orthes() : Vtl::NumAlg::Lin::eigen
  • out() : AverageGauss< float > , Vtl::Plf::Canny< T, P > , Vtl::Plf::Resample< T, P > , ToBounds< float > , GammaCor< float > , Vtl::Plf::GradientModul< T, P > , BiLateral< float > , Vtl::Plf::HarrisLaplace< T, Func, P > , Vtl::Plf::HImage< T, P > , ToBounds< float > , Canny< float > , Vtl::Plf::Average< T, P > , Vtl::Plf::BiLateral< T, P > , GammaCorMult< float > , Vtl::Plf::HImageEdge< T, P > , Resample< float > , Average< float > , DiZenzo< float > , GammaCor< float > , Vtl::Plf::Sharpen< T, P > , GammaCor< float > , Vtl::Plf::AverageGauss< T, P > , GradientModul< float > , ToBounds< float > , Vtl::Plf::DiZenzo< T, P > , GammaCor< float > , Vtl::Plf::StatDiff< T, P > , Vtl::Plf::SeparableConv2D< T, P > , Vtl::Plf::DeNoise< T, P > , GammaCor< float > , Vtl::Plf::Detect< T, Func, P >
  • out_disp() : Vtl::Plf::MeanAndDisp< T, P > , MeanAndDisp< float >
  • out_gx() : Vtl::Plf::GradientModul< T, P > , GradientModul< float >
  • out_gy() : Vtl::Plf::GradientModul< T, P > , GradientModul< float >
  • out_mean() : MeanAndDisp< float > , Vtl::Plf::MeanAndDisp< T, P >
  • out_xx() : Vtl::Plf::GradientCorr< T, P >
  • out_xy() : Vtl::Plf::GradientCorr< T, P >
  • out_yy() : Vtl::Plf::GradientCorr< T, P >
  • OutPort() : Vtl::Plf::OutPort< T, P > , Iter_Line , Vtl::Plf::OutPort< T, P > , Iter_Line
  • OutPortBase() : Vtl::Plf::OutPortBase , Iter_Line , Vtl::Plf::OutPortBase , Iter_Line , OutPortNoPostProc< Real_t >
  • OutPortNoPostProc() : Iter_Line , Vtl::Plf::OutPortNoPostProc< T > , OutPortNoPostProc< Real_t > , Iter_Line , Vtl::Plf::OutPortNoPostProc< T >
  • OzFile() : IFF::OzFile


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- z -

  • Z_f() : Vtl::ImAlg::C::XYZ
  • zero() : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • ZeroCross() : Hanina::ZeroCross< T >
  • ZeroCrossVisualization() : Hanina::ZeroCrossVisualization< T >
  • Zone() : YDataTimeZone
  • ZoomFactor() : ZoomFactor
  • ZoomFactor2D() : ZoomFactor2D
  • ZoomValue() : ZoomFactor , ZoomFactor2D
  • ZoomValueNR() : ZoomFactor , ZoomFactor2D


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- ~ -

  • ~AErrorStatusBase() : AErrorStatusBase
  • ~AImage() : AImage
  • ~AImageMem16() : AImageMem16
  • ~AImageMem8() : AImageMem8
  • ~AImageMemFloat() : AImageMemFloat
  • ~AImageMemRgb16() : AImageMemRgb16
  • ~AImageMemRgb8() : AImageMemRgb8
  • ~AImageProxy() : AImageProxy
  • ~Average() : Vtl::Plf::Average< T, P > , Average< float >
  • ~AverageGauss() : AverageGauss< float > , Vtl::Plf::AverageGauss< T, P >
  • ~Base()
: Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >
, Vtl::ImAlg::Model::Base< T >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Base< T, Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
  • ~BaseAffine() : Vtl::ImAlg::Model::BaseAffine< T >
  • ~BiLateral() : BiLateral< float > , Vtl::Plf::BiLateral< T, P >
  • ~BmpRead() : IFF::BmpRead
  • ~BmpWrite() : IFF::BmpWrite
  • ~C_Combination() : Basics3D::C_Combination
  • ~Canny() : Canny< float > , Vtl::Plf::Canny< T, P >
  • ~childPipe() : childPipe
  • ~ConvolveHorz() : Vtl::Plf::ConvolveHorz< T, P > , ConvolveHorz< float >
  • ~ConvolveVert() : Vtl::Plf::ConvolveVert< T, P > , ConvolveVert< float >
  • ~DebugBase() : DebugBase
  • ~DebugToFile() : DebugToFile
  • ~DeNoise() : ToBounds< float > , Vtl::Plf::DeNoise< T, P >
  • ~Detect() : GammaCor< float > , Vtl::Plf::Detect< T, Func, P > , GammaCor< float >
  • ~DiZenzo() : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • ~DllModule() : DllModule
  • ~DNode() : YXML::DNode
  • ~DstAImage() : Vtl::Plf::DstAImage< T, I > , DstAImage< unsigned, Img > , DstAImage< float, Img >
  • ~DstArray() : DstArray< Real_t, Real_t > , DstAImage< unsigned, Img > , DstAImage< float, Img > , Vtl::Plf::DstArray< T, Pixel >
  • ~DstContainer() : Vtl::Plf::DstContainer< T, C, P > , DstContainer< Real_t, Container_t >
  • ~EnvProc1to1() : EnvProc1to1< Real_t, Func, PostThresh > , Vtl::Plf::EnvProc1to1< T, Func, P > , HarrisNMS< float >
  • ~EnvProc1to2() : Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
  • ~EnvProc3to1() : Vtl::Plf::EnvProc3to1< T, Func, P >
  • ~Error() : ImageMem16Stuff::Error
  • ~ErrorStatusBase() : ErrorStatusBase
  • ~Fifo() : Vtl::Plf::Fifo< T > , Fifo< int > , Fifo< Vtl::Plf::FilterElementary * >
  • ~FilterBase() : Mult< float > , SqrtOfSumSqr< float > , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , DstArray< Real_t, Real_t > , SrcAImage< Real_t, Img > , Canny< float > , SrcAImage< Real_t, AImageMem8 > , DstContainer< Real_t, Container_t > , Y< float > , DiZenzo< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , Vtl::Plf::FilterBase , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , Resample< float > , AverageGauss< float > , Average< float > , ToBounds< float > , MeanAndDisp< float > , ToBounds< float > , GammaCorMult< float > , BiLateral< float > , GradientModul< float > , GammaCor< float > , HarrisNMS< float > , ConvolveHorz< float > , ConvolveVert< float > , GammaCorMult< float >
  • ~FilterComplex() : Canny< float > , DiZenzo< float > , Vtl::Plf::FilterComplex , Resample< float > , AverageGauss< float > , Average< float > , ToBounds< float > , MeanAndDisp< float > , ToBounds< float > , GammaCorMult< float > , BiLateral< float > , GradientModul< float > , GammaCor< float >
  • ~FilterElementary() : Mult< float > , SqrtOfSumSqr< float > , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , Y< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , GammaCorMult< float > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , Vtl::Plf::FilterElementary , DstAImage< float, Img > , HarrisNMS< float > , ConvolveHorz< float > , ConvolveVert< float >
  • ~FilterResampleHorz() : Vtl::Plf::FilterResampleHorz< T, P >
  • ~FilterResampleVert() : Vtl::Plf::FilterResampleVert< T, P >
  • ~FiltersSystem() : Vtl::Plf::FiltersSystem
  • ~FKern()
: Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
  • ~FloatImageFile() : IFF::FloatImageFile
  • ~Gistogramm() : Vtl::Plf::OLSI::Gistogramm< T >
  • ~Gistogramm2() : Vtl::Plf::OLSI::Gistogramm2< T >
  • ~GradientCorr() : Vtl::Plf::GradientCorr< T, P >
  • ~GradientModul() : GradientModul< float > , Vtl::Plf::GradientModul< T, P >
  • ~HarrisLaplace() : Vtl::Plf::HarrisLaplace< T, Func, P > , GammaCor< float >
  • ~Hartley() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • ~HImage() : Vtl::Plf::HImage< T, P > , GammaCorMult< float >
  • ~HImageEdge() : Vtl::Plf::HImageEdge< T, P > , GammaCor< float >
  • ~Image()
: Vtl::Img::Image< P, planes, SEP >
, Vtl::Img::Image< P, planes, interleave >
, Vtl::Img::Image< P, planes, BIP >
  • ~ImageBase() : Vtl::Img::ImageBase< P, planes, interleave >
  • ~ImageFragment16() : ImageFragment16
  • ~ImageFragment8() : ImageFragment8
  • ~ImageFragmentRgb8() : ImageFragmentRgb8
  • ~ImageHolder() : Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >
  • ~ImageMem16() : ImageMem16
  • ~ImageMem16Stuff() : ImageMem16Stuff
  • ~ImageMem8() : ImageMem8
  • ~ImageMemFloat() : ImageMemFloat
  • ~ImageMemRgb8() : ImageMemRgb8
  • ~ImageNDref() : Vtl::Img::ImageNDref< T_SList, T_Layout >
  • ~ImageProxy() : ImageProxy< ImageT >
  • ~ImageProxyConst() : ImageProxyConst< ImageT >
  • ~ImageProxyVector() : ImageProxyVector
  • ~ImageResample() : ImageResample
  • ~ImageResize() : ImageResize
  • ~ImageRotate() : ImageRotate
  • ~ImageTransform() : ImageTransform
  • ~ImageTransformCellImpl() : ImageTransformCellImpl
  • ~ImageTransformImpl() : ImageTransformImpl
  • ~ImageTransformMatrixImpl() : ImageTransformMatrixImpl
  • ~InPort() : Vtl::Plf::InPort< T > , InPort< T >
  • ~InPortBase() : InPort< T > , Vtl::Plf::InPortBase
  • ~InPortComb() : InPortComb< T > , Vtl::Plf::InPortComb< T >
  • ~Is() : YXML::DNode::Is
  • ~IsAND() : YXML::DNode::IsAND
  • ~IsCond() : YXML::DNode::IsCond
  • ~IsOR() : YXML::DNode::IsOR
  • ~Levels() : Mult< float > , Vtl::Plf::Levels< T, P >
  • ~MeanAndDisp() : Vtl::Plf::MeanAndDisp< T, P > , MeanAndDisp< float >
  • ~medianFilter() : Vtl::Plf::medianFilter< T, P >
  • ~medianFilter2() : Vtl::Plf::medianFilter2< T, P >
  • ~MImages2Gray() : MImages2Gray
  • ~MSlidingEqualization() : MSlidingEqualization
  • ~OFlow() : OFlow< Model, AllocStrategy > , Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >
  • ~OFlowAllocStrategy() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • ~OutPort() : Vtl::Plf::OutPort< T, P > , Iter_Line
  • ~OutPortBase() : OutPortNoPostProc< Real_t > , Iter_Line , Vtl::Plf::OutPortBase , Iter_Line
  • ~OutPortNoPostProc() : OutPortNoPostProc< Real_t > , Vtl::Plf::OutPortNoPostProc< T > , Iter_Line
  • ~OzFile() : IFF::OzFile
  • ~PBMfile() : IFF::PBMfile
  • ~PixByPix2to1() : GammaCorMult< float > , Vtl::Plf::PixByPix2to1< T, F, P > , SqrtOfSumSqr< float >
  • ~PixByPix2to3() : Vtl::Plf::PixByPix2to3< T, P >
  • ~PixByPix3to1() : Y< float > , Vtl::Plf::PixByPix3to1< T, Func, P >
  • ~PixByPix3to3() : Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
  • ~PixByPix4to1() : Vtl::Plf::PixByPix4to1< T, Func, P >
  • ~PixByPix5to1() : Vtl::Plf::PixByPix5to1< T, Func, P >
  • ~Port() : OutPortNoPostProc< Real_t > , Vtl::Plf::Port , Iter_Line , InPort< T >
  • ~ProcessMatrix() : ProcessMatrix
  • ~ProgressCounter() : ProgressCounter
  • ~PtrArrayDel() : PtrArrayDel< T >
  • ~PtrDelete() : PtrDelete< T >
  • ~ReadPipe() : ReadPipe
  • ~Resample() : Vtl::Plf::Resample< T, P > , Resample< float >
  • ~SaveFormat() : Gen::Data::SaveFormat
  • ~SeparableConv2D() : Vtl::Plf::SeparableConv2D< T, P >
  • ~Sharpen() : ToBounds< float > , Vtl::Plf::Sharpen< T, P >
  • ~SrcAImage() : SrcAImage< Real_t, AImageMem8 > , SrcAImage< unsigned, Img > , SrcAImage< Real_t, T > , SrcAImage< float, Img > , SrcAImage< Real_t, Img > , Vtl::Plf::SrcAImage< T, I, P >
  • ~SrcAImageRgb() : Vtl::Plf::SrcAImageRgb< T, I, P >
  • ~SrcArray() : SrcAImage< Real_t, Img > , SrcArray< Real_t, Real_t > , Vtl::Plf::SrcArray< T, I, P > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , SrcAImage< float, Img > , SrcAImage< Real_t, AImageMem8 >
  • ~StatDiff() : ToBounds< float > , Vtl::Plf::StatDiff< T, P >
  • ~Storage() : Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >
  • ~StripBuffer() : Vtl::Plf::StripBuffer< T >
  • ~T_ImagesSet() : Basics3D::T_ImagesSet< Image > , T_ImagesSet< AImageMem8 >
  • ~Table() : Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >
  • ~Tiff8Read() : IFF::Tiff8Read
  • ~Tiff8Write() : IFF::Tiff8Write
  • ~TiffReadIFD() : IFF::TiffReadIFD
  • ~TiffWriteIFD() : IFF::TiffWriteIFD
  • ~tplAImageFragment() : tplAImageFragment< ImgT >
  • ~tplAImageReference() : tplAImageReference< ImgT >
  • ~Traits() : Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D > , Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D > , Direct< float, int > , Direct_Ref< float, int >
  • ~Traits_common() : Direct< float, int > , Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > , Direct_Ref< float, int >
  • ~TrigRecurrence() : TrigRecurrence< T, double, I > , Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >
  • ~VirtDib() : VirtDib
  • ~WritePipe() : WritePipe
  • ~Xercesc() : YXML::Xercesc
  • ~XMLdoc() : YXML::XMLdoc
  • ~YFile() : YFile
  • ~YFileRead() : YFileRead
  • ~YFileWrite() : YFileWrite
  • ~YImageFrame() : YImageFrame
  • ~YSmallAllocLtd() : YSmallAllocLtd
  • ~YTArray() : YTArray< T >
  • ~YTDynArray() : YTDynArray< T >
  • ~YTHistListTag() : YTHistListTag< T >
  • ~ZoomFactor() : ZoomFactor


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- a -

  • a() : Vtl::Meta::det< Matrix >
  • ab() : Vtl::Meta::det_poly_coef< Matrix, N >
  • ab_selector() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • acceptInputParameters() : ImageTransformImpl
  • Add() : Basics3D::T_Points2DSet< Point >
  • add() : DistributionMatrix
  • Add() : ImageContainer< ImgType >
  • add() : ImageVectorT< Base, Bit8, Bit16 >
  • Add() : T_Points2DSet< C_Point2D > , Container< Real_t >
  • add() : ImageProxyVector
  • Add() : InPortComb< T > , YTHistList< T > , T_Points2DSet< Point > , Vtl::ImAlg::Registration::Container< Real_t > , Vtl::Plf::InPortComb< T >
  • add_del_lines_to_gist()
: Vtl::Plf::OLSI::Gistogramm< T >
, Vtl::Plf::OLSI::Gistogramm2< T >
  • AddPort() : GradientModul< float > , SqrtOfSumSqr< float > , Mult< float > , GradientModul< float > , GammaCorMult< float > , GammaCor< float > , GammaCorMult< float > , GammaCor< float > , ConvolveVert< float > , GammaCor< float > , ConvolveHorz< float > , GammaCor< float > , SrcArray< Real_t, Real_t > , HarrisNMS< float > , ConvolveHorz< float > , SrcAImage< Real_t, Img > , BiLateral< float > , ConvolveVert< float > , GammaCorMult< float > , Canny< float > , ToBounds< float > , Mult< float > , Canny< float > , SrcArray< Real_t, Real_t > , MeanAndDisp< float > , DstArray< Real_t, Real_t > , SrcAImage< Real_t, AImageMem8 > , SqrtOfSumSqr< float > , SrcAImage< Real_t, AImageMem8 > , SrcAImage< unsigned, Img > , SrcAImage< Real_t, AImageMem8 > , Y< float > , DstArray< Real_t, Real_t > , Y< float > , EnvProc1to1< Real_t, Func, PostThresh > , AverageGauss< float > , Y< float > , DiZenzo< float > , DstContainer< Real_t, Container_t > , DstAImage< float, Img > , DiZenzo< float > , DstContainer< Real_t, Container_t > , SrcAImage< Real_t, T > , SrcAImage< float, Img > , DstArray< Real_t, Real_t > , SrcAImage< Real_t, T > , DstAImage< unsigned, Img > , SrcAImage< unsigned, Img > , DstContainer< Real_t, Container_t > , EnvProc1to1< Real_t, Func, PostThresh > , Vtl::Plf::FilterBase , SrcAImage< unsigned, Img > , Vtl::Plf::FilterBase , Vtl::Plf::FilterElementary , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , Resample< float > , AverageGauss< float > , Average< float > , SrcArray< Real_t, Real_t > , Average< float > , ToBounds< float > , MeanAndDisp< float > , ToBounds< float > , GammaCorMult< float > , BiLateral< float >
  • AErrorStatusBase() : AErrorStatusBase
  • Affine() : Affine< T > , Vtl::ImAlg::Transf::Affine< T > , Affine< T > , Vtl::ImAlg::Transf::Affine< T >
  • AfterInsert() : OFlow< Model, AllocStrategy > , Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • AImage() : AImage
  • AImageMem16() : AImageMem16
  • AImageMem8() : AImageMem8
  • AImageMemFloat() : AImageMemFloat
  • AImageMemRgb16() : AImageMemRgb16
  • AImageMemRgb8() : AImageMemRgb8
  • AmpPhase2ReIm() : FFT_2D
  • angle_shift_specif() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • Append() : YTDynArray< T >
  • AppendChild() : YXML::DNode
  • Apply()
: Basics3D::C_Transform
, Basics3D::SolveEq
, Basics3D::C_DrawEpipolarLines
, Basics3D::C_AbsDifference
  • ApplyRansac()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
  • areIntersecting() : LineFun
  • AsimptValue() : Basics3D::C_StructureComputation
  • Assign() : Vtl::Plf::FiltersSystem
  • at() : InterpBilinear< Img::Pixel > , InterpBilinear< Real_t > , DistributionMatrix , ProcessMatrix , CoordArray2D , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , InterpBilinear< Pixel > , ProcessMatrix
  • AttrRef()
: YXML::DNode::AttrRef
, WiNode::AttrRef
, YXML::DNode::AttrRef
, WiNode::AttrRef
  • Average() : Average< float > , Vtl::Plf::Average< T, P > , Average< float > , Vtl::Plf::Average< T, P >
  • AverageGauss() : AverageGauss< float > , Vtl::Plf::AverageGauss< T, P > , AverageGauss< float >


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- b -

  • b()
: Hanina::p33< T, 0, 1 >
, Hanina::p33< T, 1, 2 >
, Hanina::p33< T, 0, 2 >
  • B_f()
: Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
  • BackEdges() : Vtl::Plf::Impl::GraphBuilder
  • Bands() : Vtl::Meta::Layout< T, IList > , Layout< T, IList >
  • Bartlett() : Vtl::ImAlg::WndFun::Bartlett< T, D >
  • base() : ImageTransform
  • Base()
: FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, Vtl::ImAlg::Model::Base< T >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Base< T, Kernel::KT_Conv >
, Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >
  • base() : ImageTransformImpl
  • BaseAffine() : Vtl::ImAlg::Model::BaseAffine< T >
  • BaseConnectedTo() : Vtl::Plf::InPortBase , InPort< T > , Vtl::Plf::InPort< T >
  • BCDdate2date() : YDtTm
  • begin()
: CoordArray2D
, ImageProxyVector
, OutPortNoPostProc< Real_t >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Container< Real_t >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::ImAlg::Registration::Container< Real_t >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Iter_Line
, Base< T, Kernel::KT_Conv >
, Vtl::Plf::OutPortNoPostProc< T >
  • begin_internal()
: FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Base< T, Kernel::KT_Conv >
  • begin_line_insert() : Vtl::Plf::StripBuffer< T >
  • beginUpdate() : OutPortNoPostProc< Real_t > , Iter_Line , Vtl::Plf::OutPortNoPostProc< T >
  • bessi() : Vtl::NumAlg::Spf::bess
  • bessj() : Vtl::NumAlg::Spf::bess
  • bessk() : Vtl::NumAlg::Spf::bess
  • bessy() : Vtl::NumAlg::Spf::bess
  • beta() : Vtl::NumAlg::Spf::Gamma
  • Between() : YDataTime
  • Bias() : Vtl::Plf::F11::Bias< T >
  • bico() : Vtl::NumAlg::Spf::Gamma
  • BiLateral() : BiLateral< float > , Vtl::Plf::BiLateral< T, P >
  • BiLateralSmooth() : Vtl::Plf::Fpie::BiLateralSmooth< T > , BiLateralSmooth< T >
  • Bits() : ImageMem16 , ImageResize , ImageRotate
  • bits() : ImageTransform
  • Bits() : tplAImageReference< ImgT > , ImageMemFloat
  • bits() : ImageVectorT< Base, Bit8, Bit16 > , AImageProxy , ImageProxy< ImageT > , ImageProxyConst< ImageT >
  • Bits() : ImageMemRgb8 , tplAImageFragment< ImgT > , IFF::OzFile
  • bits() : ImageProxyVector
  • Bits()
: MSlidingEqualization
, ImageMem16Stuff
, IFF::PBMfile
, IFF::TiffReadIFD
, IFF::BmpRead
, AImage
, Vtl::Img::ImageBase< P, planes, interleave >
, IFF::BmpWrite
  • bits() : ImageTransformImpl
  • Bits() : ImageMem8 , ImageResample
  • Blackman() : Vtl::ImAlg::WndFun::Blackman< T, D >
  • BlackmanHarris() : Vtl::ImAlg::WndFun::BlackmanHarris< T, D >
  • BlackmanNuttall() : Vtl::ImAlg::WndFun::BlackmanNuttall< T, D >
  • block() : Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >
  • bmiHeaderInit() : VirtDib
  • BmpRead() : IFF::BmpRead
  • BmpWrite() : IFF::BmpWrite
  • border() : Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , InterpBilinear< Real_t > , InterpBilinear< Img::Pixel > , InterpBilinear< Pixel >
  • bottom() : YRect< T > , YRect< int > , YRect< T > , YRect< int > , YRect< T >
  • bres() : Vtl::ImAlg::Bres::Line< F > , Line< SetPixelFunctor >
  • Buffer() : Vtl::ImAlg::Conv::Impl::Buffer< T, K >
  • Build() : VirtDib
  • build()
: Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< n, TT >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< 0, TT >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< n, TT >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< 0, TT >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< n, TT >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< 0, TT >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
  • Build() : VirtDib
  • build() : FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • Build() : VirtDib
  • build() : Vtl::Plf::Impl::GraphBuilder , Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > , Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ > , Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
  • build_3D_hess() : Hanina::FillingHessianMatrix3x3
  • build_3D_hess_projection() : Hanina::FillingHessianMatrix3x3
  • build_A() : Basics3D::Structure::Dlt< T > , Dlt< value_type >
  • build_E() : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • build_equation_coef() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • build_expression() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • build_Functional() : Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type >
  • build_Functional_derivative() : Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type >
  • build_Functional_derivative_d_focus_sqr() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • build_H() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • Build_K() : Basics3D::FmTools< T >
  • build_KKT() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • build_KKT_d_focus_sqr() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • Build_P() : Basics3D::FmTools< T >
  • build_PQPT() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • build_PQPT_KKT() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • build_Qoo() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type >
  • build_Qoo_d_focus_sqr() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • build_Qoo_d_p() : Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type >
  • Build_texture() : TriResult
  • build_W() : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type > , Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type >
  • buildAdj() : Vtl::Plf::Impl::Node
  • BuildB() : Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >
  • BuildEnvBlock() : childPipe
  • BuildHB() : Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >
  • BuildModelFaces() : Basics3D::C_StructureComputation
  • BuildModelPoints() : Basics3D::C_StructureComputation
  • BuildViaDecimation() : VirtDib
  • BuildVRML() : TriResult
  • butterfly_fft() : Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > , TrigRecurrence< T, double, I >
  • butterfly_Hartley() : Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > , TrigRecurrence< T, double, I >
  • BytesPerRow() : VirtDib


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- c -

  • C_AbsDifference() : Basics3D::C_AbsDifference
  • C_Combination() : Basics3D::C_Combination
  • C_DrawEpipolarLines() : Basics3D::C_DrawEpipolarLines
  • C_Point2D() : Basics3D::C_Point2D
  • C_Point2DParam() : Basics3D::C_Point2DParam
  • C_Points2DParamSet() : Basics3D::C_Points2DParamSet
  • C_StructureComputation() : Basics3D::C_StructureComputation
  • C_Transform() : Basics3D::C_Transform
  • C_Triangulation() : Basics3D::C_Triangulation
  • calc_2D_eigmax() : Hanina::FillingHessianMatrix3x3
  • calc_blk_size() : YTArray< T >
  • calc_deriv() : Hanina::Hessian3D< T >
  • calc_deriv_from() : Hanina::Hessian3D< T >
  • calc_grad_from() : Hanina::Hessian3D< T >
  • calcRequiredExtent() : Iter_Line , Vtl::Plf::OutPortBase , OutPortNoPostProc< Real_t >
  • CalcSize() : FFT_2D
  • calculateInputPolygon() : ImageTransformMatrixImpl
  • calculateOutputCoords() : ImageTransformImpl
  • calculateOutputData() : ImageTransformCellImpl , ImageTransformMatrixImpl , ImageTransformImpl
  • CameraPoseFromEssential() : CameraPoseFromEssential< value_type > , Basics3D::Fm2Essential::CameraPoseFromEssential< T >
  • canForward() : ATransformFunction
  • canICStoRCS() : ImageTransformImpl
  • canMove() : Vtl::Plf::Strip
  • Canny()
: Vtl::Plf::Canny< T, P >
, Students::Curve::EdgeDetect< T >
, Canny< float >
  • CannyNMS() : Vtl::Plf::Fpie::CannyNMS< T > , CannyNMS< float > , CannyNMS< T >
  • CannyNMS_2() : Vtl::Plf::Fpie::CannyNMS_2< T >
  • canPICStoICS() : ImageTransformImpl
  • canRCStoICS() : ImageTransformImpl
  • canReverse() : ATransformFunction
  • Cb_f() : Vtl::ImAlg::C::YCbCr
  • cdiv() : Vtl::NumAlg::Lin::eigen
  • center() : Hamming< float, 1 > , Hamming< float, 2 > , Hamming< float, 3 > , Hamming< float, 4 > , Hann< float, 0 > , Hann< float, 1 > , Hann< float, 2 > , Hann< float, 3 > , Hann< float, 4 > , Direct_Ref< float, int > , FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • Center() : FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • center() : FKern< float, Vtl::Plf::Kernel::KT_Win >
  • Center() : FKern< float, Vtl::Plf::Kernel::KT_Win >
  • center() : FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • Center() : FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • center() : FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • Center() : FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • center() : Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >
  • Center()
: Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Base< T, Kernel::KT_Conv >
  • center()
: Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Base< T, Kernel::KT_Conv >
, Vtl::ImAlg::WndFun::Bartlett< T, D >
, Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >
, Vtl::ImAlg::WndFun::DoG< T, D >
, Vtl::ImAlg::WndFun::Sinc< T, 0 >
, Vtl::ImAlg::WndFun::common_Trig< T, D, K >
, Vtl::ImAlg::WndFun::Kaiser< T, D >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
  • Center() : FKern< float, Vtl::Plf::Kernel::KT_Conv >
  • center() : FKern< float >
  • Center() : FKern< float >
  • center() : Hamming< float, 0 >
  • center_internal()
: FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Base< T, Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
  • ChangeBits() : AImage , ImageMem8 , ImageMem16
  • ChangeHeight() : AImage , tplAImageReference< ImgT >
  • check() : ImageRef< T > , Vtl::Plf::Extent , Vtl::Plf::ImageRef< T > , Vtl::ImAlg::Conv::FastGaussConvolve< T, D > , Hanina::ZeroCross< T > , FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 0 > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , FastGaussConvolve< float, 3 > , ImageRef< int >
  • Check_4_grad_sign_change() : Check_4_grad_sign_change< T > , Hanina::Check_4_grad_sign_change< T >
  • check_idl_propere() : Vtl::Img::ImageBase< P, planes, interleave >
  • check_img_info_propere()
: Vtl::Img::ImageBase< P, planes, interleave >
, Vtl::Img::Image< P, planes, interleave >
  • check_img_interleave() : Vtl::Img::ImageBase< P, planes, interleave >
  • checkCompatible() : Vtl::Plf::Extent
  • checkInGraph() : Vtl::Plf::Impl::GraphBuilder
  • checkInputParameters() : ImageTransformImpl
  • ChekImages() : FFT_2D
  • childPipe() : childPipe
  • Circle() : Vtl::ImAlg::Bres::Circle< T >
  • ClalcF1F2conj()
: Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >
, Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T >
  • ClassName() : AErrorStatusBase , AImageMem8 , ErrorStatusBase , AImageMem16 , AImageMemFloat , AImageMemRgb8 , ImageFragment8 , AImageMemRgb16 , ImageFragment16 , ImageFragmentRgb8 , ImageMem16Stuff , ImageMem8 , AImage , tplAImageReference< ImgT > , ImageMem16 , ImageMemFloat , ImageMemRgb8
  • Clear() : AImage , ImageMemRgb8
  • clear() : CoordArray2D , YXML::DNode::IsAND
  • Clear() : T_Points2DSet< C_Point2D > , tplAImageReference< ImgT > , Vtl::Plf::InPortComb< T > , InPortComb< T >
  • clear() : PtrDelete< T >
  • Clear() : Basics3D::T_Points2DSet< Point > , T_Points2DSet< Point > , ImageMem16Stuff
  • clear() : PtrArrayDel< T > , DistributionMatrix
  • Clear() : ImageMem8
  • clear() : CoverageMatrix , ProcessMatrix , YXML::DNode::IsOR
  • Clear() : ImageMem16
  • clear() : YXML::DNode::IsCond
  • Clear() : ImageMemFloat
  • ClearMeans() : T_Points2DSet< C_Point2D > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point > , T_Points2DSet< Point >
  • clone()
: ATransformFunction
, AImageProxy
, ImageProxy< ImageT >
, ImageProxyConst< ImageT >
, YXML::DNode::IsAND
, YXML::IsElem
, YXML::IsName< Cmp >
, YXML::DNode::Is
, YXML::IsAttr< T, Cmp >
, YXML::IsAttrIn< T >
, YXML::DNode::IsCond
, YXML::DNode::IsOR
  • close() : WritePipe , IFF::OzFile , IFF::PBMfile
  • Close() : MSlidingEqualization , childPipe , DebugBase , DebugToFile
  • close() : IFF::FloatImageFile , ReadPipe
  • ClosestToOriginPoint() : Basics3D::C_StructureComputation
  • CloseThis() : MSlidingEqualization
  • Cluster1D() : Cluster1D< T, DatumType >
  • Cluster2D() : Cluster2D< T, DatumType >
  • cof() : Hamming< float, 1 > , Hamming< float, 2 > , Hamming< float, 3 > , Hann< float, 0 > , Hann< float, 1 > , Hann< float, 3 > , Hann< float, 4 > , Hann< float, 2 > , Hamming< float, 4 > , Vtl::ImAlg::WndFun::Hann< T, D > , Vtl::ImAlg::WndFun::Hamming< T, D > , Vtl::ImAlg::WndFun::Blackman< T, D > , Vtl::ImAlg::WndFun::BlackmanNuttall< T, D > , Vtl::ImAlg::WndFun::BlackmanHarris< T, D > , Vtl::ImAlg::WndFun::Nuttall< T, D > , Vtl::ImAlg::WndFun::FlatTop< T, D > , Hamming< float, 0 >
  • col() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • collectCell() : DistributionMatrix
  • collectRaduis() : DistributionMatrix
  • ColorC() : Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >
  • ColumnIteratorFast() : Vtl::Plf::ColumnIteratorFast< T > , ColumnIteratorFast< T > , Vtl::Plf::ColumnIteratorFast< T > , ColumnIteratorFast< T >
  • Comb() : Convert< uint8_t > , Vtl::Plf::F11::Comb< T, F1, F2 > , GammaCorMult< T > P , Convert2ByteBounded , Convert< uint8_t > , Vtl::Plf::F11::Comb< T, F1, F2 > , Convert< uint8_t > , Abs< float > , GammaCorMult< T > P , Convert< uint8_t > , Abs< float > , Convert< uint8_t > , Lin< float > , Convert< uint8_t > , Convert2ByteBounded , Lin< float >
  • Comb_ridge() : Comb_ridge< T, uint8_t > , Hanina::Comb_ridge< T1, T2 >
  • Combine() : T_Points2DSet< Point > , T_Points2DSet< C_Point2D > , Basics3D::T_Points2DSet< Point >
  • common_Trig() : Hamming< float, 0 > , Hann< float, 1 > , Hamming< float, 2 > , Hann< float, 3 > , Hann< float, 2 > , Hamming< float, 3 > , Hamming< float, 1 > , Vtl::ImAlg::WndFun::common_Trig< T, D, K > , Hann< float, 4 > , Hamming< float, 4 > , Hann< float, 0 >
  • comp()
: Vtl::NumAlg::Lin::svd
, Vtl::Meta::det_poly_coef< Matrix, N >
  • Comp3D() : Basics3D::Structure::Comp3D< T > , Comp3D< value_type >
  • ComputeMatrices() : Basics3D::T_Model< Operations > , T_Model< Operations >
  • computeZoom() : ImageTransformMatrixImpl
  • ConnectedTo() : Vtl::Plf::InPort< T > , InPort< T >
  • Connection() : Vtl::Plf::OutPortBase::Connection
  • ConnectTo() : Iter_Line , Vtl::Plf::OutPortNoPostProc< T > , Iter_Line , Vtl::Plf::OutPortNoPostProc< T > , OutPortNoPostProc< Real_t >
  • ConnectTo_() : Vtl::Plf::OutPortBase , Iter_Line , OutPortNoPostProc< Real_t > , Iter_Line
  • constructor() : YFileRead , YFileWrite
  • Container() : Vtl::ImAlg::Registration::Container< Real_t > , Container< Real_t >
  • Conv() : ConvInplace< float, K1 > , Conv< T, K1 > , Conv< T, K > , ConvInplace< T, K2 > , ConvInplace< T, K1 > , Conv< T, K2 > , Vtl::ImAlg::Conv::Conv< T, K > , ConvInplace< float, K0 > , ConvInplace< float, K3 > , ConvInplace< float, K2 > , ConvInplace< float, K4 > , ConvInplace< float, K0 > , Conv< float, K > , ConvInplace< float, K > , ConvInplace< T, K >
  • conv2D() : Vtl::ImAlg::Conv::Conv2D
  • conv2DInplace() : Vtl::ImAlg::Conv::Conv2D
  • ConvertMult() : Vtl::Plf::F11::ConvertMult< T >
  • ConvInplace() : ConvInplace< T, K1 > , Vtl::ImAlg::Conv::ConvInplace< T, K > , ConvInplace< float, K4 > , ConvInplace< float, K2 > , ConvInplace< T, K > , ConvInplace< float, K0 > , ConvInplace< T, K2 > , ConvInplace< float, K0 > , ConvInplace< float, K > , ConvInplace< float, K3 > , ConvInplace< float, K1 >
  • ConvolveHorz() : Vtl::Plf::ConvolveHorz< T, P > , ConvolveHorz< float > , Vtl::Plf::ConvolveHorz< T, P > , ConvolveHorz< float >
  • ConvolveVert() : Vtl::Plf::ConvolveVert< T, P > , ConvolveVert< float > , Vtl::Plf::ConvolveVert< T, P > , ConvolveVert< float >
  • CoordArray2D() : CoordArray2D
  • copy() : ReadString
  • copy_line() : Vtl::Plf::SrcAImageRgb< T, I, P >
  • CopyPalette() : AImage
  • Correct() : Basics3D::C_StructureComputation
  • CorrMatrix() : Vtl::Plf::F23::CorrMatrix< T, Iter > , CorrMatrix< T > , CorrMatrix< T, T & >
  • CorrMatrixAdd() : CorrMatrixAdd< T > , Vtl::Plf::F23::CorrMatrixAdd< T, Iter >
  • cos_Member() : Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, K > , cos_Member< float, 0, 4, 1 > , cos_Member< float, 3, 4, 1 > , Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I > , cos_Member< float, 1, 4, 1 > , cos_Member< float, 2, 4, 1 >
  • cos_Member_base() : cos_Member< float, 2, 4, 1 > , cos_Member< float, 3, 4, 1 > , Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I > , cos_Member< float, 0, 4, 1 > , cos_Member< float, 1, 4, 1 >
  • CostFunction() : Basics3D::C_StructureComputation
  • Count() : YTHistList< T >
  • countImage() : ImageProxyVector
  • CountInliers() : T_Model< Operations > , Basics3D::T_Model< Operations >
  • countProxy() : ImageProxyVector
  • CoverageMatrix() : CoverageMatrix
  • Cr_f() : Vtl::ImAlg::C::YCbCr
  • Create() : Vtl::Img::ImageStorageStrategyNew< T > , tplAImageReference< ImgT > , AImage , ImageMemRgb8 , ImageMem8 , ImageMem16 , ImageMem16Stuff , ImageMemFloat , YXML::XMLdoc
  • CreateSystem()
: Basics3D::C_Triangulation
, Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
, Basics3D::C_FundamentalMatrix
, Basics3D::AbsoluteDualQuadric
  • current() : ProgressCounter
  • Cyclic() : Vtl::ImAlg::Conv::Conv2D
  • CyclicConv() : CyclicConv< T, K1 > , Vtl::ImAlg::Conv::CyclicConv< T, K > , CyclicConv< T, K > , CyclicConv< T, K2 >
  • CyclicConvInplace() : CyclicConvInplace< T, K1 > , Vtl::ImAlg::Conv::CyclicConvInplace< T, K > , CyclicConvInplace< T, K > , CyclicConvInplace< T, K2 > , CyclicConvInplace< float, K >
  • CyclicInplace() : Vtl::ImAlg::Conv::Conv2D


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- d -

  • DataString() : DataString
  • DataTime() : YDataTimeZone
  • date2BCDdate() : YDtTm , YDataTime
  • DatumR() : DatumR< T >
  • DatumXY() : DatumXY< T >
  • Day() : YDataTime
  • DaysInMonth() : YDtTm , YDataTime
  • DaysInYear() : YDtTm , YDataTime
  • DebugBase() : DebugBase
  • DebugFileName() : DebugToFile
  • DebugToFile() : DebugToFile
  • decomp()
: Vtl::NumAlg::Lin::cholesky
, Vtl::NumAlg::Lin::eigen
, Vtl::NumAlg::Lin::QR
, Vtl::NumAlg::Lin::svd
  • DecomposeProjMatr() : Basics3D::C_AutoCalibration
  • DefaultPaint() : VirtDib
  • DeInit() : YSmallAllocLtd
  • del_insert_pixel_from_histogram() : Vtl::Plf::OLSI::Gistogramm< T >
  • delay() : Vtl::Plf::StripBuffer< T >
  • DelayAdjuster() : Vtl::Plf::Impl::DelayAdjuster
  • Delete() : ImageContainer< ImgType > , YXML::DNode
  • DeNoise() : Vtl::Plf::DeNoise< T, P > , ToBounds< float > , Vtl::Plf::F31::DeNoise< T > , DeNoise< T > , Vtl::Plf::DeNoise< T, P >
  • denom() : Vtl::ImAlg::Model::Homography< T >
  • Denormalize() : T_Model< Operations > , Basics3D::T_Model< Operations >
  • Deriv()
: Basics3D::IFuncWithDer
, Basics3D::g
, Basics3D::Eq4Degree
, Basics3D::test
  • Derivative() : T_MistakeFunc< MatrixType > , Basics3D::T_MistakeFunc< Operations >
  • DerivativeOfMistFunc()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
  • DerivedClassName() : AErrorStatusBase , ErrorStatusBase
  • Destroy() : Vtl::Img::ImageStorageStrategyNew< T >
  • det() : Vtl::Meta::det< Matrix > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • det_poly_coef() : Vtl::Meta::det_poly_coef< Matrix, N >
  • Detect() : GammaCor< float > , Vtl::Plf::Detect< T, Func, P > , GammaCor< float > , Vtl::Plf::Detect< T, Func, P > , GammaCor< float > , Vtl::Plf::Detect< T, Func, P > , GammaCor< float >
  • DFS_Visit() : Vtl::Plf::Impl::GraphBuilder
  • dif() : Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >
  • DiffEigenVal() : Vtl::Plf::F31::DiffEigenVal< T > , DiffEigenVal< float >
  • dir_check() : ScaleScan3x3< T > , Hanina::ScaleScan3x3< T >
  • dir_check_max_X() : ScaleScan3x3< T > , Hanina::ScaleScan3x3< T >
  • dir_check_max_Y() : ScaleScan3x3< T > , Hanina::ScaleScan3x3< T >
  • dir_check_max_Z() : ScaleScan3x3< T > , Hanina::ScaleScan3x3< T >
  • Direct() : Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC > , Direct< float, int >
  • Direct_Ref() : Direct_Ref< float, int > , Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >
  • DirectMinimization() : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • DirectSearchOfFocalLenth() : Basics3D::C_AutoCalibration
  • Disable() : T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point > , T_Points2DSet< C_Point2D >
  • Disp() : Vtl::Plf::F21::Disp< T > , Disp< T >
  • Dist()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
, Cluster1D< T, DatumType >
, Cluster2D< T, DatumType >
  • distance() : YPoint< T > , YPoint< double > , YPoint< int >
  • Distance() : Basics3D::C_Point2DParam
  • distance() : YPoint< T >
  • distEuclidean() : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • DistributionMatrix() : DistributionMatrix
  • DistThresh()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
  • Divide() : Cluster1D< T, DatumType > , Cluster2D< T, DatumType >
  • DiZenzo()
: Vtl::Plf::DiZenzo< T, P >
, Students::Curve::EdgeDetect< T >
, Vtl::Plf::F33::DiZenzo< T, Iter >
, Vtl::Plf::DiZenzo< T, P >
, DiZenzo< T >
, DiZenzo< float >
  • DllModule() : DllModule
  • Dlt() : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • DNode() : YXML::DNode
  • do_1_step() : Mult< float > , SrcAImage< float, Img > , DstContainer< Real_t, Container_t > , Y< float > , SrcAImage< Real_t, Img > , Vtl::Plf::FilterElementary , ConvolveHorz< float > , DstArray< Real_t, Real_t > , ConvolveVert< float > , HarrisNMS< float > , DstAImage< float, Img > , SrcAImage< Real_t, T > , GammaCorMult< float > , DstAImage< unsigned, Img > , EnvProc1to1< Real_t, Func, PostThresh > , SqrtOfSumSqr< float > , SrcAImage< unsigned, Img > , SrcArray< Real_t, Real_t > , SrcAImage< Real_t, AImageMem8 >
  • DoG() : Vtl::ImAlg::WndFun::DoG< T, D >
  • Draw()
: Line< SetPixelFunctor >
, Vtl::ImAlg::Bres::Circle< T >
, Vtl::ImAlg::Bres::EllipseH< F >
, Vtl::ImAlg::Bres::Line< F >
, Vtl::ImAlg::Bres::Draw< Pixel >
  • DrawDotted() : Vtl::ImAlg::Bres::DrawDotted< Pixel >
  • DrawGradient() : Vtl::ImAlg::Bres::DrawGradient< Pixel >
  • DrawLine() : Basics3D::C_DrawEpipolarLines
  • DstAImage() : DstAImage< float, Img > , Vtl::Plf::DstAImage< T, I > , DstAImage< unsigned, Img >
  • DstArray() : Vtl::Plf::DstArray< T, Pixel > , DstAImage< float, Img > , DstAImage< unsigned, Img > , DstArray< Real_t, Real_t >
  • DstContainer() : Vtl::Plf::DstContainer< T, C, P > , DstContainer< Real_t, Container_t >
  • Dx()
: Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::SkewXOffset< T >
, Vtl::ImAlg::Model::SkewYOffset< T >
, Vtl::ImAlg::Model::Affine< T >
  • Dy()
: Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Model::Affine< T >
, Vtl::ImAlg::Model::SkewXOffset< T >
, Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::SkewYOffset< T >
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- e -

  • E5() : Vtl::ImAlg::WndFun::Laws5< T >::E5
  • E_f() : Vtl::ImAlg::C::EElEll
  • eachtime() : Dbg::Format::F
  • Edge() : L5 , Vtl::ImAlg::WndFun::Laws5< T >
  • EdgeDetect() : Students::Curve::EdgeDetect< T >
  • EdgeLabel_DelayB() : Vtl::Plf::FiltersSystem::EdgeLabel_DelayB
  • EdgeLabel_Unknown() : Vtl::Plf::FiltersSystem::EdgeLabel_Unknown
  • edt()
: Vtl::ImAlg::Edt::Meijster
, Vtl::ImAlg::Edt::EdtEdgeCoord
  • edt1D()
: Vtl::ImAlg::Edt::EdtEdgeCoord
, Vtl::ImAlg::Edt::Meijster
  • eigen_val_vec_2D_proj_3D() : Hanina::FillingHessianMatrix3x3
  • eigen_val_vec_3D() : Hanina::FillingHessianMatrix3x3
  • EightPointsAlg() : Basics3D::C_FundamentalMatrix
  • El_f() : Vtl::ImAlg::C::EElEll
  • El_f_toPositive() : Vtl::ImAlg::C::EElEll
  • Ell_f() : Vtl::ImAlg::C::EElEll
  • Ell_f_toPositive() : Vtl::ImAlg::C::EElEll
  • EllipseH() : Vtl::ImAlg::Bres::EllipseH< F >
  • empty() : YRect< T > , YRect< int > , Fifo< int > , DistributionMatrix , CoverageMatrix , Vtl::Plf::Fifo< T > , Fifo< Vtl::Plf::FilterElementary * > , YRect< T >
  • EnableAll()
: Basics3D::C_Points2DParamSet
, Basics3D::T_Points2DSet< Point >
, T_Points2DSet< C_Point2D >
, T_Points2DSet< Point >
  • end()
: CoordArray2D
, Vtl::Plf::OutPortNoPostProc< T >
, ImageProxyVector
, OutPortNoPostProc< Real_t >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Container< Real_t >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::ImAlg::Registration::Container< Real_t >
, Iter_Line
, Base< T, Kernel::KT_Conv >
  • end_internal()
: FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, Base< T, Kernel::KT_Conv >
  • end_line_insert() : Vtl::Plf::StripBuffer< T >
  • Ends() : Basics3D::C_DrawEpipolarLines
  • endUpdate() : Iter_Line , Vtl::Plf::OutPort< T, P > , OutPortNoPostProc< Real_t > , Vtl::Plf::OutPortNoPostProc< T >
  • envBuildBinBlock() : childPipe
  • envBuildFromBinBlock() : childPipe
  • envCalcBinBlockSize() : childPipe
  • envFreeBinBlock() : childPipe
  • envMakeBinBlock() : childPipe
  • EnvProc1to1() : Vtl::Plf::EnvProc1to1< T, Func, P > , HarrisNMS< float > , EnvProc1to1< Real_t, Func, PostThresh >
  • EnvProc1to2() : Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
  • EnvProc3to1() : Vtl::Plf::EnvProc3to1< T, Func, P >
  • Eq4Degree() : Basics3D::Eq4Degree
  • erase_all() : YSmallAllocLtd
  • Error() : ImageMem16Stuff::Error
  • error() : ProgressCounter
  • Error() : AImage::Error
  • ErrorID() : ImageMem16Stuff::Error
  • ErrorStatusBase() : ErrorStatusBase
  • essential2fm() : Basics3D::FmTools< T >
  • estimateZoom() : ImageTransformMatrixFastImpl , ImageTransformMatrixImpl
  • euclidean2homogeneous() : Basics3D::Structure::Comp3D< T > , Comp3D< value_type >
  • ExeTri() : TriResult
  • ExitStatus() : childPipe
  • expand() : YRect< int > , YRect< T > , YRect< int >
  • ext() : CannyNMS< float > , Vtl::Plf::ImageRef< T > , Vtl::Plf::Fpie::HarrisNMS_Smooth< T > , CannyNMS< T > , Vtl::Plf::InPortBase , Hanina::ZeroCross< T > , Vtl::Plf::Fpie::Himg< T > , Vtl::Plf::Fpie::BiLateralSmooth< T > , Himg< T > , Vtl::Plf::Fpie::CannyNMS< T > , Vtl::Plf::Fpie::CannyNMS_2< T > , ImageRef< T > , Himg2< T > , Vtl::Plf::Fpie::HarrisNMS< T > , BiLateralSmooth< T > , InPort< T > , HarrisNMS< float > , ImageRef< int > , Vtl::Plf::StripBuffer< T > , Vtl::Plf::Fpie::Himg2< T >
  • Extent() : Vtl::Plf::Extent
  • extent() : Forward< T, D > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >
  • extract_() : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- f -

  • f()
: Vtl::Meta::printPermutations
, Vtl::Meta::det< Matrix >
, Vtl::Meta::det_poly_coef< Matrix, N >
, Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >
  • F() : Dbg::Format::F
  • f()
: Hanina::p33< T, 0, 1 >
, Hanina::p33< T, 1, 2 >
, Hanina::p33< T, 0, 2 >
  • f_rev() : Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
  • factln() : Vtl::NumAlg::Spf::Gamma
  • factrl() : Vtl::NumAlg::Spf::Gamma
  • FastGaussConvolve() : FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 0 > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , FastGaussConvolve< float, 3 > , Vtl::ImAlg::Conv::FastGaussConvolve< T, D >
  • FFT() : FFT_2D
  • Fifo() : Fifo< int > , Vtl::Plf::Fifo< T > , Fifo< Vtl::Plf::FilterElementary * >
  • File() : AErrorStatusBase , ErrorStatusBase
  • fill() : TransformCell
  • fillIFD() : IFF::TiffWriteIFD
  • FillingHessianMatrix3x3() : Hanina::FillingHessianMatrix3x3
  • fillMatricesCell() : ImageTransformMatrixImpl , ImageTransformMatrixFastImpl
  • fillOutputPixel() : ImageTransformImpl
  • fillPixelsWithAverages() : ImageTransformMatrixImpl
  • fillTopologicallySortedVector() : Vtl::Plf::Impl::GraphBuilder
  • FilterBase() : GammaCorMult< float > , Mult< float > , DiZenzo< float > , Mult< float > , DiZenzo< float > , SqrtOfSumSqr< float > , SrcArray< Real_t, Real_t > , SrcAImage< Real_t, T > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , SrcAImage< unsigned, Img > , DstArray< Real_t, Real_t > , SrcAImage< unsigned, Img > , DstArray< Real_t, Real_t > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , Resample< float > , AverageGauss< float > , Average< float > , ToBounds< float > , MeanAndDisp< float > , ToBounds< float > , HarrisNMS< float > , ToBounds< float > , GammaCorMult< float > , BiLateral< float > , GradientModul< float > , GammaCor< float > , SrcAImage< Real_t, Img > , GammaCor< float > , SrcAImage< Real_t, Img > , GammaCor< float > , Canny< float > , GammaCor< float > , Vtl::Plf::FilterBase , Canny< float > , GammaCor< float > , Vtl::Plf::FilterBase , SrcAImage< Real_t, AImageMem8 > , GammaCor< float > , SrcAImage< Real_t, AImageMem8 > , HarrisNMS< float > , Y< float > , ConvolveHorz< float > , Y< float > , ConvolveVert< float >
  • FilterComplex() : Vtl::Plf::FilterComplex , DiZenzo< float > , Vtl::Plf::FilterComplex , Resample< float > , AverageGauss< float > , Average< float > , ToBounds< float > , Vtl::Plf::FilterComplex , ToBounds< float > , GammaCor< float > , MeanAndDisp< float > , ToBounds< float > , GammaCor< float > , ToBounds< float > , GammaCorMult< float > , GammaCor< float > , BiLateral< float > , GammaCor< float > , GradientModul< float > , GammaCor< float > , Canny< float >
  • FilterElementary() : ConvolveVert< float > , DstArray< Real_t, Real_t > , GammaCorMult< float > , Vtl::Plf::FilterElementary , GammaCorMult< float > , Mult< float > , Vtl::Plf::FilterElementary , SqrtOfSumSqr< float > , DstArray< Real_t, Real_t > , SrcArray< Real_t, Real_t > , Mult< float > , SqrtOfSumSqr< float > , SrcAImage< Real_t, T > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , SrcAImage< unsigned, Img > , Y< float > , SrcAImage< unsigned, Img > , SrcAImage< Real_t, T > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , SrcArray< Real_t, Real_t > , DstAImage< float, Img > , HarrisNMS< float > , ConvolveVert< float > , Y< float > , ConvolveHorz< float > , SrcAImage< Real_t, Img > , HarrisNMS< float > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , ConvolveHorz< float >
  • FilterResampleHorz() : Vtl::Plf::FilterResampleHorz< T, P >
  • FilterResampleVert() : Vtl::Plf::FilterResampleVert< T, P >
  • FiltersSystem() : Vtl::Plf::FiltersSystem
  • Find()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
, Basics3D::SolveEq
  • find_rotate_scale() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • find_sing_value_dev() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • findCell() : ImageTransformMatrixImpl
  • findCellAtRadius() : ImageTransformMatrixImpl
  • findNearest() : ImageTransformMatrixImpl
  • findParentNotInGraph() : Vtl::Plf::Impl::GraphBuilder
  • findSourcesTargetsAndJunctions() : Vtl::Plf::FiltersSystem
  • Finish() : Vtl::Plf::OutPortBase
  • finish() : ProgressCounter
  • Finish() : ConvolveVert< float > , DstContainer< Real_t, Container_t > , SqrtOfSumSqr< float > , Vtl::Plf::FilterElementary , Iter_Line , SrcAImage< Real_t, T > , GammaCorMult< float > , Vtl::Plf::InPortBase , Mult< float > , SrcAImage< unsigned, Img > , DstArray< Real_t, Real_t > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , SrcAImage< Real_t, AImageMem8 > , EnvProc1to1< Real_t, Func, PostThresh > , ConvolveHorz< float > , SrcAImage< Real_t, Img > , HarrisNMS< float >
  • finish() : Vtl::Dbg::TimeElapsed
  • Finish() : OutPortNoPostProc< Real_t > , InPort< T > , DstAImage< float, Img > , Y< float > , SrcArray< Real_t, Real_t >
  • FirstChild() : YXML::DNode
  • FKern()
: FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • FlatTop() : Vtl::ImAlg::WndFun::FlatTop< T, D >
  • Float2Image() : FFT_2D
  • FloatImageFile() : IFF::FloatImageFile
  • fm2essential() : Basics3D::FmTools< T >
  • Fmt() : Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > , Dbg::Fmt< T, format_type >
  • FName() : YXML::XMLdoc
  • FocalLength() : Basics3D::C_AutoCalibration
  • forEach() : Vtl::Meta::Impl::permut< IList1, Loki::NullType, isOdd, 0, 0 > , forEach , Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, k > , Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >
  • Forward() : Forward< T, D >
  • forward() : ATransformFunction
  • Forward() : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D >
  • fourn() : FFT_2D
  • free() : YSmallAllocLtd
  • FreeLibrary() : DllModule
  • frobenius_norm_sqr() : Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type >
  • frobenius_norm_sqr_derivative() : Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type >
  • from01toRGB()
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
  • FromHomographies() : Basics3D::C_FundamentalMatrix
  • fromRGB()
: Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >
, fromRGB< T, Iter >
, Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
  • fromRGB_positive() : Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter >
  • full_search() : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • full_search_subproc() : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • FullName() : Direct_Ref< float, int > , Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > , Direct< float, int >
  • fun() : BiLateralSmooth< T > , Vtl::Plf::Fpie::BiLateralSmooth< T >
  • Func()
: Basics3D::g
, Basics3D::T_MistakeFunc< Operations >
, Basics3D::test
, Basics3D::IFunc
, Basics3D::Eq4Degree
, T_MistakeFunc< MatrixType >
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- g -

  • g() : Basics3D::g
  • G_f()
: Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
  • GammaCor() : Vtl::Plf::F11::GammaCor< T > , GammaCor< float > , Vtl::Plf::F11::GammaCor< T >
  • GammaCorMult() : GammaCorMult< T > , Vtl::Plf::F11::GammaCorMult< T > , GammaCorMult< float > lin_3mod , Convert< uint8_t > , GammaCorMult< float > , Vtl::Plf::F11::GammaCorMult< T >
  • gammln() : Vtl::NumAlg::Spf::Gamma
  • Gauss() : Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >
  • gcf() : Vtl::NumAlg::Spf::Gamma
  • get()
: Vtl::Plf::Fifo< T >
, Fifo< Vtl::Plf::FilterElementary * >
  • Get() : Basics3D::AbsoluteDualQuadric , PtrArrayDel< T > , DataString , PtrDelete< T > , Vtl::Dbg::TimeElapsed , YTimeInterval
  • get() : CoverageMatrix
  • Get() : YTimeInterval
  • get() : AImageProxy , ImageProxy< ImageT > , ImageProxyConst< ImageT >
  • Get() : YDataTime
  • get() : Fifo< int >
  • Get3DPoint() : Basics3D::C_Triangulation
  • get_DotFName() : Vtl::Plf::FiltersSystem
  • get_gisInf() : Vtl::Plf::OLSI::Gistogramm2< T >
  • get_gistogram() : Vtl::Plf::OLSI::Gistogramm< T >
  • get_Level() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • Get_Ptr() : YTArray< T >
  • get_secont_part() : Vtl::Plf::OLSI::Gistogramm2< T >
  • get_x() : SizeList_base< IList > , Vtl::Meta::SizeList_base< T_IList >
  • getAnchor() : ImageTransformMatrixFastImpl , ImageTransformMatrixImpl
  • GetAttr() : WiNode , YXML::DNode
  • GetBlockSize() : YTArray< T >
  • getCellICS() : TransformCell
  • getCellPICS() : TransformCell
  • getCellPRCS() : TransformCell
  • getCellRCS() : TransformCell
  • getCenter() : Vtl::ImAlg::Model::Base< T >
  • GetChanel() : IFF::OzFile
  • getCof() : Vtl::ImAlg::Model::Base< T >
  • getCurStrip() : Vtl::Plf::StripBuffer< T >
  • GetDate() : IFF::OzFile
  • GetFileSize() : YFileRead
  • getFilter() : Vtl::Plf::Port , Iter_Line , InPort< T > , OutPortNoPostProc< Real_t >
  • GetFName() : WinIniFile
  • GetFrameSize() : YImageFrame
  • GetFullImage() : AImage , tplAImageReference< ImgT >
  • GetGrowStep() : YTArray< T >
  • GetH() : Basics3D::C_AutoCalibration
  • GetHeader() : IFF::OzFile
  • getHouseholder() : Vtl::NumAlg::Lin::QR
  • GetImageInfo() : AImage
  • getImageSize() : Iter_Line , Vtl::Plf::Port , InPort< T > , Vtl::Plf::InPort< T > , OutPortNoPostProc< Real_t > , Vtl::Plf::OutPortNoPostProc< T > , Iter_Line
  • GetImageStore() : AImage , AImageMem8 , AImageMem16 , AImageMemFloat , AImageMemRgb8 , AImageMemRgb16 , tplAImageReference< ImgT >
  • getImg() : Iter_Line , Vtl::Plf::InPort< T > , Vtl::Plf::OutPortNoPostProc< T > , InPort< T > , Vtl::Plf::StripBuffer< T > , OutPortNoPostProc< Real_t >
  • getInPort() : SrcAImage< Real_t, Img > , Canny< float > , SrcAImage< Real_t, AImageMem8 > , Y< float > , DiZenzo< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , Resample< float > , AverageGauss< float > , Average< float > , ToBounds< float > , MeanAndDisp< float > , ToBounds< float > , GammaCorMult< float > , BiLateral< float > , GradientModul< float > , GammaCor< float > , Vtl::Plf::FilterBase , GammaCor< float > , HarrisNMS< float > , ConvolveHorz< float > , ConvolveVert< float > , GammaCorMult< float > , Mult< float > , SqrtOfSumSqr< float > , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t >
  • getIntersectionPoint() : LineFun
  • getIntersectionPointBres4() : LineFun
  • getIntersectionPointBres4X() : LineFun
  • getIntersectionPointBres4Y() : LineFun
  • GetLayers() : MImages2Gray
  • GetLeftRightBorderWidth() : YImageFrame
  • GetLeftTopPosAtFFT() : FFT_2D
  • getLeftUp() : YImageFrame
  • getMediana() : Vtl::Plf::OLSI::Gistogramm< T >
  • getMediana_value()
: Vtl::Plf::OLSI::Gistogramm< T >
, Vtl::Plf::OLSI::Gistogramm2< T >
  • GetMode() : YFile
  • getName() : YXML::DNode
  • GetNode() : WiNode , YXML::DNode , WiNode
  • GetNumber() : MImages2Gray
  • getOutPort() : MeanAndDisp< float > , HarrisNMS< float > , ConvolveVert< float > , Average< float > , GammaCor< float > , AverageGauss< float > , DiZenzo< float > , GammaCor< float > , SrcAImage< float, Img > , SrcAImage< Real_t, Img > , Canny< float > , GammaCorMult< float > , SrcAImage< Real_t, AImageMem8 > , DstArray< Real_t, Real_t > , Y< float > , GammaCor< float > , SrcAImage< unsigned, Img > , ToBounds< float > , DstAImage< unsigned, Img > , DstAImage< float, Img > , Resample< float > , SrcAImage< Real_t, T > , ToBounds< float > , GammaCor< float > , ToBounds< float > , ConvolveHorz< float > , Vtl::Plf::FilterBase , BiLateral< float > , EnvProc1to1< Real_t, Func, PostThresh > , GammaCor< float > , GradientModul< float > , GammaCor< float > , GammaCorMult< float > , Mult< float > , SqrtOfSumSqr< float > , SrcArray< Real_t, Real_t > , DstContainer< Real_t, Container_t >
  • GetP() : Basics3D::C_ProjectiveMatrix
  • GetPalette() : IFF::TiffReadIFD , VirtDib , IFF::BmpRead
  • GetPaletteEntries() : ImageMem16 , ImageMem8 , VirtDib , AImage , tplAImageReference< ImgT > , IFF::BmpWrite , IFF::BmpRead
  • GetPaletteLength() : IFF::TiffReadIFD
  • GetPlane() : AImageMemRgb16 , AImage , AImageMemRgb8 , AImageMemRgb16 , AImageMemRgb8 , Vtl::Img::Image< P, planes, interleave > , AImage
  • GetPlane16() : AImageMemRgb16
  • GetPlane8() : AImageMemRgb8 , ImageMemRgb8 , ImageFragmentRgb8
  • getPort() : Vtl::Plf::Port , InPort< T > , Iter_Line , OutPortNoPostProc< Real_t >
  • GetPosition() : YFileWrite
  • GetProcAddress() : DllModule
  • getQ() : Vtl::NumAlg::Lin::QR
  • getR() : Vtl::NumAlg::Lin::QR
  • GetRandColor() : Basics3D::C_DrawEpipolarLines
  • getRequestedStrips() : Iter_Line , OutPortNoPostProc< Real_t > , Vtl::Plf::OutPortBase
  • getRequiredStrip() : InPort< T > , Vtl::Plf::InPortBase
  • GetRightP() : Basics3D::C_AutoCalibration
  • gets() : ReadString
  • GetSample() : T_Model< Operations > , Basics3D::T_Model< Operations >
  • GetString() : Vtl::Dbg::TimeElapsed
  • getStrip() : Iter_Line , Vtl::Plf::OutPortNoPostProc< T > , Iter_Line , Vtl::Plf::OutPortBase , OutPortNoPostProc< Real_t >
  • GetTime() : IFF::OzFile , YFileRead
  • GetTimeEnd() : IFF::OzFile
  • GetTrajectory() : IFF::OzFile
  • getTransf()
: Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::BaseAffine< T >
  • GetType() : IFF::BmpWrite
  • getType() : YXML::DNode
  • GetType() : IFF::BmpRead
  • GetValue() : YXML::DNode , WiNode
  • getValue() : YXML::DNode
  • GetW() : Basics3D::C_ProjectiveMatrix
  • getZoom() : CoverageMatrix
  • Gistogramm() : Vtl::Plf::OLSI::Gistogramm< T >
  • GradientCorr() : Vtl::Plf::GradientCorr< T, P >
  • GradientModul() : Vtl::Plf::GradientModul< T, P > , GradientModul< float > , Vtl::Plf::GradientModul< T, P > , GradientModul< float > , Vtl::Plf::GradientModul< T, P > , GradientModul< float >
  • GraphBuilder() : Vtl::Plf::Impl::GraphBuilder
  • Grinvich() : YDataTimeZone
  • GroupSize() : T_Points2DSet< Point > , Basics3D::T_Points2DSet< Point > , T_Points2DSet< C_Point2D >
  • gser() : Vtl::NumAlg::Spf::Gamma
  • gt() : Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
  • gx() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • gy() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- h -

  • H() : Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >
  • h() : Vtl::Plf::ImageRef< T >
  • H() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • h() : ImageRef< int >
  • H() : InterpBilinear< Real_t > , InterpBilinear< Img::Pixel > , InterpBilinear< Pixel >
  • h() : ImageRef< T >
  • Hamming() : Vtl::ImAlg::WndFun::Hamming< T, D > , Hamming< float, 0 > , Hamming< float, 1 > , Hamming< float, 2 > , Hamming< float, 3 > , Hamming< float, 4 >
  • Hann() : Vtl::ImAlg::WndFun::Hann< T, D > , Hann< float, 0 > , Hann< float, 2 > , Hann< float, 3 > , Hann< float, 4 > , Hann< float, 1 >
  • Harris() : Vtl::Plf::F31::Harris< T > , Harris< float >
  • HarrisLaplace()
: Vtl::Plf::HarrisLaplace< T, Func, P >
, Vtl::Plf::F51::HarrisLaplace< T >
, HarrisLaplace< float >
, GammaCor< float >
  • HarrisNMS() : Vtl::Plf::Fpie::HarrisNMS< T > , HarrisNMS< float >
  • HarrisNMS_Smooth() : Vtl::Plf::Fpie::HarrisNMS_Smooth< T >
  • Hartley() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • Hartley2Amp() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >
  • Hartley2AmpDown() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >
  • Hartley2Im() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T > , Hartley2Im< T >
  • Hartley2Modul() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T > , Hartley2Modul< T >
  • Hartley2Phase() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T > , Hartley2Phase< Real_t >
  • Hartley2PhaseAmp() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >
  • Hartley2PhaseAmpDown() : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > , Hartley2PhaseAmpDown< 2, Real_t > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >
  • Hartley2Re() : Hartley2Re< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T >
  • hasError() : ImageTransformMatrixImpl
  • hausholder() : Vtl::NumAlg::Lin::svd
  • HeadF()
: Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 >
  • HeadR()
: Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >
  • height() : ImageVectorT< Base, Bit8, Bit16 >
  • Height() : tplAImageReference< ImgT > , IFF::BmpWrite , IFF::FloatImageFile
  • height() : ImageProxyVector
  • Height() : ImageMem16Stuff , ImageMem8
  • height() : YRect< int >
  • Height() : ImageResample , tplAImageFragment< ImgT > , ImageRotate
  • height() : AImageProxy
  • Height() : ImageResize , ImageMemFloat
  • height() : ImageTransform
  • Height() : ImageMem16
  • height() : ImageProxyConst< ImageT >
  • Height() : IFF::BmpRead , AImage
  • height() : ImageProxy< ImageT >
  • Height() : VirtDib , MSlidingEqualization
  • height() : YRect< T >
  • Height() : ImageMemRgb8
  • height() : YRect< T > , CoordArray2D
  • Height() : Vtl::Img::ImageBase< P, planes, interleave >
  • height() : ImageTransformImpl
  • Hessian3D() : Hanina::Hessian3D< T >
  • HImage() : Vtl::Plf::HImage< T, P > , GammaCorMult< float >
  • HImageEdge() : GammaCor< float > , Vtl::Plf::HImageEdge< T, P > , GammaCor< float > , Vtl::Plf::HImageEdge< T, P >
  • Himg() : Himg< T > , Vtl::Plf::Fpie::Himg< T >
  • Himg2() : Vtl::Plf::Fpie::Himg2< T > , Himg2< T >
  • homogeneous2euclidean() : Comp3D< value_type > , Basics3D::Structure::Comp3D< T >
  • Homography() : Vtl::ImAlg::Transf::Homography< T >
  • Hough() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >
  • Hour() : YDataTime
  • hqr2() : Vtl::NumAlg::Lin::eigen


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- i -

  • I() : Vtl::NumAlg::Spf::bess
  • I1() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • I2() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • I_f()
: Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::IV1V2
  • iClass() : Vtl::Img::ImageBase< P, planes, interleave >
  • ICStoPICS() : ImageTransformImpl
  • ICStoRCS() : ImageTransformImpl
  • Identity() : Basics3D::C_TransformMatrices
  • Image()
: Vtl::Img::Image< P, planes, interleave >
, Vtl::Img::Image< P, planes, BIP >
, Vtl::Img::Image< P, planes, SEP >
  • Image2Float() : FFT_2D
  • ImageBase() : Vtl::Img::ImageBase< P, planes, interleave >
  • ImageClass() : ImageMem16 , ImageMemFloat , ImageMemRgb8
  • imageClass() : ImageTransformImpl
  • ImageClass() : AImage , ImageResample , ImageRotate , ImageMem8 , ImageResize
  • imageClass() : ImageTransform , ImageVectorT< Base, Bit8, Bit16 >
  • ImageClass() : tplAImageReference< ImgT >
  • imageClass() : AImageProxy , ImageProxy< ImageT > , ImageProxyConst< ImageT > , ImageProxyVector
  • ImageClass() : MSlidingEqualization , ImageMem16Stuff
  • ImageClassName() : AImage
  • ImageDataLayoutHolder() : Vtl::Img::ImageDataLayoutHolder
  • ImageFragment16() : ImageFragment16
  • ImageFragment8() : ImageFragment8
  • ImageFragmentRgb8() : ImageFragmentRgb8
  • ImageHolder() : Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy >
  • ImageMem16() : ImageMem16
  • ImageMem16Stuff() : ImageMem16Stuff
  • ImageMem8() : ImageMem8
  • ImageMemFloat() : ImageMemFloat
  • ImageMemRgb8() : ImageMemRgb8
  • ImageNDref() : Vtl::Img::ImageNDref< T_SList, T_Layout >
  • ImageProxy() : ImageProxy< ImageT >
  • ImageProxyConst() : ImageProxyConst< ImageT >
  • ImageProxyVector() : ImageProxyVector
  • ImageRef() : ImageRef< T > , Vtl::Plf::ImageRef< T > , ImageRef< int > , ImageRef< T >
  • ImageResample() : ImageResample
  • ImageResize() : ImageResize
  • ImageRotate() : ImageRotate
  • ImageSize() : Vtl::Plf::StripBuffer< T >
  • ImageStore() : AImage
  • ImageStoreName() : AImage
  • ImageTransform() : ImageTransform
  • ImageTransformCellImpl() : ImageTransformCellImpl
  • ImageTransformImpl() : ImageTransformImpl
  • ImageTransformMatrixImpl() : ImageTransformMatrixImpl
  • ImageVectorT() : ImageVectorT< Base, Bit8, Bit16 >
  • ImageWin() : Vtl::Plf::Kernel::ImageWin< T > , ImageWin< Real_t >
  • img_Amp() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • img_H() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >
  • img_Sino() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >
  • img_Tmp() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • ImgSize() : Vtl::Plf::ImgSize
  • in() : Vtl::Plf::Detect< T, Func, P > , Vtl::Plf::Resample< T, P > , Canny< float > , Resample< float > , AverageGauss< float > , Average< float > , GammaCorMult< float > , BiLateral< float > , GammaCor< float > , Vtl::Plf::Average< T, P > , Vtl::Plf::SeparableConv2D< T, P > , Vtl::Plf::AverageGauss< T, P > , Vtl::Plf::HImage< T, P > , Vtl::Plf::BiLateral< T, P > , Vtl::Plf::Canny< T, P > , Vtl::Plf::HImageEdge< T, P >
  • increase_delay_by() : Iter_Line , Vtl::Plf::OutPortBase , Vtl::Plf::OutPortNoPostProc< T > , OutPortNoPostProc< Real_t >
  • Init()
: Vtl::Plf::GradientCorr< T, P >
, Vtl::Plf::HImageEdge< T, P >
, Vtl::Plf::Detect< T, Func, P >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >
, Vtl::Plf::Resample< T, P >
, Vtl::Plf::SrcArray< T, I, P >
, Vtl::Plf::SrcAImage< T, I, P >
, Vtl::Plf::SrcAImageRgb< T, I, P >
, Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >
, Vtl::Plf::Kernel::FKern< T, kernel_type_, double_kernel_ >
, Vtl::Plf::Kernel::ImageWin< T >
, Vtl::Plf::InPortBase
  • init() : YRect< T >
  • Init() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > , Vtl::Plf::OutPortBase , Mult< float > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > , ToBounds< float > , Vtl::Plf::InPort< T > , Vtl::Plf::OutPortNoPostProc< T > , Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > , ToBounds< float > , Vtl::Plf::OLSI::Gistogramm< T > , Vtl::Plf::OLSI::Gistogramm2< T > , childPipe
  • init() : ImageTransformImpl
  • Init() : FKern< float, Vtl::Plf::Kernel::KT_Win > , Vtl::Plf::medianFilter< T, P > , Vtl::Plf::medianFilter2< T, P > , SrcAImage< Real_t, Img > , Canny< float > , OutPortNoPostProc< Real_t > , SrcAImage< Real_t, AImageMem8 > , DebugToFile , SrcAImage< Real_t, AImageMem8 >
  • init() : ImageResample
  • Init() : Y< float > , DiZenzo< float > , FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 0 >
  • init() : ImageRotate
  • Init() : FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , FastGaussConvolve< float, 3 > , SrcAImage< Real_t, T >
  • init() : ImageResize
  • Init() : SrcAImage< Real_t, T > , FKern< float, Vtl::Plf::Kernel::KT_Win > , tplAImageReference< ImgT >
  • init() : ImageTransform
  • Init() : SrcAImage< unsigned, Img >
  • init() : ImageTransform
  • Init() : SrcAImage< unsigned, Img >
  • init() : YRect< int >
  • Init() : InPort< T > , SrcAImage< float, Img > , tplAImageFragment< ImgT > , Vtl::Plf::HarrisLaplace< T, Func, P > , FKern< float, Vtl::Plf::Kernel::KT_Conv, true > , Resample< float > , AverageGauss< float > , FKern< float, Vtl::Plf::Kernel::KT_Conv > , tplAImageFragment< ImgT > , FKern< float, Vtl::Plf::Kernel::KT_Conv > , Average< float > , FKern< float > , Iter_Line , tplAImageFragment< ImgT > , MeanAndDisp< float > , MSlidingEqualization , ToBounds< float > , GammaCorMult< float > , Iter_Line , BiLateral< float > , GradientModul< float > , GammaCor< float >
  • init() : YRect< T >
  • Init()
: GammaCor< float >
, ImageFragmentRgb8
, GammaCor< float >
, HarrisNMS< float >
, Vtl::Plf::Levels< T, P >
, ConvolveHorz< float >
, Vtl::Plf::PixByPix2to1< T, F, P >
, Vtl::Plf::PixByPix3to1< T, Func, P >
, Vtl::Plf::PixByPix4to1< T, Func, P >
, ConvolveVert< float >
, Vtl::Plf::PixByPix5to1< T, Func, P >
, ImageFragmentRgb8
, Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
, GammaCorMult< float >
, Vtl::Plf::PixByPix2to3< T, P >
, Vtl::Plf::EnvProc1to1< T, Func, P >
, Vtl::Plf::EnvProc3to1< T, Func, P >
, Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
, Vtl::Plf::ConvolveHorz< T, P >
, SqrtOfSumSqr< float >
, Vtl::Plf::ConvolveVert< T, P >
, Vtl::Plf::FilterResampleHorz< T, P >
, SrcArray< Real_t, Real_t >
, Vtl::Plf::FilterResampleVert< T, P >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, YSmallAllocLtd
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Vtl::Plf::SeparableConv2D< T, P >
, Vtl::Plf::Sharpen< T, P >
, YImageFrame
, Vtl::Plf::Average< T, P >
, Vtl::Plf::AverageGauss< T, P >
, Vtl::ImAlg::Conv::FastGaussConvolve< T, D >
, Vtl::Plf::HImage< T, P >
, EnvProc1to1< Real_t, Func, PostThresh >
, Vtl::Plf::BiLateral< T, P >
, Vtl::ImAlg::Registration::Base< Real_t, MemBlocks >
, Vtl::Plf::GradientModul< T, P >
, Vtl::Plf::MeanAndDisp< T, P >
, Vtl::Plf::StatDiff< T, P >
, Vtl::Plf::DeNoise< T, P >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, Vtl::Plf::Canny< T, P >
, ImageWin< Real_t >
, Vtl::Plf::DiZenzo< T, P >
, Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >
  • init_1() : Vtl::Plf::StripBuffer< T >
  • init_2() : Vtl::Plf::StripBuffer< T >
  • init_3() : Vtl::Plf::StripBuffer< T >
  • init_4() : Vtl::Plf::StripBuffer< T >
  • init_buffer() : Iter_Line , Vtl::Plf::OutPortBase , Iter_Line , Vtl::Plf::OutPortNoPostProc< T > , OutPortNoPostProc< Real_t > , Iter_Line
  • init_bufferExtents() : Iter_Line , Vtl::Plf::OutPortBase , Vtl::Plf::OutPortNoPostProc< T > , OutPortNoPostProc< Real_t > , Iter_Line
  • init_buffers() : GammaCorMult< float > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , Y< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , ConvolveVert< float > , Mult< float > , Vtl::Plf::FilterElementary , ConvolveHorz< float > , HarrisNMS< float > , SqrtOfSumSqr< float > , EnvProc1to1< Real_t, Func, PostThresh > , SrcArray< Real_t, Real_t > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t >
  • init_buffersExtents() : Vtl::Plf::FiltersSystem
  • init_gisInf() : Vtl::Plf::OLSI::Gistogramm2< T >
  • init_OutPortsExtents() : SqrtOfSumSqr< float > , ConvolveVert< float > , GammaCorMult< float > , SrcArray< Real_t, Real_t > , DstArray< Real_t, Real_t > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , Y< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , HarrisNMS< float > , ConvolveHorz< float > , Mult< float > , Vtl::Plf::FilterElementary
  • init_secondParts() : Vtl::Plf::OLSI::Gistogramm2< T >
  • initGis_of_one_line()
: Vtl::Plf::OLSI::Gistogramm< T >
, Vtl::Plf::OLSI::Gistogramm2< T >
  • InitGroupSize() : Basics3D::T_Points2DSet< Point > , T_Points2DSet< Point > , T_Points2DSet< C_Point2D >
  • initMatrices() : ImageTransformMatrixImpl , ImageTransformMatrixFastImpl
  • initMediansForGistogramms()
: Vtl::Plf::OLSI::Gistogramm< T >
, Vtl::Plf::OLSI::Gistogramm2< T >
  • initResize() : ImageResample
  • initRotate() : ImageResample
  • InitStripBuffers() : Vtl::Plf::FiltersSystem
  • inPopTailStage()
: Vtl::Plf::OutPortBase
, Vtl::Plf::OutPortNoPostProc< T >
, OutPortNoPostProc< Real_t >
, Iter_Line
  • InPort() : InPort< T > , Vtl::Plf::InPort< T > , InPort< T >
  • InPortBase() : Vtl::Plf::InPortBase , InPort< T >
  • InPortComb() : InPortComb< T > , Vtl::Plf::InPortComb< T >
  • InProgress() : ProgressCounter
  • inRow() : inRow , Vtl::Meta::Impl::determinant< 1, Il1, Il2, 0 > , Vtl::Meta::Impl::determinant< N, Il1, Il2, j > , Vtl::Meta::Impl::determinant< N, Il1, Il2, N >
  • ins() : Vtl::ImAlg::Registration::Impl::OFlow::OFlowHelper< T >
  • Insert() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , YTArray< T > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > , YTDynArray< T > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , YTArray< T >
  • Insert1() : Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > , OFlow< Model, AllocStrategy >
  • Insert2() : Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > , OFlow< Model, AllocStrategy >
  • InsertAfter() : YXML::DNode
  • InsertBefore() : YXML::DNode
  • InsertNextLineFinished() : Vtl::Plf::StripBuffer< T >
  • InsertNextLineStart() : Vtl::Plf::StripBuffer< T >
  • Int_J0() : Vtl::NumAlg::Spf::bess
  • Interp()
: Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Model::BaseAffine< T >
  • InterpBilinear() : InterpBilinear< Pixel > , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , InterpBilinear< Img::Pixel > , InterpBilinear< Real_t >
  • interpolateAverage() : ImageTransformMatrixImpl
  • interpolateBicubical() : ImageTransformMatrixImpl
  • intersection() : YRect< T > , YRect< int >
  • intersects() : YRect< int > , YRect< T >
  • inverse() : Vtl::NumAlg::Lin::svd
  • Inverse()
: Vtl::ImAlg::Model::SkewXOffset< T >
, Vtl::ImAlg::Model::Similarity< T >
, Vtl::ImAlg::Model::Affine< T >
, Vtl::ImAlg::Model::Homography< T >
  • inverse() : Quaternion< T > , Quaternion< value_type > Vector_3 , Quaternion< value_type > , Vtl::NumAlg::Lin::eigen , Vtl::NumAlg::Lin::svd
  • Inverse()
: Vtl::ImAlg::Model::SkewYOffset< T >
, Vtl::ImAlg::Model::Offset< T >
  • inverse_save() : Vtl::NumAlg::Lin::svd
  • Is() : childPipe
  • is_sample_cyclic_var()
: Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::HSL
  • is_sample_sign_alternating()
: Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::HSI< LinSys >
  • IsAND() : YXML::DNode::IsAND
  • IsAttr() : YXML::IsAttr< T, Cmp >
  • IsAttrIn() : YXML::IsAttrIn< T >
  • IsAvail() : ReadString
  • isComplex() : GammaCor< float > , Mult< float > , HarrisNMS< float > , GammaCor< float > , BiLateral< float > , SrcAImage< Real_t, AImageMem8 > , ToBounds< float > , Resample< float > , ToBounds< float > , EnvProc1to1< Real_t, Func, PostThresh > , DstArray< Real_t, Real_t > , SrcAImage< float, Img > , SrcAImage< Real_t, T > , ConvolveHorz< float > , DstAImage< unsigned, Img > , ConvolveVert< float > , SrcAImage< unsigned, Img > , Canny< float > , SrcArray< Real_t, Real_t > , GammaCor< float > , Y< float > , Vtl::Plf::FilterComplex , DstAImage< float, Img > , DiZenzo< float > , AverageGauss< float > , GammaCorMult< float > , GammaCor< float > , MeanAndDisp< float > , Average< float > , SrcAImage< Real_t, Img > , DstContainer< Real_t, Container_t > , GammaCor< float > , Vtl::Plf::FilterBase , GammaCorMult< float > , SqrtOfSumSqr< float > , Vtl::Plf::FilterElementary , GradientModul< float >
  • IsCond() : YXML::DNode::IsCond
  • isContains() : Vtl::Plf::Strip
  • isDataReady()
: Vtl::Plf::InPort< T >
, Vtl::Plf::InPortBase
, InPort< T >
  • isEdge() : Vtl::ImAlg::Edt::isEdge< T >
  • isEmpty() : Vtl::Plf::Strip
  • isEnum() : SizeList_base< IList > , Vtl::Meta::SizeList_base< T_IList > , Layout< T, IList >
  • isEof() : WritePipe , ReadPipe
  • IsEOF() : ReadString
  • IsFileExist() : YXML::XMLdoc
  • isFilledPixel() : ImageTransformMatrixImpl , ImageTransformMatrixFastImpl
  • isFinished() : EnvProc1to1< Real_t, Func, PostThresh > , SrcAImage< unsigned, Img > , Iter_Line , HarrisNMS< float > , DstAImage< unsigned, Img > , SqrtOfSumSqr< float > , GammaCorMult< float > , Iter_Line , SrcAImage< Real_t, Img > , DstAImage< float, Img > , Mult< float > , ConvolveVert< float > , ConvolveHorz< float > , DstContainer< Real_t, Container_t > , SrcAImage< Real_t, AImageMem8 > , Vtl::Plf::FilterElementary , SrcAImage< Real_t, T > , Y< float > , SrcArray< Real_t, Real_t > , Vtl::Plf::InPortBase , SrcAImage< float, Img > , DstArray< Real_t, Real_t > , OutPortNoPostProc< Real_t > , InPort< T > , Vtl::Plf::OutPortBase
  • isFullRank() : Vtl::NumAlg::Lin::QR
  • isGray() : Vtl::Plf::Impl::GraphBuilder
  • isIn() : YRect< T > , Vtl::Plf::Strip , YRect< int >
  • IsInlier() : Basics3D::T_Model< Operations > , T_Model< Operations >
  • isInLine() : LineFun
  • isInLineBres4() : LineFun
  • IsLeapYear() : YDtTm , YDataTime
  • IsName() : YXML::IsName< Cmp >
  • IsNode() : YXML::DNode , WiNode
  • IsOk() : AImage , ImageMemRgb8 , DllModule , YFile , ImageMem8 , tplAImageReference< ImgT > , ImageMem16 , YSmallAllocLtd , ImageMem16Stuff , ImageMemFloat , YDataTime , IFF::PBMfile
  • IsOneSeance() : IFF::OzFile
  • IsOR() : YXML::DNode::IsOR
  • isPointInPolygon() : PolyFun
  • isReadyForUpdate() : Iter_Line , Vtl::Plf::OutPortBase , OutPortNoPostProc< Real_t > , Iter_Line
  • isRunning() : childPipe
  • isSymmetric() : Vtl::NumAlg::Lin::eigen
  • isWhite() : Vtl::Plf::Impl::GraphBuilder
  • It() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • Iterator_1D()
: Vtl::Img::Iterator_1D< T, T_stride >
, Vtl::Img::Iterator_1D< T, 0 >
, Vtl::Img::Iterator_1D< T, T_stride >
  • Iterator_ND() : Vtl::Img::Iterator_ND< T_Layout >
  • Iterator_ND_base() : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
  • Iterator_ND_spec()
: Vtl::Img::Iterator_ND_spec< T_Layout, false, false >
, Vtl::Img::Iterator_ND_spec< T_Layout, false, true >
, Vtl::Img::Iterator_ND_spec< T_Layout, true, false >
, Vtl::Img::Iterator_ND_spec< T_Layout, true, true >


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- p -

  • P() : Vtl::NumAlg::Spf::Gamma
  • p33()
: Hanina::p33< T, 0, 1 >
, Hanina::p33< T, 1, 2 >
, Hanina::p33< T, 0, 2 >
  • Paint() : VirtDib
  • Palette() : AImage , tplAImageReference< ImgT > , ImageMem8 , ImageMem16
  • Param() : Basics3D::C_Point2DParam
  • ParamNumb() : Basics3D::C_Point2DParam
  • Parent() : YXML::DNode
  • PBMfile() : IFF::PBMfile
  • PhaseCorr() : PhaseCorr< Real_t > , Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T >
  • PhiGrid() : PhiGrid< Real_t > , Vtl::ImAlg::Resamp::PhiGrid< T >
  • pic_plane() : Vtl::Img::pic_plane< pel, stride >
  • PICStoICS() : ImageTransformImpl
  • PixByPix2to1() : GammaCorMult< float > , SqrtOfSumSqr< float > , Vtl::Plf::PixByPix2to1< T, F, P >
  • PixByPix2to3() : Vtl::Plf::PixByPix2to3< T, P >
  • PixByPix3to1() : Vtl::Plf::PixByPix3to1< T, Func, P > , Y< float >
  • PixByPix3to3() : Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
  • PixByPix4to1() : Vtl::Plf::PixByPix4to1< T, Func, P >
  • PixByPix5to1() : Vtl::Plf::PixByPix5to1< T, Func, P >
  • plane() : Vtl::Img::pic_plane< pel, stride >
  • Planes() : Vtl::Img::ImageBase< P, planes, interleave >
  • Planes3() : Hanina::Planes3< T >
  • planesBegin16() : ImageVectorT< Base, Bit8, Bit16 >
  • planesBegin8() : ImageVectorT< Base, Bit8, Bit16 >
  • planesCount16() : ImageVectorT< Base, Bit8, Bit16 >
  • planesCount8() : ImageVectorT< Base, Bit8, Bit16 >
  • planesEnd16() : ImageVectorT< Base, Bit8, Bit16 >
  • planesEnd8() : ImageVectorT< Base, Bit8, Bit16 >
  • Point() : Vtl::ImAlg::Registration::Container< Real_t >::Point
  • pop() : Vtl::ImAlg::Conv::Impl::Buffer< T, K >
  • PopTail()
: Iter_Line
, Vtl::Plf::OutPortBase
, Vtl::Plf::OutPortNoPostProc< T >
, Vtl::Plf::StripBuffer< T >
, OutPortNoPostProc< Real_t >
  • Port() : Vtl::Plf::Port , Iter_Line , InPort< T > , Iter_Line , OutPortNoPostProc< Real_t >
  • PRCStoRCS() : ImageTransformImpl
  • Prev() : YXML::DNode
  • Print() : T_Points2DSet< C_Point2D >
  • print() : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > , Iter_Line
  • Print() : T_Points2DSet< Point >
  • print() : Vtl::Meta::IL::Debug< IndexList< i, Tail > > , Iter_Line , Vtl::Meta::IL::Debug< IndexList< i, Loki::NullType > >
  • Print()
: Basics3D::T_MatrixOperations
, Basics3D::C_Point2D
  • print() : Vtl::Meta::IL::Debug< Loki::NullType >
  • Print() : Basics3D::T_Points2DSet< Point >
  • print() : Vtl::Plf::Port , InPort< T >
  • Print() : Cluster1D< T, DatumType > , Cluster2D< T, DatumType >
  • print() : Container< Real_t > , OutPortNoPostProc< Real_t > , Vtl::ImAlg::Registration::Container< Real_t >
  • print_ab() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • printf() : DebugToFile , DebugBase
  • printList() : Vtl::Plf::FiltersSystem
  • printRatio() : Container< Real_t > , Vtl::ImAlg::Registration::Container< Real_t >
  • proc() : Iter_Line , Vtl::Plf::OutPort< T, P > , Iter_Line , Vtl::Plf::OutPort< T, P >
  • processLine() : Vtl::Plf::PixByPix5to1< T, Func, P > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstContainer< Real_t, Container_t > , DstAImage< float, Img > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > , SrcArray< Real_t, Real_t > , ConvolveHorz< float > , ConvolveVert< float > , Vtl::Plf::PixByPix2to3< T, P > , Vtl::Plf::EnvProc1to1< T, Func, P > , Vtl::Plf::SrcAImageRgb< T, I, P > , SrcAImage< unsigned, Img > , Mult< float > , Vtl::Plf::EnvProc3to1< T, Func, P > , DstArray< Real_t, Real_t > , Vtl::Plf::ConvolveHorz< T, P > , Vtl::Plf::ConvolveVert< T, P > , Vtl::Plf::FilterResampleHorz< T, P > , Vtl::Plf::SrcArray< T, I, P > , Vtl::Plf::DstArray< T, Pixel > , EnvProc1to1< Real_t, Func, PostThresh > , Vtl::Plf::DstContainer< T, C, P > , GammaCorMult< float > , Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > , HarrisNMS< float > , Vtl::Plf::medianFilter< T, P > , Vtl::Plf::FilterResampleVert< T, P > , Vtl::Plf::FilterElementary , Vtl::Plf::medianFilter2< T, P > , Vtl::Plf::Levels< T, P > , SrcAImage< Real_t, AImageMem8 > , Vtl::Plf::PixByPix2to1< T, F, P > , SrcAImage< Real_t, Img > , SqrtOfSumSqr< float > , Vtl::Plf::PixByPix3to1< T, Func, P > , Vtl::Plf::PixByPix4to1< T, Func, P > , Y< float > , SrcAImage< Real_t, T >
  • ProcessMatrix() : ProcessMatrix
  • processPixel() : ImageTransformMatrixImpl
  • ProgressCounter() : ProgressCounter
  • ProjectiveToMetric() : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • propagateImageSize() : Vtl::Plf::FiltersSystem
  • Properties() : Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > , Direct< float, int > , Direct_Ref< float, int >
  • PseudoInverseElem() : Vtl::NumAlg::Lin::PseudoInverseElem< T >
  • PseudoInverseElemPositive() : Vtl::NumAlg::Lin::PseudoInverseElemPositive< T >
  • PtrArrayDel() : PtrArrayDel< T >
  • PtrDelete() : PtrDelete< T >
  • ptrLine0() : Vtl::Plf::StripBuffer< T >
  • ptrLineStart() : Vtl::Plf::StripBuffer< T >
  • push() : Vtl::ImAlg::Conv::Impl::Buffer< T, K >
  • put()
: Fifo< Vtl::Plf::FilterElementary * >
, Vtl::Plf::Fifo< T >
, Fifo< int >
  • put_in_queue() : SrcAImage< Real_t, T > , SrcAImage< float, Img > , DstAImage< float, Img > , GammaCorMult< float > , EnvProc1to1< Real_t, Func, PostThresh > , SqrtOfSumSqr< float > , SrcAImage< unsigned, Img > , Y< float > , DstAImage< unsigned, Img > , SrcAImage< Real_t, Img > , ConvolveHorz< float > , SrcArray< Real_t, Real_t > , SrcAImage< Real_t, AImageMem8 > , HarrisNMS< float > , Vtl::Plf::FilterElementary , Mult< float > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , ConvolveVert< float >
  • putConnectionsInQueue() : Vtl::Plf::OutPortBase , Iter_Line , Vtl::Plf::OutPortBase , Iter_Line , OutPortNoPostProc< Real_t >
  • PutPalette() : IFF::TiffWriteIFD


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- q -

  • Q() : Vtl::NumAlg::Spf::Gamma
  • Q_f() : Vtl::ImAlg::C::YIQ
  • Quaternion() : Quaternion< value_type > Vector_3 , Quaternion< value_type > , Quaternion< T > , Quaternion< value_type > Vector_3


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- r -

  • R5() : Vtl::ImAlg::WndFun::Laws5< T >::R5
  • R_f()
: Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
  • RCStoICS() : ImageTransformImpl
  • RCStoPRCS() : ImageTransformImpl
  • RCStoPRCSr() : ImageTransformImpl
  • read() : AImage , tplAImageReference< ImgT > , IFF::PBMfile , YFileRead , ImageFragment8 , ImageFragment16 , YFileRead , ImageMem16Stuff , ImageFragmentRgb8 , IFF::BmpRead , IFF::FloatImageFile , ImageMem8 , ImageMem16 , ImageMemFloat , ImageMemRgb8 , IFF::OzFile
  • readHeader()
: IFF::PBMfile
, IFF::FloatImageFile
, IFF::OzFile
  • readIFD() : IFF::TiffReadIFD
  • readImage() : IFF::Tiff8Read
  • readNoWait() : ReadPipe
  • ReadPipe() : ReadPipe
  • readSlow() : YImageFrame
  • ReadString() : ReadString
  • readStrip() : IFF::Tiff8Read
  • readWait() : ReadPipe
  • RecomputeWithAllPoints()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
  • Reconstruction() : Basics3D::C_StructureComputation
  • Rect() : Vtl::ImAlg::WndFun::Rect< T, D >
  • Reflect() : Vtl::ImAlg::Conv::Conv2D
  • ReflectHalfToOther() : ReflectHalfToOther< 2, Real_t, true > , Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >
  • ReflectInplace() : Vtl::ImAlg::Conv::Conv2D
  • ReIm2AmpPhase() : FFT_2D
  • Remove() : YTArray< T > , YTDynArray< T >
  • RemoveGroup() : Basics3D::T_Points2DSet< Point > , T_Points2DSet< C_Point2D > , T_Points2DSet< Point >
  • report() : TriResult
  • reProjectionStdDev() : Basics3D::Structure::Dlt< T > , Dlt< value_type >
  • Resample() : Resample< float > , Vtl::Plf::Resample< T, P >
  • Restart() : SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , DstAImage< float, Img > , SrcArray< Real_t, Real_t > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , SrcAImage< float, Img > , Vtl::Plf::SrcArray< T, I, P > , Vtl::Plf::SrcAImageRgb< T, I, P > , Vtl::Plf::DstArray< T, Pixel > , Vtl::Plf::DstContainer< T, C, P >
  • result()
: Vtl::ImAlg::WndFun::Rect< T, D >
, Vtl::ImAlg::WndFun::Bartlett< T, D >
, Vtl::ImAlg::WndFun::DoG< T, D >
, Vtl::ImAlg::WndFun::Kaiser< T, D >
, Vtl::ImAlg::WndFun::common_Trig< T, D, K >
  • RetPoints() : Basics3D::T_Points2DSet< Point > , T_Points2DSet< C_Point2D > , T_Points2DSet< Point >
  • Reverse() : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D > , Reverse< T, D >
  • reverse() : ATransformFunction
  • rewind() : Vtl::ImAlg::Conv::Impl::Buffer< T, K >
  • Rewind()
: Iter_Line
, OutPortNoPostProc< Real_t >
, InPort< T >
, Vtl::Plf::StripBuffer< T >
, Vtl::Plf::OutPortBase
, Vtl::Plf::InPortBase
, Vtl::Plf::OutPortNoPostProc< T >
  • rgb()
: Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YIQ
  • RGBto01()
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
  • right() : FKern< float, Vtl::Plf::Kernel::KT_Conv, true > , Hann< float, 0 > , Vtl::ImAlg::WndFun::DoG< T, D > , FKern< float, Vtl::Plf::Kernel::KT_Corr > , YRect< T > , FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • Right() : FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • right() : Hann< float, 4 > , Vtl::ImAlg::WndFun::Kaiser< T, D >
  • Right() : Basics3D::C_ProjectiveMatrix
  • right() : Vtl::ImAlg::WndFun::Sinc< T, 0 > , FKern< float, Vtl::Plf::Kernel::KT_Conv > , FKern< float > , Hann< float, 1 > , Hamming< float, 0 > , Hamming< float, 2 > , Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > , Hamming< float, 3 > , Hamming< float, 4 > , Hann< float, 2 > , Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >
  • Right() : FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • right() : Base< T, Kernel::KT_Conv > , Hamming< float, 1 >
  • Right() : Basics3D::C_Epipole
  • right() : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , YRect< T >
  • Right()
: FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • right() : Hann< float, 3 > , YRect< T >
  • Right() : Basics3D::C_ProjectiveMatrix
  • right() : Vtl::ImAlg::WndFun::common_Trig< T, D, K > , YRect< int > , Vtl::ImAlg::WndFun::Bartlett< T, D > , FKern< float, Vtl::Plf::Kernel::KT_Win >
  • Right() : FKern< float >
  • right() : YRect< T > , Direct_Ref< float, int >
  • Right() : FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • right() : YRect< int >
  • Right() : Base< T, Kernel::KT_Conv >
  • Ripple() : L5 , Vtl::ImAlg::WndFun::Laws5< T >
  • Root() : YXML::XMLdoc , WinIniFile
  • Rotation() : Basics3D::C_TransformMatrices
  • RotationX() : Basics3D::C_TransformMatrices
  • RotationY() : Basics3D::C_TransformMatrices
  • RotationZ() : Basics3D::C_TransformMatrices
  • RowsPerStrip()
: IFF::TiffWriteIFD
, IFF::TiffReadIFD
  • Run() : Vtl::Plf::FiltersSystem , ImageWin< Real_t >
  • run() : ImageTransformCellImpl
  • Run() : ImageRotate
  • run() : ImageTransform
  • Run() : Vtl::Plf::Impl::DelayAdjuster , ImageResample , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • run() : ImageTransformMatrixImpl
  • Run() : Vtl::Plf::Kernel::ImageWin< T > , ImageResize
  • run() : ImageTransformImpl , ImageTransform
  • Run() : MSlidingEqualization , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > >
  • RunTri() : TriResult
  • russian() : ProgressCounter


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- s -

  • S5() : Vtl::ImAlg::WndFun::Laws5< T >::S5
  • sample()
: Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
  • sample_max()
: Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
  • sample_max_saturation()
: Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
  • sample_maxabs()
: Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
  • sample_min()
: Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
  • sample_name()
: Vtl::ImAlg::C::IV1V2
, Vtl::ImAlg::C::HSV
, Vtl::ImAlg::C::HSL
, Vtl::ImAlg::C::HSI< LinSys >
, Vtl::ImAlg::C::Lab
, Vtl::ImAlg::C::XYZ
, Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::EElEll
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
  • SampleSize()
: Basics3D::C_FundamentalMatrix
, Basics3D::C_HomographyMatrix
  • Save()
: T_Points2DSet< Point >
, Basics3D::C_Combination
, Basics3D::C_DrawEpipolarLines
, Basics3D::C_AbsDifference
, Basics3D::T_MatrixOperations
, Basics3D::T_Points2DSet< Point >
, Basics3D::C_Transform
, YXML::XMLdoc
, tplAImageReference< ImgT >
, T_Points2DSet< C_Point2D >
  • SaveFormat() : Gen::Data::SaveFormat
  • SaveForMathLab()
: FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Base< T, Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
  • SaveGraphAsDot() : Vtl::Plf::FiltersSystem
  • SaveImage() : Hanina::Planes3< T >
  • Scale()
: Basics3D::T_MatrixOperations
, Basics3D::C_Point2D
  • ScaleScan3x3() : ScaleScan3x3< T > , Hanina::ScaleScan3x3< T >
  • Scaling() : Basics3D::C_TransformMatrices
  • Seconds() : YDataTime
  • SecondsInYear() : YDataTime , YDtTm
  • SeparableConv2D() : Vtl::Plf::SeparableConv2D< T, P >
  • Set() : YDataTime , DataString
  • set() : SizeList_base< IList > , Layout< T, IList >
  • Set() : DataString , YTimeInterval , YDataTimeZone
  • set()
: Vtl::Meta::SizeList_base< T_IList >
, Vtl::ImAlg::Transf::Homography< T >
, Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::SkewYOffset< T >
, Vtl::ImAlg::Model::SkewXOffset< T >
, Vtl::ImAlg::Model::Similarity< T >
, Vtl::ImAlg::Model::Affine< T >
, Vtl::ImAlg::Model::Homography< T >
  • Set() : PtrDelete< T >
  • set() : CoverageMatrix , ProcessMatrix , AImageProxy , ImageProxy< ImageT > , ImageProxyConst< ImageT >
  • Set() : YTimeInterval
  • Set0() : Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >
  • Set4Pixels()
: Vtl::ImAlg::Bres::Circle< T >
, Vtl::ImAlg::Bres::EllipseH< F >
  • set_1() : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • set_2() : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • set_all() : Layout< T, IList > , SizeList_base< IList > , Vtl::Meta::SizeList_base< T_IList >
  • set_all_() : SizeList_base< IList > , Vtl::Meta::SizeList_base< T_IList >
  • set_amp()
: Hartley2PhaseAmpDown< 2, Real_t >
, ReflectHalfToOther< 2, Real_t, true >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >
, Hartley2PhaseAmpDown< 2, Real_t >
, ReflectHalfToOther< 2, Real_t, true >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >
, Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >
  • set_BIL_data() : Vtl::Img::ImageDataLayoutHolder
  • set_BIP_data() : Vtl::Img::ImageDataLayoutHolder
  • set_BSQ_data() : Vtl::Img::ImageDataLayoutHolder
  • set_bufferImgSize() : Iter_Line , Vtl::Plf::OutPortBase , Vtl::Plf::OutPortNoPostProc< T > , OutPortNoPostProc< Real_t > , Iter_Line
  • set_DotFName() : Vtl::Plf::FiltersSystem
  • set_IterNextLineShift()
: Himg< T >
, BiLateralSmooth< T >
, CannyNMS< T >
, Himg2< T >
, Vtl::Plf::Fpie::HarrisNMS< T >
, Vtl::Plf::Fpie::HarrisNMS_Smooth< T >
, Vtl::Plf::Fpie::Himg2< T >
, Vtl::Plf::Fpie::Himg< T >
, Vtl::Plf::Fpie::BiLateralSmooth< T >
, Vtl::Plf::Fpie::CannyNMS< T >
, Vtl::Plf::Fpie::CannyNMS_2< T >
, Hanina::ZeroCross< T >
, HarrisNMS< float >
, CannyNMS< float >
  • set_Level() : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • set_m() : mediana< T > , Vtl::Plf::OLSI::mediana< T >
  • set_OutPortsImagesSizeAndInPortsExtents() : Vtl::Plf::FilterElementary , Vtl::Plf::PixByPix4to1< T, Func, P > , Vtl::Plf::SrcArray< T, I, P > , Vtl::Plf::SrcAImageRgb< T, I, P > , Vtl::Plf::DstArray< T, Pixel > , Vtl::Plf::DstContainer< T, C, P > , Vtl::Plf::medianFilter< T, P > , Vtl::Plf::medianFilter2< T, P > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , Y< float > , SrcAImage< Real_t, T > , Vtl::Plf::FilterResampleVert< T, P > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , Vtl::Plf::FilterResampleHorz< T, P > , Vtl::Plf::PixByPix3to1< T, Func, P > , HarrisNMS< float > , Vtl::Plf::PixByPix2to3< T, P > , ConvolveHorz< float > , ConvolveVert< float > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > , GammaCorMult< float > , Mult< float > , SqrtOfSumSqr< float > , Vtl::Plf::PixByPix5to1< T, Func, P > , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t >
  • set_Palette() : Vtl::Img::ImageDataLayoutHolder
  • set_SEP_data() : Vtl::Img::ImageDataLayoutHolder
  • set_total_delay() : Vtl::Plf::OutPortBase , ConvolveVert< float > , ConvolveHorz< float > , SrcAImage< Real_t, Img > , OutPortNoPostProc< Real_t > , SrcAImage< Real_t, AImageMem8 > , Y< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , Iter_Line , HarrisNMS< float > , GammaCorMult< float > , Mult< float > , SqrtOfSumSqr< float > , Iter_Line , DstArray< Real_t, Real_t > , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , Vtl::Plf::FilterElementary
  • set_x() : SizeList_base< IList > , Vtl::Meta::SizeList_base< T_IList > , SizeList_base< IList >
  • set_zero() : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • SetAll() : YTArray< T >
  • SetAttr() : WiNode , YXML::DNode
  • setBackgroundColor() : ImageTransformImpl , ImageTransform
  • SetChanel() : IFF::OzFile
  • setDataTime_Precision() : DataString
  • SetDate() : IFF::OzFile
  • setDstImage() : DstAImage< unsigned, Img > , Vtl::Plf::DstArray< T, Pixel > , Vtl::Plf::DstAImage< T, I > , Vtl::Plf::DstContainer< T, C, P > , DstContainer< Real_t, Container_t > , DstAImage< unsigned, Img > , DstAImage< float, Img > , DstArray< Real_t, Real_t >
  • setErrorColor() : ImageTransformImpl , ImageTransform
  • setFlipHorizontal() : ImageTransformImpl , ImageTransform
  • setFlipVertical() : ImageTransform , ImageTransformImpl
  • SetGrayPalette() : VirtDib
  • setGridAdjustment() : ImageTransform , ImageTransformImpl
  • SetGrowStep() : YTArray< T >
  • SetHeader() : IFF::OzFile
  • setIdentity()
: Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::SkewYOffset< T >
, Vtl::ImAlg::Model::SkewXOffset< T >
, Vtl::ImAlg::Model::Similarity< T >
, Vtl::ImAlg::Model::Affine< T >
, Vtl::ImAlg::Model::Homography< T >
  • SetImagePalette() : VirtDib
  • setName() : EnvProc1to1< Real_t, Func, PostThresh > , SrcAImage< float, Img > , Y< float > , Vtl::Plf::FilterBase , SrcArray< Real_t, Real_t > , DstContainer< Real_t, Container_t > , ConvolveHorz< float > , ConvolveVert< float > , GammaCor< float > , HarrisNMS< float > , BiLateral< float > , GammaCor< float > , SrcAImage< Real_t, Img > , GammaCor< float > , SrcAImage< Real_t, AImageMem8 > , GammaCor< float > , DiZenzo< float > , SrcAImage< Real_t, T > , GammaCorMult< float > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , DstAImage< float, Img > , Resample< float > , AverageGauss< float > , Average< float > , DstArray< Real_t, Real_t > , ToBounds< float > , MeanAndDisp< float > , ToBounds< float > , GradientModul< float > , GammaCor< float > , ToBounds< float > , GammaCorMult< float > , Mult< float > , SqrtOfSumSqr< float > , Canny< float >
  • SetNumb() : Basics3D::C_Point2D
  • SetPixel() : Vtl::ImAlg::Tools::findMax::SetPixel< T, stride > , SetPixel< float, 1 >
  • SetPixelGray() : Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >
  • SetPosition() : YFileRead , YFileWrite
  • setPostProc() : Iter_Line , Vtl::Plf::OutPort< T, P >
  • setSize() : CoverageMatrix , CoordArray2D
  • SetSize() : YTArray< T >
  • setSize() : DistributionMatrix , ProcessMatrix
  • SetSize() : YTArray< T >
  • SetTime() : IFF::OzFile
  • SetTimeEnd() : IFF::OzFile
  • SetTo() : ImageFragmentRgb8 , AImageMemRgb16 , AImageMemFloat , AImageMemRgb8 , AImageMem8 , AImageMem16 , AImageMemRgb8 , ImageFragment16 , ImageMemFloat , ImageFragment8 , YImageFrame
  • SetTrajectory() : IFF::OzFile
  • SetValue() : YXML::DNode , WiNode
  • setValue() : YXML::DNode
  • SevenPointsAlg() : Basics3D::C_FundamentalMatrix
  • Sharpen() : Vtl::Plf::Sharpen< T, P > , Vtl::Plf::F21::Sharpen< T > , ToBounds< float > , Sharpen< T > , ToBounds< float >
  • Shift() : Basics3D::C_Point2D
  • shiftCell() : ImageTransformMatrixImpl
  • show_lists() : Vtl::Plf::FiltersSystem
  • Sinc() : Vtl::ImAlg::WndFun::Sinc< T, 0 >
  • sinc() : Vtl::ImAlg::WndFun::Sinc< T, 0 >
  • size()
: FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::ImAlg::WndFun::Kaiser< T, D >
, FKern< float >
  • Size() : T_Points2DSet< Point >
  • size() : FKern< float, Vtl::Plf::Kernel::KT_Conv, true > , Hamming< float, 3 >
  • Size() : YTArray< T >
  • size() : Direct_Ref< float, int > , Base< T, Kernel::KT_Conv > , Hann< float, 2 >
  • Size() : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > , PtrDelete< T > , PtrArrayDel< T >
  • size()
: ImageContainer< ImgType >
, Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >
, Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >
, Vtl::ImAlg::WndFun::DoG< T, D >
, Vtl::ImAlg::WndFun::common_Trig< T, D, K >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
  • Size() : T_Points2DSet< C_Point2D >
  • size() : Hann< float, 0 >
  • Size() : Basics3D::C_Points2DParamSet
  • size() : Hann< float, 1 > , Hann< float, 4 > , Hamming< float, 0 >
  • Size() : Basics3D::T_Points2DSet< Point >
  • size() : Hamming< float, 2 > , Hamming< float, 4 > , Vtl::ImAlg::WndFun::Sinc< T, 0 > , Hann< float, 3 > , FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • Size() : T_ImagesSet< AImageMem8 >
  • size() : Hamming< float, 1 >
  • Size() : Basics3D::T_ImagesSet< Image >
  • size()
: Vtl::ImAlg::WndFun::Bartlett< T, D >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • SizeList() : Vtl::Meta::SizeList< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >
  • SizeOfObject() : YSmallAllocLtd
  • SkewSymmetric() : Basics3D::C_TransformMatrices
  • SliceIter() : SliceIter< T, stride > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , SliceIter< T, stride > d stride , SliceIter< T, 0 > d stride_var , Vtl::ImAlg::Conv::SliceIter< T, stride > , SliceIter< T, 0 > , SliceIter< T, 0 > d stride_var , SliceIter< T, stride > d stride , Vtl::ImAlg::Conv::SliceIter< T, stride > , Vtl::ImAlg::Conv::SliceIter< T, 0 > , SliceIter< T, stride > , SliceIter< T, 0 >
  • SliceIterConst() : SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , SliceIterConst< T, 0 > d stride_var , SliceIterConst< T, 0 > , SliceIterConst< T, 0 > d stride_var , SliceIterConst< T, 0 > , SliceIterConst< T, stride > d stride , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 >
  • solve()
: Vtl::NumAlg::Lin::cholesky
, Vtl::NumAlg::Lin::svd
, Vtl::NumAlg::Lin::cholesky
, Vtl::NumAlg::Lin::svd
  • solve_qe() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • solve_save() : Vtl::NumAlg::Lin::svd
  • SolveDet0() : Basics3D::AbsoluteDualQuadric
  • sort() : Vtl::NumAlg::Lin::svd
  • Sort() : YTHistList< T > , Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >
  • Sort_base()
: Vtl::NumAlg::Implicit::Sort_base< N_ >
, Vtl::NumAlg::Implicit::Sort_base< 0 >
  • SortColumns()
: Basics3D::C_ProjectiveMatrix
, Basics3D::T_MatrixOperations
  • SortS() : SortS< double > , Basics3D::SortS< T >
  • SortSV() : Basics3D::C_ProjectiveMatrix
  • SplitEvenOdd() : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • Spot() : Vtl::ImAlg::WndFun::Laws5< T > , L5
  • sprod() : Check_4_grad_sign_change< T > , Hanina::Check_4_grad_sign_change< T >
  • sqr() : Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 > , Vtl::ImAlg::Model::Homography< T > , Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 >
  • SqrtOfSumSqr() : Vtl::Plf::F21::SqrtOfSumSqr< T > , SqrtOfSumSqr< float > , SqrtOfSumSqr< T >
  • SrcAImage() : SrcAImage< float, Img > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , SrcAImage< float, Img > , SrcAImage< Real_t, AImageMem8 > , Vtl::Plf::SrcAImage< T, I, P > , SrcAImage< Real_t, AImageMem8 > , Vtl::Plf::SrcAImage< T, I, P > , SrcAImage< Real_t, Img >
  • SrcAImageRgb() : Vtl::Plf::SrcAImageRgb< T, I, P >
  • SrcArray() : SrcAImage< float, Img > , Vtl::Plf::SrcArray< T, I, P > , SrcAImage< unsigned, Img > , Vtl::Plf::SrcArray< T, I, P > , SrcArray< Real_t, Real_t > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , SrcArray< Real_t, Real_t > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, T > , SrcAImage< float, Img > , SrcAImage< Real_t, AImageMem8 > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img >
  • start() : ProgressCounter , Vtl::Dbg::TimeElapsed
  • StatDiff() : ToBounds< float > , Vtl::Plf::StatDiff< T, P > , ToBounds< float > , Vtl::Plf::F31::StatDiff< T > , Vtl::Plf::StatDiff< T, P > , ToBounds< float > , StatDiff< T > , Vtl::Plf::StatDiff< T, P >
  • StatDiffThresh() : Vtl::Plf::F31::StatDiffThresh< T >
  • Stderr() : childPipe
  • Stdin() : childPipe
  • Stdout() : childPipe
  • Storage() : Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >
  • str() : Vtl::Types::TL::Print< TList >
  • stride() : Vtl::Meta::Layout< T, IList >
  • Stride() : Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
  • stride() : Layout< T, IList >
  • Stride() : Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • stride_band() : Vtl::Meta::Layout< T, IList > , Layout< T, IList >
  • StrideIsEnum() : Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
  • StringToTime() : DataString
  • Strip() : Vtl::Plf::Strip
  • StripBuffer() : Vtl::Plf::StripBuffer< T >
  • StripsPerImage()
: IFF::TiffWriteIFD
, IFF::TiffReadIFD
  • Sum3() : Sum3< T > , Vtl::Plf::F31::Sum3< T >
  • sw()
: Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, 1 >
, Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, nd >
, sw
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- t -

  • T_ImagesSet() : Basics3D::T_ImagesSet< Image > , T_ImagesSet< AImageMem8 >
  • T_MistakeFunc() : Basics3D::T_MistakeFunc< Operations > , T_MistakeFunc< MatrixType >
  • T_Model() : Basics3D::T_Model< Operations > , T_Model< Operations >
  • T_Points2DSet() : Basics3D::T_Points2DSet< Point > , T_Points2DSet< C_Point2D > , T_Points2DSet< Point >
  • Table() : Vtl::Plf::Kernel::Table< T, kernel_type_, double_kernel_ >
  • Tail() : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >
  • terminate() : childPipe
  • test() : Basics3D::test
  • Test() : Test< float > , Vtl::NumAlg::IntTransf::Utils::F::Test< T >
  • this_delay() : Vtl::Plf::OutPortNoPostProc< T > , OutPortNoPostProc< Real_t > , Iter_Line , Vtl::Plf::OutPortBase
  • ThisClassName() : ImageFragmentRgb8 , AImageMemFloat , ImageMem16Stuff , ImageMem8 , ImageMem16 , AImageMemRgb8 , ImageMemFloat , AImageMem16 , ImageMemRgb8 , AImageMemRgb16 , AImage , ImageFragment8 , AImageMem8 , ImageFragment16
  • Threshold() : Vtl::Plf::F11::Threshold< T, Comp >
  • Tiff8Read() : IFF::Tiff8Read
  • Tiff8Write() : IFF::Tiff8Write
  • TiffReadIFD() : IFF::TiffReadIFD
  • TiffWriteIFD() : IFF::TiffWriteIFD
  • TimeElapsed() : Vtl::Dbg::TimeElapsed
  • TimeToString() : DataString
  • to_single_focus() : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
  • ToBounds() : ToBounds< float > , Vtl::Plf::F11::ToBounds< T >
  • toEuclidean() : Basics3D::Structure::Dlt< T > , Dlt< value_type >
  • ToNextLine() : Vtl::Plf::InPortBase , InPort< T >
  • top() : YRect< T > , YRect< int > , YRect< T >
  • toRGB()
: Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
  • toRot() : Quaternion< value_type > , Quaternion< value_type > Vector_3 , Quaternion< T >
  • tplAImageFragment() : tplAImageFragment< ImgT >
  • tplAImageReference() : tplAImageReference< ImgT >
  • tql2() : Vtl::NumAlg::Lin::eigen
  • Trace() : Vtl::Plf::F31::Trace< T > , Trace< float >
  • Traits() : Direct< float, int > , Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D > , Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D > , Direct_Ref< float, int >
  • Transform() : T_Model< Operations > , Basics3D::T_Model< Operations > , T_Model< Operations > , Basics3D::T_Model< Operations >
  • Transform2Power() : FFT_2D
  • TransformCell() : TransformCell
  • TransformIntoNormCoord() : Basics3D::T_MatrixOperations
  • TransformIntoPixelCoord() : Basics3D::T_MatrixOperations
  • Translational() : Basics3D::C_TransformMatrices
  • TranslationalInverse() : Basics3D::C_TransformMatrices
  • TransposeQuarters() : FFT_2D
  • tred2() : Vtl::NumAlg::Lin::eigen
  • Triggs() : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >
  • TriggsM() : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >
  • TrigRecurrence() : Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > , TrigRecurrence< T, double, I >
  • TryPutInQueue() : SrcAImage< Real_t, AImageMem8 > , SrcAImage< unsigned, Img > , Mult< float > , Y< float > , DstArray< Real_t, Real_t > , DstContainer< Real_t, Container_t > , SrcArray< Real_t, Real_t > , SrcAImage< float, Img > , SqrtOfSumSqr< float > , ConvolveVert< float > , SrcAImage< Real_t, T > , DstAImage< float, Img > , ConvolveHorz< float > , GammaCorMult< float > , EnvProc1to1< Real_t, Func, PostThresh > , HarrisNMS< float > , DstAImage< unsigned, Img > , Vtl::Plf::FilterElementary , SrcAImage< Real_t, Img >
  • type()
: FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, Base< T, Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • Type() : IFF::PBMfile
  • type()
: FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- u -

  • U_f() : Vtl::ImAlg::C::YUV
  • UpdateByNewAfterThis()
: Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Model::Affine< T >
, Vtl::ImAlg::Model::Similarity< T >
, Vtl::ImAlg::Model::SkewXOffset< T >
, Vtl::ImAlg::Model::SkewYOffset< T >
, Vtl::ImAlg::Model::Offset< T >
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- v -

  • v() : Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 > , Vtl::Alg::x_to_N< N >::x_to_N__< 1, 1 > , Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, m > , Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, n > , Vtl::Alg::x_to_N< N >::x_to_N__< 0, 0 > , Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 >
  • V1_f() : Vtl::ImAlg::C::IV1V2
  • V2_f() : Vtl::ImAlg::C::IV1V2
  • V_f() : Vtl::ImAlg::C::YUV
  • value()
: Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, 0 >
, Vtl::Alg::x_to_N< N >
, Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, ndim >
, Vtl::ImAlg::Resamp::PhiGrid< T >
, LogGrid< float >
, Vtl::ImAlg::Resamp::LinGrid< T >
, dsin< D-1 > c
, Vtl::ImAlg::Resamp::LogGrid< T >
, PhiGrid< Real_t >
, value
  • values_ratio() : Vtl::ImAlg::Resamp::LogGrid< T > , LogGrid< float >
  • values_shift() : Vtl::ImAlg::Resamp::LinGrid< T >
  • vec()
: Vtl::ImAlg::Registration::Impl::OFlow::BuildG< n >
, Vtl::ImAlg::Registration::Impl::OFlow::BuildG< 0 >
  • VirtDib() : VirtDib


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- w -

  • W()
: Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >
, Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
, InterpBilinear< Real_t >
, InterpBilinear< Img::Pixel >
, InterpBilinear< Pixel >
  • w() : ImageRef< T > , Vtl::Plf::ImageRef< T > , Vtl::Plf::Impl::DelayAdjuster , ImageRef< int >
  • wait() : childPipe
  • Width() : tplAImageFragment< ImgT > , tplAImageReference< ImgT > , IFF::PBMfile
  • width() : YRect< T >
  • Width() : MSlidingEqualization
  • width() : ImageProxyVector , ImageProxyConst< ImageT >
  • Width() : ImageMem16Stuff
  • width() : AImageProxy
  • Width()
: IFF::TiffWriteIFD
, IFF::BmpRead
, IFF::TiffReadIFD
, ImageResize
  • width() : YRect< T >
  • Width()
: Vtl::Img::ImageBase< P, planes, interleave >
, IFF::BmpWrite
, VirtDib
  • width() : ImageTransformImpl
  • Width() : ImageResample , ImageRotate , IFF::FloatImageFile , ImageMem8
  • width() : ImageTransform , CoordArray2D , ImageVectorT< Base, Bit8, Bit16 >
  • Width() : ImageMem16
  • width() : ImageProxy< ImageT >
  • Width() : ImageMemFloat , IFF::OzFile , AImage , ImageMemRgb8
  • width() : YRect< int >
  • WinIniFile() : WinIniFile
  • WiNode() : WiNode
  • write()
: IFF::PBMfile
, YFileWrite
, Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >
, YFileWrite
, IFF::FloatImageFile
, IFF::BmpWrite
, Dbg::Fmt< T, format_type >
, IFF::OzFile
  • write_() : Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >
  • writeHeader()
: IFF::FloatImageFile
, IFF::PBMfile
, IFF::OzFile
  • writeIFD() : IFF::TiffWriteIFD
  • writeImage() : IFF::Tiff8Write
  • writeNoWait() : WritePipe
  • WritePipe() : WritePipe
  • writeStrip() : IFF::Tiff8Write
  • writeWait() : WritePipe


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- x -

  • X() : YImageFrame
  • x() : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
  • X() : Basics3D::C_Point2D
  • x() : SizeList_base< IList > , Layout< T, IList > , Vtl::Meta::SizeList_base< T_IList >
  • X_f() : Vtl::ImAlg::C::XYZ
  • Xercesc() : YXML::Xercesc
  • XMLdoc() : YXML::XMLdoc


Pipe Line Filters: Члены классов - Функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z
  • ~

- y -

  • Y()
: YImageFrame
, Vtl::NumAlg::Spf::bess
, Iter_Line
, InPort< T >
, Vtl::Plf::InPortBase
, Vtl::Plf::OutPortNoPostProc< T >
, Vtl::Plf::StripBuffer< T >
, Basics3D::C_Point2D
, OutPortNoPostProc< Real_t >
  • Y_f()
: Vtl::ImAlg::C::YCbCr
, Vtl::ImAlg::C::YIQ
, Vtl::ImAlg::C::YUV
, Vtl::ImAlg::C::XYZ
  • Y_last() : Vtl::Plf::StripBuffer< T >
  • Y_pos() : SqrtOfSumSqr< float > , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , Mult< float > , Vtl::Plf::FilterElementary , SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , HarrisNMS< float > , Y< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img > , ConvolveHorz< float > , ConvolveVert< float > , GammaCorMult< float >
  • Y_wait() : Iter_Line , Vtl::Plf::OutPortNoPostProc< T > , Vtl::Plf::StripBuffer< T > , OutPortNoPostProc< Real_t >
  • YDataTime() : YDataTime
  • YDataTimeZone() : YDataTimeZone
  • Year() : YDataTime
  • YearDay() : YDataTime , YDtTm
  • YearDayDay() : YDtTm
  • YearDayMonth() : YDtTm
  • YearDaySec() : YDataTime
  • YFile() : YFile
  • YFileRead() : YFileRead
  • YFileWrite() : YFileWrite
  • YImageFrame() : YImageFrame
  • YPoint() : YPoint< T > , YPoint< int > , YPoint< double > , YPoint< T >
  • YRect() : YRect< T > , YRect< int > , YRect< T >
  • YSmallAllocLtd() : YSmallAllocLtd
  • YTArray() : YTArray< T >
  • YTDynArray() : YTDynArray< T >
  • YTHistListTag() : YTHistListTag< T >
  • YTimeInterval() : YTimeInterval


Pipe Line Filters: Члены классов - Относящиеся к классу функции

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции

  • childPipe : ReadPipe , WritePipe
  • DNode : YXML::DNode::AttrRef
  • InPort< T > : Vtl::Plf::OutPortNoPostProc< T > , Iter_Line , OutPortNoPostProc< Real_t >
  • LayoutListDefault : Vtl::Meta::Layout< T, IList > , Layout< T, IList >
  • operator<<
: YXML::DNode
, YXML::DNode::AttrRef
, Vtl::ImAlg::Transf::Affine< T >
, Vtl::Plf::ImgSize
, Affine< T >
, WiNode
, WiNode::AttrRef
  • operator| : Vtl::Plf::Strip
  • OutPortBase : Vtl::Plf::InPortBase , InPort< T >
  • OutPortNoPostProc< T > : Vtl::Plf::InPort< T > , InPort< T > , InPortComb< T > , Vtl::Plf::InPortComb< T >
  • print : Vtl::Meta::Layout< T, IList > , Layout< T, IList >
  • WinIniFile : WiNode
  • WiNode : WiNode::AttrRef
  • YDataTime : YTimeInterval


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- a -

  • arg_type : Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > , Direct_Ref< float, int > , Hann< float, 4 > , Hann< float, 3 > , Hann< float, 2 > , Hann< float, 1 > , Hann< float, 0 > , Hamming< float, 4 > , Hamming< float, 3 > , Hamming< float, 2 > , Hamming< float, 1 > , Hamming< float, 0 > , Vtl::ImAlg::WndFun::common_Trig< T, D, K > , Vtl::ImAlg::WndFun::Kaiser< T, D > , Vtl::ImAlg::WndFun::Sinc< T, 0 > , Vtl::ImAlg::WndFun::DoG< T, D > , Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > , Vtl::ImAlg::WndFun::Bartlett< T, D >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- k -

  • K0 : Students::Curve::EdgeDetect< T >
  • K1 : Students::Curve::EdgeDetect< T >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- l -

  • LayoutType : Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to >
  • List : InPortComb< T > , Iter_Line , Vtl::Plf::OutPortBase , Container< Real_t > , OutPortNoPostProc< Real_t > , Vtl::Plf::InPortComb< T > , Iter_Line , Vtl::ImAlg::Registration::Container< Real_t >
  • listForSqr : Vtl::Types::PixelTraits< T >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- m -

  • Matrix : Basics3D::FmTools< T > , Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > , TriResult , Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • Matrix_3x3 : Basics3D::Structure::ProjectiveToMetric< T > , Basics3D::Types< T > , Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type > , ProjectiveToMetric< value_type >
  • Matrix_3x4 : Basics3D::FmTools< T > , ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T > , Basics3D::Types< T >
  • Matrix_4x3 : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type >
  • Matrix_4x4 : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T > , Basics3D::Types< T >
  • MatrixA
: Dlt< value_type >
, Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Model::BaseAffine< T >
, Vtl::ImAlg::Transf::Affine< T >
, Basics3D::Structure::Dlt< T >
, Vtl::ImAlg::Transf::Homography< T >
, Affine< T >
  • MatrixH : Vtl::ImAlg::Transf::Homography< T >
  • MatrixP : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • Model : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > >
  • MoveXList : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- n -

  • Next : Vtl::Meta::IndexList< i, T >
  • NonConstType : Vtl::Types::Traits< T >
  • NonVolatileType : Vtl::Types::Traits< T >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- o -

  • Offsets_t : Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff >
  • OriginalType : Vtl::Types::Type2Type< T >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- b -

  • BandsIterator
: Vtl::Img::BuildIter1DList< T_Layout >
, Vtl::Img::Iterator_ND_spec< T_Layout, false, true >
, Vtl::Img::Iterator_ND_spec< T_Layout, false, false >
  • Base : Layout< T, IList > , Vtl::Meta::Layout< T, IList >
  • Bit16Vector : ImageVectorT< Base, Bit8, Bit16 >
  • Bit8Vector : ImageVectorT< Base, Bit8, Bit16 >
  • BufType : Vtl::Plf::OutPortNoPostProc< T > , Vtl::Plf::InPortComb< T > , Iter_Line , InPortComb< T > , Iter_Line , InPort< T > , Vtl::Plf::InPort< T > , OutPortNoPostProc< Real_t >
  • BytePtr : YSmallAllocLtd


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- c -

  • ColorSystem
: Vtl::ImAlg::C::XYZ::X< T >
, Vtl::ImAlg::C::XYZ::Y< T >
, Vtl::ImAlg::C::XYZ::R< T >
, Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::E< T >
, Vtl::ImAlg::C::YUV::Y< T >
, Vtl::ImAlg::C::YUV::U< T >
, Vtl::ImAlg::C::YCbCr::Y< T >
, Vtl::ImAlg::C::EElEll::El< T >
, Vtl::ImAlg::C::YUV::V< T >
, Vtl::ImAlg::C::YUV::R< T >
, fromRGB< T, Iter >
, Vtl::ImAlg::C::EElEll::Ell< T >
, Vtl::ImAlg::C::YUV::G< T >
, Vtl::ImAlg::C::YUV::B< T >
, Vtl::ImAlg::C::XYZ::G< T >
, Vtl::ImAlg::C::YCbCr::Cb< T >
, Vtl::ImAlg::C::EElEll::R< T >
, Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::G< T >
, Vtl::ImAlg::C::IV1V2::I< T >
, Vtl::ImAlg::C::IV1V2::V1< T >
, Vtl::ImAlg::C::YCbCr::Cr< T >
, Vtl::ImAlg::C::EElEll::B< T >
, Vtl::ImAlg::C::IV1V2::V2< T >
, Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter >
, Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter >
, Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::HSV::toRGB< T, Iter >
, Vtl::ImAlg::C::HSV::fromRGB< T, Iter >
, Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::IV1V2::R< T >
, Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::IV1V2::G< T >
, Vtl::ImAlg::C::IV1V2::B< T >
, Vtl::ImAlg::C::XYZ::Z< T >
, Vtl::ImAlg::C::XYZ::B< T >
, Vtl::ImAlg::C::YCbCr::R< T >
, Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::fromRGB_positive< bits, T, Iter >
, Vtl::ImAlg::C::YCbCr::G< T >
, Vtl::ImAlg::C::YIQ::Y< T >
, Vtl::ImAlg::C::YIQ::I< T >
, Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YCbCr::B< T >
, Vtl::ImAlg::C::YIQ::Q< T >
, Vtl::ImAlg::C::YIQ::R< T >
, Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YIQ::G< T >
, Vtl::ImAlg::C::YIQ::B< T >
  • const_Iter : Container< Real_t > , Vtl::ImAlg::Registration::Container< Real_t >
  • const_iterator
: Base< T, Kernel::KT_Conv >
, FKern< float >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, ImageProxyVector
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
  • const_pointer_type
: Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, Base< T, Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
  • const_reference_type
: FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, Base< T, Kernel::KT_Conv >
, FKern< float >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- e -

  • Env : childPipe


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- f -

  • FF0 : Students::Curve::EdgeDetect< T >
  • FF1 : Students::Curve::EdgeDetect< T >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- g -

  • G0 : Vtl::Plf::AverageGauss< T, P > , GammaCor< float > , Vtl::Plf::GradientModul< T, P > , Vtl::Plf::MeanAndDisp< T, P > , GradientModul< float > , GammaCor< float > , Vtl::Plf::Detect< T, Func, P > , Vtl::Plf::DiZenzo< T, P > , Vtl::Plf::HarrisLaplace< T, Func, P > , DiZenzo< float > , Vtl::Plf::GradientCorr< T, P > , AverageGauss< float > , MeanAndDisp< float >
  • G1 : GradientModul< float > , DiZenzo< float > , Vtl::Plf::GradientModul< T, P > , Vtl::Plf::GradientCorr< T, P > , Vtl::Plf::DiZenzo< T, P >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- h -

  • Head : Vtl::Types::Typelist< T, U > , forEach , Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- i -

  • IList : Vtl::Img::BuildIter1DList< T_Layout > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > , SizeList_base< IList > , Layout< T, IList > , Vtl::Meta::SizeList_base< T_IList > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList , Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > , Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >
  • index : Vtl::Meta::IL::ERROR__Index_out_of_IndexList_range< j >
  • IndexInCol : Vtl::Meta::Impl::determinant< N, Il1, Il2, j > , inRow
  • IndexInRow : Vtl::Meta::Impl::determinant< N, Il1, Il2, j > , inRow
  • Iter : Vtl::Plf::OutPortNoPostProc< T > , OutPortNoPostProc< Real_t > , Iter_Line
  • Iter1DList
: Vtl::Img::Iterator_ND_spec< T_Layout, false, false >
, Vtl::Img::Iterator_ND_spec< T_Layout, false, true >
, Vtl::Img::ImageNDref< T_SList, T_Layout >
  • Iter_Line : Vtl::Plf::StripBuffer< T >
  • iterator
: FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, ImageProxyVector
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Base< T, Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float >
  • iterator16 : ImageVectorT< Base, Bit8, Bit16 >
  • iterator8 : ImageVectorT< Base, Bit8, Bit16 >
  • IterND : Vtl::Img::ImageNDref< T_SList, T_Layout >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- p -

  • Pixel : AImageMem8 , AImageMem16 , AImageMemRgb16 , AImageMemFloat , YImageFrame , ImageRef< int > , AImageMemRgb8 , Vtl::Plf::ImageRef< T > , ImageRef< T >
  • PixelType : Vtl::Types::PixelTraits< T >
  • PlaneImageType : AImageMemRgb16 , AImageMemRgb8
  • Planes_t : Hanina::p33< T, 1, 2 > , Hanina::p33< T, 0, 2 > , ScaleScan3x3< T > , Hanina::ScaleScan3x3< T > , Hanina::p33< T, 0, 1 >
  • PointeeType : Vtl::Types::Traits< T >
  • pointer_type
: FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, Base< T, Kernel::KT_Conv >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • PostProc : Vtl::Plf::GradientModul< T, P > , Vtl::Plf::Canny< T, P > , GradientModul< float > , Canny< float >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- r -

  • reference_type
: Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Base< T, Kernel::KT_Conv >
  • ReferredType : Vtl::Types::Traits< T >
  • Result : Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 > , Vtl::Img::BuildIter1DList< T_Layout >::build< ND > , stride , Vtl::Meta::IL::PushFront< i, IList > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::MoveX_selector< i > , Vtl::Img::DataTypeList2TypeList< T > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I > , Vtl::Meta::IL::MakeInRange< i, n > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to > , Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I > , Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i > , Vtl::Types::TL::MakeTypelist<> , Vtl::Meta::IL::EraseAt< i, IndexList< j, T > > , Vtl::Meta::IL::EraseAt< 0, IndexList< j, T > > , Vtl::Meta::IL::EraseAt< i, Loki::NullType > , Vtl::Meta::IL::Erase< i, IndexList< j, T > > , Vtl::Meta::IL::Erase< i, IndexList< i, T > > , Vtl::Meta::IL::Erase< i, Loki::NullType > , Vtl::Meta::IL::ConCat< Head, Loki::NullType > , Vtl::Meta::IL::Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 > , Vtl::Meta::IL::PushBack< i, IndexList< j, Tail > > , Vtl::Meta::IL::PushBack< i, Loki::NullType > , stride , Vtl::Meta::IL::MakeInRange< n, n > , Vtl::Img::BuildIter1DList< T_Layout > , Vtl::Meta::IL::ConCat< Head, IndexList< i, Tail > > , Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, i > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< i > , Vtl::Img::DataTypeList2TypeList< Types::Typelist< T1, T2 > > , Vtl::Img::T2DataType< T > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< ND > , Vtl::Types::TL::AppendIf< TList, U, append > , Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, 1 > , Vtl::Img::BuildIter1DList< T_Layout >::build< i >
  • result_type : InterpBilinear< Img::Pixel > , InterpBilinear< Real_t > , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , InterpBilinear< Pixel >
  • RotationMatrix : Quaternion< T > , Quaternion< value_type > , Quaternion< value_type > Vector_3


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- s -

  • sample_type : Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
  • size_type : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • SList : Vtl::Meta::Layout< T, IList > , Layout< T, IList > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
  • SqrType : Vtl::Types::PixelTraits< T >
  • SS : Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >
  • Storage_t : Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- t -

  • T : Vtl::Meta::det_poly_coef< Matrix, N > , Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > , OFlow< Model, AllocStrategy >
  • T_temp
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
  • Tag : YTHistList< T >
  • Tail : Vtl::Types::Typelist< T, U > , forEach , Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >
  • TailResult : Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >
  • Temp : Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >
  • Transf
: Vtl::ImAlg::Model::Homography< T >
, Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::BaseAffine< T >
  • typ : Vtl::Img::DataTypeId< T >
  • Type
: Vtl::Types::Select< flag, Type1, Type2 >
, Vtl::Img::ImageNDref< T_SList, T_Layout >::IterBands
, Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::IterBands
, Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::IterBands
, Vtl::Img::ImageNDref< T_SList, T_Layout >::Iter1D< i >
  • TypesGroup : Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::UInt > , Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::Real > , Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::SInt > , Vtl::Types::PixelTraits< T >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- u -

  • UnqualifiedType : Vtl::Types::Traits< T >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- v -

  • value_type
: Vtl::Img::Iterator_1D< T, T_stride >
, Vtl::Img::Iterator_1D< T, 0 >
, Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
, Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
, Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ >
, FKern< float, Vtl::Plf::Kernel::KT_Corr >
, FKern< float, Vtl::Plf::Kernel::KT_Win >
, FKern< float, Vtl::Plf::Kernel::KT_Conv, true >
, ProjectiveToMetric< value_type >
, FKern< Real_t, Vtl::Plf::Kernel::KT_Win, false >
, Vtl::ImAlg::Transf::Affine< T >
, Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
, Offset< T >
, Affine< T >
, Vtl::Img::ImageNDref< T_SList, T_Layout >
, Basics3D::FmTools< T >
, Base< T, Kernel::KT_Conv >
, Dlt< value_type >
, Vtl::ImAlg::Transf::Homography< T >
, Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
, CameraPoseFromEssential< value_type >
, Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList
, Vtl::Meta::det< Matrix >
, Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
, Basics3D::Fm2Essential::CameraPoseFromEssential< T >
, Comp3D< value_type >
, Vtl::Meta::Layout< T, IList >
, Direct< float, int >
, Vtl::ImAlg::Model::Base< T >
, FKern< float >
, FKern< float, Vtl::Plf::Kernel::KT_Conv >
, Layout< T, IList >
, Basics3D::Structure::Comp3D< T >
, Vtl::Img::BuildIter1DList< T_Layout >
, Basics3D::Types< T >
, Vtl::Img::ImageNDref< T_SList, T_Layout >
, Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
, Basics3D::Structure::ProjectiveToMetric< T >
, Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >
, Vtl::ImAlg::Model::Homography< T >
, Basics3D::Structure::Dlt< T >
, Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >
, Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >
, Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >
, Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
, Vtl::ImAlg::Transf::Offset< T >
, Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
, Direct_Ref< float, int >
  • Vector : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Vtl::NumAlg::Implicit::Sort< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ >, Pred_ > , Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > , Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
  • Vector2
: Dlt< value_type >
, Vtl::ImAlg::Transf::Homography< T >
, Vtl::ImAlg::Model::Base< T >
, Basics3D::Structure::Dlt< T >
  • Vector3 : Quaternion< value_type > Vector_3 , Quaternion< T > , Basics3D::FmTools< T > , Quaternion< value_type > , Dlt< value_type > , Vtl::ImAlg::Transf::Homography< T > , Basics3D::Structure::Dlt< T >
  • Vector4 : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • Vector_2 : Basics3D::Structure::Comp3D< T > , Basics3D::Types< T > , Comp3D< value_type >
  • Vector_3 : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , Basics3D::Types< T > , CameraPoseFromEssential< value_type > , Comp3D< value_type > , Basics3D::Structure::ProjectiveToMetric< T > , ProjectiveToMetric< value_type > , Basics3D::Structure::Comp3D< T >
  • Vector_4 : CameraPoseFromEssential< value_type > , Basics3D::Structure::Comp3D< T > , Basics3D::Types< T > , Basics3D::Fm2Essential::CameraPoseFromEssential< T > , Comp3D< value_type > , ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • VectorB : Affine< T > , Vtl::ImAlg::Transf::Affine< T > , Offset< T > , Vtl::ImAlg::Model::Offset< T > , Vtl::ImAlg::Model::BaseAffine< T > , Vtl::ImAlg::Transf::Offset< T >


Pipe Line Filters: Члены классов - Определения типов

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • a
  • b
  • c
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • x

- x -

  • xx_lst : Vtl::Img::DataTypeId< T >


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- _ -

  • _a : Vtl::Plf::F11::Lin< T > , Convert< uint8_t > , Lin< float > lin_1mod , Convert< uint8_t > , Lin< float > lin_2 , Convert< uint8_t >
  • _autosave : YXML::XMLdoc
  • _b : Convert< uint8_t > , Lin< float > lin_1mod , Convert< uint8_t > , Lin< float > lin_2 , Convert< uint8_t > , Vtl::Plf::F11::Lin< T >
  • _bits : Vtl::Plf::medianFilter< T, P > , Vtl::Plf::medianFilter2< T, P >
  • _color : Vtl::ImAlg::Bres::Draw< Pixel >
  • _color1 : Vtl::ImAlg::Bres::DrawDotted< Pixel > , Vtl::ImAlg::Bres::DrawGradient< Pixel >
  • _color2 : Vtl::ImAlg::Bres::DrawDotted< Pixel > , Vtl::ImAlg::Bres::DrawGradient< Pixel >
  • _data : Hanina::Hessian3D< T > , ImageRef< int > , ImageRef< T > , Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > , Vtl::Plf::ImageRef< T >
  • _draw : Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >
  • _eig_curr : Hanina::Planes3< T >
  • _eig_next : Hanina::Planes3< T >
  • _eig_prev : Hanina::Planes3< T >
  • _ex : Vtl::Plf::ImageRef< T > , ImageRef< int > , ImageRef< T >
  • _fin : Vtl::Dbg::TimeElapsed
  • _grad_x_curr : Hanina::Planes3< T >
  • _grad_x_next : Hanina::Planes3< T >
  • _grad_y_curr : Hanina::Planes3< T >
  • _grad_y_next : Hanina::Planes3< T >
  • _Gxx : Hanina::Hessian3D< T >
  • _Gxxx : Hanina::Hessian3D< T >
  • _Gxxxx : Hanina::Hessian3D< T >
  • _Gxxyy : Hanina::Hessian3D< T >
  • _Gxy : Hanina::Hessian3D< T >
  • _Gxyy : Hanina::Hessian3D< T >
  • _Gyxx : Hanina::Hessian3D< T >
  • _Gyy : Hanina::Hessian3D< T >
  • _Gyyy : Hanina::Hessian3D< T >
  • _Gyyyy : Hanina::Hessian3D< T >
  • _h2_x_curr : Hanina::Planes3< T >
  • _h2_x_next : Hanina::Planes3< T >
  • _h2_y_curr : Hanina::Planes3< T >
  • _h2_y_next : Hanina::Planes3< T >
  • _h2_z_curr : Hanina::Planes3< T >
  • _h2_z_next : Hanina::Planes3< T >
  • _h3_x_curr : Hanina::Planes3< T >
  • _h3_x_next : Hanina::Planes3< T >
  • _h3_y_curr : Hanina::Planes3< T >
  • _h3_y_next : Hanina::Planes3< T >
  • _h3_z_curr : Hanina::Planes3< T >
  • _h3_z_next : Hanina::Planes3< T >
  • _image : Hanina::Planes3< T >
  • _img_width : Vtl::Plf::OLSI::Gistogramm< T >
  • _left : Base< T, Kernel::KT_Conv > , Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • _mask : Vtl::ImAlg::Bres::DrawDotted< Pixel >
  • _name : YXML::IsName< Cmp > , Vtl::Plf::FilterBase
  • _nls : ImageRef< T > , Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > , Vtl::Plf::ImageRef< T > , ImageRef< int >
  • _pal : IFF::BmpRead
  • _pl : ImageFragmentRgb8
  • _right : Base< T, Kernel::KT_Conv > , Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • _size : Base< T, Kernel::KT_Conv > , Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • _size_ : Vtl::ImAlg::WndFun::Kaiser< T, D > , Vtl::ImAlg::WndFun::common_Trig< T, D, K > , Direct_Ref< float, int > , Vtl::ImAlg::WndFun::Bartlett< T, D > , Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC >
  • _size_of_ramka : Vtl::Plf::OLSI::Gistogramm< T >
  • _st : Vtl::Dbg::TimeElapsed
  • _step : Vtl::ImAlg::Bres::DrawGradient< Pixel >
  • _width : ImageRef< int > , ImageRef< T > , Vtl::Plf::ImageRef< T >
  • _x : Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >
  • _y : Vtl::ImAlg::Bres::SetPixelGray< Pixel, D >


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- k -

  • k : Vtl::Plf::F31::Harris< T > , Vtl::Plf::F31::DeNoise< T > , Harris< float > , HarrisLaplace< float > , DeNoise< T > , Vtl::Plf::F51::HarrisLaplace< T > , Hanina::ZeroCrossVisualization< T >
  • K1 : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • K2 : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >
  • ker : ConvolveVert< float > , Vtl::Plf::ConvolveHorz< T, P > , Vtl::ImAlg::Conv::Impl::Buffer< T, K > , Vtl::Plf::ConvolveVert< T, P > , ConvolveHorz< float >
  • ker0 : Students::Curve::EdgeDetect< T >
  • ker1 : Students::Curve::EdgeDetect< T >
  • ker_x : ImageWin< Real_t > , Vtl::Plf::Kernel::ImageWin< T >
  • ker_y : Vtl::Plf::Kernel::ImageWin< T > , ImageWin< Real_t >


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- l -

  • l : YXML::DNode::IsOR , YXML::DNode::IsAND
  • large2small : Vtl::ImAlg::WndFun::DoG< T, D >
  • last_char : ReadString
  • last_line_offset : YImageFrame
  • last_pos2 : ReadString
  • last_type : VirtDib
  • Layers : MImages2Gray
  • layout : Vtl::Img::ImageNDref< T_SList, T_Layout >
  • left : Vtl::Plf::Extent
  • len : ImageMem8 , ImageMem16 , ImageMemFloat , PtrDelete< T > , ImageMemRgb8 , ImageMem16Stuff
  • length
: IFF::TiffReadIFD
, IFF::TIFF_ImageParms
, IFF::TiffTag
, IFF::TiffWriteIFD
  • Length : IFF::OzFile::Header
  • length : IFF::TIFF_IFDentry
  • level : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • line : ErrorStatusBase
  • line_buffer : VirtDib
  • line_buffer_sz : VirtDib
  • log_value_step : LogGrid< float > , Vtl::ImAlg::Resamp::LogGrid< T >
  • lsg : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • lst : Fifo< Vtl::Plf::FilterElementary * > , Vtl::ImAlg::Registration::Container< Real_t > , Fifo< int > , Vtl::Plf::Fifo< T > , Container< Real_t >


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- m -

  • M : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >
  • m33 : Hanina::FillingHessianMatrix3x3
  • m_a : Basics3D::Eq4Degree
  • m_angle : Basics3D::C_Point2DParam
  • m_b : Basics3D::Eq4Degree
  • m_c : Basics3D::Eq4Degree
  • m_comb : Basics3D::C_Combination
  • m_d : Basics3D::Eq4Degree , StatDiff< T > , Vtl::Plf::F31::StatDiff< T > , Vtl::Plf::F31::StatDiffThresh< T >
  • m_dif : Basics3D::C_AbsDifference
  • m_dst : Basics3D::C_Transform
  • m_dst0 : Basics3D::C_DrawEpipolarLines
  • m_dst1 : Basics3D::C_DrawEpipolarLines
  • m_e : Basics3D::Eq4Degree
  • m_fundM : Basics3D::C_StructureComputation
  • m_groupSize : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point >
  • m_im1 : Basics3D::C_AbsDifference
  • m_im2 : Basics3D::C_AbsDifference
  • m_images : ImageContainer< ImgType >
  • m_img : T_ImagesSet< AImageMem8 > , Basics3D::T_ImagesSet< Image > , Basics3D::C_Combination
  • m_M : Basics3D::T_MistakeFunc< Operations > , T_MistakeFunc< MatrixType >
  • m_maxX : Basics3D::C_StructureComputation
  • m_maxY : Basics3D::C_StructureComputation
  • m_maxZ : Basics3D::C_StructureComputation
  • m_MeanDev : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point >
  • m_MeanX : T_Points2DSet< C_Point2D > , T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point >
  • m_MeanY : T_Points2DSet< Point > , T_Points2DSet< C_Point2D > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point >
  • m_minX : Basics3D::C_StructureComputation
  • m_minY : Basics3D::C_StructureComputation
  • m_minZ : Basics3D::C_StructureComputation
  • m_n : Basics3D::Eq4Degree
  • m_normPoints2D : Basics3D::C_StructureComputation
  • m_numb : Basics3D::C_Point2D
  • m_p1 : Basics3D::C_Triangulation
  • m_p1_1 : Basics3D::C_Triangulation
  • m_p2 : Basics3D::C_Triangulation
  • m_p2_1 : Basics3D::C_Triangulation
  • m_p3 : Basics3D::C_Triangulation
  • m_p3_1 : Basics3D::C_Triangulation
  • m_param : Basics3D::C_Point2DParam
  • m_paramNumb : Basics3D::C_Point2DParam
  • m_Points : Basics3D::T_MistakeFunc< Operations > , T_MistakeFunc< MatrixType > , T_Points2DSet< Point > , Basics3D::C_Points2DParamSet , Basics3D::T_Points2DSet< Point > , T_Points2DSet< C_Point2D >
  • m_points3D : Basics3D::C_StructureComputation
  • m_PointsSet : Basics3D::T_Model< Operations > , T_Model< Operations >
  • m_sigma : Basics3D::C_Point2DParam
  • m_src : Basics3D::C_Transform
  • m_src0 : Basics3D::C_DrawEpipolarLines
  • m_src1 : Basics3D::C_DrawEpipolarLines
  • m_T : Basics3D::T_Model< Operations > , T_Model< Operations >
  • m_T1_1 : Basics3D::T_Model< Operations > , T_Model< Operations >
  • m_texCoord : Basics3D::C_StructureComputation
  • m_x : Basics3D::C_Point2D
  • m_y : Basics3D::C_Point2D
  • mat_1 : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float >
  • mat_2 : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float >
  • mat_3 : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float >
  • matrix_ : DistributionMatrix , ProcessMatrix , CoverageMatrix
  • MAX : Basics3D::SolveEq
  • max_ : ImageProxy< ImageT > , ImageProxyConst< ImageT >
  • max_len : ReadString
  • max_size : Vtl::ImAlg::Registration::Container< Real_t > , Container< Real_t >
  • maxcolor
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
  • maxval : GammaCorMult< float > , Vtl::Plf::F11::Negative< T > , GammaCorMult< float > lin_3mod , Vtl::Plf::F11::GammaCor< T > , Vtl::Plf::F11::GammaCorMult< T > , GammaCor< float > , GammaCorMult< T > , Hanina::ZeroCrossVisualization< T > , Convert< uint8_t >
  • mean : ToBounds< float > , Vtl::Plf::Sharpen< T, P > , Vtl::Plf::MeanAndDisp< T, P > , MeanAndDisp< float >
  • mean_and_disp : Vtl::Plf::StatDiff< T, P > , ToBounds< float > , Vtl::Plf::DeNoise< T, P >
  • mem : Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy > , OFlow< Model, AllocStrategy >
  • memsz : YSmallAllocLtd
  • message : AImage::Error
  • mgrad : Vtl::Plf::Canny< T, P > , Canny< float >
  • microsec : YDataTime , YTimeInterval
  • mincolor
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
  • mode : YFile
  • model : OFlow< Model, AllocStrategy > , Vtl::ImAlg::Registration::OFlow< Model, AllocStrategy >
  • month : IFF::OzFile::Header
  • msg : ErrorStatusBase
  • msg_need_delete : ErrorStatusBase
  • mtype : ImageResample::ImageResampleParams
  • mult : Himg2< T > , Mult< T > , Vtl::Plf::F31::Trace< T > , Vtl::Plf::F11::GammaCorMult< T > , GammaCorMult< float > , Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv > , MaxEigenVal< float > , HarrisLaplace< float > , Vtl::Plf::Fpie::Himg2< T > , Vtl::Plf::F31::MaxEigenVal< T > , Vtl::Plf::F11::Mult< T > , Harris< float > , Vtl::Plf::F51::HarrisLaplace< T > , GammaCorMult< T > , Trace< float > , Vtl::Plf::F31::MinEigenVal< T > , Vtl::Plf::F31::DiffEigenVal< T > , Convert< uint8_t > , Vtl::Plf::F31::Harris< T > , Vtl::Plf::F11::ConvertMult< T > , DiffEigenVal< float > , GammaCorMult< float > lin_3mod , Mult< float > , MinEigenVal< float > , Hanina::FillingHessianMatrix3x3
  • mult01
: Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nNoScale >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
, Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
  • multi_connected_to : Vtl::Plf::FiltersSystem
  • multi_inputs : Vtl::Plf::FiltersSystem


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- n -

  • n : YXML::DNode::AttrRef , Vtl::ImAlg::Resamp::PhiGrid< T > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Offset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::SkewYOffset< Real_t > > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • N : Vtl::NumAlg::Implicit::Sort_base< 0 >
  • n : Vtl::Plf::OLSI::mediana< T > , ToBounds< float > , Vtl::Plf::F11::ToBounds< T > , LogGrid< float > , PhiGrid< Real_t > , WiNode::AttrRef , mediana< T > , Vtl::ImAlg::Resamp::LinGrid< T > , Vtl::ImAlg::Resamp::LogGrid< T > , Basics3D::g
  • N_colors : MSlidingEqualization
  • n_in : Vtl::Plf::Impl::Node
  • n_oto : Vtl::Plf::Impl::Node
  • n_out : MImages2Gray , Vtl::Plf::Impl::Node
  • n_sigmas_in_eviron : Students::Curve::EdgeDetect< T >
  • name : WiNode
  • Nbands : Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • nCorn : TriResult
  • neg : Hanina::ZeroCross< T >
  • neighborlist : triangulateio
  • new_height : ImageResample::ImageResampleParams
  • new_width : ImageResample::ImageResampleParams
  • next : DMatrixElem
  • next_IFD_offset : IFF::TIFF_IFD
  • next_line_shift : ImageMem8
  • nls : Vtl::ImAlg::Tools::findMax::SetPixel< T, stride > , Hanina::ScaleScan3x3< T > , CannyNMS< float > , Hanina::Check_4_grad_sign_change< T > , Hanina::p33< T, 0, 1 > , Hanina::p33< T, 1, 2 > , Hanina::p33< T, 0, 2 > , Hanina::ZeroCross< T > , Vtl::Plf::Fpie::BiLateralSmooth< T > , Check_4_grad_sign_change< T > , SetPixel< float, 1 > , BiLateralSmooth< T > , Himg2< T > , HarrisNMS< float > , Vtl::Img::Image< P, planes, interleave > , InterpBilinear< Real_t > , SrcArray< Real_t, Real_t > , Vtl::Plf::Fpie::HarrisNMS< T > , InterpBilinear< Img::Pixel > , InterpBilinear< Pixel > , Vtl::Plf::DstArray< T, Pixel > , LineIterator< T > , Vtl::Plf::Fpie::HarrisNMS_Smooth< T > , ScaleScan3x3< T > , CannyNMS< T > , Vtl::Plf::Fpie::Himg2< T > , Vtl::Plf::Fpie::CannyNMS< T > , Vtl::Plf::Fpie::CannyNMS_2< T > , Vtl::Plf::SrcArray< T, I, P > , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , Vtl::Plf::LineIterator< T > , DstArray< Real_t, Real_t >
  • nms : Canny< float > , DiZenzo< float > , Vtl::Plf::Canny< T, P > , Vtl::Plf::DiZenzo< T, P > , GammaCor< float > , Vtl::Plf::HImageEdge< T, P >
  • node : YXML::DNode
  • non_enums : SizeList_base< IList > , Layout< T, IList > , Vtl::Meta::Impl::SizeList_base_0< IList, sz >
  • norm
: Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::EElEll::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >
, fromRGB< T, Iter >
, Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >
, Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >
, Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >
  • normlist : triangulateio
  • nTri : TriResult
  • null_detected : ReadString
  • num : YSmallAllocLtd
  • num_inp : Vtl::Plf::FilterBase
  • num_out : Vtl::Plf::FilterBase
  • numberofcorners : triangulateio
  • numberofedges : triangulateio
  • numberofholes : triangulateio
  • numberofpointattributes : triangulateio
  • numberofpoints : triangulateio
  • numberofregions : triangulateio
  • numberofsegments : triangulateio
  • numberoftriangleattributes : triangulateio
  • numberoftriangles : triangulateio


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- o -

  • objsz : YSmallAllocLtd
  • offset : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >
  • ofs : Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ > , Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size
  • ofs_to_cur
: Hanina::p33< T, 0, 1 >
, Hanina::p33< T, 1, 2 >
, Hanina::p33< T, 0, 2 >
  • os_back : Vtl::Plf::Impl::GraphBuilder
  • out : SrcAImage< float, Img > , Vtl::Plf::PixByPix4to1< T, Func, P > , Vtl::Plf::SrcArray< T, I, P > , Vtl::Plf::PixByPix5to1< T, Func, P > , SrcAImage< Real_t, AImageMem8 > , ConvolveVert< float > , GammaCorMult< float > , EnvProc1to1< Real_t, Func, PostThresh > , Vtl::Plf::medianFilter< T, P > , Vtl::Plf::medianFilter2< T, P > , SrcAImage< Real_t, Img > , Y< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , Vtl::Plf::Levels< T, P > , Vtl::Plf::EnvProc1to1< T, Func, P > , Vtl::Plf::FilterResampleVert< T, P > , Vtl::Plf::FilterResampleHorz< T, P > , Vtl::Plf::ConvolveVert< T, P > , HarrisNMS< float > , SrcArray< Real_t, Real_t > , SqrtOfSumSqr< float > , ConvolveHorz< float > , Vtl::Plf::EnvProc3to1< T, Func, P > , Mult< float > , Vtl::Plf::PixByPix2to1< T, F, P > , Vtl::Plf::ConvolveHorz< T, P > , Vtl::Plf::PixByPix3to1< T, Func, P >
  • out_1 : Vtl::Plf::SrcAImageRgb< T, I, P > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
  • out_11 : Vtl::Plf::PixByPix2to3< T, P >
  • out_12 : Vtl::Plf::PixByPix2to3< T, P >
  • out_2 : Vtl::Plf::SrcAImageRgb< T, I, P > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
  • out_22 : Vtl::Plf::PixByPix2to3< T, P >
  • out_3 : Vtl::Plf::SrcAImageRgb< T, I, P > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
  • out_ports : Vtl::Plf::FilterBase
  • out_x : Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
  • out_y : Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
  • outputArea_ : ImageTransformImpl
  • outputCoords_ : ImageTransformImpl
  • outputFragment_ : ImageTransformImpl
  • outputHeight_ : ImageTransformImpl
  • outputVector_ : ImageTransformImpl
  • outputWidth_ : ImageTransformImpl


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- z -

  • z0 : Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > , Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
  • zone : YDataTimeZone
  • zoom : ZoomFactor
  • zoomMatrix_ : CoverageMatrix


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- a -

  • a : YXML::IsAttr< T, Cmp > , Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >
  • A
: Vtl::Plf::F31::StatDiff< T >
, Vtl::ImAlg::Transf::Affine< T >
, Vtl::ImAlg::Model::BaseAffine< T >
, Vtl::ImAlg::Model::Homography< T >
  • a : Basics3D::g
  • A : Affine< T > , StatDiff< T >
  • a : Basics3D::test
  • A : Dlt< value_type >
  • a : Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km , YXML::IsAttrIn< T >
  • A : Vtl::Meta::det< Matrix >
  • a : Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >
  • A : Basics3D::Structure::Dlt< T > , Vtl::Plf::F31::StatDiffThresh< T >
  • a : Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom >
  • A : Vtl::Meta::det_poly_coef< Matrix, N >
  • a0 : Vtl::ImAlg::WndFun::common_Trig< T, D, K >
  • a1 : Vtl::ImAlg::Conv::FastGaussConvolve< T, D > , FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 0 > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , FastGaussConvolve< float, 3 >
  • a2 : FastGaussConvolve< float, 3 > , Vtl::ImAlg::Conv::FastGaussConvolve< T, D > , FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 0 > , FastGaussConvolve< float, 1 > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > , FastGaussConvolve< float, 2 >
  • a3 : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T > , FastGaussConvolve< float, 3 > , Vtl::ImAlg::Conv::FastGaussConvolve< T, D > , FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 0 > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 >
  • Adj : Vtl::Plf::Impl::Node
  • Adj_Next : Vtl::Plf::Impl::Node
  • Adj_Prev : Vtl::Plf::Impl::Node
  • AdjPrev : Vtl::Plf::Impl::Node
  • Aincr : Vtl::ImAlg::Bres::Line< F > , Line< SetPixelFunctor >
  • allocator_ : DistributionMatrix
  • alpha : Vtl::Plf::F21::Sharpen< T > , Vtl::ImAlg::WndFun::Kaiser< T, D > , StatDiff< T > , Vtl::Plf::F31::StatDiff< T > , Sharpen< T > , Vtl::Plf::F31::StatDiffThresh< T >
  • amp_
: Hartley2PhaseAmpDown< 2, Real_t >
, ReflectHalfToOther< 2, Real_t, true >
, Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther< ndim, T, fromUpToDown >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >
  • array : YTHistList< T >
  • Asquared : Vtl::ImAlg::Bres::Circle< T > , Vtl::ImAlg::Bres::EllipseH< F >
  • attrib : YXML::DNode::AttrRef , WiNode::AttrRef
  • aver : AverageGauss< float > , Vtl::Plf::AverageGauss< T, P >
  • avg_xx : Vtl::Plf::Detect< T, Func, P > , GammaCor< float > , Vtl::Plf::HarrisLaplace< T, Func, P >
  • avg_xy : GammaCor< float > , Vtl::Plf::Detect< T, Func, P > , GammaCor< float > , Vtl::Plf::HarrisLaplace< T, Func, P >
  • avg_yy : Vtl::Plf::Detect< T, Func, P > , Vtl::Plf::HarrisLaplace< T, Func, P > , GammaCor< float >


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- b -

  • b : AImage::Rgb , AImage::Bgr
  • B
: Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 1 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >
, Vtl::ImAlg::Conv::FastGaussConvolve< T, D >
, Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >
, Vtl::ImAlg::Registration::Impl::OFlow::BuildB< UseMask, VectorB >
  • b
: Vtl::ImAlg::Transf::Offset< T >
, Vtl::ImAlg::Transf::Affine< T >
, Vtl::ImAlg::Model::Offset< T >
, Vtl::ImAlg::Model::BaseAffine< T >
, Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member_base< T, D, K, I >
, Vtl::Plf::SrcAImageRgb< T, I, P >
, Vtl::Plf::Impl::DelayAdjuster
, Vtl::Plf::FiltersSystem::EdgeLabel_DelayB
, Basics3D::g
, Basics3D::test
, Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >::Km
, IFF::RgbQuad
, Vtl::Img::Rgb< T >
  • B : Vtl::Meta::det_poly_coef< Matrix, N > , FastGaussConvolve< float, DERIV > , FastGaussConvolve< float, 0 > , FastGaussConvolve< float, 1 > , FastGaussConvolve< float, 2 > , FastGaussConvolve< float, 3 >
  • b : Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch > , Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio > , Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveChrom > , Offset< T > , Affine< T >
  • B : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 0 > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 0 >
  • B2 : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >
  • backgroundColor_ : ImageTransformImpl
  • base : Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, stride > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 >
  • base_offset : IFF::BmpRead , IFF::BmpWrite
  • before : Vtl::Plf::Extent
  • begHour : IFF::OzFile::Header
  • begMinutes : IFF::OzFile::Header
  • begSecond1000 : IFF::OzFile::Header
  • bfOffBits : IFF::BMP_BitMapFileHeader
  • bfReserved1 : IFF::BMP_BitMapFileHeader
  • bfReserved2 : IFF::BMP_BitMapFileHeader
  • bfSize : IFF::BMP_BitMapFileHeader
  • bfType : IFF::BMP_BitMapFileHeader
  • bi : Vtl::Plf::BiLateral< T, P > , BiLateral< float >
  • bias : Vtl::Plf::F11::Bias< T >
  • biBitCount : IFF::BMP_BitMapInfoHeader
  • biClrImportant : IFF::BMP_BitMapInfoHeader
  • biClrUsed : IFF::BMP_BitMapInfoHeader
  • biCompression : IFF::BMP_BitMapInfoHeader
  • biHeight : IFF::BMP_BitMapInfoHeader
  • Bincr : Vtl::ImAlg::Bres::Line< F > , Line< SetPixelFunctor >
  • biPlanes : IFF::BMP_BitMapInfoHeader
  • biSize : IFF::BMP_BitMapInfoHeader
  • biSizeImage : IFF::BMP_BitMapInfoHeader
  • bits : ImageMemFloat , ImageMemRgb8
  • Bits : IFF::OzFile::Header
  • bits : ImageMem16Stuff , IFF::PBMfile , IFF::TiffWriteIFD , VirtDib::Inf , IFF::TiffReadIFD , AImage::Info , ImageMem8 , ImageMem16
  • bits_ : ImageVectorT< Base, Bit8, Bit16 > , ImageProxyVector
  • bitsPerSample : Vtl::Img::ImageInfo
  • biWidth : IFF::BMP_BitMapInfoHeader
  • biXPelsPerMeter : IFF::BMP_BitMapInfoHeader
  • biYPelsPerMeter : IFF::BMP_BitMapInfoHeader
  • blank : InterpBilinear< Pixel > , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , InterpBilinear< Img::Pixel > , InterpBilinear< Real_t >
  • block_size : YTArray< T >
  • BottomRight : YRect< T > , YRect< int >
  • Bsquared : Vtl::ImAlg::Bres::Circle< T > , Vtl::ImAlg::Bres::EllipseH< F >
  • Bt : MSlidingEqualization
  • buf : ConvInplace< float, K1 > , Conv< T, K > , ConvInplace< float, K0 > , CyclicConvInplace< float, K > , YImageFrame , ConvInplace< float, K0 > , CyclicConvInplace< T, K > , CyclicConvInplace< T, K1 > , ConvInplace< float, K3 > , CyclicConv< T, K1 > , Conv< T, K1 > , ConvInplace< float, K > , CyclicConv< T, K > , ConvInplace< T, K > , Vtl::ImAlg::Conv::CyclicConv< T, K > , Vtl::ImAlg::Conv::Conv< T, K > , ConvInplace< float, K4 > , Conv< T, K2 > , ConvInplace< T, K2 > , Vtl::ImAlg::Conv::CyclicConvInplace< T, K > , ConvInplace< T, K1 > , ConvInplace< float, K2 > , Vtl::Img::ImageDataLayoutHolder , Conv< float, K > , CyclicConv< T, K2 > , CyclicConvInplace< T, K2 >
  • buf_alloc : IFF::Tiff8Read
  • buffer : OutPortNoPostProc< Real_t > , ReadString , Vtl::Plf::OutPortNoPostProc< T > , Iter_Line
  • byte_order : IFF::TIFF_Header
  • bytes_per_row : IFF::BmpWrite , IFF::BmpRead , VirtDib , VirtDib::Inf


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- c -

  • c
: Vtl::ImAlg::WndFun::Bartlett< T, D >
, Vtl::ImAlg::WndFun::Sinc< T, 0 >
, Vtl::ImAlg::WndFun::Kaiser< T, D >
, Vtl::Plf::F11::Threshold< T, Comp >
, Vtl::ImAlg::WndFun::common_Trig< T, D, K >
, Basics3D::g
  • Chan : IFF::OzFile::Header
  • ClassType : MSlidingEqualization
  • cls : ErrorStatusBase
  • cls_this : ErrorStatusBase
  • cm : cos_Member< float, 0, 4, 1 > , cos_Member< float, 1, 4, 1 > , cos_Member< float, 2, 4, 1 > , cos_Member< float, 3, 4, 1 > , Vtl::ImAlg::WndFun::Impl::common_Trig::cos_Member< T, D, K, I > , Vtl::ImAlg::WndFun::common_Trig< T, D, K >
  • coef : Vtl::Meta::det_poly_coef< Matrix, N >
  • cof : Vtl::Plf::FilterResampleVert< T, P >
  • color_modul_eigvec : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float >
  • cond : YXML::DNode::IsCond
  • connected_to : Vtl::Plf::OutPortBase
  • container : Vtl::Plf::DstContainer< T, C, P > , DstContainer< Real_t, Container_t >
  • conv2D : Average< float > , Vtl::Plf::Average< T, P >
  • corr : GammaCor< float > , Vtl::Plf::HarrisLaplace< T, Func, P > , GammaCor< float > , Vtl::Plf::GradientCorr< T, P > , Vtl::Plf::Detect< T, Func, P > , GammaCor< float >
  • corr_ : Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > , PhaseCorr< Real_t >
  • count : YSmallAllocLtd , YTHistListTag< T >
  • coverageMatrix_ : ImageTransformMatrixFastImpl


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- d -

  • d : Vtl::ImAlg::Bres::Line< F > , Vtl::ImAlg::Conv::SliceIterConst< T, stride > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 > , SliceIter< T, stride > , SliceIter< T, stride > d stride , SliceIter< T, 0 > , SliceIter< T, 0 > d stride_var , SliceIterConst< T, stride > , SliceIterConst< T, stride > d stride , SliceIterConst< T, 0 > , SliceIterConst< T, 0 > d stride_var , Line< SetPixelFunctor > , Vtl::ImAlg::Bres::Circle< T > , Vtl::ImAlg::Bres::EllipseH< F > , Vtl::Plf::Impl::DelayAdjuster , Vtl::ImAlg::Conv::SliceIter< T, stride > , Basics3D::g , Vtl::ImAlg::Conv::SliceIter< T, 0 >
  • data : VirtDib , YSmallAllocLtd , Vtl::ImAlg::Conv::Impl::Buffer< T, K > , Vtl::Img::Iterator_1D< T, T_stride > , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > , InterpBilinear< Real_t > , ImageMem8 , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ > , SrcArray< Real_t, Real_t > , InterpBilinear< Img::Pixel > , InterpBilinear< Pixel > , Vtl::Img::Iterator_1D< T, 0 > , Base< T, Kernel::KT_Conv > , YTArray< T > , Vtl::Img::ImageNDref< T_SList, T_Layout > , ImageMem16Stuff , ImageMem16 , Vtl::Plf::SrcArray< T, I, P > , Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , YTArray< T > , ImageMemFloat , Hanina::Hessian3D< T > , Cluster1D< T, DatumType > , Cluster2D< T, DatumType >
  • data8 : ImageMemRgb8
  • data_ : Vtl::NumAlg::IntTransf::Utils::F::Test< T > , Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< false, T > , Vtl::ImAlg::Registration::Storage< T, ndim, align, avoid_ptrdiff > , Test< float >
  • data_in_ : Hartley2Modul< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T > , Hartley2Re< T > , Hartley2Im< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T >
  • data_offset : IFF::PBMfile
  • data_out_ : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Re< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Im< T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Modul< T > , Hartley2Re< T > , Hartley2Im< T > , Hartley2Modul< T >
  • data_sz : VirtDib
  • day : IFF::OzFile::Header
  • debug_fname : DebugToFile
  • den : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >
  • denoise : ToBounds< float > , Vtl::Plf::DeNoise< T, P >
  • det : GammaCor< float > , Vtl::Plf::Detect< T, Func, P > , Vtl::Plf::HarrisLaplace< T, Func, P >
  • disp : MeanAndDisp< float > , Vtl::Plf::MeanAndDisp< T, P >
  • distributionMatrix_ : ImageTransformMatrixImpl
  • dll : DllModule
  • dlt : Comp3D< value_type > , Basics3D::Structure::Comp3D< T >
  • dst : Vtl::Plf::Impl::GraphBuilder
  • dt : YDataTimeZone
  • dx : YImageFrame , Vtl::ImAlg::Bres::EllipseH< F > , Vtl::ImAlg::Bres::Circle< T >
  • dx2 : YImageFrame
  • dy : Vtl::ImAlg::Bres::Circle< T > , YImageFrame , Vtl::ImAlg::Bres::EllipseH< F >
  • dy2 : YImageFrame


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- e -

  • E : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , CameraPoseFromEssential< value_type > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::CameraPoseFromEssential< T >
  • edgeH_ : ImageTransformImpl
  • edgelist : triangulateio
  • edgemarkerlist : triangulateio
  • edges
: Vtl::Plf::Impl::GraphBuilder
, Vtl::Plf::Impl::DelayAdjuster
, Vtl::Plf::FiltersSystem
  • edgeV_ : ImageTransformImpl
  • eig_curr : Hanina::Planes3< T >
  • eig_next : Hanina::Planes3< T >
  • eig_prev : Hanina::Planes3< T >
  • eigen : Hanina::FillingHessianMatrix3x3
  • enableGridAdjustment_ : ImageTransformImpl
  • endHour : IFF::OzFile::Header
  • endMinutes : IFF::OzFile::Header
  • endSecond1000 : IFF::OzFile::Header
  • entries : IFF::TiffWriteIFD , IFF::TiffReadIFD
  • Entry0 : IFF::TIFF_IFD
  • entry_count : IFF::TIFF_IFD
  • eof_detected : ReadString
  • eps
: Vtl::Plf::Fpie::CannyNMS_2< T >
, Vtl::NumAlg::Lin::PseudoInverseElemPositive< T >
, Vtl::NumAlg::Lin::PseudoInverseElem< T >
  • eps_22 : Vtl::Plf::Fpie::BiLateralSmooth< T > , BiLateralSmooth< T >
  • err : ImageMem16Stuff::Error
  • errorColor_ : ImageTransformImpl
  • ex : Vtl::Plf::StripBuffer< T >
  • exitStatus : childPipe
  • ext_required : Vtl::Plf::InPortBase
  • extra_delay : Vtl::Plf::Impl::Node


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- f -

  • f : YSmallAllocLtd , Basics3D::g
  • F : Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , Basics3D::Fm2Essential::KruppaEq< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > , TriResult
  • f0 : Students::Curve::EdgeDetect< T >
  • f1 : Basics3D::g , Students::Curve::EdgeDetect< T >
  • fheight : tplAImageFragment< ImgT >
  • fil : Vtl::Plf::Impl::Node
  • file : ErrorStatusBase
  • filename : YXML::XMLdoc
  • fill : ImageResample::ImageResampleParams
  • fill_int : ImageResample::ImageResampleParams
  • filter : Vtl::Plf::Port , Vtl::Plf::OutPortBase::Connection
  • filtername : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , Base< T, Kernel::KT_Conv >
  • finished
: Vtl::Plf::InPortBase
, Vtl::Plf::OutPortBase
, Vtl::Plf::FilterElementary
  • first_ : Convert< uint8_t > , GammaCorMult< T > P , Convert< uint8_t > , Convert2ByteBounded , Convert< uint8_t > , Lin< float > , Abs< float > , Vtl::Plf::F11::Comb< T, F1, F2 >
  • first_pos2 : ReadString
  • flag : Basics3D::Structure::Pt< T >
  • flags : Gen::Data::SaveFormat
  • flipH_ : ImageTransformImpl
  • flipV_ : ImageTransformImpl
  • fname : WiNode , WinIniFile
  • fname_dot : Vtl::Plf::FiltersSystem
  • focus : Basics3D::Structure::CameraPos< T >
  • focus_sqr : ProjectiveToMetric< value_type > , Basics3D::Structure::ProjectiveToMetric< T >
  • forward : Vtl::Plf::Extent
  • fp_debug : DebugToFile
  • from : ImageResample::ImageResampleParams , PhiGrid< Real_t > , Vtl::ImAlg::Resamp::PhiGrid< T >
  • full_width : Vtl::Plf::StripBuffer< T >
  • func : Vtl::Plf::PixByPix5to1< T, Func, P > , Vtl::Plf::EnvProc1to1< T, Func, P > , Vtl::Plf::PixByPix4to1< T, Func, P > , Vtl::Plf::EnvProc3to1< T, Func, P > , HarrisNMS< float > , EnvProc1to1< Real_t, Func, PostThresh > , Vtl::Plf::PixByPix3to1< T, Func, P > , Y< float > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > , Vtl::Plf::EnvProc1to2< T, Func, P1, P2 >
  • functor : GammaCorMult< float > , Vtl::ImAlg::Bres::Line< F > , SqrtOfSumSqr< float > , Vtl::Plf::PixByPix2to3< T, P > , Line< SetPixelFunctor > , Vtl::Plf::PixByPix2to1< T, F, P >
  • functor_post_proc : Iter_Line , Vtl::Plf::OutPort< T, P >
  • fwidth : tplAImageFragment< ImgT >
  • fx : tplAImageFragment< ImgT >
  • fy : tplAImageFragment< ImgT >


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- g -

  • g
: AImage::Rgb
, AImage::Bgr
, Vtl::Img::Rgb< T >
, IFF::RgbQuad
, Vtl::Plf::SrcAImageRgb< T, I, P >
  • g0 : Students::Curve::EdgeDetect< T >
  • g1 : Students::Curve::EdgeDetect< T >
  • gamma : GammaCorMult< float > , GammaCor< float > , GammaCorMult< T > , Vtl::Plf::F11::GammaCor< T > , Vtl::Plf::F11::GammaCorMult< T > , GammaCorMult< float > lin_3mod , Convert< uint8_t >
  • gauss : AverageGauss< float > , MeanAndDisp< float > , GradientModul< float > , GammaCor< float > , Vtl::Plf::MeanAndDisp< T, P > , Vtl::Plf::GradientCorr< T, P > , Vtl::Plf::DiZenzo< T, P > , DiZenzo< float > , Vtl::Plf::Detect< T, Func, P > , Vtl::Plf::HarrisLaplace< T, Func, P > , GammaCor< float > , Vtl::Plf::AverageGauss< T, P > , Vtl::Plf::GradientModul< T, P >
  • gauss_deriv : Vtl::Plf::GradientModul< T, P > , GradientModul< float > , Vtl::Plf::GradientCorr< T, P > , DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • gishh : Vtl::Plf::OLSI::Gistogramm< T >
  • gisInf : Vtl::Plf::OLSI::Gistogramm2< T >
  • gisMedians : Vtl::Plf::OLSI::Gistogramm< T >
  • gisMem : Vtl::Plf::OLSI::Gistogramm< T >
  • gistogr : Vtl::Plf::medianFilter< T, P > , Vtl::Plf::medianFilter2< T, P >
  • grad_x_curr : Hanina::Planes3< T >
  • grad_x_next : Hanina::Planes3< T >
  • grad_y_curr : Hanina::Planes3< T >
  • grad_y_next : Hanina::Planes3< T >
  • graph
: Vtl::Plf::Impl::GraphBuilder
, Vtl::Plf::FiltersSystem
, Vtl::Plf::Impl::DelayAdjuster
  • gridNode_ : ImageTransformImpl
  • gx : GradientModul< float > , Vtl::Plf::GradientModul< T, P > , Vtl::Plf::GradientCorr< T, P >
  • gx_1 : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • gx_2 : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float >
  • gx_3 : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • Gxx : Hanina::Hessian3D< T >
  • Gxxx : Hanina::Hessian3D< T >
  • Gxxxx : Hanina::Hessian3D< T >
  • Gxxyy : Hanina::Hessian3D< T >
  • Gxy : Hanina::Hessian3D< T >
  • Gxyy : Hanina::Hessian3D< T >
  • gy : GradientModul< float > , Vtl::Plf::GradientCorr< T, P > , Vtl::Plf::GradientModul< T, P >
  • gy_1 : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float >
  • gy_2 : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • gy_3 : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float >
  • Gyxx : Hanina::Hessian3D< T >
  • Gyy : Hanina::Hessian3D< T >
  • Gyyy : Hanina::Hessian3D< T >
  • Gyyyy : Hanina::Hessian3D< T >


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- h -

  • h : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D > , GammaCorMult< float > , Forward< T, D > , Reverse< T, D > , Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride > , InterpBilinear< Real_t > , SrcArray< Real_t, Real_t > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size , InterpBilinear< Img::Pixel > , InterpBilinear< Pixel > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • H : Vtl::ImAlg::Registration::Impl::OFlow::BuildHB< UseMask, MatrixH, VectorB >
  • h : Vtl::Plf::HImage< T, P >
  • H : Vtl::ImAlg::Transf::Homography< T >
  • h
: Vtl::Plf::SrcArray< T, I, P >
, Vtl::Plf::SrcAImageRgb< T, I, P >
, Vtl::Plf::DstArray< T, Pixel >
, Vtl::Plf::DstContainer< T, C, P >
, Hanina::Hessian3D< T >
, Hanina::Planes3< T >
  • h2_x_curr : Hanina::Planes3< T >
  • h2_x_next : Hanina::Planes3< T >
  • h2_y_curr : Hanina::Planes3< T >
  • h2_y_next : Hanina::Planes3< T >
  • h2_z_curr : Hanina::Planes3< T >
  • h2_z_next : Hanina::Planes3< T >
  • h3_x_curr : Hanina::Planes3< T >
  • h3_x_next : Hanina::Planes3< T >
  • h3_y_curr : Hanina::Planes3< T >
  • h3_y_next : Hanina::Planes3< T >
  • h3_z_curr : Hanina::Planes3< T >
  • h3_z_next : Hanina::Planes3< T >
  • h_ : ProcessMatrix , CoverageMatrix , CoordArray2D , DistributionMatrix
  • h_conv : Vtl::Plf::SeparableConv2D< T, P >
  • h_max : Vtl::Plf::FilterElementary
  • h_new : Vtl::Plf::FilterResampleVert< T, P >
  • h_old : Vtl::Plf::FilterResampleVert< T, P >
  • h_resamp : Vtl::Plf::Resample< T, P > , Resample< float >
  • half_cent : Vtl::ImAlg::WndFun::Sinc< T, 0 >
  • half_height : Container< Real_t > , Vtl::ImAlg::Registration::Container< Real_t >
  • half_width
: Vtl::ImAlg::Registration::Container< Real_t >
, Container< Real_t >
, Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >
, Vtl::ImAlg::WndFun::DoG< T, D >
, Vtl::ImAlg::WndFun::Sinc< T, 0 >
  • handle : YXML::XMLdoc , YFile , YFileRead , YFileWrite
  • handle_ : WritePipe , ReadPipe
  • hartley1_ : Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > , PhaseCorr< Real_t >
  • hartley2_ : Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr< T > , PhaseCorr< Real_t >
  • hartley_
: Vtl::NumAlg::IntTransf::Hartley::F::Hartley2AmpDown< ndim, T >
, Hartley2PhaseAmpDown< 2, Real_t >
, Hartley2Phase< Real_t >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Amp< T, amp_in_up_half_plane, only_half_amp >
, Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >
  • hdrsize : IFF::FloatImageFile::Header
  • head : IFF::OzFile , IFF::FloatImageFile
  • header : IFF::BmpRead , IFF::BmpWrite
  • height
: Vtl::Plf::ImgSize
, Vtl::Img::ImageInfo
, AImage::Info
, YImageFrame
, IFF::PBMfile
, IFF::FloatImageFile::Header
, VirtDib::Inf
  • height_ : ImageVectorT< Base, Bit8, Bit16 > , ImageProxyVector
  • hess3d : Hanina::Planes3< T >
  • hi : Vtl::Plf::Fpie::Himg< T > , Himg< T >
  • Hi : MSlidingEqualization
  • himage : Vtl::Plf::HImageEdge< T, P > , GammaCor< float >
  • hist : MSlidingEqualization
  • holelist : triangulateio


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- i -

  • I : Vtl::Plf::OLSI::mediana< T > , mediana< T >
  • i_in : Vtl::Plf::OutPortBase::Connection
  • iclass : AImage::Info , Vtl::Img::ImageInfo
  • ics_ : TransformCell
  • id : HarrisNMS< float > , ConvolveHorz< float > , ConvolveVert< float > , GammaCorMult< float > , Mult< float > , IFF::FloatImageFile::Header , SrcArray< Real_t, Real_t > , EnvProc1to1< Real_t, Func, PostThresh > , DstContainer< Real_t, Container_t > , SqrtOfSumSqr< float > , DstArray< Real_t, Real_t > , Vtl::Plf::Impl::Node , Vtl::Plf::Impl::GraphBuilder , Vtl::Plf::FilterElementary , Basics3D::Structure::CameraPos< T > , Basics3D::Structure::Pt< T > , SrcAImage< Real_t, Img > , SrcAImage< Real_t, AImageMem8 > , Y< float > , SrcAImage< Real_t, T > , SrcAImage< unsigned, Img > , DstAImage< unsigned, Img > , SrcAImage< float, Img > , DstAImage< float, Img >
  • id_edge : Vtl::Plf::Impl::Edge
  • id_if : Vtl::Plf::Impl::Edge
  • id_inp : Vtl::Plf::Impl::Edge
  • id_of : Vtl::Plf::Impl::Edge
  • id_outp : Vtl::Plf::Impl::Edge
  • idl : Vtl::Img::ImageDataLayoutHolder , Vtl::Img::ImageHolder< P, planes, interleave, AllocStrategy > , Vtl::Img::ImageBase< P, planes, interleave >
  • ifd : IFF::TiffReadIFD , IFF::TiffWriteIFD
  • IFD0_offset : IFF::TIFF_Header
  • im : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • im1 : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • im2 : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • im_ : Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >
  • imag : Vtl::Img::complex_type< float > , Vtl::Img::complex_type< double >
  • image : Hanina::Planes3< T >
  • image_ : ImageProxy< ImageT > , ImageProxyConst< ImageT >
  • imageClass_ : ImageVectorT< Base, Bit8, Bit16 > , ImageProxyVector
  • imeth : ImageResample::ImageResampleParams
  • img : YImageFrame , DstArray< Real_t, Real_t > , Vtl::Plf::DstArray< T, Pixel > , tplAImageReference< ImgT >
  • img_class : IFF::BmpWrite , ImageMem8 , IFF::BmpRead
  • ims : Vtl::Plf::StripBuffer< T >
  • in : DstContainer< Real_t, Container_t > , ToBounds< float > , GammaCor< float > , MeanAndDisp< float > , Vtl::Plf::ConvolveVert< T, P > , ConvolveHorz< float > , ConvolveVert< float > , Vtl::Plf::EnvProc1to1< T, Func, P > , Vtl::Plf::EnvProc1to2< T, Func, P1, P2 > , EnvProc1to1< Real_t, Func, PostThresh > , Vtl::Plf::ConvolveHorz< T, P > , Vtl::Plf::FilterResampleHorz< T, P > , Vtl::Plf::Sharpen< T, P > , Vtl::Plf::GradientModul< T, P > , Vtl::Plf::MeanAndDisp< T, P > , Vtl::Plf::StatDiff< T, P > , Vtl::Plf::DeNoise< T, P > , Vtl::Plf::GradientCorr< T, P > , Vtl::Plf::HarrisLaplace< T, Func, P > , Vtl::Plf::DstArray< T, Pixel > , Vtl::Plf::DstContainer< T, C, P > , Mult< float > , Vtl::Plf::FilterResampleVert< T, P > , Vtl::Plf::Levels< T, P > , DstArray< Real_t, Real_t > , Vtl::Plf::medianFilter< T, P > , Vtl::Plf::medianFilter2< T, P > , GradientModul< float > , HarrisNMS< float > , DstAImage< unsigned, Img > , DstAImage< float, Img > , ToBounds< float >
  • in_1 : Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > , GammaCorMult< float > , SqrtOfSumSqr< float > , Vtl::Plf::DiZenzo< T, P > , Vtl::Plf::PixByPix2to1< T, F, P > , Vtl::Plf::PixByPix2to3< T, P > , Vtl::Plf::PixByPix4to1< T, Func, P > , DiZenzo< float > , Vtl::Plf::PixByPix5to1< T, Func, P >
  • in_2 : Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 > , SqrtOfSumSqr< float > , Vtl::Plf::DiZenzo< T, P > , Vtl::Plf::PixByPix2to3< T, P > , Vtl::Plf::PixByPix5to1< T, Func, P > , Vtl::Plf::PixByPix2to1< T, F, P > , GammaCorMult< float > , Vtl::Plf::PixByPix4to1< T, Func, P > , DiZenzo< float >
  • in_3 : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float > , Vtl::Plf::PixByPix5to1< T, Func, P > , Vtl::Plf::PixByPix4to1< T, Func, P > , Vtl::Plf::PixByPix3to3< T, Func, P1, P2, P3 >
  • in_4 : Vtl::Plf::PixByPix4to1< T, Func, P > , Vtl::Plf::PixByPix5to1< T, Func, P >
  • in_5 : Vtl::Plf::PixByPix5to1< T, Func, P >
  • in_gx : Vtl::Plf::EnvProc3to1< T, Func, P >
  • in_gy : Vtl::Plf::EnvProc3to1< T, Func, P >
  • in_ports : Vtl::Plf::FilterBase
  • in_queue : Vtl::Plf::FilterElementary
  • in_val : Vtl::Plf::EnvProc3to1< T, Func, P >
  • in_xx : Vtl::Plf::PixByPix3to1< T, Func, P > , Y< float >
  • in_xy : Y< float > , Vtl::Plf::PixByPix3to1< T, Func, P >
  • in_yy : Vtl::Plf::PixByPix3to1< T, Func, P > , Y< float >
  • index
: SortS< double >
, Vtl::NumAlg::Implicit::Sort_base< 0 >
, Basics3D::SortS< T >
, Vtl::NumAlg::Implicit::Sort_base< N_ >
  • indicator : ImageResample::ImageResampleParams
  • inf8pal : VirtDib
  • inf8rgb : VirtDib
  • info : IFF::BmpWrite , VirtDib , IFF::BmpRead , Vtl::Img::ImageDataLayout
  • inps : Vtl::Plf::InPortComb< T > , InPortComb< T >
  • input : InPort< T > , Vtl::Plf::InPort< T >
  • inputCoords_ : ImageTransformImpl
  • inputFragment_ : ImageTransformImpl
  • inputHeight_ : ImageTransformImpl
  • inputImageHeight_ : ImageTransformImpl
  • inputImageWidth_ : ImageTransformImpl
  • inputVector_ : ImageTransformImpl
  • inputWidth_ : ImageTransformImpl
  • interleave : Vtl::Img::ImageInfo
  • ir : Vtl::Plf::StripBuffer< T >
  • is_edged : Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > >
  • is_valid : ImageResample::ImageResampleParams
  • istore : AImage::Info


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- p -

  • p : DMatrixElem , DatumXY< T >
  • P : TriResult
  • P1 : Basics3D::Structure::Dlt< T > , Dlt< value_type > , ProjectiveToMetric< value_type >
  • p1 : Basics3D::Structure::Pt< T >
  • P1 : Basics3D::Structure::ProjectiveToMetric< T >
  • p1_1 : Basics3D::Structure::Dlt< T > , Dlt< value_type >
  • p1_2 : Basics3D::Structure::Dlt< T > , Dlt< value_type >
  • p1_3 : Basics3D::Structure::Dlt< T > , Dlt< value_type >
  • P2 : Basics3D::Structure::Dlt< T > , Dlt< value_type > , ProjectiveToMetric< value_type >
  • p2 : Basics3D::Structure::Pt< T >
  • P2 : Basics3D::Structure::ProjectiveToMetric< T >
  • p2_1 : Basics3D::Structure::Dlt< T > , Dlt< value_type >
  • p2_2 : Basics3D::Structure::Dlt< T > , Dlt< value_type >
  • p2_3 : Dlt< value_type > , Basics3D::Structure::Dlt< T >
  • p3D : Basics3D::Structure::Pt< T >
  • p_ : CoordArray2D
  • pal : Vtl::Img::ImageDataLayout , ImageMem8
  • pal_entries : VirtDib , IFF::BmpRead , ImageMem8 , VirtDib::Inf , IFF::BmpWrite
  • pal_length : IFF::TiffWriteIFD , IFF::TiffReadIFD
  • pal_offset
: IFF::BmpWrite
, IFF::TiffReadIFD
, IFF::TiffWriteIFD
  • palette_entries : Vtl::Img::PaletteAccess
  • palette_ptr : Vtl::Img::PaletteAccess
  • palette_type : Vtl::Img::PaletteAccess
  • phase_ : Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp< T, amp_in_up_half_plane, only_half_amp > , Hartley2Phase< Real_t > , Hartley2PhaseAmpDown< 2, Real_t > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown< ndim, T > , Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase< T >
  • phi : Vtl::ImAlg::Model::Similarity< T >
  • pi : childPipe
  • pics_ : TransformCell
  • pImpl_ : ImageTransform
  • pl : ImageFragmentRgb8
  • plane
: Hanina::p33< T, 1, 2 >
, Hanina::p33< T, 0, 1 >
, Hanina::p33< T, 0, 2 >
  • planes : Vtl::Img::ImageInfo
  • pointattributelist : triangulateio
  • pointlist : triangulateio
  • pointmarkerlist : triangulateio
  • points : Comp3D< value_type > , Basics3D::Structure::Comp3D< T >
  • points2D : Comp3D< value_type > , Basics3D::Structure::Comp3D< T >
  • polygon_ : ImageTransformMatrixImpl
  • port : Vtl::Plf::Port
  • pos
: ReadString
, Hanina::ZeroCross< T >
, Vtl::ImAlg::Bres::DrawGradient< Pixel >
, Vtl::ImAlg::Conv::Impl::Buffer< T, K >
  • prcs_ : TransformCell
  • prec_ : Dbg::Format::F
  • prev
: Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 3 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 1 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadF< T, 2 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 2 >
, Vtl::ImAlg::Conv::Impl::FastGaussConvolve::HeadR< T, 3 >
  • prms : ImageResample
  • processed_ : ImageTransformCellImpl
  • proxies_ : ImageProxyVector
  • ptr : Vtl::Img::pic_plane< pel, stride > , Vtl::ImAlg::Bres::SetPixelGray< Pixel, D > , Vtl::Plf::LineIterator< T > , ColumnIteratorFast< T > , LineIterator< T > , PtrDelete< T > , PtrArrayDel< T > , Vtl::Plf::ColumnIteratorFast< T >
  • ptr_after_right : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , Base< T, Kernel::KT_Conv >
  • ptr_beg_ins : Vtl::Plf::StripBuffer< T >
  • ptr_center : Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ > , Base< T, Kernel::KT_Conv >
  • ptr_left : Base< T, Kernel::KT_Conv > , Vtl::Plf::Kernel::Base< T, kernel_type_, double_kernel_ >
  • ptr_sizeof : Vtl::Img::ImageDataLayout


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- q -

  • q : Quaternion< T > , Quaternion< value_type > Vector_3 , Quaternion< value_type >


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- r -

  • r : YXML::DNode::IsOR , YXML::DNode::IsAND
  • R : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , Basics3D::Structure::CameraPos< T >
  • r : Vtl::Plf::medianFilter< T, P > , Vtl::Plf::medianFilter2< T, P > , AImage::Rgb , BiLateralSmooth< T > , Himg2< T >
  • R : CameraPoseFromEssential< value_type >
  • r
: AImage::Bgr
, Vtl::Plf::F11::Threshold< T, Comp >
, IFF::RgbQuad
, Vtl::Plf::Fpie::Himg2< T >
, Vtl::Plf::Fpie::BiLateralSmooth< T >
, Vtl::Img::Rgb< T >
, Vtl::Plf::SrcAImageRgb< T, I, P >
  • R0 : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type >
  • radians : ImageResample::ImageResampleParams
  • rank : Vtl::Plf::Impl::Node
  • raw_data : Vtl::Img::Image< P, planes, interleave >
  • rcs_ : TransformCell
  • rdpipe_ : ReadString
  • re : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • re1 : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • re2 : Vtl::NumAlg::IntTransf::Fourier::F::SplitEvenOdd< T, first_second_or_both, layout >
  • re_ : Vtl::NumAlg::IntTransf::Fourier::F::ClalcF1F2conj< true, T >
  • real : Vtl::Img::complex_type< float > , Vtl::Img::complex_type< double >
  • reference_counter : YXML::Xercesc
  • regionlist : triangulateio
  • reserv
: Vtl::Img::SampleAccess
, Vtl::Img::PaletteAccess
, Vtl::Img::ImageDataLayout
  • reserved
: IFF::FloatImageFile::Header
, IFF::OzFile::Header
, IFF::RgbQuad
  • result : Vtl::Meta::det< Matrix >
  • right : Vtl::Plf::Extent
  • role : Vtl::Plf::Impl::Node
  • rowsPS : IFF::TiffReadIFD , IFF::TiffWriteIFD


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- s -

  • s1 : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >
  • s2 : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >
  • s3 : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Tail< T >
  • sample : Vtl::Img::ImageDataLayout
  • sample_nextLineShift : Vtl::Img::SampleAccess
  • sample_ptr : Vtl::Img::SampleAccess
  • sample_step : Vtl::Img::SampleAccess
  • sample_type_id : Vtl::Img::ImageInfo
  • save : Vtl::ImAlg::Conv::CyclicConvInplace< T, K > , Vtl::ImAlg::Conv::ConvInplace< T, K > , CyclicConvInplace< float, K > , ConvInplace< float, K > , CyclicConvInplace< T, K1 > , CyclicConvInplace< T, K2 > , CyclicConvInplace< T, K > , ConvInplace< T, K1 > , ConvInplace< T, K2 > , ConvInplace< T, K > , ConvInplace< float, K3 > , ConvInplace< float, K0 > , ConvInplace< float, K1 > , ConvInplace< float, K2 > , ConvInplace< float, K4 > , ConvInplace< float, K0 >
  • scale : Vtl::ImAlg::Model::Similarity< T >
  • scale_ : ImageTransformImpl
  • sec_digits : DataString
  • second_ : Vtl::Plf::F11::Comb< T, F1, F2 > , Convert< uint8_t > , Lin< float > , Abs< float > , Convert< uint8_t > , GammaCorMult< T > P , Convert2ByteBounded , Convert< uint8_t >
  • secondParts : Vtl::Plf::OLSI::Gistogramm2< T >
  • segmentlist : triangulateio
  • segmentmarkerlist : triangulateio
  • sgn : DatumR< T >
  • sharp : ToBounds< float > , Vtl::Plf::Sharpen< T, P >
  • shiftx : ImageResample::ImageResampleParams
  • shifty : ImageResample::ImageResampleParams
  • sigma
: Vtl::Plf::GradientCorr< T, P >
, Vtl::Plf::DiZenzo< T, P >
, Students::Curve::EdgeDetect< T >
, Basics3D::SortS< T >
, Canny< float >
, DiZenzo< float >
, GradientModul< float >
, Vtl::ImAlg::WndFun::Gauss< T, D, norm_deriv >
, Vtl::ImAlg::WndFun::DoG< T, D >
, SortS< double >
, Vtl::Plf::GradientModul< T, P >
, Vtl::Plf::Canny< T, P >
  • sigma_22 : Vtl::Plf::Fpie::BiLateralSmooth< T > , BiLateralSmooth< T >
  • sigma_d : Vtl::Plf::F31::StatDiff< T > , Vtl::Plf::F31::StatDiffThresh< T > , StatDiff< T >
  • sign_ : Dbg::Format::F
  • size : YTArray< T > , Vtl::ImAlg::Registration::Hartley< Real_t, Vtl::ImAlg::Model::Similarity< Real_t > > , PtrArrayDel< T >
  • sizes : Vtl::Img::ImageNDref< T_SList, T_Layout > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • sorted : Vtl::Plf::Impl::GraphBuilder
  • sources : Vtl::Plf::FiltersSystem
  • spi : IFF::TiffReadIFD , IFF::TiffWriteIFD
  • sqr : MeanAndDisp< float > , Vtl::Plf::MeanAndDisp< T, P >
  • sqr_mean : Vtl::Plf::MeanAndDisp< T, P > , MeanAndDisp< float >
  • src : Vtl::ImAlg::Tools::findMax::SetPixel< T, stride > , SetPixel< float, 1 > , Vtl::Plf::Impl::GraphBuilder
  • src_image : MSlidingEqualization
  • stat : ToBounds< float > , Vtl::Plf::StatDiff< T, P >
  • stderr_ : childPipe
  • stdin_ : childPipe
  • stdout_ : childPipe
  • step : YTArray< T > , Vtl::ImAlg::Resamp::LinGrid< T > , Vtl::ImAlg::Resamp::PhiGrid< T > , PhiGrid< Real_t > , YTArray< T >
  • storage_ : Vtl::ImAlg::Registration::Base< Real_t, MemBlocks > , Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
  • str_length : IFF::TiffWriteIFD , IFF::TiffReadIFD
  • str_offset : IFF::TiffReadIFD , IFF::TiffWriteIFD
  • stream_ : Gen::Data::SaveFormat
  • stride : Vtl::Plf::ColumnIteratorFast< T > , Vtl::Img::Iterator_1D< T, 0 > , Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::MoveX< I, 0 > , ColumnIteratorFast< T >
  • stride_var : Vtl::ImAlg::Conv::SliceIter< T, 0 > , Vtl::ImAlg::Conv::SliceIterConst< T, 0 >
  • strides : Vtl::Meta::LayoutListDefault< T, SZList, NBands, Interleave, Granulation, align_to > , Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 > , Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > , Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >
  • strip : Vtl::Plf::InPortBase
  • StripLength : IFF::Tiff8Read
  • StripLengthOffset : IFF::TIFF_ImageParms
  • StripOffset : IFF::Tiff8Read , IFF::TIFF_ImageParms
  • StripsPerImage : IFF::TIFF_ImageParms
  • struct_sz : Vtl::Img::ImageDataLayout
  • sum : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Triggs< 3 >
  • sum_1 : Vtl::Plf::DiZenzo< T, P > , DiZenzo< float >
  • sum_2 : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • sum_3 : DiZenzo< float > , Vtl::Plf::DiZenzo< T, P >
  • sum_sqr : Vtl::Plf::HImageEdge< T, P > , Vtl::Plf::GradientModul< T, P > , GammaCor< float > , GradientModul< float >
  • sz : Hanina::Planes3< T > , YImageFrame , Hanina::Hessian3D< T >


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- t -

  • t : Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Forward< T, D > , Basics3D::Fm2Essential::CameraPoseFromEssential< T > , Basics3D::Structure::CameraPos< T > , Vtl::ImAlg::Conv::Impl::FastGaussConvolve::Reverse< T, D > , Forward< T, D > , Reverse< T, D > , CameraPoseFromEssential< value_type >
  • t0 : Basics3D::Fm2Essential::CameraPoseFromEssential< T > , CameraPoseFromEssential< value_type >
  • t33 : Hanina::FillingHessianMatrix3x3
  • tag : IFF::TiffTag , IFF::TIFF_IFDentry
  • targets : Vtl::Plf::FiltersSystem
  • the_same_stderr_stdout : childPipe
  • theta : Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > , TrigRecurrence< T, double, I >
  • thr : ScaleScan3x3< T > , Hanina::ScaleScan3x3< T > , Hanina::ZeroCross< T > , Vtl::Plf::Fpie::CannyNMS_2< T > , Vtl::Plf::Fpie::CannyNMS< T > , CannyNMS< float > , CannyNMS< T >
  • thresh : Vtl::Plf::DstContainer< T, C, P > , Vtl::Plf::F31::StatDiffThresh< T > , DstContainer< Real_t, Container_t > , Vtl::ImAlg::Edt::isEdge< T >
  • threshold : Vtl::Plf::F11::Log< T >
  • tmp : Vtl::Plf::DstContainer< T, C, P > , DstContainer< Real_t, Container_t > , ConvolveVert< float > , Vtl::Plf::Levels< T, P > , GammaCorMult< float > , Vtl::Plf::PixByPix2to1< T, F, P > , ConvolveHorz< float > , Vtl::Plf::ConvolveHorz< T, P > , Mult< float > , SqrtOfSumSqr< float > , Vtl::Plf::FilterResampleHorz< T, P > , Vtl::Plf::ConvolveVert< T, P >
  • tmp33 : Hanina::FillingHessianMatrix3x3
  • to_bits : ImageResample::ImageResampleParams
  • to_class : ImageResample::ImageResampleParams
  • to_height : ImageResample::ImageResampleParams
  • to_width : ImageResample::ImageResampleParams
  • TopLeft : YRect< T > , YRect< int >
  • total_delay : Vtl::Plf::InPortBase , InPort< T >
  • tr : Vtl::Plf::F11::Threshold< T, Comp >
  • Trajectory : IFF::OzFile::Header
  • transform_ : TransformCell
  • transformFunction_ : ImageTransformImpl
  • tri : TriResult
  • trianglearealist : triangulateio
  • triangleattributelist : triangulateio
  • trianglelist : triangulateio
  • TwoAsquared : Vtl::ImAlg::Bres::Circle< T > , Vtl::ImAlg::Bres::EllipseH< F >
  • TwoBsquared : Vtl::ImAlg::Bres::EllipseH< F > , Vtl::ImAlg::Bres::Circle< T >
  • type
: IFF::PBMfile
, IFF::TIFF_IFDentry
, IFF::TiffTag
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- u -

  • uv : TriResult


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- v -

  • v : YXML::IsAttr< T, Cmp > , Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > , Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >
  • v1 : YXML::IsAttrIn< T >
  • v2 : YXML::IsAttrIn< T >
  • v_conv : Vtl::Plf::SeparableConv2D< T, P >
  • v_resamp : Vtl::Plf::Resample< T, P > , Resample< float >
  • val : DatumR< T > , Comb_ridge< T, uint8_t > , Hanina::Comb_ridge< T1, T2 > , Cluster1D< T, DatumType > , DatumR< T >
  • vals : Direct_Ref< float, int > , Direct< float, int > , Vtl::ImAlg::WndFun::Direct_Ref< T, TT, D, NAC > , Vtl::ImAlg::WndFun::Direct< T, TT, D, NAC >
  • value : YTHistListTag< T > , Dbg::Fmt< T, format_type > , Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > , Vtl::ImAlg::Registration::Container< Real_t >::Point
  • value_max : LogGrid< float > , Vtl::ImAlg::Resamp::LinGrid< T > , Vtl::ImAlg::Resamp::LogGrid< T >
  • value_min : LogGrid< float > , Vtl::ImAlg::Resamp::LinGrid< T > , Vtl::ImAlg::Resamp::LogGrid< T >
  • value_or_offset : IFF::TiffTag , IFF::TIFF_IFDentry
  • vec : Vtl::Plf::StripBuffer< T >
  • vec16_ : ImageVectorT< Base, Bit8, Bit16 >
  • vec8_ : ImageVectorT< Base, Bit8, Bit16 >
  • version : Vtl::Img::ImageDataLayout , IFF::TIFF_Header
  • vorout : TriResult


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- w -

  • w
: Vtl::ImAlg::Resamp::InterpBilinear< Pixel, stride >
, Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size
, Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >
, Vtl::Plf::SrcArray< T, I, P >
, Vtl::Plf::SrcAImageRgb< T, I, P >
, Vtl::Plf::DstArray< T, Pixel >
, Vtl::Plf::DstContainer< T, C, P >
  • W : Basics3D::Fm2Essential::CameraPoseFromEssential< T >
  • w : InterpBilinear< Img::Pixel > , Hanina::Hessian3D< T > , Hanina::Planes3< T > , InterpBilinear< Real_t > , SrcArray< Real_t, Real_t > , DstContainer< Real_t, Container_t > , DstArray< Real_t, Real_t > , InterpBilinear< Pixel >
  • W : CameraPoseFromEssential< value_type >
  • w_ : DistributionMatrix , CoverageMatrix , ProcessMatrix , CoordArray2D
  • w_new : Vtl::Plf::FilterResampleHorz< T, P >
  • w_old : Vtl::Plf::FilterResampleHorz< T, P >
  • Wd : MSlidingEqualization
  • wi : TrigRecurrence< T, double, I > , Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >
  • wid : ImageMem8 , ImageMemRgb8 , ImageMem16Stuff , ImageMem16 , ImageMemFloat
  • width
: IFF::FloatImageFile::Header
, IFF::TIFF_ImageParms
, Vtl::Plf::ImgSize
, YImageFrame
, IFF::PBMfile
, AImage::Info
  • Width : IFF::OzFile::Header
  • width
: IFF::TiffWriteIFD
, IFF::TiffReadIFD
, VirtDib::Inf
, Vtl::Img::ImageInfo
  • width_ : ImageProxyVector , ImageVectorT< Base, Bit8, Bit16 > , Dbg::Format::F
  • work : Hanina::FillingHessianMatrix3x3
  • wpi : Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > , TrigRecurrence< T, double, I >
  • wpr : Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I > , TrigRecurrence< T, double, I >
  • wr : TrigRecurrence< T, double, I > , Vtl::NumAlg::IntTransf::Utils::Impl::TrigRecurrence< R, T, I >
  • WT : CameraPoseFromEssential< value_type > , Basics3D::Fm2Essential::CameraPoseFromEssential< T >


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- x -

  • x : YPoint< T > , DatumR< T > , YPoint< double > , YPoint< int > , ToBounds< float > , Cluster2D< T, DatumType > , DatumR< T > , DatumXY< T > , Vtl::Plf::F11::ToBounds< T > , Vtl::ImAlg::Registration::Container< Real_t >::Point
  • X : ZoomFactor2D
  • x0 : Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter > , Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter >
  • x_cent : YImageFrame


Pipe Line Filters: Члены классов - Переменные

  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Относящиеся к классу функции
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

- y -

  • y : YPoint< T >
  • Y : ZoomFactor2D
  • y : DstArray< Real_t, Real_t > , Vtl::ImAlg::Registration::Container< Real_t >::Point , SrcArray< Real_t, Real_t > , YPoint< double > , YPoint< int > , Cluster2D< T, DatumType > , DatumR< T > , Vtl::Plf::FilterResampleVert< T, P > , DatumXY< T > , Vtl::Plf::SrcArray< T, I, P > , Vtl::Plf::SrcAImageRgb< T, I, P > , Vtl::Plf::DstArray< T, Pixel > , DstContainer< Real_t, Container_t > , DatumR< T > , Vtl::Plf::DstContainer< T, C, P >
  • y0 : Vtl::ImAlg::C::Lab::fromRGB< T, NormType, Iter > , Vtl::ImAlg::C::Lab::toRGB< T, NormType, Iter >
  • y_cent : YImageFrame
  • y_last : Vtl::Plf::Strip
  • y_pos : Vtl::Plf::FilterElementary
  • y_wait : Vtl::Plf::StripBuffer< T > , Vtl::Plf::Strip
  • year : YDataTime , IFF::OzFile::Header


Pipe Line Filters: Исходный файл FundamentalMatrix.h

  • Файлы
  • Список членов всех файлов

FundamentalMatrix.h

См. документацию.
00001 #ifndef FUNDAMENTAL_MATRIX_H
00002 #define FUNDAMENTAL_MATRIX_H
00003
00004 #include <iostream>
00005 #include <vector>
00006 #include <math.h>
00007
00008 // library includings
00009 #include "nummet.h"
00010 #include "num_linalg.h"
00011
00012 // own includings
00013 #include "MatrixOperations.h"
00014 #include "Point2D.h"
00015 #include "Points2DSet.h"
00016 #include "Points2DParamSet.h"
00017 #include "SolveSystem.h"
00018 #include "Ransac.h"
00019 #include "RecompMatrix.h"
00020 #include "Model.h"
00021 #include "ImagesSet.h"
00022
00023 namespace Basics3D
00024 {
00025     void PrintAndSave
00026               (const char *in_name,
00027            const std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> &in_Matrix,
00028                      const int i,
00029                      const int j);
00030
00031     void DrawEpipolarLines(const T_ImagesSet<AImageMem8> &in_img,
00032                              const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_Matrix,
00033                                      const std::vector<T_Points2DSet<C_Point2D>> &in_PointsSet,
00034                                      const int i,
00035                                      const int n);
00036
00037     class C_FundamentalMatrix
00038     {
00039     private:
00040         static void SevenPointsAlg
00041                             (std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> &out,
00042                                            const Vtl::NumAlg::Lin::ublas::matrix<double> &in_System);
00043
00044         static void EightPointsAlg(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00045                                                    const Vtl::NumAlg::Lin::ublas::matrix<double> &in_System);
00046     public:
00047         // Returns minimal number of points pairs requared for computation of fund. matrix
00048         static int SampleSize();
00049
00050         // Returns the distance threshold
00051         // in_sigma is inaccuracy of feature points detector
00052         static double DistThresh(double in_sigma);
00053
00054         // Creates matrix A of the system Af = 0,
00055         // where f is a vector containing elements of the fundamental matrix,
00056         //       strings of A: (x'x, x'y, x', y'x, y'y, y', x, y, 1)
00057         //       (x, y), (x', y') - corresponding points on two images
00058         static void CreateSystem(Vtl::NumAlg::Lin::ublas::matrix<double> &out_M,
00059                                                          const T_Points2DSet<C_Point2D> &in_Points);
00060
00061         // Creates system to find FM from homography matrices
00062         static void CreateSystem
00063             (Vtl::NumAlg::Lin::ublas::matrix<double> &out_M,
00064              const std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> &in_Matrices);
00065
00066         // Finds fundamental matrix
00067         // out is an array of resulting matrices (1 or 3)
00068         // &in_System is a matrix of system to solve obtained by CreateSystem
00069         static void Find(std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>>& out,
00070                                          const Vtl::NumAlg::Lin::ublas::matrix<double> &in_System);
00071
00072         static double Dist(const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 1> &in_p1,
00073                                              const C_Point2D &in_p2);
00074
00075         static double MistFunc(const Vtl::NumAlg::Lin::ublas::vector<double> &in_matrix,
00076                                  const C_Point2D &in_p1,
00077                                  const C_Point2D &in_p2);
00078
00079         static void DerivativeOfMistFunc(Vtl::NumAlg::Lin::ublas::vector<double> &out,
00080                                            const Vtl::NumAlg::Lin::ublas::vector<double> &in_matrix,
00081                                            const C_Point2D &in_p1,
00082                                            const C_Point2D &in_p2);
00083
00084         static void NormMatrix(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_M,
00085                                  Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_M,
00086                                                     const double in_err);
00087
00088         static void FromHomographies
00089                     (std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> &out_FM,
00090                      const std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> &in_H);
00091
00092         static void ApplyRansac
00093                      (std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> &out_matrix,
00094                     std::vector<T_Points2DSet<C_Point2D>> &out_inliers,
00095                                 std::vector<T_Points2DSet<C_Point2D>> &in_pointsSet,
00096                     const T_ImagesSet<AImageMem8> &in_img,
00097                     const int in_i,
00098                     const double in_sigma);
00099
00100         static void RecomputeWithAllPoints
00101                      (std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> &out_matrix,
00102                     std::vector<T_Points2DSet<C_Point2D>> &out_inliers,
00103                                 std::vector<C_Points2DParamSet> &in_pointsParamSet,
00104                                 const T_ImagesSet<AImageMem8> &in_img,
00105                     const int in_i,
00106                                 const double in_sigma,
00107                                 const double in_t);
00108     };
00109 }
00110 #endif //FUNDAMENTAL_MATRIX_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- j -

  • jacobi() : EigenValueDecomp.h
  • JMAX : Newton-Raphson.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- k -

  • killsubseg : sfm_mesh_triangle.cpp
  • killtri : sfm_mesh_triangle.cpp
  • KMeans() : KMeans.h
  • KT_Conv : plf_kernels_1d.h
  • KT_Corr : plf_kernels_1d.h
  • KT_Win : plf_kernels_1d.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- l -

  • LEFTCOLLINEAR : sfm_mesh_triangle.cpp
  • list_of_tests : PipeLineFilters.cpp
  • list_of_tests_size : PipeLineFilters.cpp
  • lnext : sfm_mesh_triangle.cpp
  • lnextself : sfm_mesh_triangle.cpp
  • lnsrch() : DFPMinimization.h
  • LoadBmpFile() : image_io.cpp
  • LoadFloatFile() : image_io.cpp
  • LoadOzFile() : image_io.cpp
  • LoadPbmFile() : image_io.cpp
  • LoadPoints() : Includings.h
  • LoadPpmFile() : image_io.cpp
  • LoadTiffFile() : image_io.cpp
  • locate() : sfm_mesh_triangle.cpp
  • locateresult : sfm_mesh_triangle.cpp
  • lprev : sfm_mesh_triangle.cpp
  • lprevself : sfm_mesh_triangle.cpp
  • LSB : tiff.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- m -

  • main() : PipeLineFilters.cpp , work_with_image.cpp
  • main_function : PipeLineFilters.cpp
  • MakeDifferenceImage() : HomographyMatrix.h , Includings.h
  • makesubseg() : sfm_mesh_triangle.cpp
  • maketriangle() : sfm_mesh_triangle.cpp
  • makevertexmap() : sfm_mesh_triangle.cpp
  • mark : sfm_mesh_triangle.cpp
  • MarkCorrespondences() : HomographyMatrix.h , Includings.h
  • markhull() : sfm_mesh_triangle.cpp
  • Mask : vtl_image_types.h
  • matrix_3_3 : Includings.h
  • matrix_max_abs_element() : _num_boost_adds.h
  • MAX : ytypes.h
  • max() : alexandresku.h
  • MAX3 : ytypes.h
  • MAX4 : ytypes.h
  • max_abs_element() : _num_boost_adds.h
  • MAXIT : Newton-Raphson.h
  • mergehulls() : sfm_mesh_triangle.cpp
  • message_error_when_load_image_file() : image_io.cpp
  • message_load_file() : image_io.cpp
  • message_load_file_aborted() : image_io.cpp
  • message_unknown_image_format() : image_io.cpp
  • min() : apipe.cpp
  • MIN : virtdib.cpp , ytypes.h
  • min() : alexandresku.h
  • MIN3 : ytypes.h
  • MIN4 : ytypes.h
  • minus1mod3 : sfm_mesh_triangle.cpp
  • minus_if_odd() : alexandresku.h
  • MKS_IN_YEAR : ytime.cpp
  • MKS_IN_YEAR_LEAP : ytime.cpp
  • MONTH_IN_YEAR : ytime.cpp
  • mrqcof() : LMMinimization.h
  • mrqmin() : LMMinimization.h
  • MSB : tiff.h
  • mult() : integral_transforms.h
  • mult_if() : alexandresku.h
  • mult_if_odd() : alexandresku.h
  • Multichan : vtl_image_types.h
  • MultMinusOnePowerTo() : vtl_meta_tools.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- n -

  • n_pow() : alexandresku.h
  • nDefault : color_spaces.h
  • NEW_SUBFILE_TYPE_TAG : tiff.h
  • NM_2PI : ygeometr.h
  • NM_4PI : ygeometr.h
  • NM_DEG2RAD : ygeometr.h
  • NM_PI : ygeometr.h
  • NM_PI2 : ygeometr.h
  • NM_PI4 : ygeometr.h
  • NM_RAD2DEG : ygeometr.h
  • nmBetaFnForStudent() : nummet01.cpp , nummet.h
  • nmFilteredMeanByStudent() : nummet00.h , nummet.h
  • nmFindBadByStudent() : nummet00.h , nummet.h
  • nmFMIN() : nummet.h , nummet00.cpp
  • nmGAMMLN() : nummet.h , nummet00.cpp
  • nmLinearLeastSquares() : nummet00.h , nummet.h
  • nmMaxArrayElem() : nummet.h , nummet00.h
  • nmMeanAndDisp() : nummet00.h , nummet.h
  • nmMedian() : nummet00.h , nummet.h
  • nmMedian1D() : nummet00.h , nummet.h
  • nmNormQRev() : nummet01.cpp , nummet.h
  • nmPoly() : nummet00.cpp , nummet.h
  • nmPow() : nummet.h , nummet00.cpp
  • nmQUANC8() : nummet.h , nummet00.cpp
  • nmRang() : nummet00.h , nummet.h
  • nmSEVAL() : nummet00.cpp , nummet.h
  • nmSPLINE() : nummet00.cpp , nummet.h
  • nmSPLINE_FREE() : nummet.h , nummet00.cpp
  • nmSVD() : nummet.h , nummet00.cpp
  • nmTStudentPercPt() : nummet01.cpp , nummet.h
  • nmTStudentPercPtAssimpt() : nummet.h , nummet01.cpp
  • nmTStudentPercPtNlRoot() : nummet.h , nummet01.cpp
  • nmTStudentPercPtTauThreshold() : nummet.h , nummet01.cpp
  • nmTStudentPercPtViaIntegral() : nummet01.cpp , nummet.h
  • nmVDCPS() : nummet.h , nummet00.cpp
  • nmVTRAN() : nummet.h , nummet00.cpp
  • nmZEROIN() : nummet00.cpp , nummet.h
  • nNoScale : color_spaces.h
  • NO_TIMER : sfm_mesh_triangle.cpp
  • nonregular() : sfm_mesh_triangle.cpp
  • norm_ifft() : integral_transforms.h
  • NormalizationType : color_spaces.h
  • normalize_line() : virtdib.cpp
  • normalize_line_rgb() : virtdib.cpp
  • NormalizeImage() : SaveImageArray.h
  • nrc_dfpmin() : num_optimization.h
  • nrc_lnsrch() : num_optimization.h
  • nSaveChrom : color_spaces.h
  • nSaveRatio : color_spaces.h
  • nStretch : color_spaces.h
  • NTRY : Bracketing.h
  • numbernodes() : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- o -

  • o3derrboundA : sfm_mesh_triangle.cpp
  • o3derrboundB : sfm_mesh_triangle.cpp
  • o3derrboundC : sfm_mesh_triangle.cpp
  • offset_to_zero_freq() : integral_transforms.h
  • offset_type : vtl_image_old.h , vtl_image.h
  • ONEDGE : sfm_mesh_triangle.cpp
  • ONETHIRD : sfm_mesh_triangle.cpp
  • onext : sfm_mesh_triangle.cpp
  • onextself : sfm_mesh_triangle.cpp
  • ONVERTEX : sfm_mesh_triangle.cpp
  • operator!=() : imtransf.cpp , imtransf.h
  • operator<<() : sfm_dbg.h , img_trans_models.h , sfm_dbg.h , ygeometr.h , vtl_meta_IndexList.h , img_trans_models.h , imtransf.cpp , imtransf.h
  • operator==() : imtransf.h , imtransf.cpp
  • oprev : sfm_mesh_triangle.cpp
  • oprevself : sfm_mesh_triangle.cpp
  • org : sfm_mesh_triangle.cpp
  • orient3d() : sfm_mesh_triangle.cpp
  • orient3dadapt() : sfm_mesh_triangle.cpp
  • OtherIntegerTypes : alexandresku.h
  • otricopy : sfm_mesh_triangle.cpp
  • otriequal : sfm_mesh_triangle.cpp
  • OUTSIDE : sfm_mesh_triangle.cpp
  • OzWord : oz.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- z -

  • zbrac() : Bracketing.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- a -

  • AA : nummet00.cpp
  • ABS : ytypes.h
  • Absolute : sfm_mesh_triangle.cpp
  • AddOrSub() : vtl_meta_tools.h
  • AddQuadrants2D() : integral_transforms.h
  • Affine() : imalg_resampling.h
  • AImageCreate() : aimage.h , imagemem.cpp
  • AImageFilter_Duplicate() : imfilter.h , imtune.cpp
  • AImageFilter_LineDetect_RobertsAbs() : imfilter.h , imline.cpp
  • AImageFilter_LineDetect_RobertsSqrt() : imfilter.h , imline.cpp
  • AImageFilter_LineDetect_Sobel() : imfilter.h , imline.cpp
  • AImageFilter_LineThining() : imfilter.h , imline.cpp
  • AImageFilter_Negative() : imfilter.h , imtune.cpp
  • AImageIsCompatible() : aimage.h , imagemem.cpp
  • AImageLoad() : aimage.h , image_io.cpp
  • AImageMem16Ptr : aimage.h
  • AImageMem8Ptr : aimage.h
  • AImageMemFloatPtr : aimage.h
  • AImageMemRgb16Ptr : aimage.h
  • AImageMemRgb8Ptr : aimage.h
  • AImagePtr : aimage.h
  • AImageSave() : aimage.h , image_io.cpp
  • AImageSetColor() : imtransf.cpp , imtransf.h
  • AImageSetNull() : imtransf.h , imtransf.cpp
  • ALF : DFPMinimization.h
  • align() : vtl_image_old.h , vtl_meta_tools.h
  • AllArithTypes : alexandresku.h
  • AllIntegerTypes : alexandresku.h
  • alternateaxes() : sfm_mesh_triangle.cpp
  • ANSI_DECLARATORS : sfm_mesh_triangle.cpp
  • apex : sfm_mesh_triangle.cpp
  • areabound : sfm_mesh_triangle.cpp
  • ArithTypes : alexandresku.h
  • ArrayElemProduct() : integral_transforms.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- b -

  • BADSUBSEGPERBLOCK : sfm_mesh_triangle.cpp
  • BADTRIPERBLOCK : sfm_mesh_triangle.cpp
  • BI_RGB : bmp.h
  • BI_RLE4 : bmp.h
  • BI_RLE8 : bmp.h
  • BIL : vtl_image_types.h
  • BIP : vtl_image_types.h
  • bit_reversal() : integral_transforms.h
  • bit_reversal_complex() : integral_transforms.h
  • BITS_PER_SAMPLE_TAG : tiff.h
  • bond : sfm_mesh_triangle.cpp
  • border() : convolve.h
  • boundingbox() : sfm_mesh_triangle.cpp
  • BoundsCyclic() : imalg_tools.h
  • BoundsNo() : imalg_tools.h
  • BSQ : vtl_image_types.h
  • build_line() : virtdib.cpp
  • build_line_add() : virtdib.cpp
  • build_line_zoom_in() : virtdib.cpp
  • build_line_zoom_in_add() : virtdib.cpp
  • build_line_zoom_no() : virtdib.cpp
  • build_line_zoom_no_add() : virtdib.cpp
  • build_line_zoom_out() : virtdib.cpp
  • build_line_zoom_out_add() : virtdib.cpp
  • build_strides() : vtl_image_old.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- c -

  • c() : windowing_fun.h
  • calc_F1multF2star_from_2_simult_real_fft() : integral_transforms.h
  • calc_total_sum() : img_registration.h
  • CalcSmalestPow2() : integral_transforms.h
  • CartToPolar() : imalg_resampling.h
  • carveholes() : sfm_mesh_triangle.cpp
  • ccwerrboundA : sfm_mesh_triangle.cpp
  • ccwerrboundB : sfm_mesh_triangle.cpp
  • ccwerrboundC : sfm_mesh_triangle.cpp
  • CDT_ONLY : sfm_mesh_triangle.cpp
  • changeExt() : yfilesys.cpp
  • changeExtIf() : yfilesys.cpp
  • check4deadevent() : sfm_mesh_triangle.cpp
  • checkdelaunay() : sfm_mesh_triangle.cpp
  • checkmesh() : sfm_mesh_triangle.cpp
  • circletop() : sfm_mesh_triangle.cpp
  • circletopinsert() : sfm_mesh_triangle.cpp
  • COLOR_SPACE_CONST_IV1V2_A : color_spaces.h
  • COLOR_SPACE_CONST_IV1V2_B : color_spaces.h
  • COLOR_SPACE_CONST_IV1V2_C : color_spaces.h
  • COLOR_SPACE_CONST_IV1V2_D : color_spaces.h
  • COLOR_SPACE_CONST_IV1V2_S : color_spaces.h
  • comp_AmpToPolar() : img_registration.h
  • comp_Phase() : img_registration.h
  • comp_phase_corr() : img_registration.h
  • comp_Rotate() : img_registration.h
  • constrainededge() : sfm_mesh_triangle.cpp
  • Conv1pt() : convolve.h
  • ConvolveNoExt() : convolve.h
  • copy() : vtl_meta_tools.h
  • copy_10_7() : img_utils.h
  • copy_1_1() : imalg_tools.h
  • copy_1_2() : img_utils.h
  • copy_2_1() : imalg_tools.h
  • copy_2_2() : imalg_tools.h
  • copy_2_3() : imalg_tools.h
  • copy_2_4() : imalg_tools.h
  • copy_3_1() : imalg_tools.h
  • copy_3_2() : imalg_tools.h
  • copy_3_3() : imalg_tools.h
  • copy_3_4() : imalg_tools.h
  • copy_3_5() : imalg_tools.h
  • copy_5_1() : imalg_tools.h
  • copy_6_1() : imalg_tools.h
  • counterclockwise() : sfm_mesh_triangle.cpp
  • counterclockwiseadapt() : sfm_mesh_triangle.cpp
  • covsrt() : LMMinimization.h
  • CreateDir() : yfilesys.cpp
  • createeventheap() : sfm_mesh_triangle.cpp
  • CreateFileName() : SaveImageArray.h
  • cwd() : yfilesys.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- d -

  • DAY_IN_MONTH : ytime.cpp
  • DAY_IN_MONTH_LEAP : ytime.cpp
  • DAY_TO_MONTH : ytime.cpp
  • DAY_TO_MONTH_LEAP : ytime.cpp
  • DAYS_IN_YEAR : ytime.cpp
  • DAYS_IN_YEAR_LEAP : ytime.cpp
  • deadsubseg : sfm_mesh_triangle.cpp
  • deadtri : sfm_mesh_triangle.cpp
  • DEADVERTEX : sfm_mesh_triangle.cpp
  • decode : sfm_mesh_triangle.cpp
  • DefaultItemName() : ywinini.cpp
  • deg : ygeometr.h
  • delaunay() : sfm_mesh_triangle.cpp
  • delaunayfixup() : sfm_mesh_triangle.cpp
  • delta_correlation() : img_registration.h
  • dest : sfm_mesh_triangle.cpp
  • determinant() : vtl_meta_permutations.h
  • dif_sum() : integral_transforms.h
  • directionSequenceSize : imtransf.cpp
  • directionSequenceX : imtransf.cpp
  • directionSequenceY : imtransf.cpp
  • dissolve : sfm_mesh_triangle.cpp
  • distance() : ygeometr.cpp , ygeometr.h
  • divconqdelaunay() : sfm_mesh_triangle.cpp
  • divconqrecurse() : sfm_mesh_triangle.cpp
  • DLL_FUN : ywin.h
  • dnext : sfm_mesh_triangle.cpp
  • dnextself : sfm_mesh_triangle.cpp
  • dprev : sfm_mesh_triangle.cpp
  • dprevself : sfm_mesh_triangle.cpp
  • DrawCentCluster() : KMeans.h
  • DrawEllipse() : DrawEllipse.h
  • DrawEpipolarLines() : FundamentalMatrix.h
  • DrawRadCluster() : KMeans.h
  • dsin() : alexandresku.h
  • dummyinit() : sfm_mesh_triangle.cpp
  • DUPLICATEVERTEX : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- e -

  • e : ygeometr.cpp
  • elemattribute : sfm_mesh_triangle.cpp
  • encode : sfm_mesh_triangle.cpp
  • EncodingSystem : xml_interface.cpp
  • ENCROACHINGVERTEX : sfm_mesh_triangle.cpp
  • EnviSample_DataTypesList : vtl_image_types.h
  • EnviSampleTypesList : vtl_image_types.h
  • envTransf_1_1() : imalg_tools.h
  • envTransf_2Ddircheck() : img_utils.h
  • envTransf_3D() : img_utils.h
  • envTransf_3e1_1() : imalg_tools.h
  • EPS : DFPMinimization.h , spec_functions.h
  • epsilon : sfm_mesh_triangle.cpp
  • equalDouble() : ygeometr.cpp
  • erf() : spec_functions.h
  • erfc() : spec_functions.h
  • erfcc() : spec_functions.h
  • ERROR_CantSaveFormat() : image_io.cpp
  • ERROR_CreateImage() : image_io.cpp
  • ERROR_NotCompatImages() : image_io.cpp
  • ERROR_SaveImageNotValid() : image_io.cpp
  • ERROR_UnknownImageFileExtension() : image_io.cpp
  • EssentialMatrix() : EssentialMatrix.cpp
  • estimate() : sfm_mesh_triangle.cpp
  • eventheapdelete() : sfm_mesh_triangle.cpp
  • eventheapify() : sfm_mesh_triangle.cpp
  • eventheapinsert() : sfm_mesh_triangle.cpp
  • exactinit() : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- f -

  • FACTOR : Bracketing.h
  • fast_expansion_sum_zeroelim() : sfm_mesh_triangle.cpp
  • Fast_Two_Sum : sfm_mesh_triangle.cpp
  • Fast_Two_Sum_Tail : sfm_mesh_triangle.cpp
  • fft1D() : integral_transforms.h
  • fft2D() : integral_transforms.h
  • fft3D() : integral_transforms.h
  • fftND() : integral_transforms.h
  • fht1D() : integral_transforms.h
  • fht1D_() : integral_transforms.h
  • fht2D() : integral_transforms.h
  • fht2D_square() : integral_transforms.h
  • FILE_STAMP : ifloat.cpp
  • FILENAMESIZE : sfm_mesh_triangle.cpp
  • FILL_STR_FRG : imresamp.cpp
  • find_offset() : img_registration.h
  • find_shift() : img_registration.h
  • FindCameraQuaternion() : sfm_export_3D_model.h
  • findcircumcenter() : sfm_mesh_triangle.cpp
  • FindCommonFeaturePoints() : Includings.h
  • finddirection() : sfm_mesh_triangle.cpp
  • finddirectionresult : sfm_mesh_triangle.cpp
  • FindTranslationToObjectCenterOfMass() : sfm_export_3D_model.h
  • flip() : sfm_mesh_triangle.cpp
  • flip_vert() : img_registration.h
  • FLIPSTACKERPERBLOCK : sfm_mesh_triangle.cpp
  • FLOATINGPOINT : sfm_mesh_triangle.cpp
  • FloatWord : ifloat.h
  • Fmin() : num_optimization.h
  • ForEachDimensionDo1D() : integral_transforms.h
  • ForEachPermutation() : vtl_meta_permutations.h
  • ForEachPermutationOfIndexList() : vtl_meta_permutations.h
  • formskeleton() : sfm_mesh_triangle.cpp
  • FPMIN : spec_functions.h
  • FREEVERTEX : sfm_mesh_triangle.cpp
  • FromFM() : sfm_structure_from_2_views.h
  • frontlocate() : sfm_mesh_triangle.cpp
  • FToMinimaze() : LMMinimization.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- g -

  • G() : img_registration_oflow.h
  • GammaCorFunctor() : SaveImageArray.h
  • gaussj() : LMMinimization.h
  • getDir() : yfilesys.cpp
  • getEnv() : yfilesys.cpp , yfilesys.h
  • getExt() : yfilesys.cpp
  • getFileSize() : yfilesys.cpp
  • GetImag() : integral_transforms.h
  • GetImag_1D() : integral_transforms.h
  • GetModul() : integral_transforms.h
  • getName() : yfilesys.cpp
  • getNameWithoutExt() : yfilesys.h
  • GetReal() : integral_transforms.h
  • GetReal_1D() : integral_transforms.h
  • gets_from_buf() : pbm_file.cpp
  • GetStatCharact() : StatDiff.h
  • getTime() : yfilesys.cpp
  • getvertex() : sfm_mesh_triangle.cpp
  • GradStatDiff() : StatDiff.h
  • Grayscale : vtl_image_types.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- h -

  • highorder() : sfm_mesh_triangle.cpp
  • highpass_filtering() : img_registration.h
  • highpass_filtering_half() : img_registration.h
  • HSV_HSL_hue() : color_spaces.h
  • hypot() : _num_eigen.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- i -

  • iccerrboundA : sfm_mesh_triangle.cpp
  • iccerrboundB : sfm_mesh_triangle.cpp
  • iccerrboundC : sfm_mesh_triangle.cpp
  • ifft1D() : integral_transforms.h
  • ifft2D() : integral_transforms.h
  • ifft3D() : integral_transforms.h
  • ifht1D() : integral_transforms.h
  • ifht2D() : integral_transforms.h
  • IMAGE_DATA_LAYOUT_VERSION : vtl_image_types.h
  • IMAGE_LENGTH_TAG : tiff.h
  • IMAGE_MAX_FRAME : aimage.h
  • IMAGE_WIDTH_TAG : tiff.h
  • ImageClass : vtl_image_types.h
  • ImageVector : imtransf.h
  • ImageVectorConst : imtransf.h
  • ImgDataAlloc() : imagemem.cpp
  • IN_BOUNDS : ytypes.h
  • incircle() : sfm_mesh_triangle.cpp
  • incircleadapt() : sfm_mesh_triangle.cpp
  • incrementaldelaunay() : sfm_mesh_triangle.cpp
  • indicator : consolap.h , progrcnt.cpp
  • INEXACT : sfm_mesh_triangle.cpp
  • infect : sfm_mesh_triangle.cpp
  • infected : sfm_mesh_triangle.cpp
  • infecthull() : sfm_mesh_triangle.cpp
  • initializetrisubpools() : sfm_mesh_triangle.cpp
  • initializevertexpool() : sfm_mesh_triangle.cpp
  • INPUTLINESIZE : sfm_mesh_triangle.cpp
  • INPUTVERTEX : sfm_mesh_triangle.cpp
  • InRow_BoundsCyclic() : imalg_tools.h
  • InRow_BoundsNo() : imalg_tools.h
  • insertsegment() : sfm_mesh_triangle.cpp
  • insertsubseg() : sfm_mesh_triangle.cpp
  • insertvertex() : sfm_mesh_triangle.cpp
  • insertvertexresult : sfm_mesh_triangle.cpp
  • INT16_C : stdint.h
  • INT16_MAX : stdint.h
  • INT16_MIN : stdint.h
  • int16_t : stdint.h
  • INT32_C : stdint.h
  • INT32_MAX : stdint.h
  • INT32_MIN : stdint.h
  • int32_t : stdint.h
  • INT64_C : stdint.h
  • INT64_MAX : stdint.h
  • INT64_MIN : stdint.h
  • int64_t : stdint.h
  • INT8_C : stdint.h
  • INT8_MAX : stdint.h
  • INT8_MIN : stdint.h
  • int8_t : stdint.h
  • INT_FAST16_MAX : stdint.h
  • INT_FAST16_MIN : stdint.h
  • int_fast16_t : stdint.h
  • INT_FAST32_MAX : stdint.h
  • INT_FAST32_MIN : stdint.h
  • int_fast32_t : stdint.h
  • INT_FAST64_MAX : stdint.h
  • INT_FAST64_MIN : stdint.h
  • int_fast64_t : stdint.h
  • INT_FAST8_MAX : stdint.h
  • INT_FAST8_MIN : stdint.h
  • int_fast8_t : stdint.h
  • INT_LEAST16_MAX : stdint.h
  • INT_LEAST16_MIN : stdint.h
  • int_least16_t : stdint.h
  • INT_LEAST32_MAX : stdint.h
  • INT_LEAST32_MIN : stdint.h
  • int_least32_t : stdint.h
  • INT_LEAST64_MAX : stdint.h
  • INT_LEAST64_MIN : stdint.h
  • int_least64_t : stdint.h
  • INT_LEAST8_MAX : stdint.h
  • INT_LEAST8_MIN : stdint.h
  • int_least8_t : stdint.h
  • IntegerTypes : alexandresku.h
  • IntegrateKer() : plf_kernels_1d.h
  • IntegrateWindowedData() : plf_kernels_1d.h
  • Interleave : vtl_image_types.h
  • internalerror() : sfm_mesh_triangle.cpp
  • INTMAX_C : stdint.h
  • INTMAX_MAX : stdint.h
  • INTMAX_MIN : stdint.h
  • intmax_t : stdint.h
  • IntOnePlusXSquarePowerMinusN() : nummet01.cpp
  • IntOnePlusXSquarePowerMinusNAndAHalf() : nummet01.cpp
  • INTPTR_MAX : stdint.h
  • INTPTR_MIN : stdint.h
  • intptr_t : stdint.h
  • INTRIANGLE : sfm_mesh_triangle.cpp
  • inverse_diag_matrix() : _num_boost_adds.h
  • inverse_diag_matrix_positive() : _num_boost_adds.h
  • Invert() : invert.cpp
  • IsAttrEq : xml_interface.h
  • isBadCell() : _imtransf.h , imtransf.cpp
  • isDirExist() : yfilesys.cpp
  • isExists() : yfilesys.cpp
  • isFileExist() : yfilesys.cpp
  • isFullName() : yfilesys.cpp
  • IsNameEq : xml_interface.h
  • isPathExist() : yfilesys.cpp
  • IT_EXCEPTION : imtransf.cpp
  • ITAverageProcessImage() : imtransf.cpp
  • ITBicubicalProcessImage() : imtransf.cpp
  • ITMAX : DFPMinimization.h , spec_functions.h
  • ITPolygon : _imtransf.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- p -

  • PaintNotImageArea() : virtdib.cpp
  • PaintRect() : virtdib.cpp
  • Palette : vtl_image_types.h
  • PALETTE_TAG : tiff.h
  • parallelDxDy() : imtransf.cpp
  • parsecommandline() : sfm_mesh_triangle.cpp
  • pdfStud() : nummet01.cpp
  • pdfStud2() : nummet01.cpp
  • pdfStudDistr() : nummet01.cpp
  • PHOTOMETRIC_INTERPRETATION_TAG : tiff.h
  • PI : sfm_mesh_triangle.cpp
  • Pix16 : virtdib.cpp
  • Pixel16 : aimage.h
  • Pixel16Ptr : aimage.h
  • Pixel8 : aimage.h
  • Pixel8Ptr : aimage.h
  • PixelFloat : aimage.h
  • PixelFloatPtr : aimage.h
  • plague() : sfm_mesh_triangle.cpp
  • plus1mod3 : sfm_mesh_triangle.cpp
  • POINTER : sfm_mesh_triangle.cpp
  • PointOnAxisProjectionLength() : ygeometr.cpp , ygeometr.h
  • pointsEqual() : ygeometr.h
  • poolalloc() : sfm_mesh_triangle.cpp
  • pooldealloc() : sfm_mesh_triangle.cpp
  • pooldeinit() : sfm_mesh_triangle.cpp
  • poolinit() : sfm_mesh_triangle.cpp
  • poolrestart() : sfm_mesh_triangle.cpp
  • preciselocate() : sfm_mesh_triangle.cpp
  • print() : vtl_meta_SizeList.h
  • print_array() : vtl_meta_tools.h
  • PrintAndSave() : FundamentalMatrix.h
  • printsubseg() : sfm_mesh_triangle.cpp
  • printtriangle() : sfm_mesh_triangle.cpp
  • proc_pos_neg_freq() : integral_transforms.h
  • PROCESSOR_MEMORY_ALIGNMENT : storage.h
  • PROCESSOR_MEMORY_AVOID_PTR_DIFF : storage.h
  • prod_diag() : _num_boost_adds.h
  • ProjectiveTransform() : imalg_resampling.h
  • PTRDIFF_MAX : stdint.h
  • PTRDIFF_MIN : stdint.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- q -

  • Q() : windowing_fun.h
  • QuadrangleArea() : ygeometr.h , ygeometr.cpp
  • quality_statistics() : sfm_mesh_triangle.cpp
  • quasi_fht2D() : integral_transforms.h
  • quasi_fhtND() : integral_transforms.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- r -

  • rad : ygeometr.h
  • randomnation() : sfm_mesh_triangle.cpp
  • randomseed : sfm_mesh_triangle.cpp
  • Ransac() : Ransac.h
  • readtiff() : tiff.cpp
  • REAL : sfm_mesh_triangle.h , sfm_mesh_triangle.cpp , sfm_mesh_TriResult.cpp
  • RealTypes : alexandresku.h
  • RecompMatrix() : RecompMatrix.h
  • regionplague() : sfm_mesh_triangle.cpp
  • RelerrEps() : numalg.h
  • remExt() : yfilesys.cpp
  • removebox() : sfm_mesh_triangle.cpp
  • removeghosts() : sfm_mesh_triangle.cpp
  • resulterrbound : sfm_mesh_triangle.cpp
  • Return1stArg() : alexandresku.h
  • ReturnArg() : alexandresku.h
  • ReturnArg_() : alexandresku.h
  • rev() : integral_transforms.h
  • RIGHTCOLLINEAR : sfm_mesh_triangle.cpp
  • rightofhyperbola() : sfm_mesh_triangle.cpp
  • rm() : yfilesys.cpp
  • rnext : sfm_mesh_triangle.cpp
  • rnextself : sfm_mesh_triangle.cpp
  • ROTATE : EigenValueDecomp.h
  • RotateScale() : imalg_resampling.h
  • ROWS_PER_STRIP_TAG : tiff.h
  • rprev : sfm_mesh_triangle.cpp
  • rprevself : sfm_mesh_triangle.cpp
  • RQDecomposition() : RQDecomposition.cpp
  • rtnewt() : Newton-Raphson.cpp
  • rtsafe() : Newton-Raphson.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- s -

  • SAMPLEFACTOR : sfm_mesh_triangle.cpp
  • SAMPLERATE : sfm_mesh_triangle.cpp
  • SAMPLES_PER_PIXEL_TAG : tiff.h
  • SampleType : vtl_image_types.h
  • SaveAbsImageArray() : SaveImageArray.h
  • SaveBmpFile() : image_io.cpp
  • SaveColourImageArray() : SaveImageArray.h
  • SaveFloatFile() : image_io.cpp
  • SaveImage() : SaveImageArray.h
  • SaveImageArray() : SaveImageArray.h
  • SaveNormImageArray() : SaveImageArray.h
  • SaveOzFile() : image_io.cpp
  • SavePbmFile() : image_io.cpp
  • SavePpmFile() : image_io.cpp
  • SaveTiffFile() : image_io.cpp
  • SaveVRML_AsPointsSet() : sfm_export_3D_model.h
  • sb : progrcnt.cpp
  • sbond : sfm_mesh_triangle.cpp
  • scale_expansion_zeroelim() : sfm_mesh_triangle.cpp
  • scoutsegment() : sfm_mesh_triangle.cpp
  • sdecode : sfm_mesh_triangle.cpp
  • sdest : sfm_mesh_triangle.cpp
  • sdissolve : sfm_mesh_triangle.cpp
  • SEC_IN_DAY : ytime.cpp
  • SEC_IN_HOUR : ytime.cpp
  • SEC_IN_YEAR : ytime.cpp
  • SEC_IN_YEAR_LEAP : ytime.cpp
  • SEC_TO_MKS : ytime.cpp
  • segmentintersection() : sfm_mesh_triangle.cpp
  • SEGMENTVERTEX : sfm_mesh_triangle.cpp
  • sencode : sfm_mesh_triangle.cpp
  • SEP : vtl_image_types.h
  • set() : vtl_meta_tools.h
  • set_seq() : vtl_meta_tools.h
  • setapex : sfm_mesh_triangle.cpp
  • setareabound : sfm_mesh_triangle.cpp
  • setdest : sfm_mesh_triangle.cpp
  • setelemattribute : sfm_mesh_triangle.cpp
  • setmark : sfm_mesh_triangle.cpp
  • SetMessageLanguage() : progrcnt.h
  • setorg : sfm_mesh_triangle.cpp
  • setsdest : sfm_mesh_triangle.cpp
  • setsorg : sfm_mesh_triangle.cpp
  • setvertex2tri : sfm_mesh_triangle.cpp
  • setvertexmark : sfm_mesh_triangle.cpp
  • setvertextype : sfm_mesh_triangle.cpp
  • SIG_ATOMIC_MAX : stdint.h
  • SIG_ATOMIC_MIN : stdint.h
  • SIGN : ytypes.h
  • sign() : numalg.h
  • SignedIntegerTypes : alexandresku.h
  • SignedTypes : alexandresku.h
  • sincos() : alexandresku.h
  • sing_fortran() : _num_svd.h
  • SingularValues() : EssentialMatrix.cpp
  • SIZE_MAX : stdint.h
  • SIZEOF_TEST_DYNAMIC : imagemem.cpp , oz.cpp
  • smallest_log2_ge_size() : integral_transforms.h
  • snext : sfm_mesh_triangle.cpp
  • snextself : sfm_mesh_triangle.cpp
  • SolveSystem() : SolveSystem.h
  • sorg : sfm_mesh_triangle.cpp
  • sort() : _num_implicit.h
  • sort_columns() : _num_implicit.h
  • spivot : sfm_mesh_triangle.cpp
  • spivotself : sfm_mesh_triangle.cpp
  • splay() : sfm_mesh_triangle.cpp
  • splayinsert() : sfm_mesh_triangle.cpp
  • SPLAYNODEPERBLOCK : sfm_mesh_triangle.cpp
  • Split : sfm_mesh_triangle.cpp
  • splitter : sfm_mesh_triangle.cpp
  • Sqr() : integral_transforms.h
  • sqr() : alexandresku.h , plf_functors.h
  • Square : sfm_mesh_triangle.cpp
  • Square_Tail : sfm_mesh_triangle.cpp
  • SQUAREROOTTWO : sfm_mesh_triangle.cpp
  • Sscanf() : datastring.h
  • ssym : sfm_mesh_triangle.cpp
  • ssymself : sfm_mesh_triangle.cpp
  • ST_c32f : vtl_image_types.h
  • ST_c64f : vtl_image_types.h
  • ST_f32 : vtl_image_types.h
  • ST_f64 : vtl_image_types.h
  • ST_s16 : vtl_image_types.h
  • ST_s32 : vtl_image_types.h
  • ST_s64 : vtl_image_types.h
  • ST_s8 : vtl_image_types.h
  • ST_u16 : vtl_image_types.h
  • ST_u32 : vtl_image_types.h
  • ST_u64 : vtl_image_types.h
  • ST_u8 : vtl_image_types.h
  • ST_Unknown : vtl_image_types.h
  • STARTINDEX : sfm_mesh_triangle.cpp
  • StatDiff() : StatDiff.h
  • statistics() : sfm_mesh_triangle.cpp
  • stdissolve : sfm_mesh_triangle.cpp
  • stpivot : sfm_mesh_triangle.cpp
  • STPMX : DFPMinimization.h
  • StrCmpI() : yfilesys.cpp
  • STRIPS_BYTE_COUNTS_TAG : tiff.h
  • STRIPS_OFFSET_TAG : tiff.h
  • SUBFILE_TYPE_TAG : tiff.h
  • subseg : sfm_mesh_triangle.cpp
  • subsegcopy : sfm_mesh_triangle.cpp
  • subsegdealloc() : sfm_mesh_triangle.cpp
  • subsegequal : sfm_mesh_triangle.cpp
  • SUBSEGPERBLOCK : sfm_mesh_triangle.cpp
  • subsegtraverse() : sfm_mesh_triangle.cpp
  • SUCCESSFULVERTEX : sfm_mesh_triangle.cpp
  • sum() : vtl_meta_tools.h
  • swap() : integral_transforms.h , ygeometr.cpp
  • SWAP : fourier.cpp , LMMinimization.h
  • SwapArrayHalfs() : integral_transforms.h
  • SwapQuadrants() : integral_transforms.h
  • SwapQuadrants_offset() : integral_transforms.h
  • SwapQuarters() : integral_transforms.h
  • sweeplinedelaunay() : sfm_mesh_triangle.cpp
  • sym : sfm_mesh_triangle.cpp
  • symself : sfm_mesh_triangle.cpp
  • sys_chrom : color_spaces.h
  • sys_hue : color_spaces.h
  • sys_other : color_spaces.h
  • SystemType : color_spaces.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- t -

  • TAG_COMPRESSION : tiff.h
  • TAG_PLANAR_CONFIGURATION : tiff.h
  • Test() : Includings.h
  • test_save_x() : img_registration.h
  • tmpl_LeftRight() : mslieqlz.cpp
  • tmpl_RightLeft() : mslieqlz.cpp
  • tmpl_Run() : mslieqlz.cpp
  • tmpl_VertLeftDown() : mslieqlz.cpp
  • tmpl_VertLeftMiddle() : mslieqlz.cpp
  • tmpl_VertLeftUp() : mslieqlz.cpp
  • tmpl_VertRightDown() : mslieqlz.cpp
  • tmpl_VertRightMiddle() : mslieqlz.cpp
  • tmpl_VertRightUp() : mslieqlz.cpp
  • ToBounds() : alexandresku.h
  • TOLX : DFPMinimization.h
  • tpl_AImageFilter_Duplicate() : imtune.cpp
  • tpl_AImageFilter_LineDetect_RobertsAbs() : imline.cpp
  • tpl_AImageFilter_LineDetect_RobertsSqrt() : imline.cpp
  • tpl_AImageFilter_LineDetect_Sobel() : imline.cpp
  • tpl_AImageFilter_LineThining() : imline.cpp
  • tpl_AImageFilter_Negative() : imtune.cpp
  • transfernodes() : sfm_mesh_triangle.cpp
  • Transform() : imalg_resampling.h
  • transform_and_zero_freq() : img_registration.h
  • TransposeSqrMatrix() : integral_transforms.h
  • traversalinit() : sfm_mesh_triangle.cpp
  • traverse() : sfm_mesh_triangle.cpp
  • triangle : sfm_mesh_triangle.cpp
  • TriangleArea() : ygeometr.cpp , ygeometr.h
  • triangledealloc() : sfm_mesh_triangle.cpp
  • triangledeinit() : sfm_mesh_triangle.cpp
  • triangleinit() : sfm_mesh_triangle.cpp
  • triangletraverse() : sfm_mesh_triangle.cpp
  • triangulate() : sfm_mesh_triangle.cpp , sfm_mesh_triangle.h
  • triangulatepolygon() : sfm_mesh_triangle.cpp
  • trifree() : sfm_mesh_triangle.cpp
  • TRILIBRARY : sfm_mesh_triangle.cpp
  • trimalloc() : sfm_mesh_triangle.cpp
  • TRIPERBLOCK : sfm_mesh_triangle.cpp
  • triunsuitable() : sfm_mesh_triangle.cpp
  • TrueColor : vtl_image_types.h
  • tsbond : sfm_mesh_triangle.cpp
  • tsdissolve : sfm_mesh_triangle.cpp
  • tspivot : sfm_mesh_triangle.cpp
  • TTYP_ASCII : tiff.h
  • TTYP_BYTE : tiff.h
  • TTYP_LONG : tiff.h
  • TTYP_RATIONAL : tiff.h
  • TTYP_SHORT : tiff.h
  • Two_Diff : sfm_mesh_triangle.cpp
  • Two_Diff_Tail : sfm_mesh_triangle.cpp
  • Two_One_Diff : sfm_mesh_triangle.cpp
  • Two_One_Product : sfm_mesh_triangle.cpp
  • Two_One_Sum : sfm_mesh_triangle.cpp
  • Two_Product : sfm_mesh_triangle.cpp
  • Two_Product_Presplit : sfm_mesh_triangle.cpp
  • Two_Product_Tail : sfm_mesh_triangle.cpp
  • Two_Sum : sfm_mesh_triangle.cpp
  • Two_Sum_Tail : sfm_mesh_triangle.cpp
  • Two_Two_Diff : sfm_mesh_triangle.cpp
  • Two_Two_Sum : sfm_mesh_triangle.cpp
  • Type : plf_kernels_1d.h
  • type2ostream() : vtl_meta_IndexList.h
  • TYPELIST_1 : alexandresku.h
  • TYPELIST_10 : alexandresku.h
  • TYPELIST_11 : alexandresku.h
  • TYPELIST_12 : alexandresku.h
  • TYPELIST_13 : alexandresku.h
  • TYPELIST_14 : alexandresku.h
  • TYPELIST_15 : alexandresku.h
  • TYPELIST_2 : alexandresku.h
  • TYPELIST_3 : alexandresku.h
  • TYPELIST_4 : alexandresku.h
  • TYPELIST_5 : alexandresku.h
  • TYPELIST_6 : alexandresku.h
  • TYPELIST_7 : alexandresku.h
  • TYPELIST_8 : alexandresku.h
  • TYPELIST_9 : alexandresku.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- u -

  • UINT16_C : stdint.h
  • UINT16_MAX : stdint.h
  • uint16_t : stdint.h
  • UINT32_C : stdint.h
  • UINT32_MAX : stdint.h
  • uint32_t : stdint.h
  • UINT64_C : stdint.h
  • UINT64_MAX : stdint.h
  • uint64_t : stdint.h
  • UINT8_C : stdint.h
  • UINT8_MAX : stdint.h
  • uint8_t : stdint.h
  • UINT_FAST16_MAX : stdint.h
  • uint_fast16_t : stdint.h
  • UINT_FAST32_MAX : stdint.h
  • uint_fast32_t : stdint.h
  • UINT_FAST64_MAX : stdint.h
  • uint_fast64_t : stdint.h
  • UINT_FAST8_MAX : stdint.h
  • uint_fast8_t : stdint.h
  • UINT_LEAST16_MAX : stdint.h
  • uint_least16_t : stdint.h
  • UINT_LEAST32_MAX : stdint.h
  • uint_least32_t : stdint.h
  • UINT_LEAST64_MAX : stdint.h
  • uint_least64_t : stdint.h
  • UINT_LEAST8_MAX : stdint.h
  • uint_least8_t : stdint.h
  • UINTMAX_C : stdint.h
  • UINTMAX_MAX : stdint.h
  • uintmax_t : stdint.h
  • UINTPTR_MAX : stdint.h
  • uintptr_t : stdint.h
  • UNDEADVERTEX : sfm_mesh_triangle.cpp
  • unflip() : sfm_mesh_triangle.cpp
  • uninfect : sfm_mesh_triangle.cpp
  • UnsignedIntegerTypes : alexandresku.h
  • USE_DIRECT_SEARCH : AutoCalibration.cpp
  • UU : nummet00.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- v -

  • v12_bilin() : ss_ridge_functors.h
  • v12_bilinear() : ss_ridge_functors.h
  • vertex : sfm_mesh_triangle.cpp
  • vertex2tri : sfm_mesh_triangle.cpp
  • vertexdealloc() : sfm_mesh_triangle.cpp
  • vertexmark : sfm_mesh_triangle.cpp
  • vertexmedian() : sfm_mesh_triangle.cpp
  • VERTEXPERBLOCK : sfm_mesh_triangle.cpp
  • vertexsort() : sfm_mesh_triangle.cpp
  • vertextraverse() : sfm_mesh_triangle.cpp
  • vertextype : sfm_mesh_triangle.cpp
  • VIOLATINGVERTEX : sfm_mesh_triangle.cpp
  • VIRUSPERBLOCK : sfm_mesh_triangle.cpp
  • VOID : sfm_mesh_triangle.cpp
  • VV : nummet00.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- w -

  • WCHAR_MAX : stdint.h
  • WCHAR_MIN : stdint.h
  • window() : img_registration.h
  • WindowData() : plf_kernels_1d.h
  • WINT_MAX : stdint.h
  • WINT_MIN : stdint.h
  • WITHIN : sfm_mesh_triangle.cpp
  • wordtype : sfm_mesh_triangle.cpp
  • writeedges() : sfm_mesh_triangle.cpp
  • writeelements() : sfm_mesh_triangle.cpp
  • writeneighbors() : sfm_mesh_triangle.cpp
  • writenodes() : sfm_mesh_triangle.cpp
  • writepoly() : sfm_mesh_triangle.cpp
  • writetiff() : tiff.cpp
  • writevoronoi() : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- x -

  • xchg() : imalg_tools.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • y
  • z

Список всех членов файлов со ссылками на файлы, к которым они принадлежат.

- y -

  • YPointDbl : ygeometr.h
  • YPointInt : ygeometr.h
  • YRectDbl : ygeometr.h
  • YRectInt : ygeometr.h
  • YXML_DRIVER_USING : xml_interface.cpp
  • yxml_drv : xml_interface.cpp
  • YXML_DRV_DocHandle : xml_interface_imp.h
  • YXML_DRV_GetRootNode : xml_interface.cpp
  • YXML_DRV_InitializeXercesc : xml_interface.cpp
  • YXML_DRV_Insert : xml_interface.cpp
  • YXML_DRV_NodeGetSet : xml_interface.cpp
  • YXML_DRV_NodeHandle : xml_interface_imp.h
  • YXML_DRV_NodeType : xml_interface.cpp
  • YXML_DRV_NODETYPE_ATTRIBUTE : xml_interface_imp.h
  • YXML_DRV_NODETYPE_COMMENT : xml_interface_imp.h
  • YXML_DRV_NODETYPE_ELEMENT : xml_interface_imp.h
  • YXML_DRV_NODETYPE_TEXT : xml_interface_imp.h
  • YXML_DRV_NODETYPE_UNSUPPORTED : xml_interface_imp.h
  • YXML_DRV_OpenClose : xml_interface.cpp
  • YXML_DRV_ReleaseCString : xml_interface.cpp
  • YXML_DRV_TreeWalk : xml_interface.cpp
  • YXML_USE_DLL : xml_interface_imp.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- _ -

  • _USE_MATH_DEFINES : alexandresku.h , StatDiff.h , DrawEllipse.h , numalg.h , num_linalg.h , windowing_fun.h , imalg_tools.h , imalg_resampling.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- j -

  • JMAX : Newton-Raphson.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- k -

  • killsubseg : sfm_mesh_triangle.cpp
  • killtri : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- l -

  • lnext : sfm_mesh_triangle.cpp
  • lnextself : sfm_mesh_triangle.cpp
  • lprev : sfm_mesh_triangle.cpp
  • lprevself : sfm_mesh_triangle.cpp
  • LSB : tiff.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- m -

  • mark : sfm_mesh_triangle.cpp
  • MAX : ytypes.h
  • MAX3 : ytypes.h
  • MAX4 : ytypes.h
  • MAXIT : Newton-Raphson.h
  • MIN : virtdib.cpp , ytypes.h
  • MIN3 : ytypes.h
  • MIN4 : ytypes.h
  • MSB : tiff.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- n -

  • NEW_SUBFILE_TYPE_TAG : tiff.h
  • NO_TIMER : sfm_mesh_triangle.cpp
  • NTRY : Bracketing.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- o -

  • ONETHIRD : sfm_mesh_triangle.cpp
  • onext : sfm_mesh_triangle.cpp
  • onextself : sfm_mesh_triangle.cpp
  • oprev : sfm_mesh_triangle.cpp
  • oprevself : sfm_mesh_triangle.cpp
  • org : sfm_mesh_triangle.cpp
  • otricopy : sfm_mesh_triangle.cpp
  • otriequal : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- a -

  • AA : nummet00.cpp
  • ABS : ytypes.h
  • Absolute : sfm_mesh_triangle.cpp
  • ALF : DFPMinimization.h
  • ANSI_DECLARATORS : sfm_mesh_triangle.cpp
  • apex : sfm_mesh_triangle.cpp
  • areabound : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- b -

  • BADSUBSEGPERBLOCK : sfm_mesh_triangle.cpp
  • BADTRIPERBLOCK : sfm_mesh_triangle.cpp
  • BI_RGB : bmp.h
  • BI_RLE4 : bmp.h
  • BI_RLE8 : bmp.h
  • BITS_PER_SAMPLE_TAG : tiff.h
  • bond : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- c -

  • CDT_ONLY : sfm_mesh_triangle.cpp
  • COLOR_SPACE_CONST_IV1V2_A : color_spaces.h
  • COLOR_SPACE_CONST_IV1V2_B : color_spaces.h
  • COLOR_SPACE_CONST_IV1V2_C : color_spaces.h
  • COLOR_SPACE_CONST_IV1V2_D : color_spaces.h
  • COLOR_SPACE_CONST_IV1V2_S : color_spaces.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- d -

  • deadsubseg : sfm_mesh_triangle.cpp
  • deadtri : sfm_mesh_triangle.cpp
  • DEADVERTEX : sfm_mesh_triangle.cpp
  • decode : sfm_mesh_triangle.cpp
  • deg : ygeometr.h
  • dest : sfm_mesh_triangle.cpp
  • dissolve : sfm_mesh_triangle.cpp
  • DLL_FUN : ywin.h
  • dnext : sfm_mesh_triangle.cpp
  • dnextself : sfm_mesh_triangle.cpp
  • dprev : sfm_mesh_triangle.cpp
  • dprevself : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- e -

  • elemattribute : sfm_mesh_triangle.cpp
  • encode : sfm_mesh_triangle.cpp
  • EPS : spec_functions.h , DFPMinimization.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- f -

  • FACTOR : Bracketing.h
  • Fast_Two_Sum : sfm_mesh_triangle.cpp
  • Fast_Two_Sum_Tail : sfm_mesh_triangle.cpp
  • FILENAMESIZE : sfm_mesh_triangle.cpp
  • FILL_STR_FRG : imresamp.cpp
  • FLIPSTACKERPERBLOCK : sfm_mesh_triangle.cpp
  • FPMIN : spec_functions.h
  • FREEVERTEX : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- i -

  • IMAGE_DATA_LAYOUT_VERSION : vtl_image_types.h
  • IMAGE_LENGTH_TAG : tiff.h
  • IMAGE_MAX_FRAME : aimage.h
  • IMAGE_WIDTH_TAG : tiff.h
  • IN_BOUNDS : ytypes.h
  • INEXACT : sfm_mesh_triangle.cpp
  • infect : sfm_mesh_triangle.cpp
  • infected : sfm_mesh_triangle.cpp
  • INPUTLINESIZE : sfm_mesh_triangle.cpp
  • INPUTVERTEX : sfm_mesh_triangle.cpp
  • INT16_C : stdint.h
  • INT16_MAX : stdint.h
  • INT16_MIN : stdint.h
  • INT32_C : stdint.h
  • INT32_MAX : stdint.h
  • INT32_MIN : stdint.h
  • INT64_C : stdint.h
  • INT64_MAX : stdint.h
  • INT64_MIN : stdint.h
  • INT8_C : stdint.h
  • INT8_MAX : stdint.h
  • INT8_MIN : stdint.h
  • INT_FAST16_MAX : stdint.h
  • INT_FAST16_MIN : stdint.h
  • INT_FAST32_MAX : stdint.h
  • INT_FAST32_MIN : stdint.h
  • INT_FAST64_MAX : stdint.h
  • INT_FAST64_MIN : stdint.h
  • INT_FAST8_MAX : stdint.h
  • INT_FAST8_MIN : stdint.h
  • INT_LEAST16_MAX : stdint.h
  • INT_LEAST16_MIN : stdint.h
  • INT_LEAST32_MAX : stdint.h
  • INT_LEAST32_MIN : stdint.h
  • INT_LEAST64_MAX : stdint.h
  • INT_LEAST64_MIN : stdint.h
  • INT_LEAST8_MAX : stdint.h
  • INT_LEAST8_MIN : stdint.h
  • INTMAX_C : stdint.h
  • INTMAX_MAX : stdint.h
  • INTMAX_MIN : stdint.h
  • INTPTR_MAX : stdint.h
  • INTPTR_MIN : stdint.h
  • IT_EXCEPTION : imtransf.cpp
  • ITMAX : DFPMinimization.h , spec_functions.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- p -

  • PALETTE_TAG : tiff.h
  • PHOTOMETRIC_INTERPRETATION_TAG : tiff.h
  • PI : sfm_mesh_triangle.cpp
  • PROCESSOR_MEMORY_ALIGNMENT : storage.h
  • PROCESSOR_MEMORY_AVOID_PTR_DIFF : storage.h
  • PTRDIFF_MAX : stdint.h
  • PTRDIFF_MIN : stdint.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- r -

  • rad : ygeometr.h
  • REAL : sfm_mesh_triangle.cpp , sfm_mesh_triangle.h , sfm_mesh_TriResult.cpp
  • rnext : sfm_mesh_triangle.cpp
  • rnextself : sfm_mesh_triangle.cpp
  • ROTATE : EigenValueDecomp.h
  • ROWS_PER_STRIP_TAG : tiff.h
  • rprev : sfm_mesh_triangle.cpp
  • rprevself : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- s -

  • SAMPLEFACTOR : sfm_mesh_triangle.cpp
  • SAMPLERATE : sfm_mesh_triangle.cpp
  • SAMPLES_PER_PIXEL_TAG : tiff.h
  • sbond : sfm_mesh_triangle.cpp
  • sdecode : sfm_mesh_triangle.cpp
  • sdest : sfm_mesh_triangle.cpp
  • sdissolve : sfm_mesh_triangle.cpp
  • SEGMENTVERTEX : sfm_mesh_triangle.cpp
  • sencode : sfm_mesh_triangle.cpp
  • setapex : sfm_mesh_triangle.cpp
  • setareabound : sfm_mesh_triangle.cpp
  • setdest : sfm_mesh_triangle.cpp
  • setelemattribute : sfm_mesh_triangle.cpp
  • setmark : sfm_mesh_triangle.cpp
  • setorg : sfm_mesh_triangle.cpp
  • setsdest : sfm_mesh_triangle.cpp
  • setsorg : sfm_mesh_triangle.cpp
  • setvertex2tri : sfm_mesh_triangle.cpp
  • setvertexmark : sfm_mesh_triangle.cpp
  • setvertextype : sfm_mesh_triangle.cpp
  • SIG_ATOMIC_MAX : stdint.h
  • SIG_ATOMIC_MIN : stdint.h
  • SIGN : ytypes.h
  • SIZE_MAX : stdint.h
  • SIZEOF_TEST_DYNAMIC : imagemem.cpp , oz.cpp
  • snext : sfm_mesh_triangle.cpp
  • snextself : sfm_mesh_triangle.cpp
  • sorg : sfm_mesh_triangle.cpp
  • spivot : sfm_mesh_triangle.cpp
  • spivotself : sfm_mesh_triangle.cpp
  • SPLAYNODEPERBLOCK : sfm_mesh_triangle.cpp
  • Split : sfm_mesh_triangle.cpp
  • Square : sfm_mesh_triangle.cpp
  • Square_Tail : sfm_mesh_triangle.cpp
  • SQUAREROOTTWO : sfm_mesh_triangle.cpp
  • ssym : sfm_mesh_triangle.cpp
  • ssymself : sfm_mesh_triangle.cpp
  • STARTINDEX : sfm_mesh_triangle.cpp
  • stdissolve : sfm_mesh_triangle.cpp
  • stpivot : sfm_mesh_triangle.cpp
  • STPMX : DFPMinimization.h
  • STRIPS_BYTE_COUNTS_TAG : tiff.h
  • STRIPS_OFFSET_TAG : tiff.h
  • SUBFILE_TYPE_TAG : tiff.h
  • subsegcopy : sfm_mesh_triangle.cpp
  • subsegequal : sfm_mesh_triangle.cpp
  • SUBSEGPERBLOCK : sfm_mesh_triangle.cpp
  • SWAP : fourier.cpp
  • sym : sfm_mesh_triangle.cpp
  • symself : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- t -

  • TAG_COMPRESSION : tiff.h
  • TAG_PLANAR_CONFIGURATION : tiff.h
  • TOLX : DFPMinimization.h
  • TRILIBRARY : sfm_mesh_triangle.cpp
  • TRIPERBLOCK : sfm_mesh_triangle.cpp
  • tsbond : sfm_mesh_triangle.cpp
  • tsdissolve : sfm_mesh_triangle.cpp
  • tspivot : sfm_mesh_triangle.cpp
  • TTYP_ASCII : tiff.h
  • TTYP_BYTE : tiff.h
  • TTYP_LONG : tiff.h
  • TTYP_RATIONAL : tiff.h
  • TTYP_SHORT : tiff.h
  • Two_Diff : sfm_mesh_triangle.cpp
  • Two_Diff_Tail : sfm_mesh_triangle.cpp
  • Two_One_Diff : sfm_mesh_triangle.cpp
  • Two_One_Product : sfm_mesh_triangle.cpp
  • Two_One_Sum : sfm_mesh_triangle.cpp
  • Two_Product : sfm_mesh_triangle.cpp
  • Two_Product_Presplit : sfm_mesh_triangle.cpp
  • Two_Product_Tail : sfm_mesh_triangle.cpp
  • Two_Sum : sfm_mesh_triangle.cpp
  • Two_Sum_Tail : sfm_mesh_triangle.cpp
  • Two_Two_Diff : sfm_mesh_triangle.cpp
  • Two_Two_Sum : sfm_mesh_triangle.cpp
  • TYPELIST_1 : alexandresku.h
  • TYPELIST_10 : alexandresku.h
  • TYPELIST_11 : alexandresku.h
  • TYPELIST_12 : alexandresku.h
  • TYPELIST_13 : alexandresku.h
  • TYPELIST_14 : alexandresku.h
  • TYPELIST_15 : alexandresku.h
  • TYPELIST_2 : alexandresku.h
  • TYPELIST_3 : alexandresku.h
  • TYPELIST_4 : alexandresku.h
  • TYPELIST_5 : alexandresku.h
  • TYPELIST_6 : alexandresku.h
  • TYPELIST_7 : alexandresku.h
  • TYPELIST_8 : alexandresku.h
  • TYPELIST_9 : alexandresku.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- u -

  • UINT16_C : stdint.h
  • UINT16_MAX : stdint.h
  • UINT32_C : stdint.h
  • UINT32_MAX : stdint.h
  • UINT64_C : stdint.h
  • UINT64_MAX : stdint.h
  • UINT8_C : stdint.h
  • UINT8_MAX : stdint.h
  • UINT_FAST16_MAX : stdint.h
  • UINT_FAST32_MAX : stdint.h
  • UINT_FAST64_MAX : stdint.h
  • UINT_FAST8_MAX : stdint.h
  • UINT_LEAST16_MAX : stdint.h
  • UINT_LEAST32_MAX : stdint.h
  • UINT_LEAST64_MAX : stdint.h
  • UINT_LEAST8_MAX : stdint.h
  • UINTMAX_C : stdint.h
  • UINTMAX_MAX : stdint.h
  • UINTPTR_MAX : stdint.h
  • UNDEADVERTEX : sfm_mesh_triangle.cpp
  • uninfect : sfm_mesh_triangle.cpp
  • USE_DIRECT_SEARCH : AutoCalibration.cpp
  • UU : nummet00.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- v -

  • vertex2tri : sfm_mesh_triangle.cpp
  • vertexmark : sfm_mesh_triangle.cpp
  • VERTEXPERBLOCK : sfm_mesh_triangle.cpp
  • vertextype : sfm_mesh_triangle.cpp
  • VIRUSPERBLOCK : sfm_mesh_triangle.cpp
  • VOID : sfm_mesh_triangle.cpp
  • VV : nummet00.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- w -

  • WCHAR_MAX : stdint.h
  • WCHAR_MIN : stdint.h
  • WINT_MAX : stdint.h
  • WINT_MIN : stdint.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • w
  • y

- y -

  • YXML_DRIVER_USING : xml_interface.cpp
  • YXML_DRV_NODETYPE_ATTRIBUTE : xml_interface_imp.h
  • YXML_DRV_NODETYPE_COMMENT : xml_interface_imp.h
  • YXML_DRV_NODETYPE_ELEMENT : xml_interface_imp.h
  • YXML_DRV_NODETYPE_TEXT : xml_interface_imp.h
  • YXML_DRV_NODETYPE_UNSUPPORTED : xml_interface_imp.h
  • YXML_USE_DLL : xml_interface_imp.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы

  • finddirectionresult : sfm_mesh_triangle.cpp
  • ImageClass : vtl_image_types.h
  • insertvertexresult : sfm_mesh_triangle.cpp
  • Interleave : vtl_image_types.h
  • locateresult : sfm_mesh_triangle.cpp
  • NormalizationType : color_spaces.h
  • SampleType : vtl_image_types.h
  • SystemType : color_spaces.h
  • Type : plf_kernels_1d.h
  • wordtype : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • b
  • d
  • e
  • f
  • g
  • i
  • k
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • t
  • v
  • w

- b -

  • BIL : vtl_image_types.h
  • BIP : vtl_image_types.h
  • BSQ : vtl_image_types.h

- d -

  • DUPLICATEVERTEX : sfm_mesh_triangle.cpp

- e -

  • ENCROACHINGVERTEX : sfm_mesh_triangle.cpp

- f -

  • FLOATINGPOINT : sfm_mesh_triangle.cpp

- g -

  • Grayscale : vtl_image_types.h

- i -

  • INTRIANGLE : sfm_mesh_triangle.cpp

- k -

  • KT_Conv : plf_kernels_1d.h
  • KT_Corr : plf_kernels_1d.h
  • KT_Win : plf_kernels_1d.h

- l -

  • LEFTCOLLINEAR : sfm_mesh_triangle.cpp

- m -

  • Mask : vtl_image_types.h
  • Multichan : vtl_image_types.h

- n -

  • nDefault : color_spaces.h
  • nNoScale : color_spaces.h
  • nSaveChrom : color_spaces.h
  • nSaveRatio : color_spaces.h
  • nStretch : color_spaces.h

- o -

  • ONEDGE : sfm_mesh_triangle.cpp
  • ONVERTEX : sfm_mesh_triangle.cpp
  • OUTSIDE : sfm_mesh_triangle.cpp

- p -

  • Palette : vtl_image_types.h
  • POINTER : sfm_mesh_triangle.cpp

- r -

  • RIGHTCOLLINEAR : sfm_mesh_triangle.cpp

- s -

  • SEP : vtl_image_types.h
  • ST_c32f : vtl_image_types.h
  • ST_c64f : vtl_image_types.h
  • ST_f32 : vtl_image_types.h
  • ST_f64 : vtl_image_types.h
  • ST_s16 : vtl_image_types.h
  • ST_s32 : vtl_image_types.h
  • ST_s64 : vtl_image_types.h
  • ST_s8 : vtl_image_types.h
  • ST_u16 : vtl_image_types.h
  • ST_u32 : vtl_image_types.h
  • ST_u64 : vtl_image_types.h
  • ST_u8 : vtl_image_types.h
  • ST_Unknown : vtl_image_types.h
  • SUCCESSFULVERTEX : sfm_mesh_triangle.cpp
  • sys_chrom : color_spaces.h
  • sys_hue : color_spaces.h
  • sys_other : color_spaces.h

- t -

  • TrueColor : vtl_image_types.h

- v -

  • VIOLATINGVERTEX : sfm_mesh_triangle.cpp

- w -

  • WITHIN : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- _ -

  • _calcRowLen() : bmp.cpp
  • _CreateDir() : yfilesys.cpp
  • _dfpmin() : DFPMinimization.h
  • _dir_separator() : yfilesys.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- j -

  • jacobi() : EigenValueDecomp.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- k -

  • KMeans() : KMeans.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- l -

  • lnsrch() : DFPMinimization.h
  • LoadBmpFile() : image_io.cpp
  • LoadFloatFile() : image_io.cpp
  • LoadOzFile() : image_io.cpp
  • LoadPbmFile() : image_io.cpp
  • LoadPoints() : Includings.h
  • LoadPpmFile() : image_io.cpp
  • LoadTiffFile() : image_io.cpp
  • locate() : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- m -

  • main() : PipeLineFilters.cpp , work_with_image.cpp
  • MakeDifferenceImage() : HomographyMatrix.h , Includings.h
  • makesubseg() : sfm_mesh_triangle.cpp
  • maketriangle() : sfm_mesh_triangle.cpp
  • makevertexmap() : sfm_mesh_triangle.cpp
  • MarkCorrespondences() : HomographyMatrix.h , Includings.h
  • markhull() : sfm_mesh_triangle.cpp
  • matrix_max_abs_element() : _num_boost_adds.h
  • max() : alexandresku.h
  • max_abs_element() : _num_boost_adds.h
  • mergehulls() : sfm_mesh_triangle.cpp
  • message_error_when_load_image_file() : image_io.cpp
  • message_load_file() : image_io.cpp
  • message_load_file_aborted() : image_io.cpp
  • message_unknown_image_format() : image_io.cpp
  • min() : alexandresku.h , apipe.cpp
  • minus_if_odd() : alexandresku.h
  • mrqcof() : LMMinimization.h
  • mrqmin() : LMMinimization.h
  • mult() : integral_transforms.h
  • mult_if() : alexandresku.h
  • mult_if_odd() : alexandresku.h
  • MultMinusOnePowerTo() : vtl_meta_tools.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- n -

  • n_pow() : alexandresku.h
  • nmBetaFnForStudent() : nummet.h , nummet01.cpp
  • nmFilteredMeanByStudent() : nummet.h , nummet00.h
  • nmFindBadByStudent() : nummet.h , nummet00.h
  • nmFMIN() : nummet00.cpp , nummet.h
  • nmGAMMLN() : nummet.h , nummet00.cpp
  • nmLinearLeastSquares() : nummet.h , nummet00.h
  • nmMaxArrayElem() : nummet.h , nummet00.h
  • nmMeanAndDisp() : nummet.h , nummet00.h
  • nmMedian() : nummet00.h , nummet.h
  • nmMedian1D() : nummet00.h , nummet.h
  • nmNormQRev() : nummet.h , nummet01.cpp
  • nmPoly() : nummet.h , nummet00.cpp
  • nmPow() : nummet.h , nummet00.cpp
  • nmQUANC8() : nummet00.cpp , nummet.h
  • nmRang() : nummet00.h , nummet.h
  • nmSEVAL() : nummet00.cpp , nummet.h
  • nmSPLINE() : nummet00.cpp , nummet.h
  • nmSPLINE_FREE() : nummet00.cpp , nummet.h
  • nmSVD() : nummet.h , nummet00.cpp
  • nmTStudentPercPt() : nummet01.cpp , nummet.h
  • nmTStudentPercPtAssimpt() : nummet01.cpp , nummet.h
  • nmTStudentPercPtNlRoot() : nummet01.cpp , nummet.h
  • nmTStudentPercPtTauThreshold() : nummet01.cpp , nummet.h
  • nmTStudentPercPtViaIntegral() : nummet01.cpp , nummet.h
  • nmVDCPS() : nummet.h , nummet00.cpp
  • nmVTRAN() : nummet.h , nummet00.cpp
  • nmZEROIN() : nummet.h , nummet00.cpp
  • nonregular() : sfm_mesh_triangle.cpp
  • norm_ifft() : integral_transforms.h
  • normalize_line() : virtdib.cpp
  • normalize_line_rgb() : virtdib.cpp
  • NormalizeImage() : SaveImageArray.h
  • nrc_dfpmin() : num_optimization.h
  • nrc_lnsrch() : num_optimization.h
  • numbernodes() : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- o -

  • offset_to_zero_freq() : integral_transforms.h
  • operator!=() : imtransf.cpp , imtransf.h
  • operator<<() : ygeometr.h , sfm_dbg.h , ygeometr.h , imtransf.h , sfm_dbg.h , img_trans_models.h , imtransf.cpp , vtl_meta_IndexList.h , img_trans_models.h
  • operator==() : imtransf.h , imtransf.cpp
  • orient3d() : sfm_mesh_triangle.cpp
  • orient3dadapt() : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- z -

  • zbrac() : Bracketing.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- a -

  • AddOrSub() : vtl_meta_tools.h
  • AddQuadrants2D() : integral_transforms.h
  • Affine() : imalg_resampling.h
  • AImageCreate() : aimage.h , imagemem.cpp , aimage.h
  • AImageFilter_Duplicate() : imfilter.h , imtune.cpp
  • AImageFilter_LineDetect_RobertsAbs() : imfilter.h , imline.cpp
  • AImageFilter_LineDetect_RobertsSqrt() : imfilter.h , imline.cpp
  • AImageFilter_LineDetect_Sobel() : imfilter.h , imline.cpp
  • AImageFilter_LineThining() : imfilter.h , imline.cpp
  • AImageFilter_Negative() : imfilter.h , imtune.cpp
  • AImageIsCompatible() : imagemem.cpp , aimage.h
  • AImageLoad() : image_io.cpp , aimage.h
  • AImageSave() : aimage.h , image_io.cpp
  • AImageSetColor() : imtransf.cpp , imtransf.h
  • AImageSetNull() : imtransf.h , imtransf.cpp
  • align() : vtl_image_old.h , vtl_meta_tools.h
  • alternateaxes() : sfm_mesh_triangle.cpp
  • ArrayElemProduct() : integral_transforms.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- b -

  • bit_reversal() : integral_transforms.h
  • bit_reversal_complex() : integral_transforms.h
  • border() : convolve.h
  • boundingbox() : sfm_mesh_triangle.cpp
  • BoundsCyclic() : imalg_tools.h
  • BoundsNo() : imalg_tools.h
  • build_line() : virtdib.cpp
  • build_line_add() : virtdib.cpp
  • build_line_zoom_in() : virtdib.cpp
  • build_line_zoom_in_add() : virtdib.cpp
  • build_line_zoom_no() : virtdib.cpp
  • build_line_zoom_no_add() : virtdib.cpp
  • build_line_zoom_out() : virtdib.cpp
  • build_line_zoom_out_add() : virtdib.cpp
  • build_strides() : vtl_image_old.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- c -

  • c() : windowing_fun.h
  • calc_F1multF2star_from_2_simult_real_fft() : integral_transforms.h
  • calc_total_sum() : img_registration.h
  • CalcSmalestPow2() : integral_transforms.h
  • CartToPolar() : imalg_resampling.h
  • carveholes() : sfm_mesh_triangle.cpp
  • changeExt() : yfilesys.cpp
  • changeExtIf() : yfilesys.cpp
  • check4deadevent() : sfm_mesh_triangle.cpp
  • checkdelaunay() : sfm_mesh_triangle.cpp
  • checkmesh() : sfm_mesh_triangle.cpp
  • circletop() : sfm_mesh_triangle.cpp
  • circletopinsert() : sfm_mesh_triangle.cpp
  • comp_AmpToPolar() : img_registration.h
  • comp_Phase() : img_registration.h
  • comp_phase_corr() : img_registration.h
  • comp_Rotate() : img_registration.h
  • constrainededge() : sfm_mesh_triangle.cpp
  • Conv1pt() : convolve.h
  • ConvolveNoExt() : convolve.h
  • copy() : vtl_meta_tools.h
  • copy_10_7() : img_utils.h
  • copy_1_1() : imalg_tools.h
  • copy_1_2() : img_utils.h
  • copy_2_1() : imalg_tools.h
  • copy_2_2() : imalg_tools.h
  • copy_2_3() : imalg_tools.h
  • copy_2_4() : imalg_tools.h
  • copy_3_1() : imalg_tools.h
  • copy_3_2() : imalg_tools.h
  • copy_3_3() : imalg_tools.h
  • copy_3_4() : imalg_tools.h
  • copy_3_5() : imalg_tools.h
  • copy_5_1() : imalg_tools.h
  • copy_6_1() : imalg_tools.h
  • counterclockwise() : sfm_mesh_triangle.cpp
  • counterclockwiseadapt() : sfm_mesh_triangle.cpp
  • covsrt() : LMMinimization.h
  • CreateDir() : yfilesys.cpp
  • createeventheap() : sfm_mesh_triangle.cpp
  • CreateFileName() : SaveImageArray.h
  • cwd() : yfilesys.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- d -

  • DefaultItemName() : ywinini.cpp
  • delaunay() : sfm_mesh_triangle.cpp
  • delaunayfixup() : sfm_mesh_triangle.cpp
  • delta_correlation() : img_registration.h
  • determinant() : vtl_meta_permutations.h
  • dif_sum() : integral_transforms.h
  • distance() : ygeometr.cpp , ygeometr.h
  • divconqdelaunay() : sfm_mesh_triangle.cpp
  • divconqrecurse() : sfm_mesh_triangle.cpp
  • DrawCentCluster() : KMeans.h
  • DrawEllipse() : DrawEllipse.h
  • DrawEpipolarLines() : FundamentalMatrix.h
  • DrawRadCluster() : KMeans.h
  • dsin() : alexandresku.h
  • dummyinit() : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- e -

  • envTransf_1_1() : imalg_tools.h
  • envTransf_2Ddircheck() : img_utils.h
  • envTransf_3D() : img_utils.h
  • envTransf_3e1_1() : imalg_tools.h
  • equalDouble() : ygeometr.cpp
  • erf() : spec_functions.h
  • erfc() : spec_functions.h
  • erfcc() : spec_functions.h
  • ERROR_CantSaveFormat() : image_io.cpp
  • ERROR_CreateImage() : image_io.cpp
  • ERROR_NotCompatImages() : image_io.cpp
  • ERROR_SaveImageNotValid() : image_io.cpp
  • ERROR_UnknownImageFileExtension() : image_io.cpp
  • EssentialMatrix() : EssentialMatrix.cpp
  • estimate() : sfm_mesh_triangle.cpp
  • eventheapdelete() : sfm_mesh_triangle.cpp
  • eventheapify() : sfm_mesh_triangle.cpp
  • eventheapinsert() : sfm_mesh_triangle.cpp
  • exactinit() : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- f -

  • fast_expansion_sum_zeroelim() : sfm_mesh_triangle.cpp
  • fft1D() : integral_transforms.h
  • fft2D() : integral_transforms.h
  • fft3D() : integral_transforms.h
  • fftND() : integral_transforms.h
  • fht1D() : integral_transforms.h
  • fht1D_() : integral_transforms.h
  • fht2D() : integral_transforms.h
  • fht2D_square() : integral_transforms.h
  • find_offset() : img_registration.h
  • find_shift() : img_registration.h
  • FindCameraQuaternion() : sfm_export_3D_model.h
  • findcircumcenter() : sfm_mesh_triangle.cpp
  • FindCommonFeaturePoints() : Includings.h
  • finddirection() : sfm_mesh_triangle.cpp
  • FindTranslationToObjectCenterOfMass() : sfm_export_3D_model.h
  • flip() : sfm_mesh_triangle.cpp
  • flip_vert() : img_registration.h
  • Fmin() : num_optimization.h
  • ForEachDimensionDo1D() : integral_transforms.h
  • ForEachPermutation() : vtl_meta_permutations.h
  • ForEachPermutationOfIndexList() : vtl_meta_permutations.h
  • formskeleton() : sfm_mesh_triangle.cpp
  • FromFM() : sfm_structure_from_2_views.h
  • frontlocate() : sfm_mesh_triangle.cpp
  • FToMinimaze() : LMMinimization.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- g -

  • G() : img_registration_oflow.h
  • GammaCorFunctor() : SaveImageArray.h
  • gaussj() : LMMinimization.h
  • getDir() : yfilesys.cpp
  • getEnv() : yfilesys.h , yfilesys.cpp
  • getExt() : yfilesys.cpp
  • getFileSize() : yfilesys.cpp
  • GetImag() : integral_transforms.h
  • GetImag_1D() : integral_transforms.h
  • GetModul() : integral_transforms.h
  • getName() : yfilesys.cpp
  • getNameWithoutExt() : yfilesys.h
  • GetReal() : integral_transforms.h
  • GetReal_1D() : integral_transforms.h
  • gets_from_buf() : pbm_file.cpp
  • GetStatCharact() : StatDiff.h
  • getTime() : yfilesys.cpp
  • getvertex() : sfm_mesh_triangle.cpp
  • GradStatDiff() : StatDiff.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- h -

  • highorder() : sfm_mesh_triangle.cpp
  • highpass_filtering() : img_registration.h
  • highpass_filtering_half() : img_registration.h
  • HSV_HSL_hue() : color_spaces.h
  • hypot() : _num_eigen.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- i -

  • ifft1D() : integral_transforms.h
  • ifft2D() : integral_transforms.h
  • ifft3D() : integral_transforms.h
  • ifht1D() : integral_transforms.h
  • ifht2D() : integral_transforms.h
  • ImgDataAlloc() : imagemem.cpp
  • incircle() : sfm_mesh_triangle.cpp
  • incircleadapt() : sfm_mesh_triangle.cpp
  • incrementaldelaunay() : sfm_mesh_triangle.cpp
  • infecthull() : sfm_mesh_triangle.cpp
  • initializetrisubpools() : sfm_mesh_triangle.cpp
  • initializevertexpool() : sfm_mesh_triangle.cpp
  • InRow_BoundsCyclic() : imalg_tools.h
  • InRow_BoundsNo() : imalg_tools.h
  • insertsegment() : sfm_mesh_triangle.cpp
  • insertsubseg() : sfm_mesh_triangle.cpp
  • insertvertex() : sfm_mesh_triangle.cpp
  • IntegrateKer() : plf_kernels_1d.h
  • IntegrateWindowedData() : plf_kernels_1d.h
  • internalerror() : sfm_mesh_triangle.cpp
  • IntOnePlusXSquarePowerMinusN() : nummet01.cpp
  • IntOnePlusXSquarePowerMinusNAndAHalf() : nummet01.cpp
  • inverse_diag_matrix() : _num_boost_adds.h
  • inverse_diag_matrix_positive() : _num_boost_adds.h
  • Invert() : invert.cpp
  • isBadCell() : imtransf.cpp , _imtransf.h
  • isDirExist() : yfilesys.cpp
  • isExists() : yfilesys.cpp
  • isFileExist() : yfilesys.cpp
  • isFullName() : yfilesys.cpp
  • isPathExist() : yfilesys.cpp
  • ITAverageProcessImage() : imtransf.cpp
  • ITBicubicalProcessImage() : imtransf.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- p -

  • PaintNotImageArea() : virtdib.cpp
  • PaintRect() : virtdib.cpp
  • parallelDxDy() : imtransf.cpp
  • parsecommandline() : sfm_mesh_triangle.cpp
  • pdfStud() : nummet01.cpp
  • pdfStud2() : nummet01.cpp
  • pdfStudDistr() : nummet01.cpp
  • plague() : sfm_mesh_triangle.cpp
  • PointOnAxisProjectionLength() : ygeometr.cpp , ygeometr.h
  • pointsEqual() : ygeometr.h
  • poolalloc() : sfm_mesh_triangle.cpp
  • pooldealloc() : sfm_mesh_triangle.cpp
  • pooldeinit() : sfm_mesh_triangle.cpp
  • poolinit() : sfm_mesh_triangle.cpp
  • poolrestart() : sfm_mesh_triangle.cpp
  • preciselocate() : sfm_mesh_triangle.cpp
  • print() : vtl_meta_SizeList.h
  • print_array() : vtl_meta_tools.h
  • PrintAndSave() : FundamentalMatrix.h
  • printsubseg() : sfm_mesh_triangle.cpp
  • printtriangle() : sfm_mesh_triangle.cpp
  • proc_pos_neg_freq() : integral_transforms.h
  • prod_diag() : _num_boost_adds.h
  • ProjectiveTransform() : imalg_resampling.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- q -

  • Q() : windowing_fun.h
  • QuadrangleArea() : ygeometr.h , ygeometr.cpp
  • quality_statistics() : sfm_mesh_triangle.cpp
  • quasi_fht2D() : integral_transforms.h
  • quasi_fhtND() : integral_transforms.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- r -

  • randomnation() : sfm_mesh_triangle.cpp
  • Ransac() : Ransac.h
  • readtiff() : tiff.cpp
  • RecompMatrix() : RecompMatrix.h
  • regionplague() : sfm_mesh_triangle.cpp
  • RelerrEps() : numalg.h
  • remExt() : yfilesys.cpp
  • removebox() : sfm_mesh_triangle.cpp
  • removeghosts() : sfm_mesh_triangle.cpp
  • Return1stArg() : alexandresku.h
  • ReturnArg() : alexandresku.h
  • ReturnArg_() : alexandresku.h
  • rev() : integral_transforms.h
  • rightofhyperbola() : sfm_mesh_triangle.cpp
  • rm() : yfilesys.cpp
  • RotateScale() : imalg_resampling.h
  • RQDecomposition() : RQDecomposition.cpp
  • rtnewt() : Newton-Raphson.cpp
  • rtsafe() : Newton-Raphson.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- s -

  • SaveAbsImageArray() : SaveImageArray.h
  • SaveBmpFile() : image_io.cpp
  • SaveColourImageArray() : SaveImageArray.h
  • SaveFloatFile() : image_io.cpp
  • SaveImage() : SaveImageArray.h
  • SaveImageArray() : SaveImageArray.h
  • SaveNormImageArray() : SaveImageArray.h
  • SaveOzFile() : image_io.cpp
  • SavePbmFile() : image_io.cpp
  • SavePpmFile() : image_io.cpp
  • SaveTiffFile() : image_io.cpp
  • SaveVRML_AsPointsSet() : sfm_export_3D_model.h
  • scale_expansion_zeroelim() : sfm_mesh_triangle.cpp
  • scoutsegment() : sfm_mesh_triangle.cpp
  • segmentintersection() : sfm_mesh_triangle.cpp
  • set() : vtl_meta_tools.h
  • set_seq() : vtl_meta_tools.h
  • SetMessageLanguage() : progrcnt.h
  • sign() : numalg.h
  • sincos() : alexandresku.h
  • sing_fortran() : _num_svd.h
  • SingularValues() : EssentialMatrix.cpp
  • smallest_log2_ge_size() : integral_transforms.h
  • SolveSystem() : SolveSystem.h
  • sort() : _num_implicit.h
  • sort_columns() : _num_implicit.h
  • splay() : sfm_mesh_triangle.cpp
  • splayinsert() : sfm_mesh_triangle.cpp
  • sqr() : alexandresku.h
  • Sqr() : integral_transforms.h
  • sqr() : plf_functors.h
  • Sscanf() : datastring.h
  • StatDiff() : StatDiff.h
  • statistics() : sfm_mesh_triangle.cpp
  • StrCmpI() : yfilesys.cpp
  • subsegdealloc() : sfm_mesh_triangle.cpp
  • subsegtraverse() : sfm_mesh_triangle.cpp
  • sum() : vtl_meta_tools.h
  • swap() : integral_transforms.h , ygeometr.cpp
  • SWAP() : LMMinimization.h
  • SwapArrayHalfs() : integral_transforms.h
  • SwapQuadrants() : integral_transforms.h
  • SwapQuadrants_offset() : integral_transforms.h
  • SwapQuarters() : integral_transforms.h
  • sweeplinedelaunay() : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- t -

  • Test() : Includings.h
  • test_save_x() : img_registration.h
  • tmpl_LeftRight() : mslieqlz.cpp
  • tmpl_RightLeft() : mslieqlz.cpp
  • tmpl_Run() : mslieqlz.cpp
  • tmpl_VertLeftDown() : mslieqlz.cpp
  • tmpl_VertLeftMiddle() : mslieqlz.cpp
  • tmpl_VertLeftUp() : mslieqlz.cpp
  • tmpl_VertRightDown() : mslieqlz.cpp
  • tmpl_VertRightMiddle() : mslieqlz.cpp
  • tmpl_VertRightUp() : mslieqlz.cpp
  • ToBounds() : alexandresku.h
  • tpl_AImageFilter_Duplicate() : imtune.cpp
  • tpl_AImageFilter_LineDetect_RobertsAbs() : imline.cpp
  • tpl_AImageFilter_LineDetect_RobertsSqrt() : imline.cpp
  • tpl_AImageFilter_LineDetect_Sobel() : imline.cpp
  • tpl_AImageFilter_LineThining() : imline.cpp
  • tpl_AImageFilter_Negative() : imtune.cpp
  • transfernodes() : sfm_mesh_triangle.cpp
  • Transform() : imalg_resampling.h
  • transform_and_zero_freq() : img_registration.h
  • TransposeSqrMatrix() : integral_transforms.h
  • traversalinit() : sfm_mesh_triangle.cpp
  • traverse() : sfm_mesh_triangle.cpp
  • TriangleArea() : ygeometr.h , ygeometr.cpp
  • triangledealloc() : sfm_mesh_triangle.cpp
  • triangledeinit() : sfm_mesh_triangle.cpp
  • triangleinit() : sfm_mesh_triangle.cpp
  • triangletraverse() : sfm_mesh_triangle.cpp
  • triangulate() : sfm_mesh_triangle.cpp , sfm_mesh_triangle.h
  • triangulatepolygon() : sfm_mesh_triangle.cpp
  • trifree() : sfm_mesh_triangle.cpp
  • trimalloc() : sfm_mesh_triangle.cpp
  • triunsuitable() : sfm_mesh_triangle.cpp
  • type2ostream() : vtl_meta_IndexList.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- u -

  • unflip() : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- v -

  • v12_bilin() : ss_ridge_functors.h
  • v12_bilinear() : ss_ridge_functors.h
  • vertexdealloc() : sfm_mesh_triangle.cpp
  • vertexmedian() : sfm_mesh_triangle.cpp
  • vertexsort() : sfm_mesh_triangle.cpp
  • vertextraverse() : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- w -

  • window() : img_registration.h
  • WindowData() : plf_kernels_1d.h
  • writeedges() : sfm_mesh_triangle.cpp
  • writeelements() : sfm_mesh_triangle.cpp
  • writeneighbors() : sfm_mesh_triangle.cpp
  • writenodes() : sfm_mesh_triangle.cpp
  • writepoly() : sfm_mesh_triangle.cpp
  • writetiff() : tiff.cpp
  • writevoronoi() : sfm_mesh_triangle.cpp


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

- x -

  • xchg() : imalg_tools.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • a
  • e
  • f
  • i
  • m
  • o
  • p
  • r
  • s
  • t
  • u
  • v
  • y

- a -

  • AImageMem16Ptr : aimage.h
  • AImageMem8Ptr : aimage.h
  • AImageMemFloatPtr : aimage.h
  • AImageMemRgb16Ptr : aimage.h
  • AImageMemRgb8Ptr : aimage.h
  • AImagePtr : aimage.h
  • AllArithTypes : alexandresku.h
  • AllIntegerTypes : alexandresku.h
  • ArithTypes : alexandresku.h

- e -

  • EnviSample_DataTypesList : vtl_image_types.h
  • EnviSampleTypesList : vtl_image_types.h

- f -

  • FloatWord : ifloat.h

- i -

  • ImageVector : imtransf.h
  • ImageVectorConst : imtransf.h
  • int16_t : stdint.h
  • int32_t : stdint.h
  • int64_t : stdint.h
  • int8_t : stdint.h
  • int_fast16_t : stdint.h
  • int_fast32_t : stdint.h
  • int_fast64_t : stdint.h
  • int_fast8_t : stdint.h
  • int_least16_t : stdint.h
  • int_least32_t : stdint.h
  • int_least64_t : stdint.h
  • int_least8_t : stdint.h
  • IntegerTypes : alexandresku.h
  • intmax_t : stdint.h
  • intptr_t : stdint.h
  • IsAttrEq : xml_interface.h
  • IsNameEq : xml_interface.h
  • ITPolygon : _imtransf.h

- m -

  • main_function : PipeLineFilters.cpp
  • matrix_3_3 : Includings.h

- o -

  • offset_type : vtl_image.h , vtl_image_old.h
  • OtherIntegerTypes : alexandresku.h
  • OzWord : oz.h

- p -

  • Pix16 : virtdib.cpp
  • Pixel16 : aimage.h
  • Pixel16Ptr : aimage.h
  • Pixel8 : aimage.h
  • Pixel8Ptr : aimage.h
  • PixelFloat : aimage.h
  • PixelFloatPtr : aimage.h

- r -

  • RealTypes : alexandresku.h

- s -

  • SignedIntegerTypes : alexandresku.h
  • SignedTypes : alexandresku.h
  • subseg : sfm_mesh_triangle.cpp

- t -

  • triangle : sfm_mesh_triangle.cpp

- u -

  • uint16_t : stdint.h
  • uint32_t : stdint.h
  • uint64_t : stdint.h
  • uint8_t : stdint.h
  • uint_fast16_t : stdint.h
  • uint_fast32_t : stdint.h
  • uint_fast64_t : stdint.h
  • uint_fast8_t : stdint.h
  • uint_least16_t : stdint.h
  • uint_least32_t : stdint.h
  • uint_least64_t : stdint.h
  • uint_least8_t : stdint.h
  • uintmax_t : stdint.h
  • uintptr_t : stdint.h
  • UnsignedIntegerTypes : alexandresku.h

- v -

  • vertex : sfm_mesh_triangle.cpp

- y -

  • YPointDbl : ygeometr.h
  • YPointInt : ygeometr.h
  • YRectDbl : ygeometr.h
  • YRectInt : ygeometr.h
  • YXML_DRV_DocHandle : xml_interface_imp.h
  • YXML_DRV_NodeHandle : xml_interface_imp.h


Pipe Line Filters: Члены классов

  • Файлы
  • Список членов всех файлов
  • Указатель
  • Функции
  • Переменные
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • Макросы
  • _
  • c
  • d
  • e
  • f
  • i
  • l
  • m
  • n
  • o
  • p
  • r
  • s
  • y

- _ -

  • __iclass2store_table : imagemem.cpp

- c -

  • ccwerrboundA : sfm_mesh_triangle.cpp
  • ccwerrboundB : sfm_mesh_triangle.cpp
  • ccwerrboundC : sfm_mesh_triangle.cpp

- d -

  • DAY_IN_MONTH : ytime.cpp
  • DAY_IN_MONTH_LEAP : ytime.cpp
  • DAY_TO_MONTH : ytime.cpp
  • DAY_TO_MONTH_LEAP : ytime.cpp
  • DAYS_IN_YEAR : ytime.cpp
  • DAYS_IN_YEAR_LEAP : ytime.cpp
  • directionSequenceSize : imtransf.cpp
  • directionSequenceX : imtransf.cpp
  • directionSequenceY : imtransf.cpp

- e -

  • e : ygeometr.cpp
  • EncodingSystem : xml_interface.cpp
  • epsilon : sfm_mesh_triangle.cpp

- f -

  • FILE_STAMP : ifloat.cpp

- i -

  • iccerrboundA : sfm_mesh_triangle.cpp
  • iccerrboundB : sfm_mesh_triangle.cpp
  • iccerrboundC : sfm_mesh_triangle.cpp
  • indicator : consolap.h , progrcnt.cpp

- l -

  • list_of_tests : PipeLineFilters.cpp
  • list_of_tests_size : PipeLineFilters.cpp

- m -

  • minus1mod3 : sfm_mesh_triangle.cpp
  • MKS_IN_YEAR : ytime.cpp
  • MKS_IN_YEAR_LEAP : ytime.cpp
  • MONTH_IN_YEAR : ytime.cpp

- n -

  • NM_2PI : ygeometr.h
  • NM_4PI : ygeometr.h
  • NM_DEG2RAD : ygeometr.h
  • NM_PI : ygeometr.h
  • NM_PI2 : ygeometr.h
  • NM_PI4 : ygeometr.h
  • NM_RAD2DEG : ygeometr.h

- o -

  • o3derrboundA : sfm_mesh_triangle.cpp
  • o3derrboundB : sfm_mesh_triangle.cpp
  • o3derrboundC : sfm_mesh_triangle.cpp

- p -

  • plus1mod3 : sfm_mesh_triangle.cpp

- r -

  • randomseed : sfm_mesh_triangle.cpp
  • resulterrbound : sfm_mesh_triangle.cpp

- s -

  • sb : progrcnt.cpp
  • SEC_IN_DAY : ytime.cpp
  • SEC_IN_HOUR : ytime.cpp
  • SEC_IN_YEAR : ytime.cpp
  • SEC_IN_YEAR_LEAP : ytime.cpp
  • SEC_TO_MKS : ytime.cpp
  • splitter : sfm_mesh_triangle.cpp

- y -

  • yxml_drv : xml_interface.cpp
  • YXML_DRV_GetRootNode : xml_interface.cpp
  • YXML_DRV_InitializeXercesc : xml_interface.cpp
  • YXML_DRV_Insert : xml_interface.cpp
  • YXML_DRV_NodeGetSet : xml_interface.cpp
  • YXML_DRV_NodeType : xml_interface.cpp
  • YXML_DRV_OpenClose : xml_interface.cpp
  • YXML_DRV_ReleaseCString : xml_interface.cpp
  • YXML_DRV_TreeWalk : xml_interface.cpp


Pipe Line Filters: Легенда

  • Примеры

Легенда

Обозначения, используемые в графах.

Рассмотрим следующий пример:

/*! Невидимый класс из-за усечения */
class Invisible { };

/*! Усеченный класс, отношение наследования скрыто */
class Truncated : public Invisible { };

/* Недокументированный класс */
class Undocumented { };

/*! Открытое наследование */
class PublicBase : public Truncated { };

/*! Шаблон класса */
template<class T> class Templ {};

/*! Защищенное наследование */
class ProtectedBase { };

/*! Закрытое наследование */
class PrivateBase { };

/*! Класс, используемый классом Inherited */
class Used { };

/*! Класс, порожденный от других классов */
class Inherited : public PublicBase,
                  protected ProtectedBase,
                  private PrivateBase,
                  public Undocumented,
                  public Templ<int>
{
  private:
    Used *m_usedClass;
};
Если MAX_DOT_GRAPH_HEIGHT в конфигурационном файле установлен в 240, получится следующий граф:

Прямоугольники в этом графе имеют следующее значение:

  • Заполненный черный прямоугольник представляет структуру или класс, для которого создан граф.
  • Прямоугольник с черной границей обозначает документированную структуру или класс.
  • Прямоугольник с серой границей обозначает недокументированную структуру или класс.
  • Прямоугольник с красной границей обозначает документированную структуру или класс, для которого не все отношения наследования/содержания показаны. Граф усечен, если он не поместился в указанных границах.
Стрелки имеют следующее значение:
  • Темно-синяя стрелка используется для изображения отношения открытого наследования между двумя классами.
  • Темно-зеленая стрелка используется при защищенном наследовании.
  • Темно-красная стрелка используется при закрытом наследовании.
  • Фиолетовая стрелка используется, если класс содержится вдругом класе или используется другим классом.Со стрелкой указывается переменная, через которую доступен указываемый класс или структура.
  • Желтая стрелка используется для связи подстановки шаблона и шаблона, на основе которого эта подстановка выполнена. С шаблономуказывается параметр подстановки.


Pipe Line Filters: Исходный файл History.hxx

  • Файлы
  • Список членов всех файлов

History.hxx

См. документацию.
00001


Pipe Line Filters: Исходный файл HomographyMatrix.h

  • Файлы
  • Список членов всех файлов

HomographyMatrix.h

См. документацию.
00001 #ifndef HOMOGRAPHY_MATRIX_H
00002 #define HOMOGRAPHY_MATRIX_H
00003
00004 #include <vector>
00005
00006 // library includings
00007 #include "nummet.h"
00008 #include "num_linalg.h"
00009 #include "aimage.h"
00010
00011 // own includings
00012 #include "MatrixOperations.h"
00013 #include "Point2D.h"
00014 #include "Points2DSet.h"
00015 #include "Points2DParamSet.h"
00016 #include "SolveSystem.h"
00017 #include "ImagesSet.h"
00018 #include "Model.h"
00019 #include "Ransac.h"
00020 #include "RecompMatrix.h"
00021
00022 namespace Basics3D
00023 {
00024     void MarkCorrespondences(const char *in_name,
00025                                const int j,  // addition to name
00026                                const T_ImagesSet<AImageMem8> &in_img,
00027                                const std::vector<T_Points2DSet<C_Point2D>> &in_PointsSet,
00028                                                      const int i); // number of points to mark
00029                                                                    // -1 means all points
00030     void MakeDifferenceImage
00031               (const T_ImagesSet<AImageMem8> &in_img,
00032                const std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> &in_Matrix,
00033                const int i,
00034                      const int j,
00035                      const int k);
00036
00037     void PrintAndSave
00038               (const char *in_name,
00039            const std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> &in_Matrix,
00040                      const int i,
00041                      const int j);
00042
00043     class C_HomographyMatrix// : Basics3D::I_SoughtMatrix
00044     {
00045     public:
00046         // Returns minimal number of points pairs requared for computation of homogr. matrix
00047      static int SampleSize();
00048
00049             // Returns the distance threshold
00050             // in_sigma is inaccuracy of feature points detector
00051         static double DistThresh(double in_sigma);
00052
00053         static void CreateSystem(Vtl::NumAlg::Lin::ublas::matrix<double> &out_M,
00054                                                          /*const std::vector<C_Point2D> &in_Points,*/
00055                                                          const T_Points2DSet<C_Point2D> &in_Points);
00056
00057         static void Find(std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> &out,
00058                                          const Vtl::NumAlg::Lin::ublas::matrix<double> &in_System);
00059
00060         static double Dist(const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 1> &in_p1,
00061                                              const C_Point2D &in_p2);
00062
00063         static double MistFunc(const Vtl::NumAlg::Lin::ublas::vector<double> &in_matrix,
00064                                  const C_Point2D &in_p1,
00065                                  const C_Point2D &in_p2);
00066
00067         static void DerivativeOfMistFunc(Vtl::NumAlg::Lin::ublas::vector<double> &out,
00068                                            const Vtl::NumAlg::Lin::ublas::vector<double> &in_matrix,
00069                                            const C_Point2D &in_p1,
00070                                            const C_Point2D &in_p2);
00071
00072         static void NormMatrix(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_M,
00073                                  Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_M,
00074                                                     const double in_err);
00075         static void ApplyRansac
00076                      (std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> &out_matrix,
00077                     std::vector<T_Points2DSet<C_Point2D>> &out_inliers,
00078                                 std::vector<T_Points2DSet<C_Point2D>> &in_pointsSet,
00079                     const T_ImagesSet<AImageMem8> &in_img,
00080                     const int in_i,
00081                     const int in_j,
00082                     const int in_size,
00083                     const double in_sigma);
00084
00085         static void RecomputeWithAllPoints
00086                      (std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> &out_matrix,
00087                     std::vector<T_Points2DSet<C_Point2D>> &out_inliers,
00088                                 std::vector<C_Points2DParamSet> &in_pointsParamSet,
00089                                 const T_ImagesSet<AImageMem8> &in_img,
00090                     const int in_i,
00091                                 const int in_j,
00092                                 const double in_sigma,
00093                                 const double in_t);
00094     };
00095 }
00096 #endif // HOMOGRAPHY_MATRIX_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл HowTo_MakeDifferentRealizationForIntegersAnsFloats.hxx

  • Файлы
  • Список членов всех файлов

HowTo_MakeDifferentRealizationForIntegersAnsFloats.hxx

См. документацию.
00001
00021
00023
00036
00049


Pipe Line Filters: Исходный файл HowTo_register_images.hxx

  • Файлы
  • Список членов всех файлов

HowTo_register_images.hxx

См. документацию.
00001


Pipe Line Filters: Исходный файл HowTo_some_docs.hxx

  • Файлы
  • Список членов всех файлов

HowTo_some_docs.hxx

См. документацию.
00001


Pipe Line Filters: Исходный файл HowTo_use_numerical_algorithms.hxx

  • Файлы
  • Список членов всех файлов

HowTo_use_numerical_algorithms.hxx

См. документацию.
00001


Pipe Line Filters: Исходный файл HowTo_work_with_image.hxx

  • Файлы
  • Список членов всех файлов

HowTo_work_with_image.hxx

См. документацию.
00001


Pipe Line Filters: Исходный файл HowTo_work_with_XML_and_INI.hxx

  • Файлы
  • Список членов всех файлов

HowTo_work_with_XML_and_INI.hxx

См. документацию.
00001


Pipe Line Filters: Исходный файл HowTo_write_PipeLineFilters.hxx

  • Файлы
  • Список членов всех файлов

HowTo_write_PipeLineFilters.hxx

См. документацию.
00001


Pipe Line Filters: Исходный файл ifloat.h

  • Файлы
  • Список членов всех файлов

ifloat.h

См. документацию.
00001 #ifndef _IFLOAT_H
00002 #define _IFLOAT_H
00003 #include "yfile.h"
00004
00005 typedef float FloatWord;
00006 namespace IFF
00007 {
00008
00009 //class FloatImageFileRead
00010 class FloatImageFile
00011 //: public YFileRead
00012 : protected YFile
00013 {
00014 public:
00015 #pragma pack(push,1)
00016     struct Header
00017     {
00018         Byte id[16];//"FloatImageFile"
00019         uint32_t hdrsize;//sizeof(FloatImageFileRead::Header)
00020         uint32_t width;
00021         uint32_t height;
00022         uint32_t reserved[12];
00023     };
00024 #pragma pack(pop)
00025 private:
00026     Header head;
00027 public:
00028 //  Вспомогательные функции
00029     void writeHeader();
00030     void readHeader();
00031 public:
00032 //  Открытие/закрытие файла
00033     FloatImageFile();
00034     virtual ~FloatImageFile();
00035     void open(const char * szFileName,OpenMode access,
00036                 int  Width=0,int  Heigth=0);
00037     void close();
00038     //--------------------------------------------------
00039     void read(int x,int y,FloatWord *line,int len);
00040     void write(int x,int y,const FloatWord *line,int len);
00041     //------------------------------------------------
00042     int Width()  const { return head.width; }
00043     int Height() const { return head.height; }
00044 };
00045 } //namespace IFF
00046 #endif//_IFLOAT_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл ImageContainer.h

  • Файлы
  • Список членов всех файлов

ImageContainer.h

См. документацию.
00001
00002 #ifndef IMAGE_CONTAINER_H
00003 #define IMAGE_CONTAINER_H
00004
00005 //system includings
00006 #include <vector>
00007 #include <math.h>
00008
00009 template <typename ImgType>
00010 class ImageContainer
00011 {
00012 private:
00013     std::vector<ImgType> m_images;
00014
00015 public:
00016     int Add(ImgType img)
00017     {
00018       m_images.push_back(img);
00019         return (m_images.size() - 1);
00020     }
00021
00022     //---------------------------------------------------------------------------
00023     void Delete(int i)
00024     {
00025       delete(m_images[i]);
00026         m_images.erase(m_images.begin() + i);
00027     }
00028
00029     //---------------------------------------------------------------------------
00030     ImgType *operator[](int i)
00031     {
00032       return &(m_images[i]);
00033     }
00034
00035     //---------------------------------------------------------------------------
00036     int size() const
00037     {
00038         return m_images.size();
00039     }
00040     /*~ImageContainer()
00041     {
00042         int n = m_images.size();
00043         for (int i = 0; i < n; i++)
00044         {
00045             delete(m_images[i]);
00046         }
00047     }*/
00048 };
00049
00050 #endif //IMAGE_CONTAINER_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл imagemem.h

  • Файлы
  • Список членов всех файлов

imagemem.h

См. документацию.
00001 #ifndef _IMAGEMEM_H
00002 #define _IMAGEMEM_H
00004 #include "aimage.h"
00005 //---------------------------------------------------------------------------------------
00006 class ImageMem8
00007 : public AImageMem8
00008 {
00009     short wid;
00010   short len;
00011   short bits;
00012   int next_line_shift;
00013   Pixel8 *data;
00014     int pal_entries;
00015     AImage::Rgb * pal;
00016     YImageClass img_class;
00017   void nullify();
00018 public:
00019   static const char *ThisClassName();
00020   virtual const char *ClassName() const { return ThisClassName(); }
00021     ImageMem8();
00022     virtual ~ImageMem8();
00023
00024     virtual bool IsOk() const { return (data!=0); }
00025   virtual bool Create(short width,short height,short bitsPerPix=8,bool hasPalette=false);
00026   virtual void Clear();
00027     virtual int Width()  const  { return wid; }
00028     virtual int Height() const  { return len;}
00029   virtual int Bits()   const  { return bits;}
00030   virtual int NextLineShift() const { return next_line_shift; }
00031   virtual Pixel8* operator[](int y)const {return data+y*next_line_shift; }//@@need test bounds and NULL
00032     virtual YImageClass  ImageClass() const;
00033     virtual int GetPaletteEntries() const {return pal_entries;}
00034     virtual AImage::Rgb *Palette() const { return pal;}
00035     virtual void read(int x,int y,Pixel16 *data,int len) const;
00036     virtual void ChangeBits(int _bits) { if(_bits>=1 && _bits<=8) bits=short(_bits);}
00037 };
00038 //---------------------------------------------------------------------------------------
00039 class ImageMem16
00040 : public AImageMem16
00041 {
00042 private:
00043     short wid;
00044   short len;
00045   short bits;
00046   Pixel16 *data;
00047   void nullify();
00048     ImageMem16(const ImageMem16& im);
00049 public:
00050   static const char *ThisClassName();
00051   virtual const char *ClassName() const { return ThisClassName(); }
00052     ImageMem16() { nullify(); }
00053     virtual ~ImageMem16() { Clear(); }
00054
00055     virtual bool IsOk() const { return (data!=0); }
00056   virtual bool Create(short width,short height,short bitsPerPix,bool hasPalette=false);
00057   virtual void Clear();
00058     virtual int Width()  const  { return wid; }
00059     virtual int Height() const  { return len; }
00060   virtual int Bits()   const  { return bits;}
00061   virtual int NextLineShift() const { return wid; }
00062   virtual Pixel16* operator[](int y)const {return (data+long(wid)*y); }//@@need test bounds and NULL
00063     virtual YImageClass  ImageClass() const;
00064     virtual int GetPaletteEntries() const {return 0;}
00065     virtual AImage::Rgb *Palette() const  {return 0;}
00066     virtual void read(int x,int y,Pixel16 *data,int len) const;
00067     virtual void ChangeBits(int _bits) { if(_bits>=1 && _bits<=16) bits=short(_bits);}
00068 };
00069 //---------------------------------------------------------------------------------------
00070 class ImageMemFloat
00071 : public AImageMemFloat
00072 {
00073 public:
00074     short wid;
00075     short len;
00076     short bits;
00077     PixelFloat *data;
00078     void nullify();
00079 public:
00080     static const char *ThisClassName();
00081     virtual const char *ClassName() const { return ThisClassName(); }
00082     ImageMemFloat();
00083     virtual ~ImageMemFloat();
00084
00085     virtual bool IsOk() const { return (data!=0); }
00086     virtual bool Create(short width,short height,short bitsPerPix=8*sizeof(PixelFloat),bool hasPalette=false);
00087     virtual void Clear();
00088     virtual int Width()  const  { return wid; }
00089     virtual int Height() const  { return len;}
00090     virtual int Bits()   const  { return bits;}
00091     virtual int NextLineShift() const { return wid; }
00092     virtual PixelFloat* operator[](int y)const {return data+y*wid; }//need test bounds and NULL
00093     virtual YImageClass  ImageClass() const { return AImage::IMGC_FLOAT; }
00094   virtual void SetTo(PixelFloat color);
00095     virtual void read(int x,int y,Pixel16 *data,int len) const;
00096 };
00097 //---------------------------------------------------------------------------------------
00098 class ImageMemRgb8
00099 : public AImageMemRgb8
00100 {
00101     short wid;
00102   short len;
00103   short bits;
00104   AImageMem8 * data8[3];
00105 private:
00106   void nullify();
00107     ImageMemRgb8(const ImageMemRgb8& im);
00108 public:
00109   static const char *ThisClassName();
00110   virtual const char *ClassName() const { return ThisClassName(); }
00111     ImageMemRgb8() {nullify();}
00112   virtual ~ImageMemRgb8() {Clear();}
00113     virtual bool IsOk() const;
00114   virtual bool Create(short width,short height,short bitsPerPix=8,bool hasPalette=false);
00115   virtual void Clear();
00116     virtual YImageClass  ImageClass() const;
00117     virtual int Width()  const  { return wid; }
00118     virtual int Height() const  { return len; }
00119   virtual int Bits()   const  { return bits;}
00120   virtual int NextLineShift() const { return 0; }
00121   virtual AImageMem8  * GetPlane8(int plane) const;
00122     virtual void read(int x,int y,Pixel16 *data,int len) const;
00123 };
00125 #endif //_IMAGEMEM_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл ImagesSet.h

  • Файлы
  • Список членов всех файлов

ImagesSet.h

См. документацию.
00001 #ifndef IMAGESSET_H
00002 #define IMAGESSET_H
00003
00004 namespace Basics3D
00005 {
00006     template<class Image>
00007   class T_ImagesSet
00008     {
00009 private:
00010         std::vector<Image *> m_img;
00011
00012     public:
00013         T_ImagesSet(char *in_argv[],
00014                      int in_N)
00015         {
00016           for (int i = 0; i < in_N; i++)
00017             {
00018               AImage *_tmp = ::AImageLoad(0, true, in_argv[i + 3], indicator);
00019                 Image *tmp = dynamic_cast<Image *>(_tmp);
00020
00021                 if (tmp == 0)
00022                 {
00023                     std::cout << "Image " << i << " wasn't loaded";
00024                     delete _tmp;
00025                 }
00026                 else
00027                 {
00028                     m_img.push_back(tmp);
00029                 }
00030             }
00031         }
00032
00034         Image *operator[](int i) const
00035         {
00036           return m_img[i];
00037         }
00038
00040         int Size() const
00041         {
00042           return m_img.size();
00043         }
00044
00046         ~T_ImagesSet()
00047         {
00048           for (int i = 0; i < Size(); i++)
00049             {
00050               delete m_img[i];
00051             }
00052         }
00053     };
00054 }
00055
00056 #endif // IMAGESSET_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл imalg_resampling.h

  • Файлы
  • Список членов всех файлов

imalg_resampling.h

См. документацию.
00001 #ifndef _IMALG_RESAMPLING_H
00002 #define _IMALG_RESAMPLING_H
00004 #define _USE_MATH_DEFINES
00005 #include <math.h>
00006 #include "aimage.h"
00007 #include "img_trans_models.h"
00009 namespace Vtl
00010 {
00012 namespace ImAlg
00013 {
00014
00024 namespace Resamp
00025 {
00027
00061     template<typename Pixel,unsigned stride=1>
00062     class InterpBilinear
00063     {
00064         const Pixel* data;
00065         const size_t nls;
00066         const size_t w;
00067         const size_t h;
00068         const Pixel blank;
00069     public:
00070         typedef Pixel result_type;
00072         InterpBilinear(const Pixel* data_ptr,size_t width,size_t height,size_t next_line_shift,Pixel fill)
00073             : data(data_ptr),nls(next_line_shift),w(width),h(height),blank(fill)
00074         {
00075         }
00076         size_t border() const { return 1; }
00077         Pixel at(double x, double y) const
00078         {
00079             if ( (x < 0) || (y < 0) || ( x > (w-1) ) || ( y > (h-1) ) ) return blank;
00080             return this->operator()(x,y);
00081         }
00082
00083         Pixel operator()(double x, double y) const
00084         {
00085             int ix=int(x);
00086             int iy=int(y);
00087             const Pixel* p=data+iy*nls+ix*stride;
00088             double dx=x-ix;
00089             double dy=y-iy;
00090             double I1=*p;
00091             I1+=dx*( *(p+stride) - I1);
00092             double I2=*(p+nls);
00093             I2+=dx*( *(p+nls+stride) - I2);
00094             return Pixel( I1 + (I2 - I1)*dy );
00095         }
00096         size_t W() const {return w;}
00097         size_t H() const {return h;}
00098         size_t Nls() const {return nls;}
00099     };
00101
00109     template<typename T>
00110     class LinGrid
00111     {
00112         T value_min;
00113         T value_max;
00114         T step;
00115         size_t n;
00116     public:
00117         LinGrid(T value_min_,T value_max_,size_t N_grid_cells)
00118             : value_min(value_min_),value_max(value_max_),n(N_grid_cells)
00119         {
00120             step=(value_max-value_min)/(n-1);
00121         }
00122         T value(size_t i) const { return value_min+step*i; }
00123         size_t N() const {return n;}
00124         template<typename I>
00125         T values_shift(I i_distance=1) const { return T(i_distance*step); }
00126     };
00145     template<typename T>
00146     class LogGrid
00147     {
00148         T value_min;
00149         T value_max;
00150         T log_value_step;
00151         size_t n;
00152     public:
00154         LogGrid()
00155         {
00156             value_min=value_max=log_value_step=T(0);
00157             n=0;
00158         }
00159         LogGrid(T value_min_,T value_max_,size_t N_grid_cells)
00160             : value_min(value_min_),value_max(value_max_),n(N_grid_cells)
00161         {
00162             log_value_step=(std::log(value_max)-std::log(value_min))/(n-1);
00163         }
00164         T value(size_t i) const { return value_min*std::exp(log_value_step*i); }
00165         size_t N() const {return n;}
00166         template<typename I>
00167         T values_ratio(I i_distance=1) const { return T(std::exp(i_distance*log_value_step)); }
00168     };
00169     template<typename T>
00170     class PhiGrid
00171     {
00172         T from;
00173         T step;
00174         size_t n;
00175     public:
00176         PhiGrid(T from_,T to_,size_t N_grid_cells)
00177             : from(from_),step(T((to_-from_)/(N_grid_cells-1))),n(N_grid_cells)
00178         {
00179         }
00180         T value(size_t i) const {return from+i*step;}
00181         size_t N() const {return n;}
00182     };
00196     template<typename T,class Interpolator,class RadGrid,class PhiGrid> //RadGrid==LogGrid<float>
00197     void CartToPolar(Interpolator& interp,float x0,float y0,T * polar,int width,int height,int nls, RadGrid& lsg,PhiGrid phiGrid)
00198     {
00199 //      const double rho_max=interp.W()/2;
00200
00201         // x, y - декартовы координаты точки
00202         // phi, rho  - полярные координаты точки
00203         // i, j - координаты пикселя на изображении polar
00204         for (int j = 0; j < height; ++j )
00205         {
00206             double phi=phiGrid.value(j);
00207             double c = cos(phi);
00208             double s = sin(phi);
00209             T *r = polar;
00210             for (int i = 0 ; i < width; ++i)
00211             {
00212                 double rho=lsg.value(i);
00213                 double x = rho*c;
00214                 double y = rho*s;
00215                 *r++ = interp.at(x0+x,y0+y);
00216             }
00217             polar += nls;
00218         }
00219     }
00221     template<typename T,class Interpolator>
00222     void RotateScale(Interpolator& interp,float x0,float y0,float phi,float scale,T * result,int width,int height,int nls)
00223     {
00224         float matrix[]={scale*cos(phi),scale*sin(phi),scale*sin(-phi),scale*cos(phi)};
00225         Affine(interp,x0,y0,x0,y0,matrix,result,width,height,nls);
00226     }
00227     template<typename T,class Interpolator>
00228     void Affine(Interpolator& interp,float x0_in,float y0_in,float x0_out,float y0_out,float matrix_2x2[],T * result,int width,int height,int nls)
00229     {
00230
00231         // x, y - декартовы координаты точки на исходном изображении
00232         // phi, rho  - полярные координаты точки
00233         // i, j - декартовы координаты пикселя на результирующем, повернутом изображении
00234         float a=matrix_2x2[0];
00235         float b=matrix_2x2[1];
00236         float c=matrix_2x2[2];
00237         float d=matrix_2x2[3];
00238         for (float j = -y0_out, jmax=height-y0_out ; j < jmax; ++j)
00239         {
00240             T *r = result;
00241             for (float i = -x0_out, imax=width-x0_out ; i < imax; ++i)
00242             {
00243                 double x = a*i+b*j;
00244                 double y = c*i+d*j;
00245                 //std::cout << "interp" << x0_in+x << " " << y0_in+y <<std::endl;
00246                 *r++ = interp.at(x0_in+x,y0_in+y);
00247             }
00248             result += nls;
00249         }
00250     }
00260     template<typename T,class Interpolator,class Transformer>
00261     void Transform(const Interpolator& interp,const Transformer& transf,T * result,int width,int height,int nls)
00262     {
00263 /*
00264         size_t bord=interp.border();
00265         Vector2 c[8];
00266         c[0]=transf(0,0);
00267         c[1]=transf(w-1,0);
00268         c[2]=transf(w-1,h-1);
00269         c[3]=transf(0,h-1);
00270         c[4]=transf(bord,bord);
00271         c[5]=transf(w-1-bord,bord);
00272         c[6]=transf(w-1-bord,h-1-bord);
00273         c[7]=transf(bord,h-1-bord);
00274                 std::cout << c[0] << std::endl;
00275                 std::cout << c[1] << std::endl;
00276                 std::cout << c[2] << std::endl;
00277                 std::cout << c[3] << std::endl;
00278 */
00279         for (float j = 0; j < height; ++j)
00280         {
00281             T *r = result;
00282             for (float i = 0; i < width; ++i)
00283             {
00284                 //typename Model::Transf::value_type x;
00285                 //typename Model::Transf::value_type y;
00286                 typename Transformer::value_type x;
00287                 typename Transformer::value_type y;
00288                 transf(i,j,x,y);
00289                 *r++ = interp.at(x,y);
00290             }
00291             result += nls;
00292         }
00293     }
00296     template<typename T,typename TT,class Interpolator>
00297     void ProjectiveTransform(Interpolator& interp,TT* projective_mat_3x3,double x0_in,double y0_in,double x0_out,double y0_out,T* trans,int width,int height,int nls)
00298     {
00299         nls-=width;
00300         for (int i=0; i<height; i++)
00301         {
00302             for (int j=0; j<width; j++)
00303             {
00304                 double x=j-x0_out;
00305                 double y=i-y0_out;
00306                 double u=projective_mat_3x3[0]*x+projective_mat_3x3[1]*y+projective_mat_3x3[2];
00307                 double v=projective_mat_3x3[3]*x+projective_mat_3x3[4]*y+projective_mat_3x3[5];
00308                 double w=projective_mat_3x3[6]*x+projective_mat_3x3[7]*y+projective_mat_3x3[8];
00309                 x=u/w;
00310                 y=v/w;
00311                 *trans++ = interp.at(x+x0_in,y+y0_in);
00312             }
00313             trans+=nls;
00314         }
00315     }
00317 #if 0
00318     template<typename T>
00319     class PolarGrid
00320     {
00321         double  phi;
00322         double dphi;// = M_PI/hp;//шаг по углу
00323         double c;
00324         double s;
00325
00326         double rhomin;
00327         double drho;// = 1;//шаг по  радиусу
00328     public:
00329         PolarGrid(size_t phi_steps,T phi_from,T phi_to
00330                  ,size_t r_steps,T r_from,T r_to)
00331             :phi(phi_from),dphi((phi_to-phi_from)/phi_steps)
00332             ,rhomin(r_from),drho((r_to-r_from)/r_steps)
00333         {
00334             c = cos(phi);
00335             s = sin(phi);
00336         }
00337         void nextPhi()
00338         {
00339             phi+=dphi;
00340             c = cos(phi);
00341             s = sin(phi);
00342         }
00343         void startRho()
00344         {
00345             rho = rhomin
00346         }
00347         void nextRho()
00348         {
00349             rho += drho
00350             double x = rho*c;
00351             double y = rho*s;
00352         }
00353 //          for (int j = 0,double rho = rhomin; j < wp; j++, rho += drho)
00354     };
00355     template<class InsideInterp,class BoundInterp,class OutsideInterp>
00356     class PolarIterator
00357     {
00358
00359         float psi_0;
00360         float psi_step;
00361         float psi_end;
00362         float rho_0;
00363         float rho_step;
00364         float rho_end;
00365     public:
00366         typedef typename InsideInterp::result_type result_type;
00367         class HIter
00368         {
00369             const PolarIterator& pi;
00370             double x;
00371             double y;
00372             int count;
00373             const double dx;
00374             const double dy;
00375         private:
00376             HIter(const PolarIterator& pi_,double x_,double y_,double dx_,double dy_,int count_)
00377                 :pi(pi_),x(x_),y(y_),dx(dx_),dy(dy_),count(count_)
00378             {
00379             }
00380         public:
00381 //          for (int j = 0,double rho = rhomin; j < wp; j++, rho += drho)
00382             HIter operator++()
00383             {
00384                 //double x = rho*c;
00385                 //double y = rho*s;
00386                 x+=dx;
00387                 y+=dy;
00388                 ++count;
00389             }
00390             bool operator!=(const HIter& h) { return count!=h.count;}
00391             result_type operator*() {return pi.interp.at(x,y);}
00392         };
00393         class VIter
00394         {
00395             const PolarIterator& pi;
00396
00397             float psi;
00398             float psi_step;
00399
00400             int count;
00401
00402             float c;
00403             float s;
00404             HIter begin_;
00405             HIter end_;
00406         private:
00407             VIter(const PolarIterator& pi_,float x0,float y0,float psi_from,float psi_to,int psi_N_step)
00408                 : pi(pi_), psi(psi_from),psi_step((psi_to-psi_from)/psi_N_step)
00409             {
00410             }
00411         public:
00412             VIter& operator++()
00413             {
00414                 psi+=psi_step;
00415                 c=std::cos(psi);
00416                 s=std::sin(psi);
00417
00418                 double x = x0 + pi.rho_0 * c;
00419                 double y = y0 + pi.rho_0 * s;
00420                 double dx = pi.rho_step * c;
00421                 double dy = pi.rho_step * s;
00422                 begin_=HIter(pi,x,y,dx,dy,0);
00423                 double x = x0 + pi.rho_0*c;
00424                 double y = y0 + pi.rho_0*s;
00425                 begin_=HIter(pi,x,y,dx,dy,0);
00426
00427                 return *this;
00428             }
00429             //HIter operator*() {}
00430             HIter begin() const { return begin_;}
00431             HIter end()   const { return end_;  }
00432
00433         };
00434     public:
00435         PolarIterator(int width,int height,float x0,float y0,float psi_from,float psi_to,int psi_N,bool include_psi_to,float rho_from,float rho_to,int rho_N,bool include_rho_to)
00436         {
00437         }
00438         VIter begin()
00439         {
00440         }
00441         VIter end()
00442         {
00443         }
00444     };
00447     template<typename T,class Interpolator>
00448     void CartToPolar(Interpolator& interp,float x0,float y0,T * polar,int width,int height,int nls)
00449     {
00450         double dphi = M_PI/height;//шаг по углу
00451         double drho = 0.708;//шаг по  радиусу
00452
00453         const double rhomin = 0;//минимальное значение rho
00454
00455         // x, y - декартовы координаты точки
00456         // phi, rho  - полярные координаты точки
00457         // i, j - координаты пикселя на изображении polar
00458         double  phi = 0;
00459 //      double  phi = M_PI;
00460         for (int j = 0; j < height; ++j, phi += dphi)
00461         {
00462             double c = cos(phi);
00463             double s = sin(phi);
00464             double x = x0+rhomin*c;
00465             double y = y0+rhomin*s;
00466             double dx = drho*c;
00467             double dy = drho*s;
00468             T *r = polar;
00469             for (int i = 0 ; i < width; ++i)
00470             {
00471                 *r++ = interp.at(x,y);
00472                 x+=dx;
00473                 y+=dy;
00474             }
00475             polar += nls;
00476         }
00477     }
00479
00491     inline void CartToPolar(AImageMemFloat* cart, AImageMemFloat* polar)
00492     {
00493         int wc = cart->Width();
00494         int hc = cart->Height();
00495         InterpBilinear<AImageMemFloat::Pixel> interp((*cart)[0],wc,hc,cart->NextLineShift());
00496         float x0=float(wc/2);
00497         float y0=float(hc/2);
00498         CartToPolar(interp,x0,y0,(*polar)[0],polar->Width(),polar->Height(),polar->NextLineShift());
00499     }
00500 #endif
00502 }//namespace Resamp
00503 }//namespace ImAlg
00504 }//namespace Vtl
00506 #endif //_IMALG_RESAMPLING_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл imalg_tools.h

  • Файлы
  • Список членов всех файлов

imalg_tools.h

См. документацию.
00001 #ifndef _IMALG_TOOLS_H
00002 #define _IMALG_TOOLS_H
00004 #define _USE_MATH_DEFINES
00005 #include <math.h>
00006 #include <alexandresku.h>
00007 #include "plf_strip_buffer_support.h"
00009 namespace Vtl
00010 {
00011 namespace ImAlg
00012 {
00013
00021 namespace Tools
00022 {
00024
00025     template<typename T>
00026     void xchg(T& v1,T& v2)
00027     {
00028         T v =v1;
00029         v1=v2;
00030         v2=v;
00031     }
00032
00033
00035     template <typename RandomIter, class F>
00036     void copy_1_1(RandomIter src_dst,size_t width,size_t height,int nls,F functor )
00037     {
00038         nls-=width;
00039         for( ; height-- ; src_dst += nls )
00040         {
00041             for(int x=width; x-- ; ++src_dst)
00042                 *src_dst = functor(*src_dst);
00043         }
00044     }
00045     template <typename ConstRandomIter, typename RandomIter, class F>
00046     void copy_1_1(ConstRandomIter src,size_t width,size_t height,int nls_s,RandomIter dst,int nls_d,F functor )
00047     {
00048         nls_s-=width;
00049         nls_d-=width;
00050         for( ; height-- ; src+=nls_s, dst+=nls_d )
00051         {
00052             for(int x=width; x-- ;)
00053                 *dst++ = functor(*src++);
00054         }
00055     }
00056     template <typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
00057     void copy_2_1(ConstRandomIter1 src_1,size_t width,size_t height,int nls_s1,ConstRandomIter2 src_2,int nls_s2,RandomIter dst,int nls_d,F functor )
00058     {
00059         nls_s1-=width;
00060         nls_s2-=width;
00061         nls_d-=width;
00062         for( ; height-- ; src_1+=nls_s1, src_2+=nls_s2, dst+=nls_d )
00063         {
00064             for(int x=width; x-- ;)
00065                 *dst++ = functor(*src_1++,*src_2++);
00066         }
00067     }
00068     template <typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
00069     void copy_2_2(ConstRandomIter1 src_1,size_t width,size_t height,int nls_s1,ConstRandomIter2 src_2,int nls_s2,RandomIter dst1,int nls_d1,RandomIter dst2,int nls_d2,F functor )
00070     {
00071         nls_s1-=width;
00072         nls_s2-=width;
00073         nls_d1-=width;
00074         nls_d2-=width;
00075         for( ; height-- ; src_1+=nls_s1, src_2+=nls_s2, dst1+=nls_d1, dst2+=nls_d2 )
00076         {
00077             for(int x=width; x-- ;)
00078                 functor(*src_1++,*src_2++,*dst1++,*dst2++);
00079         }
00080     }
00081     template <typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
00082     void copy_2_3(ConstRandomIter1 src_1,size_t width,size_t height,int nls_s1,ConstRandomIter2 src_2,int nls_s2,RandomIter dst1,int nls_d1,RandomIter dst2,int nls_d2,RandomIter dst3,int nls_d3,F functor )
00083     {
00084         nls_s1-=width;
00085         nls_s2-=width;
00086         nls_d1-=width;
00087         nls_d2-=width;
00088         nls_d3-=width;
00089         for( ; height-- ; src_1+=nls_s1, src_2+=nls_s2, dst1+=nls_d1, dst2+=nls_d2 , dst3+=nls_d3 )
00090         {
00091             for(int x=width; x-- ;)
00092                 functor(*src_1++,*src_2++,*dst1++,*dst2++,*dst3++);
00093         }
00094     }
00095     template <typename ConstRandomIter1, typename ConstRandomIter2, typename RandomIter, class F>
00096     void copy_2_4(ConstRandomIter1 src_1,size_t width,size_t height,int nls_s1,ConstRandomIter2 src_2,int nls_s2,RandomIter dst1,int nls_d1,RandomIter dst2,int nls_d2,RandomIter dst3,int nls_d3,RandomIter dst4,int nls_d4,F functor )
00097     {
00098         nls_s1-=width;
00099         nls_s2-=width;
00100         nls_d1-=width;
00101         nls_d2-=width;
00102         nls_d3-=width;
00103         nls_d4-=width;
00104         for( ; height-- ; src_1+=nls_s1, src_2+=nls_s2, dst1+=nls_d1, dst2+=nls_d2 , dst3+=nls_d3 , dst4+=nls_d4 )
00105         {
00106             for(int x=width; x-- ;)
00107                 functor(*src_1++,*src_2++,*dst1++,*dst2++,*dst3++,*dst4++);
00108         }
00109     }
00110     template <typename ConstRandomIter1, typename ConstRandomIter2, typename ConstRandomIter3, typename RandomIter, class F>
00111     void copy_3_1(ConstRandomIter1 src_1,size_t width,size_t height,int nls_s1,ConstRandomIter2 src_2,int nls_s2,ConstRandomIter3 src_3,int nls_s3,RandomIter dst,int nls_d,F functor )
00112     {
00113         nls_s1-=width;
00114         nls_s2-=width;
00115         nls_s3-=width;
00116         nls_d-=width;
00117         for( ; height-- ; src_1+=nls_s1, src_2+=nls_s2, src_3+=nls_s3, dst+=nls_d )
00118         {
00119             for(int x=width; x-- ;)
00120                 *dst++ = functor(*src_1++,*src_2++,*src_3++);
00121         }
00122     }
00123     template <typename ConstRandomIter, typename RandomIter, class F>
00124     void copy_3_2(ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, RandomIter out2, int nls2o, F functor)
00125     {
00126         for(int y=0; y<height; y++)
00127         {
00128             for(int x=0; x<width; x++)
00129                 functor(in1[x],in2[x],in3[x],out1[x],out2[x]);
00130             in1+=nls1;
00131             in2+=nls2;
00132             in3+=nls3;
00133             out1+=nls1o;
00134             out2+=nls2o;
00135         }
00136     }
00137     template <typename ConstRandomIter, typename RandomIter, class F>
00138     void copy_3_3(ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, RandomIter out2, int nls2o, RandomIter  out3, int nls3o, F functor)
00139     {
00140         for(int y=0; y<height; y++)
00141         {
00142             for(int x=0; x<width; x++)
00143                 functor(in1[x],in2[x],in3[x],out1[x],out2[x],out3[x]);
00144             in1+=nls1;
00145             in2+=nls2;
00146             in3+=nls3;
00147             out1+=nls1o;
00148             out2+=nls2o;
00149             out3+=nls3o;
00150         }
00151     }
00152     template <typename ConstRandomIter, typename RandomIter, class F>
00153     void copy_3_4(ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, RandomIter out2, int nls2o, RandomIter  out3, int nls3o, RandomIter  out4, int nls4o, F functor)
00154     {
00155         for(int y=0; y<height; y++)
00156         {
00157             for(int x=0; x<width; x++)
00158                 functor(in1[x],in2[x],in3[x],out1[x],out2[x],out3[x],out4[x]);
00159             in1+=nls1;
00160             in2+=nls2;
00161             in3+=nls3;
00162             out1+=nls1o;
00163             out2+=nls2o;
00164             out3+=nls3o;
00165             out4+=nls4o;
00166         }
00167     }
00168     template <typename ConstRandomIter, typename RandomIter, class F>
00169     void copy_3_5(ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, RandomIter out2, int nls2o, RandomIter  out3, int nls3o, RandomIter  out4, int nls4o,  RandomIter  out5, int nls5o, F functor)
00170     {
00171         for(int y=0; y<height; y++)
00172         {
00173             for(int x=0; x<width; x++)
00174                 functor(in1[x],in2[x],in3[x],out1[x],out2[x],out3[x],out4[x],out5[x]);
00175             in1+=nls1;
00176             in2+=nls2;
00177             in3+=nls3;
00178             out1+=nls1o;
00179             out2+=nls2o;
00180             out3+=nls3o;
00181             out4+=nls4o;
00182             out5+=nls5o;
00183         }
00184     }
00185     template <typename ConstRandomIter, typename RandomIter, class F>
00186     void copy_5_1(ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, ConstRandomIter in4, int nls4, ConstRandomIter in5, int nls5, RandomIter  out1, int nls1o, F functor)
00187     {
00188         for(int y=0; y<height; y++)
00189         {
00190             for(int x=0; x<width; x++)
00191                 out1[x]=functor(in1[x],in2[x],in3[x],in4[x],in5[x]);
00192             in1+=nls1;
00193             in2+=nls2;
00194             in3+=nls3;
00195             in4+=nls4;
00196             in5+=nls5;
00197             out1+=nls1o;
00198         }
00199     }
00200     template <typename ConstRandomIter, typename RandomIter, class F>
00201     void copy_6_1(ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, ConstRandomIter in4, int nls4, ConstRandomIter in5, int nls5,  ConstRandomIter in6, int nls6, RandomIter  out1, int nls1o, F functor)
00202     {
00203         for(int y=0; y<height; y++)
00204         {
00205             for(int x=0; x<width; x++)
00206                 out1[x]=functor(in1[x],in2[x],in3[x],in4[x],in5[x],in6[x]);
00207             in1+=nls1;
00208             in2+=nls2;
00209             in3+=nls3;
00210             in4+=nls4;
00211             in5+=nls5;
00212             in6+=nls6;
00213             out1+=nls1o;
00214         }
00215     }
00216     template <typename ConstRandomIter, typename RandomIter, class F>
00217     void envTransf_3e1_1(Vtl::Plf::Extent ext,ConstRandomIter in1, int width, int height, int nls1, ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3, RandomIter out1, int nls1o, F functor)
00218     {
00219         width-=ext.right;
00220         height-=ext.forward;
00221         for(int y=0; y<ext.before; ++y)
00222         {
00223             in1+=nls1;
00224             in2+=nls2;
00225             in3+=nls3;
00226             out1+=nls1o;
00227         }
00228         functor.set_IterNextLineShift(nls1);
00229
00230         for(int y=ext.before; y<height; y++)
00231         {
00232             for(int x=ext.left; x<width; x++)
00233                 out1[x]=functor(in1+x,in2[x],in3[x]);
00234             in1+=nls1;
00235             in2+=nls2;
00236             in3+=nls3;
00237             out1+=nls1o;
00238         }
00239     }
00240     template <typename ConstRandomIter, typename RandomIter, class F>
00241     void envTransf_1_1(Vtl::Plf::Extent ext,ConstRandomIter in1, int width, int height, int nls1, RandomIter out1, int nls1o, F functor)
00242     {
00243         width-=ext.right;
00244         height-=ext.forward;
00245         for(int y=0; y<ext.before; ++y)
00246         {
00247             in1+=nls1;
00248             out1+=nls1o;
00249         }
00250         functor.set_IterNextLineShift(nls1);
00251
00252         for(int y=ext.before; y<height; y++)
00253         {
00254             for(int x=ext.left; x<width; x++)
00255                 out1[x]=functor(in1+x);
00256             in1+=nls1;
00257             out1+=nls1o;
00258         }
00259     }
00260
00262     namespace findMax
00263     {
00264         template<int num_equal_neihbours>
00265         struct is_center_max_in3x3
00266         {
00267             template<typename T1,class F,typename T2>
00268             void operator()(const T1* src,int left,int right,int up,int down,F functor,T2 x,T2 y)
00269             {
00270                 T1 v=src[0];
00271                 if(v < src[left] )  return;
00272                 if(v < src[right] ) return;
00273                 if(v < src[up] )    return;
00274                 if(v < src[down] )  return;
00275                 if(v < src[up+left] )   return;
00276                 if(v < src[up+right] )   return;
00277                 if(v < src[down+left] ) return;
00278                 if(v < src[down+right] ) return;
00279                 //now central point is not less than 8 neighbours,
00280                 // check for strict maximum
00281                 int cnt=0;
00282                 if(v == src[left] )  ++cnt;
00283                 if(v == src[right] ) ++cnt;
00284                 if(v == src[up] )    ++cnt;
00285                 if(v == src[down] )  ++cnt;
00286                 if(cnt > num_equal_neihbours)
00287                     return;
00288                 if(v == src[up+left] )    ++cnt;
00289                 if(v == src[up+right] )   ++cnt;
00290                 if(v == src[down+left] )  ++cnt;
00291                 if(v == src[down+right] ) ++cnt;
00292                 if(cnt <= num_equal_neihbours)
00293                     functor(x,y,v);
00294             }
00295         };
00296         namespace Impl
00297         {
00298             template<int stride,class ICM,typename T1,class F>
00299             const T1* InRow_BoundsNo(const T1* src,int y,int width,int up,int down,ICM& is_center_max_in3x3_,F functor)
00300             {
00301                 src+=stride;
00302                 --width;
00303                 for(int x=1; x<width; ++x ,src+=stride )
00304                     is_center_max_in3x3_(src,-stride,stride,up,down,functor,x,y);
00305                 return src;
00306             }
00307             template<int stride,class ICM,typename T1,class F>
00308             void InRow_BoundsCyclic(const T1* src,int y,int width,int up,int down,ICM& is_center_max_in3x3_,F functor)
00309             {
00310                 is_center_max_in3x3_(src,(width-1)*stride,stride,up,down,functor,0,y);
00311                 src=InRow_BoundsNo<stride>(src,y,width,up,down,is_center_max_in3x3_,functor);
00312                 is_center_max_in3x3_(src,-stride,-(width-1)*stride,up,down,functor,(width-1),y);
00313             }
00314         }
00315         template<typename T,int stride=1>
00316         class SetPixel
00317         {
00318             T* src;
00319             int nls;
00320         public:
00321             SetPixel(T* data_ptr,int nls_) : src(data_ptr),nls(nls_) {}
00322             template<typename C,typename V>
00323             void operator()(C x,C y,V v)
00324             {
00325                 src[y*nls+x*stride]=v;
00326             }
00327         };
00328         template<int stride,class ICM,typename T1,class F>
00329         void BoundsNo(const T1* src,size_t width,size_t height,int nls,ICM& is_center_max_in3x3_, F functor )
00330         {
00331             src+=nls;
00332             for( int y=1 ; y < int(height-1) ; ++y , src+=nls )
00333                 Impl::InRow_BoundsNo<stride>(src,y,width,-nls,nls,is_center_max_in3x3_,functor );
00334         }
00335         template<int stride,class ICM,typename T1,class F>
00336         void BoundsCyclic(const T1* src,size_t width,size_t height,int nls,ICM& is_center_max_in3x3_, F functor )
00337         {
00338             Impl::InRow_BoundsCyclic<stride>(src,0,width,nls*(height-1),nls,is_center_max_in3x3_,functor );
00339             src+=nls;
00340             for( int y=1 ; y < int(height-1) ; ++y , src+=nls )
00341                 Impl::InRow_BoundsCyclic<stride>(src,y,width,-nls,nls,is_center_max_in3x3_,functor );
00342             Impl::InRow_BoundsCyclic<stride>(src,int(height-1),width,-nls,-nls*(height-1),is_center_max_in3x3_,functor );
00343         }
00344     }
00345
00347 }//namespace Tools
00348 }//namespace ImAlg
00349 }//namespace Vtl
00351 #endif //_IMALG_TOOLS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл imfilter.h

  • Файлы
  • Список членов всех файлов

imfilter.h

См. документацию.
00001 #ifndef _IMFILTER_H
00002 #define _IMFILTER_H
00004 //----------------Tune----------------------------------------------
00005 void AImageFilter_Duplicate(const AImage *in,AImage *out,ProgressCounter *ind);
00006 void AImageFilter_Negative(const AImage *in,AImage *out,ProgressCounter *ind);
00007 //----------------LineDetect----------------------------------------
00008 void AImageFilter_LineDetect_RobertsSqrt(const AImage *in,AImage *out,ProgressCounter *ind);
00009 void AImageFilter_LineDetect_RobertsAbs(const AImage *in,AImage *out,ProgressCounter *ind);
00010 void AImageFilter_LineDetect_Sobel(const AImage *in,AImage *out,ProgressCounter *ind);
00011 void AImageFilter_LineThining(const AImage *in,AImage *out,ProgressCounter *ind);
00013 #endif //_IMFILTER_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл img_enhancement.h

  • Файлы
  • Список членов всех файлов

img_enhancement.h

См. документацию.
00001 #ifndef _IMG_ENHANCEMENT_H
00002 #define _IMG_ENHANCEMENT_H
00004 #include "convolve.h"
00005 #include "imalg_tools.h"
00006 #include "plf_functors.h"
00007 #include "plf_kernels_1d.h"
00009 namespace Students
00010 {
00011 namespace Enhancement
00012 {
00013
00014     // PLACE ALGORITHM TEMPLATE CODE HERE !
00015
00016 }//namespace Curve
00017 }//namespace Students
00019 #endif _IMG_ENHANCEMENT_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл img_registration.h

  • Файлы
  • Список членов всех файлов

img_registration.h

См. документацию.
00001 #ifndef _IMG_REGISTRATION_H
00002 #define _IMG_REGISTRATION_H
00004 #include <sstream>
00005
00006 #include "plf_kernels_1d.h"
00007 #include "plf_io_filter.h"
00008 #include "plf_filters_complex.h"
00009 #include "plf_functors.h"
00010 #include "plf_sys.h"
00011
00012 #include "storage.h"
00013 #include "integral_transforms.h"
00014 #include "imalg_tools.h"
00015 #include "imalg_resampling.h"
00016
00017 #include "debug_test.h"
00019 namespace Vtl {
00020     namespace ImAlg{
00021 namespace Registration{
00022     template<typename Real_t,class Model> class Hartley;
00023 }}}
00024 namespace Tests
00025 {
00026     void test_save_x(float *block,std::string fname_root,size_t w,size_t h,bool gray);
00027 }
00028
00029 namespace Vtl
00030 {
00031 namespace ImAlg
00032 {
00036 namespace Registration
00037 {
00046         template<typename Real_t>
00047         class Container
00048         {
00049         public:
00050             struct Point
00051             {
00052                 int x;
00053                 int y;
00054                 Real_t value;
00055                 Point(int x_, int y_,Real_t value_): x(x_), y(y_),value(value_) {}
00056                 bool operator<(const Point& p)
00057                 {
00058                     return value<p.value;
00059                 }
00060             };
00061             typedef std::list<Point> List;
00062             typedef typename List::const_iterator const_Iter;
00063         private:
00064             List lst;
00065             size_t max_size;
00066             size_t half_width;
00067             size_t half_height;
00068         public:
00069             Container(size_t img_size[],size_t max_size_=8)
00070                 : max_size(max_size_),half_width(img_size[0]/2),half_height(img_size[1]/2)
00071             {
00072                 lst.push_back(Point(0,0,0));
00073             }
00074             const_Iter begin() {return lst.begin();}
00075             const_Iter end() {return lst.end();}
00076             void Add(int x, int y,Real_t value)
00077             {
00078                 Point p(x-half_width,y-half_height,value);
00079                 if(p < *(lst.rbegin()))
00080                 {
00081                     if(lst.size()<max_size)
00082                         lst.push_back(p);
00083                 }
00084                 else
00085                 {
00086
00087                     for( List::iterator it=lst.begin(); it!=lst.end(); ++it)
00088                     {
00089                         if(*it < p)
00090                         {
00091                             lst.insert(it,p);
00092                             if(lst.size()>=max_size)
00093                             {
00094                                 lst.pop_back();
00095                             }
00096                             return;
00097                         }
00098                     }
00099                 }
00100             }
00101             void print()
00102             {
00103                 int counter=0;
00104                 for( List::const_iterator it=lst.begin() ; it!=lst.end(); ++it)
00105                 {
00106                     std::cout << std::setw(5) << counter++ << "  "
00107                               << std::setw(5) << (*it).x   << " , "
00108                               << std::setw(5) << (*it).y   << " , "
00109                               << std::setprecision(3) << (*it).value <<std::endl;
00110                 }
00111             }
00112             void printRatio()
00113             {
00114                 int counter=0;
00115                 if(lst.size()<=1)
00116                 {
00117                         std::cout << "--- Peaks ratio: second/main=  "  << "only " <<lst.size()<<" peqaks detected" <<std::endl;
00118                 }
00119                 else
00120                 {
00121                         List::const_iterator it=lst.begin() ;
00122                         Real_t v0=(*it).value ;
00123                         ++it;
00124                         Real_t v1=(*it).value ;
00125                         std::cout << "--- Peaks ratio: second/main=  "  << v1/v0 <<std::endl;
00126                 }
00127             }
00128         };
00129     namespace Impl
00130     {
00131         template<typename Real_t>
00132         inline void comp_Phase(Real_t* image_phase,size_t n[],bool windowing)
00133         {
00134             if(windowing)
00135                 Impl::window(image_phase,n[0],n[1],n[0],Real_t(n[0]/2),Real_t(n[1]/2),Real_t(0));
00136             transform_and_zero_freq(image_phase,n);
00137             // НЧ - фильтьрация (highpass)
00138             //highpass_filtering(image_phase,n);
00139             Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase<Real_t> pp(image_phase);
00140             Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<2>(n,pp);
00141
00142         }
00143
00144         template<typename Real_t>
00145         inline void flip_vert(Real_t* im,size_t n[])
00146         {
00147             for(size_t y=0; y< n[1]/2; ++y )
00148             {
00149                 Real_t *p1=im+y*n[0];
00150                 Real_t *p2=im+(n[1]-1-y)*n[0];
00151                 for(size_t x=0; x<n[0]; ++x)
00152                 {
00153                     Real_t t=p1[x];
00154                     p1[x]=p2[x];
00155                     p2[x]=t;
00156                 }
00157             }
00158         }
00159         template<typename Real_t>
00160         inline void transform_and_zero_freq(Real_t* im,size_t n[])
00161         {
00162             Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<2,false>(im,n);
00163             Vtl::NumAlg::IntTransf::Hartley::fht2D_square(im,n[0],n[1]);
00164             Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<2,false>(im,n);
00165 //          Vtl::NumAlg::IntTransf::Hartley::AddQuadrants2D(im,n[0],n[1]);
00166             //Занулить спектр на нулевой частоте:
00167             size_t zero_freq_index=Vtl::NumAlg::IntTransf::Utils::offset_to_zero_freq<2,true>(n);
00168             //std::cout << " zero_freq_index = " << zero_freq_index <<std::endl;
00169             im[zero_freq_index]=0;
00170         }
00171
00172         template<typename Real_t>
00173         static void window(Real_t* image,int width,int height,int nls,Real_t center_x,Real_t center_y,Real_t fill_by)
00174         {
00175             //typedef Vtl::ImAlg::WndFun::Gauss<Real_t,0> Functor;
00176             //Functor wnd_x(Real_t(is.width/8),4);
00177             //Functor wnd_y(Real_t(is.height/8),4);
00178
00179             typedef Vtl::ImAlg::WndFun::Hann<Real_t,0> Functor;
00180             //typedef Vtl::ImAlg::WndFun::Nuttall<Real_t,0> Functor;
00181             //typedef Vtl::ImAlg::WndFun::Rect<Real_t,0> Functor;
00182             Functor wnd_x(width);
00183             Functor wnd_y(height);
00184
00185             Vtl::Plf::Kernel::ImageWin<Real_t> iw;
00186             iw.Init(wnd_x,wnd_y,width,height,center_x,center_y,fill_by);
00187             iw.Run(image,nls);
00188         }
00189
00190         template<typename Real_t>
00191         inline void comp_AmpToPolar(Real_t* amp,Real_t* polar,size_t n[],Vtl::ImAlg::Resamp::LogGrid<float>& lsg)
00192         {
00193             Vtl::ImAlg::Resamp::InterpBilinear<Real_t> interp(amp,n[0],n[1],n[0],Real_t(0));
00194             float x0=float(n[0]/2);
00195             float y0=0;//float(n[1]/2);
00196             Vtl::ImAlg::Resamp::PhiGrid<Real_t> phig(0.0f,Real_t(M_PI),n[1]);
00197             Vtl::ImAlg::Resamp::CartToPolar(interp,x0,y0,polar,n[0],n[1],n[0],lsg,phig);
00198             //Vtl::ImAlg::Resamp::CartToPolar(interp,x0,y0,polar,n[0],n[1],n[0]);
00199             for(size_t i=0; i<n[1]; ++i)
00200             {
00201                 polar[i*n[0]]=0;
00202                 polar[i*n[0]+1]=0;
00203                 polar[i*n[0]+2]=0;
00204             }
00205         }
00206         template<typename Real_t>
00207         inline void comp_Rotate(Real_t* input,Real_t* result,size_t n[],float matrix_2x2[])
00208         {
00209             Vtl::ImAlg::Resamp::InterpBilinear<Real_t> interp(input,n[0],n[1],n[0],Real_t(0));
00210             float x0=float(n[0]/2);
00211             float y0=float(n[1]/2);
00212             Vtl::ImAlg::Resamp::Affine(interp,x0,y0,x0,y0,matrix_2x2,result,n[0],n[1],n[0]);
00213             //Vtl::ImAlg::Resamp::RotateScale(interp,x0,y0,phi,scale,result,n[0],n[1],n[0]);
00214         }
00215         template<typename Real_t>
00216         inline void find_shift(Container<Real_t>& cont,Real_t* phase_1,Real_t* phase_2,Real_t* delta,size_t n[])
00217         {
00218             comp_phase_corr(phase_1,phase_2,delta,n);
00219             delta_correlation(delta,n);
00220             find_offset(cont,delta,n);
00221         }
00222         template<typename Real_t>
00223         inline void comp_phase_corr(Real_t* phase_1,Real_t* phase_2,Real_t* corr,size_t n[])
00224         {
00225             Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr<Real_t> pp(phase_1,phase_2,corr);
00226             Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<2>(n,pp);
00227         }
00228         template<typename Real_t>
00229         inline void highpass_filtering_half(Real_t* im1,size_t n[])
00230         {
00231
00232             typedef Windowing::Data<Real_t,1> Dat;
00233             //typedef Windowing::Data1Log<Real_t> Dat;
00234             typedef Windowing::Kernels::Reddy<Real_t> Fun;
00235             //typedef Windowing::Kernels::Reddy_2<Real_t> Fun;
00236
00237             Fun filter(n[0],n[1]);
00238             Dat d(im1);
00239             int x0=(n[0]>>1)+1;
00240             int y0=0;
00241             Windowing::Win2D<Dat,Fun>(x0,y0,d,n[0],n[1]/2,n[0],filter);
00242
00243         }
00244         template<typename Real_t>
00245         inline void highpass_filtering(Real_t* im1,size_t n[])
00246         {
00247 /*          typedef Windowing::Data<Real_t,1> Dat;
00248             typedef Windowing::Kernels::Reddy<Real_t> Fun;
00249             Fun filter(n[0],n[1]);
00250             Dat d(im1);
00251             int x0=(n[0]>>1)+1;
00252             int y0=(n[1]>>1)+1;
00253             Windowing::Win2D<Dat,Fun>(x0,y0,d,n[0],n[1],n[0],filter);
00254 */
00255         }
00256         template<typename Real_t>
00257         inline void delta_correlation(Real_t* im,size_t n[])
00258         {
00259             Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<2,false>(im,n);
00260             Vtl::NumAlg::IntTransf::Hartley::ifht2D(im,n[0],n[1]);
00261             Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<2,false>(im,n);
00262             //Vtl::NumAlg::IntTransf::Utils::Hartley2Modul<Real_t> mod(im1);
00263             //Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<2>(n,mod);
00264         }
00265         template<typename Real_t>
00266         inline Real_t calc_total_sum(Real_t* im,size_t sz)
00267         {
00268             double sum=0;
00269             for(size_t y=0; y< sz ; ++y)
00270             {
00271                 double tmp=0;
00272                 for(size_t x=0; x< sz ; ++x)
00273                 {
00274                     //if(*im>0)
00275                         tmp+=*im;
00276                     ++im;
00277                 }
00278                 sum+=tmp;
00279                 //std::cout << "sum=" << sum <<std::endl;
00280             }
00281             return Real_t(sum);
00282         }
00283         template<class Container_t,typename Real_t>
00284         inline void find_offset(Container_t& cont,Real_t* im,size_t n[])
00285         {
00286             Real_t threshold=calc_total_sum(im,n[0]);
00287             std::cout << "!! threshold !!=" << threshold <<std::endl;
00288             //threshold=28972625.732421875f;
00289             //std::cout << "!! threshold !!=" << threshold <<std::endl;
00290             //threshold=size*size*0.01f;
00291             threshold*=0.001f;
00292             //Real_t threshold=size*size*0.01f;
00293
00294             //Input: im1,size
00295             Vtl::Plf::SrcArray<Real_t,Real_t> src("Src -phase correlation",im,n[0],n[1],n[0]);
00296
00297             typedef Vtl::Plf::F11::Threshold<Real_t,std::less<Real_t> > PostThresh;
00298             PostThresh thresh(threshold,std::less<Real_t>(),0);
00299
00300             //typedef Vtl::Plf::F::HarrisNMS<Real_t> Func;
00301             typedef Vtl::Plf::Fpie::HarrisNMS_Smooth<Real_t> Func;
00302             Func functor;
00303             Vtl::Plf::EnvProc1to1<Real_t,Func,PostThresh > nms("nms",functor,thresh);
00304             Vtl::Plf::DstContainer<Real_t,Container_t> dst("Dst",cont);
00305
00306
00307             src.out.ConnectTo(&nms.in);
00308             nms.out.ConnectTo(&dst.in);
00309
00310             std::string out_name="find_delta_correlation";
00311             Vtl::Plf::FiltersSystem sys(out_name+".dot");
00312     //------ Assing task------------------------
00313             sys.Assign(&src,&dst);
00314     //------ Initialize destinations -----------
00315             Vtl::Plf::ImgSize is=dst.in.getImageSize();
00316             dst.setDstImage(is);
00317             sys.Run(indicator,out_name.c_str());
00318             //cont.print();
00319             cont.printRatio();
00320
00321         }
00322     }
00323     template<typename Real_t,unsigned MemBlocks>
00324     class Base
00325     {
00326     protected:
00327         typedef Storage<Real_t,MemBlocks> Storage_t;
00328         Storage_t storage_;
00329     protected:
00330         virtual ~Base() {}
00331         Base() {}
00332         void Init(typename Storage_t::Offsets_t& s)
00333         {
00334             storage_.Init(s);
00335         }
00336         template<unsigned n_img>
00337         Real_t* _img()
00338         {
00339             return storage_.block<n_img>();
00340         }
00341         template<unsigned n_img>
00342         static std::string Name(std::string name)
00343         {
00344             std::ostringstream os;
00345             os << name <<"_" <<n_img;
00346             return os.str();
00347         }
00354         template<typename Iter>
00355         void _Insert(Vtl::Plf::OutPortNoPostProc<Real_t>* input,Iter src_begin,Iter src_end,Real_t* img,int w,int h,int nls)
00356         {
00357             ::memset(img,0,w*h*sizeof(img[0]));
00358             Vtl::Plf::DstArray<Real_t,Real_t> dst("dst");
00359
00360             input->ConnectTo(&dst.in);
00361 //          avrg.out().ConnectTo(&dst.in);
00362
00363             Vtl::Plf::FiltersSystem sys("ins_1");
00364             sys.Assign(src_begin,src_end,&dst);
00365             Vtl::Plf::ImgSize is=dst.in.getImageSize();
00366
00367             int y0=(h-is.height)/2;
00368             int x0=(w-is.width)/2;
00369
00370             assert(x0>=0 || y0>=0);
00371
00372             if(x0<0 || y0<0)
00373             {
00374                 throw std::string("Bad init size in ReddyChatterji_Hartley");
00375             }
00376             Real_t* out_ptr=img+w*y0+x0;
00377             dst.setDstImage(out_ptr,is.width,is.height,nls);
00378             sys.Run(indicator,"Insert 1");
00379
00380
00381
00382             Impl::window(out_ptr,is.width,is.height,nls,Real_t(is.width/2),Real_t(is.height/2),Real_t(0));
00383
00384             typedef Vtl::ImAlg::WndFun::Nuttall<float,0> H0;
00385             H0 h0(7);
00386             Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Conv,true> ker(h0);
00387             Vtl::ImAlg::Conv::Conv2D::CyclicInplace(img,w,h,nls,ker);
00388         }
00389     public:
00390     };
00391
00398     template<typename Real_t>
00399     class Hartley<Real_t,Vtl::ImAlg::Model::Offset<Real_t> >
00400         : public Base<Real_t,3>
00401     {
00402         size_t n[2]; //width,height
00403     public:
00404         typedef Vtl::ImAlg::Model::Offset<Real_t> Model;
00405     public:
00406         virtual ~Hartley()
00407         {
00408         }
00409         Hartley()
00410             : Base()
00411         {
00412         }
00413         void Init(size_t width,size_t height)
00414         {
00415             size_t sq=width*height;
00416             Storage_t::Offsets_t s={sq,sq,sq};
00417             // blocks
00418             // 0 - Image1 | Hartley of Image1 | Hartley of Image1 divided by Amplitude
00419             // 1 - Image2 | Hartley of Image2 | Hartley of Image2 divided by Amplitude
00420             // 2 - temporary for :
00421             //       | phase correlation
00422             //       | its hartley for delta function
00423             Base::Init(s);
00424             n[0]=width;
00425             n[1]=height;
00426         }
00427     private:
00428         template<unsigned n_img>
00429         Real_t* img_H()
00430         {
00431             return _img<n_img-1>();
00432         }
00433         Real_t* img_Tmp()
00434         {
00435             return _img<2>();
00436         }
00437     public:
00438         template<unsigned n_img,typename Iter>
00439         void Insert(Vtl::Plf::OutPortNoPostProc<Real_t>* input,Iter src_begin,Iter src_end)
00440         {
00441             Base::_Insert(input,src_begin,src_end,img_H<n_img>(),n[0],n[1],n[0]);
00442             AfterInsert<n_img>();
00443         }
00444
00445
00446
00447         void Run(Model& model)
00448         {
00449             //compute Phase correlation
00450             Container<Real_t> cont(n,8);
00451             Vtl::Dbg::TimeElapsed t;
00452             t.start();
00453             Impl::find_shift(cont,img_H<1>(),img_H<2>(),img_Tmp(),n);
00454             t.finish();
00455             Real_t dx=  Real_t((*(cont.begin())).x);
00456             Real_t dy=  Real_t((*(cont.begin())).y);
00457             model.set(dx,dy);
00458
00459             std::cout << "dx=" << std::setw(6) << dx <<"   dy="<< std::setw(6) << dy <<std::endl;
00460             std::cout << "Compute translation :>" << t.GetString() <<std::endl;
00461             Tests::test_save_x(storage_.block<2>(),"21_phase_corr_ofs",n[0],n[1],false);
00462         }
00463     private:
00464         template<unsigned n_img>
00465         void AfterInsert()
00466         {
00467             bool windowing=false;
00468             bool highpass=false;
00469
00470             Tests::test_save_x(img_H<n_img>(),Name<n_img>("00_orig"),n[0],n[1],true);
00471             Impl::transform_and_zero_freq(img_H<n_img>(),n);
00472             Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase<Real_t> pp(img_H<n_img>());
00473             Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<2>(n,pp);
00474         }
00475 };
00476
00483     template<typename Real_t>
00484     class Hartley<Real_t,Vtl::ImAlg::Model::SkewYOffset<Real_t> >
00485         : public Base<Real_t,6>
00486     {
00487         size_t n[2]; //width,height; width==height==size
00488     public:
00489         typedef Vtl::ImAlg::Model::SkewYOffset<Real_t> Model;
00490     public:
00491         virtual ~Hartley()
00492         {
00493         }
00494         Hartley()
00495             : Base()
00496         {
00497         }
00498         void Init(size_t size)
00499         {
00500 //          this->size=size;
00501             size_t sq=size*size;
00502             Storage_t::Offsets_t s={sq,sq,sq,sq/2,sq/2,sq};
00503             // blocks
00504             // 0 - Image1 | Hartley of Image1 | Hartley of Image1 divided by Amplitude
00505             // 1 - Image2 | Hartley of Image2 | Hartley of Image2 divided by Amplitude
00506             // 2 - temporary for :
00507             //         Amplitude (Fourier/Hartley - the same)
00508             //       | its hartley for delta function
00509             //       | rotated and rescaled Hartley of Image2 divided by Amplitude
00510             //       | phase correlation
00511             //       | its hartley for delta function
00512             // 3 - Image 1 Amplitude
00513             // 4 - Image 2 Amplitude
00514             // 5- Sino
00515             Base::Init(s);
00516             n[0]=size;
00517             n[1]=size;
00518         }
00519     private:
00520         template<unsigned n_img>
00521         Real_t* img_H()
00522         {
00523             return _img<n_img-1>();
00524         }
00525         Real_t* img_Tmp()
00526         {
00527             return _img<2>();
00528         }
00529         template<unsigned n_img>
00530         Real_t* img_Amp()
00531         {
00532             return _img<n_img+2>();
00533         }
00534         Real_t* img_Sino()
00535         {
00536             return _img<5>();
00537         }
00538     public:
00539         template<unsigned n_img,typename Iter>
00540         void Insert(Vtl::Plf::OutPortNoPostProc<Real_t>* input,Iter src_begin,Iter src_end)
00541         {
00542             Base::_Insert(input,src_begin,src_end,img_H<n_img>(),n[0],n[1],n[0]);
00543             AfterInsert<n_img>();
00544         }
00545         void Run(Model& model,int w,int h) //,Real_t* mat,Real_t *dx_,Real_t *dy_)
00546         {
00547             model.setIdentity();
00548
00549             Real_t cof=model.getCof(w,h);
00550
00551             Real_t mat[4];
00552             mat[0]=1.0f;
00553             mat[1]=0.0f;
00554             mat[2]=0.0f;
00555             mat[3]=1.0f;
00556             _SkewOffset_2(mat);
00557 //          _SkewOffset_2(model);
00558
00559             //compute Phase correlation
00560             Container<Real_t> cont(n,8);
00561             Vtl::Dbg::TimeElapsed t;
00562             t.start();
00563             Impl::find_shift(cont,img_H<1>(),img_H<2>(),img_Tmp(),n);
00564             t.finish();
00565             Real_t dx=  Real_t((*(cont.begin())).x);
00566             Real_t dy=  Real_t((*(cont.begin())).y);
00567             typedef Vtl::NumAlg::Lin::ublas::c_matrix<Real_t,2,2> MatrixA;
00568             typedef Vtl::NumAlg::Lin::ublas::c_vector<Real_t,2> VectorB;
00569             using namespace Vtl::NumAlg::Lin::ublas;
00570             MatrixA A;
00571             VectorB b;
00572             A(0,0)=mat[0];
00573             A(1,0)=mat[2];
00574             A(0,1)=mat[1];
00575             A(1,1)=mat[3];
00576             b(0)=dx/cof;
00577             b(1)=dy/cof;
00578             b=prod(A,b);
00579
00580             //*dx_=dx;
00581             //*dy_=dy;
00582             //model.offset_by((dx/cof),dy/cof);
00583             model.set(mat[2],b(0),b(1));
00584             //std::cout << "dx=" << std::setw(6) << dx <<"   dy="<< std::setw(6) << dy <<std::endl;
00585             std::cout << "Compute translation :>" << t.GetString() <<std::endl;
00586             Tests::test_save_x(storage_.block<2>(),"21_phase_corr_ofs",n[0],n[1],false);
00587         }
00588     private:
00589         template<unsigned n_img>
00590         void AfterInsert()
00591         {
00592             Tests::test_save_x(img_H<n_img>(),Name<n_img>("00_orig"),n[0],n[1],true);
00593
00594             Vtl::Dbg::TimeElapsed t;
00595             t.start();
00596             Impl::transform_and_zero_freq(img_H<n_img>(),n);
00597             //highpass_filtering(img_H<n_img>(),n);
00598             Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown<2,Real_t> pp(img_H<n_img>(),img_Amp<n_img>(),n);
00599             Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<2>(n,pp);
00600             Vtl::Plf::F11::Log<float> log(0.001);
00601             Vtl::ImAlg::Tools::copy_1_1(img_Amp<n_img>(),n[0],n[1]/2,n[0],log);
00602
00603             t.finish();
00604             std::cout << "SKEW: compute Amplitude & Phase (image "<<n_img<<")* :>" << t.GetString() <<std::endl;
00605             Tests::test_save_x(img_H<n_img>(),Name<n_img>("01_phase"),n[0],n[1],false);
00606             Tests::test_save_x(img_Amp<n_img>(),Name<n_img>("01_amp"),n[0],n[1],false);
00607
00608             size_t nnn[]={n[0]};
00609             for(size_t y=0; y< n[1]/2; ++y)
00610             {
00611                 Real_t *p1=img_Amp<n_img>()+n[0]*y;
00612                 MinusMean(p1,n[0],p1);
00613                 Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<1,false>(p1,nnn);
00614                 Vtl::NumAlg::IntTransf::Hartley::fht1D(p1,n[0]);
00615                 Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<1,false>(p1,nnn);
00616                 p1[n[0]/2]=0;
00617                 Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase<Real_t> pp1(p1);
00618                 Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<1>(nnn,pp1);
00619             }
00620             Tests::test_save_x(img_Amp<n_img>(),Name<n_img>("01_amp_linebyline_phase"),n[0],n[1]/2,false);
00621         }
00622         void MinusMean(const Real_t *data,size_t len,Real_t *out)
00623         {
00624             float mean=0;
00625             for(size_t x=0; x<len ;++x)
00626             {
00627                 mean+=data[x];
00628             }
00629             mean/=len;
00630             for(size_t x=0; x<len ;++x)
00631             {
00632                 //float c=1;
00633                 float c=exp(-Vtl::sqr((x-len/2.0f)/(len/4.0f))/2.0f);
00634                 out[x]=(data[x]-mean)*c;
00635             }
00636
00637         }
00638         void _SkewOffset_2(float* mat)
00639         {
00640             const size_t nn=n[0];
00641             size_t nnn[]={nn};
00642             std::vector<Real_t> tmp(2*nn);
00643             Real_t *v1=&(tmp[0]);
00644             Real_t *v2=v1+nn;
00645             for(size_t y=0; y< n[1]/2; ++y)
00646             {
00647                 Real_t *p1=img_Amp<1>()+n[0]*y;
00648                 Real_t *p2=img_Amp<2>()+n[0]*y;
00649                 Real_t *r=img_Tmp()+n[0]*y+n[0]*n[1]/2;
00651
00652                 Vtl::NumAlg::IntTransf::Hartley::F::PhaseCorr<Real_t> pp(p1,p2,r);
00653                 Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<1>(nnn,pp);
00654
00655                 Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<1,false>(r,nnn);
00656                 Vtl::NumAlg::IntTransf::Hartley::ifht1D(r,nn);
00657                 Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<1,false>(r,nnn);
00658
00659             }
00660             Tests::test_save_x(img_Tmp()+n[0]*n[1]/2,"20_xxxxxxx",nn,n[1]/2,false);
00661             {
00662                 Vtl::NumAlg::IntTransf::Utils::F::ReflectHalfToOther<2,Real_t,true> pp(img_Tmp());
00663                 Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<2>(n,pp);
00664             }
00665
00666             Tests::test_save_x(img_Tmp(),"20_xx",n[0],n[1],false);
00667
00668             {
00669                 Real_t angle_from=Real_t(-M_PI/16);
00670                 Real_t angle_to=Real_t(M_PI/16);
00671                 Hough(angle_from,angle_to,img_Tmp(),img_Sino(),n[0],n[1]);
00672
00673                 Container<Real_t> cont(n,8);
00674                 Impl::find_offset(cont,img_Sino(),n);
00675                 float phi_t= float((*(cont.begin())).y +n[1]/2);
00676                 //phi_t -=1;
00677                 float phi=(angle_to-angle_from)/n[1] * phi_t + angle_from;
00678                 float rho= float((*(cont.begin())).x);
00679
00680                 mat[0]=1;
00681                 mat[1]=0;
00682                 mat[2]=tan(phi);
00683                 mat[3]=1;
00684
00685                 Real_t mat_rev[]={1,-mat[2],0,1};
00686                 Impl::comp_Rotate(img_H<2>(),img_Tmp(),n,mat_rev);
00687
00688
00689                 Tests::test_save_x(img_Tmp(),"20_phase_2_skew",n[0],n[1],false);
00690
00691                 ::memcpy(img_H<2>(),img_Tmp(),sizeof(Real_t)*n[0]*n[1]);
00692                 //std::cout << "Inverse FFT (compute rotation/scale):>" << t.GetString() <<std::endl;
00693
00694
00695             }
00696         }
00697         static void Hough(Real_t angle_from,Real_t angle_to,Real_t* img,Real_t* sino,size_t width,size_t height)
00698         {//Hough
00699
00700             size_t n[]={width,height};
00701             Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<2,false>(img,n);
00702             Vtl::NumAlg::IntTransf::Hartley::fht2D(img,n[0],n[1]);
00703             Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<2,false>(img,n);
00704
00705             Vtl::ImAlg::Resamp::LinGrid<Real_t> lng(-Real_t(n[1]/2*1.4),Real_t(n[1]/2*1.4),n[1]);
00706             //Vtl::ImAlg::Resamp::LinGrid<Real_t> lng(-Real_t(n[1]/2),Real_t(n[1]/2),n[1]);
00707             Vtl::ImAlg::Resamp::PhiGrid<Real_t> phig(angle_from,angle_to,n[0]);
00708             Vtl::ImAlg::Resamp::InterpBilinear<Real_t> interp(img,n[0],n[1],n[0],Real_t(0));
00709             Vtl::ImAlg::Resamp::CartToPolar(interp,Real_t(n[0]/2),Real_t(n[1]/2),sino,n[0],n[1],n[0],lng,phig);
00710
00711             Tests::test_save_x(sino,"20_xx_polar",n[0],n[1],false);
00712
00713             typedef Vtl::ImAlg::WndFun::DoG<Real_t,0> Filt;
00714             Filt f(4,n[0],1);
00715             Vtl::Plf::Kernel::FKern<Real_t,Vtl::Plf::Kernel::KT_Win,false> ker(f,n[0],Real_t(n[0]/2),Real_t(0));
00716             for(size_t y=0; y<n[1] ;++y )
00717             {
00718                 Real_t *py=sino+n[0]*y;
00719                 Vtl::Plf::Kernel::WindowData(py,ker.begin(),ker.end(),1,0);
00720                 for(size_t x=0; x<n[0]; ++x)
00721                 {
00722                     //Real_t c=exp(-Vtl::sqr((x-n[0]/2.0f)/(n[0]/2.0f))/2.0f);
00723                     Real_t c=1;
00724                     c-=exp(-Vtl::sqr((x-n[0]/2.0f)/(4.0f))/2.0f);
00725                     py[x]*=c;
00726                 }
00727             }
00728
00729             Tests::test_save_x(sino,"20_xx_polar_f",n[0],n[1],false);
00730             Real_t *py=sino;
00731             size_t nn[]={n[0]};
00732             for(size_t y=0; y<n[1] ;++y, py+=n[0])
00733             {
00734                 Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<1,false>(py,nn);
00735                 Vtl::NumAlg::IntTransf::Hartley::fht1D(py,n[0]);
00736                 Vtl::NumAlg::IntTransf::Utils::SwapQuadrants<1,false>(py,nn);
00737             }
00738             Tests::test_save_x(sino,"20_xx_sino",n[0],n[1],false);
00739         }
00740
00741     };
00742
00749     template<typename Real_t>
00750     class Hartley<Real_t,Vtl::ImAlg::Model::Similarity<Real_t> >
00751         : public Base<Real_t,5>
00752     {
00753     public:
00754         typedef Vtl::ImAlg::Model::Similarity<Real_t> Model;
00755     private:
00756         size_t size;
00757         Vtl::ImAlg::Resamp::LogGrid<float> lsg;
00758         size_t n[2];
00759         bool is_edged;
00760     public:
00761         virtual ~Hartley()
00762         {
00763         }
00764         Hartley()
00765             : Base()
00766         {
00767         }
00768         void Init(size_t size, bool is_edged)
00769         {
00770             this->size=size;
00771             this->is_edged=is_edged;
00772             size_t sq=size*size;
00773             Storage_t::Offsets_t s={sq,sq,sq,sq,sq};
00774             // blocks
00775             // 0 - Image1 | Hartley of Image1 | Hartley of Image1 divided by Amplitude
00776             // 1 - Image2 | Hartley of Image2 | Hartley of Image2 divided by Amplitude
00777             // 2 - temporary for :
00778             //         Amplitude (Fourier/Hartley - the same)
00779             //       | log-polar amplitudes phase correlation
00780             //       | its hartley for delta function
00781             //       | rotated and rescaled Hartley of Image2 divided by Amplitude
00782             //       | phase correlation
00783             //       | its hartley for delta function
00784             // 3 - Image 1 Amplitude in log-polar
00785             // 4 - Image 2 Amplitude in log-polar
00786             //storage_.Init(s);
00787             Base::Init(s);
00788             n[0]=Size();
00789             n[1]=Size();
00790             //size_t n[]={Size(),Size()};
00791             lsg=Vtl::ImAlg::Resamp::LogGrid<float>(2.0f,float(std::min(n[0],n[1])/2),n[0]);
00792         }
00793         size_t Size() const {return size;}
00794     private:
00795         template<unsigned n_img>
00796         Real_t* img_H()
00797         {
00798             //return storage_.block<n_img-1>();
00799             return _img<n_img-1>();
00800         }
00801         Real_t* img_Tmp()
00802         {
00803             //return storage_.block<2>();
00804             return _img<2>();
00805         }
00806         template<unsigned n_img>
00807         Real_t* img_Amp()
00808         {
00809             //return storage_.block<n_img+2>();
00810             return _img<n_img+2>();
00811         }
00812
00813     public:
00814         template<unsigned n_img,typename Iter>
00815         void Insert(Vtl::Plf::OutPortNoPostProc<Real_t>* input,Iter src_begin,Iter src_end)
00816         {
00817             Base::_Insert(input,src_begin,src_end,img_H<n_img>(),Size(),Size(),Size());
00818             AfterInsert<n_img>();
00819         }
00820
00821
00822
00823         void Run(Model& model,int w,int h)
00824         {
00825             typedef Vtl::NumAlg::Lin::ublas::c_matrix<Real_t,2,2> MatrixA;
00826             typedef Vtl::NumAlg::Lin::ublas::c_vector<Real_t,2> VectorB;
00827             using namespace Vtl::NumAlg::Lin::ublas;
00828
00829             Real_t cof=model.getCof(w,h);
00830
00831
00832             Vtl::Dbg::TimeElapsed t;
00833             t.start();
00834             Container<Real_t> cont_amp1(n,8);
00835             find_rotate_scale(cont_amp1);
00836             t.finish();
00837
00838             Model::value_type phi= - float(M_PI*(*(cont_amp1.begin())).y)/n[1];
00839             Model::value_type scale = lsg.values_ratio( (*(cont_amp1.begin())).x );
00840
00841             //-----------------------------------------------------------------------------------
00842             std::cout << "Inverse FFT (compute rotation/scale):>" << t.GetString() <<std::endl;
00843             Container<Real_t> cont1(n,8);
00844             Container<Real_t> cont2(n,8);
00845             Container<Real_t>& cont=cont1;
00846             //phi=phi
00847             model.set(phi,scale,Real_t(0),Real_t(0));
00848             angle_shift_specif(cont1,model);
00849             Real_t a0=(*(cont1.begin())).value;
00850             std::cout << "Delta function amplitude a0= "<< a0 << std::endl;
00851             //phi=phi+180
00852             model.set(phi+Real_t(M_PI),scale,Real_t(0),Real_t(0));
00853             angle_shift_specif(cont2,model);
00854             Real_t a1=(*(cont2.begin())).value;
00855             std::cout << "Delta function amplitude a1= "<< a1 << std::endl;
00856             //выбираем правильный угол поворота phi или phi+M_PI
00857             if (abs(a1)>abs(a0))
00858             {
00859                 std::cout << "phi=180 deg+phi " << std::endl;
00860                 cont=cont2;
00861                 phi+=Real_t(M_PI);
00862             }
00863             else
00864             {
00865                 std::cout << "phi=phi " << std::endl;
00866                 cont=cont1;
00867             }
00868             //создаем матрицу преобразования для пространства изображений
00869             Real_t dx=  Real_t((*(cont.begin())).x);
00870             Real_t dy=  Real_t((*(cont.begin())).y);
00871             model.set(-phi,scale,-dx/cof,-dy/cof);
00872             model.Inverse();
00873         }
00874     private:
00875         template<unsigned n_img>
00876         void AfterInsert()
00877         {
00878             bool windowing=false;
00879             bool highpass=false;
00880             if (!is_edged)
00881             {
00882                 for(size_t y=0; y< n[1]/2; ++y)
00883                 {
00884                     Real_t *p=img_H<n_img>()+n[0]*y;
00885                     MinusMean(p,n[0],p);
00886                 }
00887             }
00888             _RotScaleOffset_1<n_img>(highpass,windowing);
00889         }
00890         void MinusMean(const Real_t *data,size_t len,Real_t *out)
00891         {
00892             float mean=0;
00893             for(size_t x=0; x<len ;++x)
00894             {
00895                 mean+=data[x];
00896             }
00897             mean/=len;
00898             for(size_t x=0; x<len ;++x)
00899             {
00900                 //float c=1;
00901                 float c=exp(-Vtl::sqr((x-len/2.0f)/(len/4.0f))/2.0f);
00902                 out[x]=(data[x]-mean)*c;
00903             }
00904         }
00905         //--Reddy-Chatterji
00906         template<unsigned n_img>
00907         void _RotScaleOffset_1(bool highpass,bool windowing)
00908         {
00909             Vtl::Dbg::TimeElapsed t;
00910             t.start();
00911             //window(img_H<n_img>(),n);
00912             Impl::transform_and_zero_freq(img_H<n_img>(),n);
00913             //highpass_filtering(img_H<n_img>(),n);
00914 //              Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmp<Real_t,amp_in_up_half_plane> pp(hartley_phase,amp);
00915             Vtl::NumAlg::IntTransf::Hartley::F::Hartley2PhaseAmpDown<2,Real_t> pp(img_H<n_img>(),img_Tmp(),n);
00916             //Vtl::NumAlg::IntTransf::Utils::ProcPair::Hartley2PhaseAmpDown<2,Real_t> pp(img_H<n_img>(),img_Tmp(),n);
00917             Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<2>(n,pp);
00918             Vtl::Plf::F11::Log<float> log(0.001);
00919             Vtl::ImAlg::Tools::copy_1_1(img_Tmp(),n[0],n[1]/2,n[0],log);
00920
00921
00922             Impl::comp_AmpToPolar(img_Tmp(),img_Amp<n_img>(),n,lsg);
00923
00924             t.finish();
00925             std::cout << "compute Amplitude & Phase (image "<<n_img<<")* :>" << t.GetString() <<std::endl;
00926             Tests::test_save_x(img_H<n_img>(),Name<n_img>("01_phase"),n[0],n[1],false);
00927             Tests::test_save_x(img_Tmp(),Name<n_img>("01_amp"),n[0],n[1],false);
00928             Tests::test_save_x(img_Amp<n_img>(),Name<n_img>("01_amp_logpolar"),n[0],n[1],false);
00929
00930             t.start();
00931             if(windowing)
00932                 Impl::window(img_Amp<n_img>(),n[0],n[1],n[0],Real_t(n[0]/2),Real_t(n[1]/2),Real_t(0));
00933
00934             Impl::transform_and_zero_freq(img_Amp<n_img>(),n);
00935             // НЧ - фильтьрация (highpass)
00936             if(highpass)
00937                 Impl::highpass_filtering(img_Amp<n_img>(),n);
00938
00939             Vtl::NumAlg::IntTransf::Hartley::F::Hartley2Phase<Real_t> ppp(img_Amp<n_img>());
00940             Vtl::NumAlg::IntTransf::Utils::proc_pos_neg_freq<2>(n,ppp);
00941
00942             t.finish();
00943             std::cout << "compute Phase of LogPolar Amplitude (image "<< n_img <<")* :>" << t.GetString() <<std::endl;
00944             Tests::test_save_x(img_Amp<n_img>(),Name<n_img>("05_phase_hartley_phase"),n[0],n[1],false);
00945         }
00946         void angle_shift_specif(Container<Real_t>& cont,const Model& model)
00947         {
00948             model.Interp(img_H<2>(),n[0],n[1],n[0],img_Tmp(),n[0],Real_t(0));
00949             //Tests::test_save_x(storage_.block<2>(),"20_phase_2_rotate",n[0],n[1],false);
00950             ::memcpy(img_Amp<1>(),img_Tmp(),sizeof(Real_t)*n[0]*n[1]);
00951             //img_Amp<1>() используем как временное хранилище для повернутого спектра
00952 //          Vtl::Dbg::TimeElapsed t;
00953 //          t.start();
00954             //Ищем сдвиг
00955             Impl::find_shift(cont,img_H<1>(),img_Amp<1>(),img_Tmp(),n);
00956 //          t.finish();
00957 //          std::cout << "Compute translation :>" << t.GetString() <<std::endl;
00958             //Tests::test_save_x(storage_.block<2>(),"21_phase_corr_ofs",n[0],n[1],false);
00959         }
00960
00961         void find_rotate_scale(Container<Real_t>& cont_amp1)
00962         {
00963             Vtl::Dbg::TimeElapsed t;
00964
00965                 t.start();
00966                 Impl::find_shift(cont_amp1,img_Amp<1>(),img_Amp<2>(),img_Tmp(),n);
00967                 t.finish();
00968                 std::cout << "Compute delta functions for rotation/scale:>" << t.GetString() <<std::endl;
00969                 Tests::test_save_x(img_Tmp(),"11_phase_delta",n[0],n[1],false);
00970
00971                 std::cout << "===== Peaks for roattion/scale:>" << t.GetString() <<std::endl;
00972
00973                 for(Container<Real_t>::const_Iter it=cont_amp1.begin(); it!=cont_amp1.end(); ++it)
00974                 {
00975                     Container<Real_t>::Point p=*it;
00976                     float phi=float(p.y);
00977                     phi=(phi/n[1])*180.0f;
00978                     float scale=lsg.values_ratio(p.x);
00979
00980                     std::cout << std::setprecision(3)
00981                         << "scale=" << std::setw(6) << scale
00982                         <<"   phi="<< std::setw(6) << phi
00983                         << " deg   a=" << p.value <<std::endl;
00984                 }
00985         }
00986     };
00987
00988
00989
00990 }//namespace Registration
00991 }//namespace ImAlg
00992 }//namespace Vtl
00994 #endif //_IMG_REGISTRATION_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл img_registration_oflow.h

  • Файлы
  • Список членов всех файлов

img_registration_oflow.h

См. документацию.
00001 #ifndef _IMG_REGISTRATION_OFLOW_H
00002 #define _IMG_REGISTRATION_OFLOW_H
00004 #include "plf_kernels_1d.h"
00005 #include "plf_functors.h"
00006 #include "imalg_tools.h"
00007 #include "storage.h"
00008 #include "img_trans_models.h"
00010
00011 namespace Vtl
00012 {
00013 namespace ImAlg
00014 {
00015 namespace Registration
00016 {
00017
00024     template<typename T,unsigned ColorPlanes_,bool UseMask_>
00025     class OFlowAllocStrategy
00026     {
00027     public:
00028         typedef T value_type;
00029         enum {UseMask=UseMask_};
00030         enum {ColorPlanes=ColorPlanes_};
00031         enum {ImgPlane=5 }; //0-I1, 1-I2, 2-I1 transformed 3-gx, 4-gy , 5-mask
00032         enum {ImgLevel=ImgPlane*ColorPlanes+(UseMask?1:0)};
00033         typedef Storage<T,ImgLevel> Storage_t;
00034         struct Size
00035         {
00036             size_t w;
00037             size_t h;
00038             size_t ofs;
00039         };
00040         std::vector<Size> sizes;
00041         size_t w;
00042         size_t h;
00043         size_t ofs;
00044         size_t level;
00045     private:
00046         Storage_t storage_;
00047     public:
00048         OFlowAllocStrategy() {}
00049         virtual ~OFlowAllocStrategy() {}
00050         void Init(size_t width,size_t height)
00051         {
00052             Init(width,height,width,height);
00053         }
00054         void Init(size_t width,size_t height,size_t width_min,size_t height_min)
00055         {
00056             sizes.resize(0);
00057             size_t sq=0;
00058             for( ; width>=width_min && height>=height_min ; width/=2, height/=2 )
00059             {
00060                 Size s;
00061                 s.w=width;
00062                 s.h=height;
00063                 s.ofs=sq;
00064                 sq+=s.w*s.h;
00065                 sizes.push_back(s);
00066             }
00067             Storage_t::Offsets_t s;
00068             for(int i=0; i< Storage_t::N ; ++i)
00069             {
00070                 s[i]=sq;
00071             }
00072             storage_.Init(s);
00073             set_Level(0);
00074         }
00075         size_t Levels() const { return sizes.size(); }
00076         void set_Level(size_t level)
00077         {
00078             this->level=level;
00079             w=sizes[level].w;
00080             h=sizes[level].h;
00081             ofs=sizes[level].ofs;
00082         }
00083         size_t get_Level() const { return level;}
00084         size_t W() const { return w;}
00085         size_t H() const { return h;}
00086         template<unsigned n_plane>
00087         T* I1()
00088         {
00089             return ofs+storage_.block<ImgPlane*n_plane>();
00090         }
00091         template<unsigned n_plane>
00092         T* I2()
00093         {
00094             return ofs+storage_.block<ImgPlane*n_plane+1>();
00095         }
00096         template<unsigned n_plane>
00097         T* It()
00098         {
00099             return ofs+storage_.block<ImgPlane*n_plane+2>();
00100         }
00101         template<unsigned n_plane>
00102         T* gx()
00103         {
00104             return ofs+storage_.block<ImgPlane*n_plane+3>();
00105         }
00106         template<unsigned n_plane>
00107         T* gy()
00108         {
00109             return ofs+storage_.block<ImgPlane*n_plane+4>();
00110         }
00111         T* mask()
00112         {
00113             return ofs+storage_.block<ImgLevel-1>();
00114         }
00115     };
00116
00117
00119     namespace Impl
00120     {
00122         namespace OFlow
00123         {
00124             template<unsigned n,typename T,class M>
00125             T G(const M& model,T x,T y,T gx,T gy)
00126             {
00127                 return model.Dx<n>(x,y)*gx+model.Dy<n>(x,y)*gy;
00128             }
00129
00130             template<unsigned n>
00131             struct BuildG
00132             {
00133                 template<class M,class VectorG,typename T>
00134                 static void vec(VectorG& GG,const M& model,T x,T y,T gx,T gy)
00135                 {
00136                     GG[n-1]=G<n-1>(model,x,y,gx,gy);
00137                     BuildG<n-1>::vec(GG,model,x,y,gx,gy);
00138                 }
00139             };
00140             template<>
00141             struct BuildG<0>
00142             {
00143                 template<class M,class VectorG,typename T>
00144                 static void vec(VectorG& GG,const M& model,T x,T y,T gx,T gy)
00145                 {
00146                 }
00147             };
00148
00149             template<bool UseMask,class MatrixH,class VectorB>
00150             class BuildHB
00151             {
00152                 MatrixH& H;
00153                 VectorB& B;
00154             public:
00155                 typedef typename VectorB::value_type value_type;
00156             public:
00157                 BuildHB(MatrixH& H_,VectorB& B_) : H(H_),B(B_)
00158                 {
00159                     H = Vtl::NumAlg::Lin::ublas::zero_matrix<MatrixH::value_type>( H.size1(), H.size2() );
00160                     B = Vtl::NumAlg::Lin::ublas::zero_vector<VectorB::value_type>( B.size() );
00161                 }
00162                 template<typename T>
00163                 void operator()(VectorB& G,T deltaI,T mask)
00164                 {
00165                     B+=Vtl::Alg::mult_if<UseMask>(G*deltaI,mask);
00166                     H+=Vtl::Alg::mult_if<UseMask>(outer_prod(G,G),mask);
00167                 }
00168             };
00169             template<bool UseMask,class VectorB>
00170             class BuildB
00171             {
00172                 VectorB& B;
00173             public:
00174                 typedef typename VectorB::value_type value_type;
00175             public:
00176                 BuildB(VectorB& B_) : B(B_)
00177                 {
00178                     B = Vtl::NumAlg::Lin::ublas::zero_vector<VectorB::value_type>( B.size() );
00179                 }
00180                 template<typename T>
00181                 void operator()(VectorB& G,T deltaI,T mask)
00182                 {
00183                     B+=Vtl::Alg::mult_if<UseMask>(G*deltaI,mask);
00184                 }
00185             };
00186
00187
00188             template<typename T>
00189             class OFlowHelper
00190             {
00191             public:
00192                 template<typename S>
00193                 static void ins(S* in,int w, int h,int nls,T* data)
00194                 {
00195                     Vtl::Plf::F11::ConvertMult<T> to_T(T(1./255));
00196                     Vtl::ImAlg::Tools::copy_1_1(in, w, h, nls, data, w, to_T);
00197                 }
00198 #if 0
00199
00204                 static void ins(T* in,int w, int h,int nls,T* data,int w_new,int h_new)
00205                 {
00206                     T mat[4]={float(w_new)/float(w),0,0,float(h_new)/float(h)};//Scale matrix
00207                     Vtl::ImAlg::Resamp::InterpBilinear<Img::Pixel> interp((*img)[0],w,h,nls);
00208                     float x0=float(w/2);
00209                     float y0=float(h/2);
00210                     float x1=float(w_new/2);
00211                     float y1=float(h_new/2);
00212                     Vtl::ImAlg::Resamp::Affine(interp,x0,y0,x1,y1,mat,data,w_new,h_new,w_new);
00213                 }
00214 #endif
00215
00224                 static void dif(T* data1,T* data2,T* gx,T* gy,int w, int h,float sigma)
00225                 {
00226                     Vtl::Plf::F11::DoNothing<T> no;
00227                     Vtl::ImAlg::Conv::FastGaussConvolve<float,0> g0(sigma);
00228                     Vtl::ImAlg::Conv::FastGaussConvolve<float,1> g1(sigma);
00229
00230                     Vtl::ImAlg::Tools::copy_1_1(data2, w, h, w, gx, w, no);
00231                     Vtl::ImAlg::Tools::copy_1_1(data2, w, h, w, gy, w, no);
00232                     Vtl::ImAlg::Conv::Conv2D::conv2DInplace(gx,w,h,w,g1,g0);
00233                     Vtl::ImAlg::Conv::Conv2D::conv2DInplace(gy,w,h,w,g0,g1);
00234                     Vtl::ImAlg::Conv::Conv2D::conv2DInplace(data2,w,h,w,g0,g0);
00235                     Vtl::ImAlg::Conv::Conv2D::conv2DInplace(data1,w,h,w,g0,g0);
00236
00237                     Tests::SaveImage("a_data1.tif",data1,w,h,w,T(0),T(255));
00238                     Tests::SaveImage("a_data2.tif",data2,w,h,w,T(0),T(255));
00239                     Tests::SaveImage("a_gx.tif",gx,w,h,w,T(128/(4.*255)),T(4*255));
00240                     Tests::SaveImage("a_gy.tif",gy,w,h,w,T(128/(4.*255)),T(4*255));
00241                 }
00242                 template<class Model,class BuildX>
00243                 static void build(const Model& model,BuildX& HB,T* I1,T* I2,T* gx,T* gy,size_t w,size_t h,T* mask,float sigma,T fill)
00244                 {
00245                     using namespace Vtl::NumAlg::Lin::ublas;
00246                     c_vector<typename BuildX::value_type,Model::N> GG;
00247
00248                     T cof=T(2./std::max(w,h));
00249                     for(size_t iy=0; iy<h ; ++iy)
00250                         for(size_t ix=0; ix<w ; ++ix)
00251                         {
00252
00253                             T x=T(int(ix)-int(w/2))*cof;
00254                             T y=T(int(iy)-int(h/2))*cof;
00255                             size_t iofs=iy*w+ix;
00256                             if(I1[iofs] != fill)
00257                             {
00258                                 BuildG<Model::N>::vec(GG,model,x,y,gx[iofs],gy[iofs]);
00259                                 GG/=cof;
00260                                 HB(GG,I1[iofs]-I2[iofs],mask[iofs]);
00261                             }
00262                         }
00263                 }
00264
00265             };
00266         } //namespace OFlow
00267     }//namespace Impl
00268
00269
00275     template<class Model,class AllocStrategy >
00276     class OFlow
00277     {
00278         Model& model;
00279         AllocStrategy& mem;
00280     public:
00281         typedef typename AllocStrategy::value_type T;
00282         enum {UseMask=AllocStrategy::UseMask};
00283         enum {ColorPlanes=AllocStrategy::ColorPlanes};
00284     public:
00285         OFlow(Model& model_, AllocStrategy& mem_): model(model_), mem(mem_)
00286         {
00287         }
00288         virtual ~OFlow()
00289         {
00290         }
00291         template<class D>
00292         void Insert1(D* data,int w,int h,int nls)
00293         {
00294             mem.set_Level(0);
00295             if(w!=mem.W() || h!=mem.H())
00296                 throw "Error OFlow::Insert1()";
00297
00298             Impl::OFlow::OFlowHelper<T>::ins(data,w,h,nls,mem.I1<0>());
00299         }
00300         template<class D>
00301         void Insert2(D* data,int w,int h,int nls)
00302         {
00303             mem.set_Level(0);
00304             if(w!=mem.W() || h!=mem.H())
00305                 throw "Error OFlow::Insert1()";
00306
00307             Impl::OFlow::OFlowHelper<T>::ins(data,w,h,nls,mem.I2<0>());
00308         }
00309
00310         void AfterInsert()
00311         {
00312             //T fill=T(396./255.);
00313             T fill=T(256./255.);
00314             using namespace Impl::OFlow;
00315             using namespace Vtl::NumAlg::Lin;
00316             using namespace Vtl::NumAlg::Lin::ublas;
00317             //T sigma=2.0f;
00318             T sigma=1.2f;
00319             const int w=mem.W();
00320             const int h=mem.H();
00321             const int w2=w/2;
00322             const int h2=h/2;
00323             const int cof=std::max(w,h)/2;
00324
00325
00326             typedef c_matrix<double,Model::N,Model::N> MatrixH;
00327             typedef c_vector<double,Model::N> VectorB;
00328             Model model_direct(model);
00329             Model model_old(model);
00330             Model model_inverse(model);
00331             model_inverse.Inverse();
00332             MatrixH H;
00333             VectorB B;
00334
00335             //std::cout << "dif" << std::endl;
00336             std::cout << "image " << w << "x" << h << std::endl;
00337             for(int iii=0 ; iii<2 ; ++iii,sigma*=1.5f)
00338             {
00339                 OFlowHelper<T>::dif(mem.I1<0>(),mem.I2<0>(),mem.gx<0>(),mem.gy<0>(),mem.W(),mem.H(),sigma);
00340
00341                 BuildHB<UseMask,MatrixH,VectorB> to_build(H,B);
00342                 OFlowHelper<T>::build(model_direct,to_build,mem.I1<0>(),mem.I2<0>(),mem.gx<0>(),mem.gy<0>(),mem.W(),mem.H(),mem.mask(),sigma,fill);
00343
00344                 MatrixH::value_type multiplier=matrix_max_abs_element(H);
00345                 H/=multiplier;
00346                 B/=multiplier;
00347                 MatrixH Hinv;
00348                 svd::inverse_save(Hinv,H,1.e-16);
00349
00350                 for(int iter=0 ; iter<15 ; ++iter)
00351                 {
00352                     std::cout << "iter " << iter << std::endl;
00353                     model_old=model_direct;
00354
00355                     VectorB d_theta=prod(Hinv,B);
00356
00357
00358                     model_direct.set(d_theta);
00359                     model_direct.Inverse();
00360                     model_inverse.UpdateByNewAfterThis(model_direct);
00361                     model_direct=model_inverse;
00362                     model_direct.Inverse();
00363
00364                     T err=cof*model_direct.max_err_at_rect(model_old,-1.0f,-1.0f,1.0f,1.0f);
00365                     std::cout << "err=" << err << std::endl;
00366
00367
00368                     model_inverse.Interp(mem.I1<0>(),w, h,w,mem.It<0>(),w,fill);
00369
00370                     {
00371                         std::ostringstream os;
00372                         os.fill('0');
00373                         os<< "a_res_" << std::setw(2) << iter <<".tif";
00374                         Tests::SaveImage(os.str(),mem.It<0>(),w,h,w,T(0),T(255));
00375                     }
00376
00377                     BuildB<UseMask,VectorB> to_build(B);
00378                     OFlowHelper<T>::build(model_direct,to_build,mem.It<0>(),mem.I2<0>(),mem.gx<0>(),mem.gy<0>(),mem.W(),mem.H(),mem.mask(),sigma,fill);
00379                     B/=multiplier;
00380                     if(err<0.005)
00381                         break;
00382                 }
00383             }
00384             //T err=model_direct.max_err_at_rect(model,-1.0f,-1.0f,1.0f,1.0f);
00385             //std::cout << "Total err=" << err*cof << std::endl;
00386
00387             model=model_direct;
00388         }
00389     };
00390 }//namespace Registration
00391 }//namespace ImAlg
00392 }//namespace Vtl
00394 #endif //_IMG_REGISTRATION_OFLOW_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл img_trans_models.h

  • Файлы
  • Список членов всех файлов

img_trans_models.h

См. документацию.
00001 #ifndef _IMG_TRANS_MODELS_H
00002 #define _IMG_TRANS_MODELS_H
00004 #include <iostream>
00005 #include <iomanip>
00006
00007 #include "imalg_resampling.h"
00008 #include "alexandresku.h"
00009 #include "num_linalg.h"
00011 namespace Vtl
00012 {
00013 namespace ImAlg
00014 {
00021     namespace Transf
00022     {
00023         template<typename T>
00024         class Offset
00025         {
00026         public:
00027             typedef T value_type;
00028             typedef Vtl::NumAlg::Lin::ublas::c_vector<T,2> VectorB;
00029             enum { isStrightLineSaving=1};
00030         private:
00031             VectorB b;
00032         public:
00033             Offset() {}
00034             Offset(Offset& ot) :b(ot.b) {}
00035             Offset(const VectorB& b_) :b(b_) {}
00036             Offset& operator=(const Offset& ot) {b=ot.b;}
00037             template<typename T1,typename T2>
00038             void operator()(T1 x,T2 y,T& x_out,T& y_out) const
00039             {
00040                 x_out=T(x)+b(0);
00041                 y_out=T(y)+b(1);
00042             }
00043             template<typename T1,typename T2>
00044             VectorB operator()(T1 x,T2 y) const
00045             {
00046                 VectorB v;
00047                 operator()(x,y,v(0),v(1));
00048                 return v;
00049             }
00050             VectorB operator()(VectorB x) const
00051             {
00052                 return x+b;
00053             }
00054         };
00055         template<typename T>
00056         class Affine
00057         {
00058         public:
00059             typedef T value_type;
00060             typedef Vtl::NumAlg::Lin::ublas::c_matrix<T,2,2> MatrixA;
00061             typedef Vtl::NumAlg::Lin::ublas::c_vector<T,2> VectorB;
00062             enum { isStrightLineSaving=1};
00063         private:
00064             template<typename TT> friend std::ostream& operator<<(std::ostream& os,const Affine<TT>& transf);
00065         private:
00066             MatrixA A;
00067             VectorB b;
00068         public:
00069             Affine() {}
00070             Affine(Affine& at) :A(at.A), b(at.b) {}
00071             Affine(const MatrixA& A_,const VectorB& b_) :A(A_), b(b_) {}
00072             Affine& operator=(const Affine& at) {A=at.A; b=at.b;}
00073             template<typename T1,typename T2>
00074             void operator()(T1 x,T2 y,T& x_out,T& y_out) const
00075             {
00076                 VectorB out;
00077                 out=operator()(x,y);
00078                 x_out=out(0);
00079                 y_out=out(1);
00080             }
00081             template<typename T1,typename T2>
00082             VectorB operator()(T1 x,T2 y) const
00083             {
00084                 VectorB v;
00085                 v(0)=T(x);      v(1)=T(y);
00086                 return operator()(v);
00087             }
00088             VectorB operator()(VectorB x) const
00089             {
00090                 using namespace Vtl::NumAlg::Lin::ublas;
00091                 return prod(A,x)+b;
00092             }
00093         };
00094         template<typename T>
00095         std::ostream& operator<<(std::ostream& os,const Affine<T>& transf)
00096         {
00097             os << "AffineTransf:" << std::endl;
00098             os << std::setprecision(4) << std::setiosflags(std::ios::showpoint|std::ios::fixed);
00099
00100             os << "    | "<< std::setw(7) << transf.A(0,0) << "  "<< std::setw(7) << transf.A(0,1) << "|       |" << std::setw(7) << transf.b(0)<< "|" << std::endl;
00101             os << "  A=| "<< "       "                << "  "<< "       "                << "|     b=|" << "       "    << "|" << std::endl;
00102             os << "    | "<< std::setw(7) << transf.A(1,0) << "  "<< std::setw(7) << transf.A(1,1) << "|       |" << std::setw(7) << transf.b(1) << "|" << std::endl;
00103             os << "------------" << std::endl;
00104             return os;
00105         }
00106         template<typename T>
00107         class Homography
00108         {
00109         public:
00110             typedef T value_type;
00111             typedef Vtl::NumAlg::Lin::ublas::c_matrix<T,3,3> MatrixH;
00112             typedef Vtl::NumAlg::Lin::ublas::c_matrix<T,2,2> MatrixA;
00113             typedef Vtl::NumAlg::Lin::ublas::c_vector<T,2> Vector2;
00114             typedef Vtl::NumAlg::Lin::ublas::c_vector<T,3> Vector3;
00115             enum { isStrightLineSaving=1};
00116         private:
00117             MatrixH H;
00118         public:
00119             Homography() {}
00120             Homography(Homography& ht) :H(ht.H){}
00121             Homography(const MatrixH& H) :H(H_) {}
00122             Homography& operator=(const Homography& ht) {H=ht.H; }
00124             Homography(Offset<T>& ot)            { set(ot.b);}
00126             Homography(const Vector2& b)         { set(b);}
00128             Homography& operator=(Offset<T>& ot) {set(ot.b);}
00130             void set(const Vector2& b)
00131             {
00132                 using namespace Vtl::NumAlg::Lin::ublas;
00133                 H=identity_matrix<T>(3,3);
00134                 subrange(H, 0,2, 2,3) = b;
00135             }
00137             Homography(Affine<T>& at) { set(at.A,at.b);}
00139             Homography(const MatrixA& A,const Vector2& b) { set(A,b);}
00141             Homography& operator=(Affine<T>& at) {set(at.A,at.b);}
00143             void set(const MatrixA& A,const Vector2& b)
00144             {
00145                 using namespace Vtl::NumAlg::Lin::ublas;
00146                 subrange(H, 0,2, 0,2) = A;
00147                 subrange(H, 0,2, 2,3) = b;
00148                 subrange(H, 2,3, 0,3) = 0;
00149             }
00150             template<typename T1,typename T2>
00151             void operator()(T1 x,T2 y,T& x_out,T& y_out) const
00152             {
00153                 Vector2 out;
00154                 out=operator()(x,y);
00155                 x_out=out(0);
00156                 y_out=out(1);
00157             }
00158             template<typename T1,typename T2>
00159             Vector2 operator()(T1 x,T2 y) const
00160             {
00161                 Vector2 v;
00162                 v(0)=T(x);      v(1)=T(y);
00163                 return operator()(v);
00164             }
00165             Vector2 operator()(Vector2 x) const
00166             {
00167                 using namespace Vtl::NumAlg::Lin::ublas;
00168                 Vector3 x3;
00169                 x3(0)=x(0);
00170                 x3(1)=x(1);
00171                 x3(2)=1;
00172                 x3=prod(H,x3);
00173                 x(0)=x3(0)/x3(2);
00174                 x(1)=x3(1)/x3(2);
00175                 return x;
00176             }
00177             Vector3 operator()(Vector3 x) const
00178             {
00179                 using namespace Vtl::NumAlg::Lin::ublas;
00180                 return prod(H,x);
00181             }
00182         };
00183     }//namespace Transf
00335     namespace Model
00336     {
00342         template<typename T>
00343         class Base
00344         {
00345         public:
00346             typedef T value_type;
00347             typedef Vtl::NumAlg::Lin::ublas::c_vector<T,2> Vector2;
00348         protected:
00349             Base() {}
00350             ~Base() {}
00351         public:
00352             T getCof(int w,int h) const
00353             {
00354                 return T(std::max(w,h)/2.);
00355             }
00356             Vector2 getCenter(int w,int h) const
00357             {
00358                 Vector2 v;
00359                 getCenter(w,h,v);
00360                 return v;
00361             }
00362             void getCenter(int w,int h,Vector2& v) const
00363             {
00364                 v(0)=T(w/2.);
00365                 v(1)=T(h/2.);
00366             }
00367         };
00373         template<typename T>
00374         class Offset
00375             : public Base<T>
00376         {
00377         public:
00378             typedef Vtl::NumAlg::Lin::ublas::c_vector<T,2> VectorB;
00379             typedef Transf::Offset<T>  Transf;
00380         public:
00381             enum { N=2};
00382             enum { isLinear=1};
00383             enum { isStrightLineSaving=1};
00384         public:
00385             VectorB b;
00386         public:
00387             Transf getTransf(int w,int h) const
00388             {
00389                 return Transf(b*getCof(w,h));
00390             }
00391             template<typename Pixel>
00392             void Interp(const Pixel* in,int w, int h,int nls,Pixel* out,int nls_out,Pixel fill=Pixel(0)) const
00393             {
00394                 Vtl::ImAlg::Resamp::InterpBilinear<Pixel> interp(in,w,h,nls,fill);
00395                 Vtl::ImAlg::Resamp::Transform(interp,getTransf(w,h),out,w,h,nls_out);
00396             }
00397             void setIdentity()
00398             {
00399                 b[0]=0;
00400                 b[1]=0;
00401             }
00402             void Inverse()
00403             {
00404                 b = -b;
00405             }
00406             T max_err_at_rect(Offset& model_2,T x1,T y1,T x2,T y2)
00407             {
00408                 using namespace Vtl::NumAlg::Lin;
00409                 using namespace Vtl::NumAlg::Lin::ublas;
00410                 VectorB bb=b-model_2.b;
00411                 T err=std::abs( *max_abs_element(bb.begin(),bb.end()) );
00412                 return err;
00413             }
00414             template<class VectorP>
00415             void set(VectorP model_parameters)
00416             {
00417                 b[0]=T(model_parameters[0]);
00418                 b[1]=T(model_parameters[1]);
00419             }
00420             void set(T dx,T dy)
00421             {
00422                 b[0]=dx;
00423                 b[1]=dy;
00424             }
00425             void UpdateByNewAfterThis(Offset& model_new)
00426             {
00427                 b[0]+=model.b[0];
00428                 b[1]+=model.b[1];
00429             }
00434             template<unsigned n>
00435             T Dx(T x,T y) const { return Vtl::Alg::Return1stArg<(n==0)>(T(1),T(0)); }
00436             template<unsigned n>
00437             T Dy(T x,T y) const { return Vtl::Alg::Return1stArg<(n==0)>(T(0),T(1)); }
00438         };
00439         template<typename T>
00440         std::ostream& operator<<(std::ostream& os,const Offset<T>& model)
00441         {
00442             os << "ModelOffset:" << std::endl;
00443             os << std::setprecision(4) << std::setiosflags(std::ios::showpoint|std::ios::fixed);
00444
00445             os << "       |" << std::setw(7) << model.b[0] << "|" << std::endl;
00446             os << "     b=|" << "       "                << "|" << std::endl;
00447             os << "       |" << std::setw(7) << model.b[1] << "|" << std::endl;
00448             os << "------------" << std::endl;
00449             return os;
00450         }
00456         template<typename T>
00457         class BaseAffine
00458             : public Base<T>
00459         {
00460         public:
00461             typedef Vtl::NumAlg::Lin::ublas::c_matrix<T,2,2> MatrixA;
00462             typedef Vtl::NumAlg::Lin::ublas::c_vector<T,2> VectorB;
00463             typedef Transf::Affine<T>  Transf;
00464         public:
00465             enum { isLinear=1};
00466             enum { isStrightLineSaving=1};
00467         public:
00468             MatrixA A;
00469             VectorB b;
00470         protected:
00471             BaseAffine() {}
00472             ~BaseAffine() {}
00473             void _setIdentity()
00474             {
00475                 A(0,0)=1;  A(0,1)=0;    b(0)=0;
00476                 A(1,0)=0;  A(1,1)=1;    b(1)=0;
00477             }
00478         public:
00479             Transf getTransf(int w,int h) const
00480             {
00481                 using namespace Vtl::NumAlg::Lin::ublas;
00482                 T cof=getCof(w,h);
00483                 VectorB v=getCenter(w,h);
00484                 v+=b*cof-prod(A,v);
00485                 return Transf(A,v);
00486             }
00487             template<typename Pixel>
00488             void Interp(const Pixel* in,int w, int h,int nls,Pixel* out,int nls_out,Pixel fill=Pixel(0)) const
00489             {
00490                 Vtl::ImAlg::Resamp::InterpBilinear<Pixel> interp(in,w,h,nls,fill);
00491                 Vtl::ImAlg::Resamp::Transform(interp,getTransf(w,h),out,w,h,nls_out);
00492             }
00493             /*
00494              * Для аффинной модели максимальное различие преобразования двумя
00495              * различными моделями достигается на одном из углов прямоугольника.
00496              ******************************************************************/
00497             T max_err_at_rect(BaseAffine& model_2,T x1,T y1,T x2,T y2) const
00498             {
00499                 using namespace Vtl::NumAlg::Lin;
00500                 using namespace Vtl::NumAlg::Lin::ublas;
00501                 VectorB c1; c1(0)=x1; c1(1)=y1;
00502                 VectorB c2; c2(0)=x1; c2(1)=y2;
00503                 VectorB c3; c3(0)=x2; c3(1)=y1;
00504                 VectorB c4; c4(0)=x2; c4(1)=y2;
00505                 VectorB bb=b-model_2.b;
00506                 MatrixA AA=A-model_2.A;
00507                 c1=prod(AA,c1)+bb;
00508                 c2=prod(AA,c2)+bb;
00509                 c3=prod(AA,c3)+bb;
00510                 c4=prod(AA,c4)+bb;
00511                 T err=std::abs( *max_abs_element(c1.begin(),c1.end()) );
00512                 err=std::max( err , std::abs( *max_abs_element(c2.begin(),c2.end()) ) );
00513                 err=std::max( err , std::abs( *max_abs_element(c3.begin(),c3.end()) ) );
00514                 err=std::max( err , std::abs( *max_abs_element(c4.begin(),c4.end()) ) );
00515                 return err;
00516             }
00517         };
00518         template<typename T>
00519         std::ostream& operator<<(std::ostream& os,const BaseAffine<T>& model)
00520         {
00521             os << "Model BAseAffine:" << std::endl;
00522             os << std::setprecision(4) << std::setiosflags(std::ios::showpoint|std::ios::fixed);
00523
00524             os << "    | "<< std::setw(7) << model.A(0,0) << "  "<< std::setw(7) << model.A(0,1) << "|       |" << std::setw(7) << model.b(0)<< "|" << std::endl;
00525             os << "  A=| "<< "       "                << "  "<< "       "                << "|     b=|" << "       "    << "|" << std::endl;
00526             os << "    | "<< std::setw(7) << model.A(1,0) << "  "<< std::setw(7) << model.A(1,1) << "|       |" << std::setw(7) << model.b(1) << "|" << std::endl;
00527             os << "------------" << std::endl;
00528             return os;
00529         }
00536         template<typename T>
00537         class SkewYOffset
00538             : public BaseAffine<T>
00539         {
00540         public:
00541             enum { N=3};
00542         public:
00543             void setIdentity()
00544             {
00545                 _setIdentity();
00546             }
00547             void Inverse()
00548             {
00549                 using namespace Vtl::NumAlg::Lin;
00550                 using namespace Vtl::NumAlg::Lin::ublas;
00551                 svd::inverse_save(A,A,1.0e-06);
00552                 b = -prod(A,b);
00553             }
00554             template<class VectorP>
00555             void set(VectorP theta)
00556             {
00557                 set(theta[0],theta[1],theta[2]);
00558             }
00559             template<class T1,class T2,class T3>
00560             void set(T1 skew,T2 dx,T3 dy)
00561             {
00562                 A(0,0)=T(1);     A(0,1)=T(0);    b(0)=T(dx);
00563                 A(1,0)=T(skew);  A(1,1)=T(1);    b(1)=T(dy);
00564             }
00565             template<class T2,class T3>
00566             void offset_by(T2 dx,T3 dy)
00567             {
00568                 b(0)+=T(dx);
00569                 b(1)+=T(dy);
00570                 //Inverse();
00571             }
00572             void UpdateByNewAfterThis(SkewYOffset& model_new)
00573             {
00574                 b=model_new.b+Vtl::NumAlg::Lin::ublas::prod(model_new.A,b);
00575                 A=Vtl::NumAlg::Lin::ublas::prod(model_new.A,A);
00576             }
00577
00583             template<unsigned n>
00584             T Dx(T x,T y) const { return Vtl::Alg::Return1stArg<(n==1)>(T(1),T(0)); }
00585             template<unsigned n>
00586             T Dy(T x,T y) const { return Vtl::Alg::Return1stArg<(n==0)>(x,Vtl::Alg::Return1stArg<(n==2)>(T(1),T(0)) ); }
00587         };
00594         template<typename T>
00595         class SkewXOffset
00596             : public BaseAffine<T>
00597         {
00598         public:
00599             enum { N=3};
00600         public:
00601             void setIdentity()
00602             {
00603                 _setIdentity();
00604             }
00605             void Inverse()
00606             {
00607                 using namespace Vtl::NumAlg::Lin;
00608                 using namespace Vtl::NumAlg::Lin::ublas;
00609                 svd::inverse_save(A,A,1.0e-06);
00610                 b = -prod(A,b);
00611             }
00612             template<class VectorP>
00613             void set(VectorP theta)
00614             {
00615                 set(theta[0],theta[1],theta[2]);
00616             }
00617             template<class T1,class T2,class T3>
00618             void set(T1 skew,T2 dx,T3 dy)
00619             {
00620                 A(0,0)=T(1);  A(0,1)=T(skew);    b(0)=T(dx);
00621                 A(1,0)=T(0);  A(1,1)=T(1);       b(1)=T(dy);
00622                 //Inverse();
00623             }
00624             template<class T2,class T3>
00625             void offset_by(T2 dx,T3 dy)
00626             {
00627                 b(0)+=T(dx);
00628                 b(1)+=T(dy);
00629                 //Inverse();
00630             }
00631             void UpdateByNewAfterThis(SkewXOffset& model_new)
00632             {
00633                 b=model_new.b+Vtl::NumAlg::Lin::ublas::prod(model_new.A,b);
00634                 A=Vtl::NumAlg::Lin::ublas::prod(model_new.A,A);
00635             }
00636
00642             template<unsigned n>
00643             T Dx(T x,T y) const { return Vtl::Alg::Return1stArg<(n==0)>(y,Vtl::Alg::Return1stArg<(n==1)>(T(1),T(0)) ); }
00644             template<unsigned n>
00645             T Dy(T x,T y) const { return Vtl::Alg::Return1stArg<(n==2)>(T(1),T(0)); }
00646         };
00653         template<typename T>
00654         class Similarity
00655             : public BaseAffine<T>
00656         {
00657         public:
00658             enum { N=4};
00659         public:
00660             T scale;
00661             T phi;
00662         private:
00663             void _buildMatrix(T phi_,T scale_)
00664             {
00665                 A(0,0)=A(1,1)=cos(phi_);
00666                 A(0,1)=sin(phi_);
00667                 A(1,0)=-A(0,1);
00668                 A*=scale_;
00669             }
00670         public:
00671             void setIdentity()
00672             {
00673                 scale=1;
00674                 phi=0;
00675                 _buildMatrix(phi,scale);
00676                 b(0)=0;
00677                 b(1)=0;
00678             }
00679             void Inverse()
00680             {
00681                 scale=1/scale;
00682                 phi=-phi;
00683                 _buildMatrix(phi,scale);
00684                 b = -prod(A,b);
00685             }
00686             template<class VectorP>
00687             void set(VectorP theta_)
00688             {
00689                 _buildMatrix(theta_[0],theta_[1]);
00690                 b(0)=T(theta_[2]);
00691                 b(1)=T(theta_[3]);
00692                 //Inverse();
00693             }
00694             void set(T phi_,T scale_,T dx,T dy)
00695             {
00696                 scale=scale_;
00697                 phi=phi_;
00698                 _buildMatrix(phi_,scale_);
00699                 b(0)=dx;
00700                 b(1)=dy;
00701             }
00702             void UpdateByNewAfterThis(Similarity& model_new)
00703             {
00704                 scale*=model_new.scale;
00705                 phi+=model_new.phi;
00706                 _buildMatrix(scale,phi);
00707                 b=model_new.b+Vtl::NumAlg::Lin::ublas::prod(model_new.A,b);
00708             }
00709 /*
00718             template<unsigned n>
00719             T Dx(T x,T y) const { return Vtl::Alg::Return1stArg<(n<3)>(_D<n>(x,y),T(0)); }
00720             template<unsigned n>
00721             T Dy(T x,T y) const { return Vtl::Alg::Return1stArg<(n<3)>(T(0),_D<(n-3)>(x,y)); }
00722         private:
00723             template<unsigned n>
00724             T _D(T x,T y) const { return Vtl::Alg::Return1stArg<(n==0)>(x,Vtl::Alg::Return1stArg<(n==1)>(y,T(1))); }
00725 */
00726         };
00733         template<typename T>
00734         class Affine
00735             : public BaseAffine<T>
00736         {
00737         public:
00738             enum { N=6};
00739         public:
00740             void setIdentity()
00741             {
00742                 _setIdentity();
00743             }
00744             void Inverse()
00745             {
00746                 using namespace Vtl::NumAlg::Lin;
00747                 using namespace Vtl::NumAlg::Lin::ublas;
00748                 svd::inverse_save(A,A,1.0e-06);
00749                 b = -prod(A,b);
00750             }
00751             template<class VectorP>
00752             void set(VectorP theta_)
00753             {
00754                 A(0,0)=T(theta_[0]+1);  A(0,1)=T(theta_[1]);    b(0)=T(theta_[2]);
00755                 A(1,0)=T(theta_[3]);    A(1,1)=T(theta_[4]+1);  b(1)=T(theta_[5]);
00756             }
00757             void UpdateByNewAfterThis(Affine& model_new)
00758             {
00759                 b=model_new.b+Vtl::NumAlg::Lin::ublas::prod(model_new.A,b);
00760                 A=Vtl::NumAlg::Lin::ublas::prod(model_new.A,A);
00761             }
00762
00771             template<unsigned n>
00772             T Dx(T x,T y) const { return Vtl::Alg::Return1stArg<(n<3)>(_D<n>(x,y),T(0)); }
00773             template<unsigned n>
00774             T Dy(T x,T y) const { return Vtl::Alg::Return1stArg<(n<3)>(T(0),_D<(n-3)>(x,y)); }
00775         private:
00776             template<unsigned n>
00777             T _D(T x,T y) const { return Vtl::Alg::Return1stArg<(n==0)>(x,Vtl::Alg::Return1stArg<(n==1)>(y,T(1))); }
00778         };
00785         template<typename T>
00786         class Homography
00787             : public Base<T>
00788         {
00789         public:
00790             typedef T value_type;
00791             typedef Vtl::NumAlg::Lin::ublas::c_matrix<T,3,3> MatrixA;
00792             typedef Transf::Homography<T>  Transf;
00793         public:
00794             enum { N=8};
00795             enum { isLinear=0};
00796             enum { isStrightLineSaving=1};
00797         public:
00798             MatrixA A;
00799         public:
00800             void Interp(T* in,int w, int h,int nls,T* out) const
00801             {
00802             }
00803             void setIdentity()
00804             {
00805                 A(0,0)=1;  A(0,1)=0;  A(0,2)=0;
00806                 A(1,0)=0;  A(1,1)=1;  A(1,2)=0;
00807                 A(2,0)=0;  A(2,1)=0;  A(2,2)=1;
00808             }
00809             void Inverse()
00810             {
00811                 Vtl::NumAlg::Lin::svd::inverse_save(A,A,1.0e-06);
00812             }
00813             template<class VectorP>
00814             void set(VectorP theta_)
00815             {
00816                 A(0,0)=T(theta_[0]+1);  A(0,1)=T(theta_[1]);    A(0,2)=T(theta_[2]);
00817                 A(1,0)=T(theta_[3]);    A(1,1)=T(theta_[4]+1);  A(1,2)=T(theta_[5]);
00818                 A(2,0)=T(theta_[6]);    A(2,1)=T(theta_[7]);    A(2,2)=T(1);
00819             }
00820             void UpdateByNewAfterThis(Homography& model_new)
00821             {
00822                 A=Vtl::NumAlg::Lin::ublas::prod(model_new.A,A);
00823             }
00824
00835             template<unsigned n>
00836             T Dx(T x,T y) const { return Vtl::Alg::Return1stArg<(n>=6)>(_D3x(x,y), Vtl::Alg::Return1stArg<(n<3)>(_D<n>(x,y),T(0)) ) ; }
00837             template<unsigned n>
00838             T Dy(T x,T y) const { return Vtl::Alg::Return1stArg<(n>=6)>(_D3y(x,y), Vtl::Alg::Return1stArg<(n<3)>(T(0),_D<(n-3)>(x,y)) ); }
00839         private:
00840             template<unsigned n>
00841             T _D(T x,T y) const { return Vtl::Alg::Return1stArg<(n==0)>(x/denom(x,y),Vtl::Alg::Return1stArg<(n==1)>(y/denom(x,y),T(1/denom(x,y)))); }
00842             static T sqr(T v) {return v*v;}
00843             template<unsigned n>
00844             T _D3x(T x,T y) const { return Vtl::Alg::Return1stArg<(n==6)>(-x,-y)*T(A(0,0)*x + A(0,1)*y + A(0,2))/sqr(denom(x,y)); }
00845             template<unsigned n>
00846             T _D3y(T x,T y) const { return Vtl::Alg::Return1stArg<(n==6)>(-x,-y)*T(A(1,0)*x + A(1,1)*y + A(1,2))/sqr(denom(x,y)); }
00847             T denom(T x,T y) const { return T(A(2,0)*x + A(2,1)*y + 1);}
00848         };
00849         template<typename T>
00850         std::ostream& operator<<(std::ostream& os,const Homography<T>& model)
00851         {
00852             os << "ModelHomography:" << std::endl;
00853             os << std::setprecision(4) << std::setiosflags(std::ios::showpoint|std::ios::fixed);
00854             os << "    | "<< std::setw(7) << model.A(0,0) << "  "<< std::setw(7) << model.A(0,1) << "  " << std::setw(7) << model.A(0,2) << "|" << std::endl;
00855             os << "  A=| "<< std::setw(7) << model.A(1,0) << "  "<< std::setw(7) << model.A(1,1) << "  " << std::setw(7) << model.A(1,2) << "|" << std::endl;
00856             os << "    | "<< std::setw(7) << model.A(2,0) << "  "<< std::setw(7) << model.A(2,1) << "  " << std::setw(7) << model.A(2,2) << "|" << std::endl;
00857             os << "------------" << std::endl;
00858             return os;
00859         }
00860     }//namespace Model
00861 }//namespace ImAlg
00862 }//namespace Vtl
00864 #endif //_IMG_TRANS_MODELS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл img_utils.h

  • Файлы
  • Список членов всех файлов

img_utils.h

См. документацию.
00001 #ifndef _IMG_UTILS_H
00002 #define _IMG_UTILS_H
00004 namespace Vtl
00005 {
00006 namespace ImAlg
00007 {
00008 namespace Tools
00009 {
00010     template <typename ConstRandomIter, class F>
00011     void copy_10_7(ConstRandomIter in1, int width, int height, int nls1,
00012                    ConstRandomIter in2, int nls2, ConstRandomIter in3, int nls3,
00013                    ConstRandomIter in4, int nls4, ConstRandomIter in5, int nls5,
00014                    ConstRandomIter in6, int nls6, ConstRandomIter in7, int nls7,
00015                    ConstRandomIter in8, int nls8, ConstRandomIter in9, int nls9,
00016                    ConstRandomIter in10, int nls10, ConstRandomIter out1, int nls1o,
00017                    ConstRandomIter out2, int nls2o, ConstRandomIter out3, int nls3o,
00018                    ConstRandomIter out4, int nls4o, ConstRandomIter out5, int nls5o,
00019                    ConstRandomIter out6, int nls6o, ConstRandomIter out7, int nls7o,
00020                    F functor)
00021     {
00022         for(int y=0; y<height; y++)
00023         {
00024             for(int x=0; x<width; x++)
00025                 functor(in1[x],in2[x],in3[x],in4[x],in5[x],in6[x],in7[x],in8[x],in9[x],in10[x],
00026                         out1[x], out2[x],out3[x],out4[x],out5[x],out6[x],out7[x]);
00027             in1+=nls1;
00028             in2+=nls2;
00029             in3+=nls3;
00030             in4+=nls4;
00031             in5+=nls5;
00032             in6+=nls6;
00033             in7+=nls7;
00034             in8+=nls8;
00035             in9+=nls9;
00036             in10+=nls10;
00037             out1+=nls1o;
00038             out2+=nls2o;
00039             out3+=nls3o;
00040             out4+=nls4o;
00041             out5+=nls5o;
00042             out6+=nls6o;
00043             out7+=nls7o;
00044         }
00045     };
00046     template <typename c_matrix, typename c_vector, class F>
00047     void copy_1_2(c_matrix in1, int width, int height, int nls1, c_vector out1,
00048         int nlso1, c_matrix out2, int nlso2, F functor)
00049     {
00050         for(int y=0; y<height; y++)
00051         {
00052             for(int x=0; x<width; x++)
00053                 functor(in1[x],out1[x],out2[x]);
00054             in1+=nls1;
00055             out1+=nlso1;
00056             out2+=nlso2;
00057         }
00058     }
00059
00060
00061
00062     template <typename ConstRandomIter, typename RandomIter, typename PtrToArray, class F>
00063     void envTransf_3D(PtrToArray planes, int width, int height, int nls,
00064                       ConstRandomIter in1,  ConstRandomIter in2,
00065                       ConstRandomIter in3,  ConstRandomIter in4,
00066                       ConstRandomIter in5,  ConstRandomIter in6,
00067                       RandomIter out, F functor)
00068     {
00069         int offs = 0;
00070         for(int y=1; y<(height-1); y++)
00071         {
00072             offs = y*nls;
00073             for(int x=1; x<(width-1); x++)
00074             {
00075                 //if( (x==132)&& (y==47) )
00076                 //{
00077                 //  std::cout << x << " " << y << std::endl;
00078                 //}
00079                 int i = offs+x;
00080                 out[i]=functor(planes, i, in1[i],in2[i],in3[i],in4[i],in5[i],in6[i]);
00081             }
00082         }
00083     }
00084
00085     template <typename ConstRandomIter, typename RandomIter, class F>
00086     void envTransf_2Ddircheck(RandomIter image,int width,int height,int nls,ConstRandomIter h_x,ConstRandomIter h_y,ConstRandomIter grad_x,ConstRandomIter grad_y,F functor)
00087     {
00088         int offs = 0;
00089         for(int y=1; y<(height-1); y++)
00090         {
00091             offs = y*nls;
00092             for(int x=1; x<(width-1); x++)
00093             {
00094                 int i = offs+x;
00095                 image[i]=functor(image[i], h_x[i],h_y[i],grad_x+i,grad_y+i);
00096             }
00097         }
00098     }
00099
00100
00101 }//namespace Tools
00102 }//namespace ImAlg
00103 }//namespace Vtl
00105 #endif //_IMG_UTILS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл imgtools.h

  • Файлы
  • Список членов всех файлов

imgtools.h

См. документацию.
00001 #ifndef _IMGTOOLS_H
00002 #define _IMGTOOLS_H
00003
00004 #include "aimage.h"
00005 #include "progrcnt.h"
00006 #include "ymem.h"
00007
00008
00009 // Разложение Массива изображений на одноканальные серые слои
00010
00011 class MImages2Gray
00012 {
00013 public:
00014     MImages2Gray(AImage** src, int Number);
00015     virtual ~MImages2Gray();
00016     int GetNumber() const { return n_out;}
00017     AImage** GetLayers() {  return Layers; }
00018 protected:
00019     AImagePtr* Layers;
00020     int n_out;
00021 };
00022
00023
00024 #endif //_IMGTOOLS_H
00025
00026
00027
00028


Pipe Line Filters: Исходный файл imresamp.h

  • Файлы
  • Список членов всех файлов

imresamp.h

См. документацию.
00001 #ifndef _IMRESAMP_H
00002 #define _IMRESAMP_H
00004 #include "aimage.h"
00007 // Class ImageResample provides such operations on images as rotate and resize.
00008 // To use this class, you should create an object of this class (imod in the example),
00009 // call init() function, then create output image using parameters obtained by
00010 // functions width(), height(), bits() and imageClass(), and then call init() function
00011 // with output image as argument.
00012 //
00013 // Example:
00014 //
00015 //  AImage* from = ::AImageLoad( 0, true, "in.tif");
00016 //  if(!from)
00017 //    return 1;  //can't load image
00019 //  if(!imod.initResize( from, ImageResample::imBicubical, 1000, 1000)) // resize to 1000X1000
00020 //    return 1;
00021 //  AImage* to = ::AImageCreate( 0, imod.imageClass(), imod.width(), imod.height(), imod.bits());
00022 //              // output image created
00023 //  if(!to)
00024 //    return 1;
00025 //  if(!imod.run( to))
00026 //      return 1;
00027 //  ::AImageSave( to, "out.tif");
00028 //
00029 //  Class is currently working with grayscale and indexed color images.
00030 //  Only nearest and histmax interpolation methods can work with indexed images.
00031 //
00032 //  Recommendations.
00033 //
00034 //  Bicubical method proved itself to be the best for rotating and enlarging of grayscale
00035 //  images. Average method is best for shrinking.
00036 //
00037 //  ProgressCounter can be used if necessary. run() function accepts it as the second argument.
00038 //  When ProgressCounter is avaliable run() can return false when a process
00039 //  is interrupted by user.
00041
00042 class ImageResample
00043 {
00044 public:
00045     enum ModifyType
00046     {
00047         mtRotate,
00048         mtResize
00049     };
00050     enum InterpolationMethod
00051     {
00052         imUnknown,
00053         imAuto, //
00054         imNearest,
00055         imBilinear,
00056         imBicubical,
00057         imAverage,
00058         imHistMax
00059     };
00060     struct ImageResampleParams
00061     {
00062         // ProgressCounter
00063         ProgressCounter* indicator;
00064         // input parameters
00065         ModifyType mtype;
00066         InterpolationMethod imeth;
00067         double radians; // angle of rotation in radians
00068         int new_width;
00069         int new_height;
00070         bool fill; // flag which determines should the empty spaces be filled
00071                    // in the proccess of rotation or shouldn't
00072         int fill_int; // intensity of the filling color
00073         // input image
00074         const AImage* from;
00075         // output image required parameters
00076         int to_width;
00077         int to_height;
00078         AImage::YImageClass to_class;
00079         int to_bits;
00080         // calculating parameters
00081         int shiftx, shifty; // parameters for rotated image
00082         // validity
00083         bool is_valid;
00084     };
00085 private:
00086     ImageResampleParams prms;
00087     void nullifyPrms();
00088     bool init( ImageResampleParams _prms );
00089     void nullify() { nullifyPrms(); }
00090 public:
00091     ImageResample() { nullify(); }
00092     virtual ~ImageResample() {}
00093     // Initialization function for resize, returns false if parameters are wrong
00094     // if one of parameters 'new_width' 'new_height' is <=0, it calculated to save aspect ratio
00095     bool initResize( const AImage* input_image, InterpolationMethod method, int new_width, int new_height=0);
00096     // Initialization function for rotate, returns false if parameters are wrong
00097     // if parameter 'radians' is false, parameter angle is in degrees
00098     bool initRotate( const AImage* input_image, InterpolationMethod method, double angle, bool radians=true, bool fill_empty_space = true, int fill_intensity = 0);
00099     // Use these functions to obtain parameters for output image
00100     virtual int Width() const { return prms.to_width; }
00101     virtual int Height() const { return prms.to_height; }
00102     virtual AImage::YImageClass ImageClass() const { return prms.to_class; }
00103     virtual int Bits() const { return prms.to_bits; }
00104     // output_image must be pre-created and must have parameters obtained by functions
00105     // declared above, returns false if process is interrupted
00106     virtual bool Run( AImage* output_image, ProgressCounter* indicator = 0);
00107 };
00108
00109
00110 // ImageRotate and ImageResize are separate classes for rotating and resizing
00111 // respectively, both classes are derived from ImageResample and their usage is
00112 // similar to it.
00113
00114 class ImageRotate
00115 : public ImageResample
00116 {
00117 public:
00118     ImageRotate() {}
00119     virtual ~ImageRotate() {}
00120     // Initialization function for rotate, returns false if parameters are wrong
00121     // if parameter 'radians' is false, parameter angle is in degrees
00122     bool init( const AImage* input_image, InterpolationMethod method, double angle, bool radians=true, bool fill_empty_space = true, int fill_intensity = 0)
00123     {
00124         return ImageResample::initRotate( input_image, method, angle, radians, fill_empty_space, fill_intensity);
00125     }
00126     // Use these functions to obtain parameters for output image
00127     virtual int Width() const { return ImageResample::Width(); }
00128     virtual int Height() const { return ImageResample::Height(); }
00129     virtual AImage::YImageClass ImageClass() const { return ImageResample::ImageClass(); }
00130     virtual int Bits() const { return ImageResample::Bits(); }
00131     // output_image must be pre-created and must have parameters obtained by functions
00132     // declared above, returns false if process is interrupted
00133     virtual bool Run( AImage* output_image, ProgressCounter* indicator = 0)
00134     {
00135         return ImageResample::Run( output_image, indicator);
00136     }
00137 };
00138
00139 class ImageResize
00140 : public ImageResample
00141 {
00142 public:
00143     ImageResize() {}
00144     virtual ~ImageResize() {}
00145     // Initialization function for rotate, returns false if parameters are wrong
00146     // if parameter 'radians' is false, parameter angle is in degrees
00147     bool init( const AImage* input_image, InterpolationMethod method, int new_width, int new_height=0)
00148     {
00149         return ImageResample::initResize( input_image, method, new_width, new_height);
00150     }
00151     // Use these functions to obtain parameters for output image
00152     virtual int Width() const { return ImageResample::Width(); }
00153     virtual int Height() const { return ImageResample::Height(); }
00154     virtual AImage::YImageClass ImageClass() const { return ImageResample::ImageClass(); }
00155     virtual int Bits() const { return ImageResample::Bits(); }
00156     // output_image must be pre-created and must have parameters obtained by functions
00157     // declared above, returns false if process is interrupted
00158     virtual bool Run( AImage* output_image, ProgressCounter* indicator = 0)
00159     {
00160         return ImageResample::Run( output_image, indicator);
00161     }
00162 };
00163
00164
00165
00166 #endif // __IMRESAMP_H__
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл imtransf.h

  • Файлы
  • Список членов всех файлов

imtransf.h

См. документацию.
00001
00002 #ifndef IMTRANSF_H_
00003 #define IMTRANSF_H_
00004
00005 #include <memory>
00006 #include <vector>
00007
00008 #include "AImage.h"
00009 #include "ygeometr.h"
00010
00011 class ProgressCounter;
00012
00013 class ATransformFunction
00014 {
00015 public:
00016     virtual YPoint<double> forward( const YPoint<double>& p) const = 0;
00017     virtual YPoint<double> reverse( const YPoint<double>& p) const = 0;
00018     virtual bool canForward( const YPoint<double>& p) const = 0;
00019     virtual bool canReverse( const YPoint<double>& p) const = 0;
00020
00021     virtual ATransformFunction* clone() const = 0;
00022 };
00023
00024 class CoordArray2D;
00025 template<class Base, class Bit8, class Bit16> class ImageVectorT;
00026 typedef ImageVectorT<AImage,AImageMem8,AImageMem16> ImageVector;
00027 typedef ImageVectorT<const AImage,const AImageMem8,const AImageMem16> ImageVectorConst;
00028
00029 class ImageProxyVector;
00030
00031 class ImageTransformImpl;
00032
00033 class ImageTransform
00034 {
00035 public:
00036     enum EdgeMethod
00037     {
00038         None
00039     };
00040 public:
00041     explicit ImageTransform( bool fastAlgorithm = true );
00042     virtual ~ImageTransform();
00043
00044     // algorithm configuration options
00045     void setBackgroundColor( bool doCorrect, int value = 0);
00046     void setErrorColor( bool doCorrect, int value = 0);
00047     void setFlipHorizontal( bool value );
00048     void setFlipVertical( bool value );
00049     void setGridAdjustment( const YPoint<double>& gridNode);
00050 //  void setHorizontalEdgesMethod( bool skip);
00051 //  void setVerticalEdgesMethod( bool skip);
00052
00053     bool init(
00054         const ImageProxyVector* inputVector,
00055         const YRect<int>& inputFragment,
00056         const CoordArray2D* coords,
00057         const ATransformFunction& transformFunction,
00058         double scale,
00059         ProgressCounter* indicator = 0,
00060         const EdgeMethod& edgeMethod = None);
00061     bool init(
00062         const ImageProxyVector* inputVector,
00063         const CoordArray2D* coords,
00064         const ATransformFunction& transformFunction,
00065         double scale,
00066         ProgressCounter* indicator = 0,
00067         const EdgeMethod& edgeMethod = None);
00068     int width() const;
00069     int height() const;
00070     std::vector<int> bits() const;
00071     std::vector<AImage::YImageClass> imageClass() const;
00072     YPoint<double> base() const;
00073     bool run(
00074         ImageProxyVector* outputVector,
00075         ProgressCounter* indicator = 0);
00076     bool run(
00077         ImageProxyVector* outputVector,
00078         const YRect<int>& outputFragment,
00079         ProgressCounter* indicator = 0);
00080 private:
00081     // forbidden
00082     ImageTransform( const ImageTransform&);
00083     ImageTransform& operator=( const ImageTransform&);
00084
00085     ImageTransformImpl* pImpl_;
00086 };
00087
00088 class CoordArray2D
00089 {
00090 public:
00091     CoordArray2D( int width = 0, int height = 0)
00092     { clear(); setSize(width,height); }
00093
00094     void clear() { p_.clear(); w_ = 0; h_ = 0; }
00095     void setSize( int width, int height)
00096     { w_ = width; h_ = height; p_.resize(w_*h_); }
00097
00098     int width() const { return w_; }
00099     int height() const { return h_; }
00100
00101     const YPoint<double>& at( int x, int y) const
00102     { return p_[y*w_+x]; }
00103
00104     const YPoint<double>* begin() const
00105     { return &p_[0]; }
00106     const YPoint<double>* end() const
00107     { return &p_[w_*h_]; }
00108     YPoint<double>* begin()
00109     { return &p_[0]; }
00110     YPoint<double>* end()
00111     { return &p_[w_*h_]; }
00112 private:
00113     std::vector<YPoint<double> > p_;
00114     int w_;
00115     int h_;
00116 };
00117
00118 bool operator==( const CoordArray2D& lhs, const CoordArray2D& rhs);
00119 bool operator!=( const CoordArray2D& lhs, const CoordArray2D& rhs);
00120 std::ostream& operator<<( std::ostream& os, const CoordArray2D& src);
00121
00122 template<class Base, class Bit8, class Bit16>
00123 class ImageVectorT
00124 {
00125 public:
00126     typedef std::vector< std::pair<Bit8*,int> > Bit8Vector;
00127     typedef std::vector< std::pair<Bit16*,int> > Bit16Vector;
00128     typedef typename Bit8Vector::iterator iterator8;
00129     typedef typename Bit16Vector::iterator iterator16;
00130 public:
00131     ImageVectorT() {}
00132
00133     void add( Base* image);
00134     size_t planesCount8() const { return vec8_.size(); }
00135     size_t planesCount16() const { return vec16_.size(); }
00136     iterator8 planesBegin8() { return vec8_.begin(); }
00137     iterator8 planesEnd8() { return vec8_.end(); }
00138     iterator16 planesBegin16() { return vec16_.begin(); }
00139     iterator16 planesEnd16() { return vec16_.end(); }
00140     int width() const { return width_; }
00141     int height() const { return height_; }
00142     std::vector<int> bits() const { return bits_; }
00143     std::vector<typename Base::YImageClass> imageClass() const { return imageClass_; }
00144 private:
00145     ImageVectorT( const ImageVectorT&);
00146     ImageVectorT& operator=( const ImageVectorT&);
00147 private:
00148     std::vector<int> bits_;
00149     std::vector<typename Base::YImageClass> imageClass_;
00150     int width_;
00151     int height_;
00152     Bit8Vector vec8_;
00153     Bit16Vector vec16_;
00154 };
00155
00156 template<class Base, class Bit8, class Bit16>
00157 void ImageVectorT<Base,Bit8,Bit16>::add( Base* image)
00158 {
00159     if(bits_.empty())
00160     {
00161         width_ = image->Width();
00162         height_ = image->Height();
00163     }
00164     if( image->Width() != width_
00165      || image->Height() != height_ )
00166         throw "ImageVectorT::add(): Images should have same size.";
00167     bits_.push_back(image->Bits());
00168     imageClass_.push_back(image->ImageClass());
00169     for( int i = 0; i < image->NumPlanes(); ++i)
00170     {
00171         if( Bit8* bit8 = dynamic_cast<Bit8*>(image->GetPlane(i)) )
00172             vec8_.push_back(std::make_pair(bit8,(1<<bit8->Bits())-1));
00173         else if( Bit16* bit16 = dynamic_cast<Bit16*>(image->GetPlane(i)) )
00174             vec16_.push_back(std::make_pair(bit16,(1<<bit16->Bits())-1));
00175     }
00176 }
00177
00178 class AImageProxy
00179 {
00180 public:
00181     virtual ~AImageProxy() {}
00182
00183     virtual int width() const = 0;
00184     virtual int height() const = 0;
00185     virtual int bits() const = 0;
00186     virtual AImage::YImageClass imageClass() const = 0;
00187
00188     virtual int get( int x, int y) const = 0;
00189     virtual int maxValue() const = 0;
00190     virtual void set( int x, int y, int value) = 0;
00191
00192     virtual AImageProxy* clone() const = 0;
00193 };
00194
00195 template<class ImageT>
00196 class ImageProxy: public AImageProxy
00197 {
00198 public:
00199     ImageProxy( ImageT* image):
00200     image_(image), max_((1<<image->Bits())-1) {}
00201     ImageProxy( const ImageProxy& src)
00202         : image_(src.image_), max_(src.max_) {}
00203     virtual ~ImageProxy() {}
00204
00205     virtual int width() const { return image_->Width(); }
00206     virtual int height() const { return image_->Height(); }
00207     virtual int bits() const { return image_->Bits(); }
00208     virtual AImage::YImageClass imageClass() const
00209     { return image_->ImageClass(); }
00210
00211     virtual int get( int x, int y) const
00212     { return (*image_)[y][x]; }
00213     virtual int maxValue() const { return max_; }
00214     virtual void set( int x, int y, int value)
00215     { (*image_)[y][x] = value; }
00216     AImageProxy* clone() const { return new ImageProxy(*this); }
00217 private:
00218     ImageT* image_;
00219     const int max_;
00220 };
00221
00222 template<class ImageT>
00223 class ImageProxyConst: public AImageProxy
00224 {
00225 public:
00226     ImageProxyConst( const ImageT* image):
00227     image_(image), max_((1<<image->Bits())-1) {}
00228     ImageProxyConst( const ImageProxyConst& src)
00229         : image_(src.image_), max_(src.max_) {}
00230     virtual ~ImageProxyConst() {}
00231
00232     virtual int width() const { return image_->Width(); }
00233     virtual int height() const { return image_->Height(); }
00234     virtual int bits() const { return image_->Bits(); }
00235     virtual AImage::YImageClass imageClass() const
00236     { return image_->ImageClass(); }
00237
00238     virtual int get( int x, int y) const
00239     { return (*image_)[y][x]; }
00240     virtual int maxValue() const { return max_; }
00241     virtual void set( int x, int y, int value)
00242     { throw "ImageProxyConst::set()"; }
00243     AImageProxy* clone() const { return new ImageProxyConst(*this); }
00244 private:
00245     const ImageT* image_;
00246     const int max_;
00247 };
00248
00249 class ImageProxyVector
00250 {
00251 public:
00252     typedef std::vector<AImageProxy*>::iterator iterator;
00253     typedef std::vector<AImageProxy*>::const_iterator const_iterator;
00254 public:
00255     ImageProxyVector(): width_(0), height_(0) {}
00256     ImageProxyVector( const AImage* image)
00257     { add(image); }
00258     ImageProxyVector( AImage* image)
00259     { add(image); }
00260     virtual ~ImageProxyVector();
00261     ImageProxyVector( const ImageProxyVector& src);
00262     ImageProxyVector& operator=( const ImageProxyVector& src);
00263
00264     void add( AImage* image);
00265     void add( const AImage* image);
00266     void add( const AImageProxy& imageProxy);
00267     size_t countImage() const { return bits_.size(); }
00268     size_t countProxy() const { return proxies_.size(); }
00269     iterator begin() { return proxies_.begin(); }
00270     iterator end() { return proxies_.end(); }
00271     const_iterator begin() const { return proxies_.begin(); }
00272     const_iterator end() const { return proxies_.end(); }
00273     int width() const { return width_; }
00274     int height() const { return height_; }
00275     std::vector<int> bits() const { return bits_; }
00276     std::vector<AImage::YImageClass> imageClass() const { return imageClass_; }
00277 private:
00278     std::vector<AImageProxy*> proxies_;
00279     std::vector<int> bits_;
00280     std::vector<AImage::YImageClass> imageClass_;
00281     int width_;
00282     int height_;
00283 };
00284
00285 void AImageSetNull( AImage* image);
00286 void AImageSetColor( AImage* image, int r = 0, int g = 0, int b = 0);
00287
00288
00289 #endif //IMTRANSF_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Includings.h

  • Файлы
  • Список членов всех файлов

Includings.h

См. документацию.
00001 #ifndef INCLUDINGS_H
00002 #define INCLUDINGS_H
00003
00004 #include <iostream>
00005 #include <math.h>
00006
00007 //library includings
00008 #include "num_linalg.h"
00009
00010 // own includings
00011 #include "MatrixOperations.h"
00012 #include "Combination.h"
00013 #include "Point2D.h"
00014 #include "Points2DSet.h"
00015 #include "Points2DParamSet.h"
00016 #include "HomographyMatrix.h"
00017 #include "FundamentalMatrix.h"
00018 #include "TransformMatrices.h"
00019 #include "Transform.h"
00020 #include "AbsDifference.h"
00021 #include "Ransac.h"
00022 #include "Model.h"
00023 #include "RecompMatrix.h"
00024 #include "DrawEpipolarLines.h"
00025 #include "MistakeFunc.h"
00026 #include "DFPMinimization.h"
00027 #include "ImagesSet.h"
00028 #include "StructureComputation.h"
00029
00030 namespace Basics3D
00031 {
00032     typedef Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> matrix_3_3;
00033
00034     void LoadPoints(std::vector<C_Points2DParamSet> &out_PointsParamSet,
00035                       std::vector<T_Points2DSet<C_Point2D>> &out_PointsSet,
00036                   char *in_argv[],
00037                                     const int in_N,
00038                                     const double in_T,
00039                                     const int in_imHeight);
00040
00041     void MarkCorrespondences(const char *in_name,
00042                                const int j,  // addition to name
00043                                const T_ImagesSet<AImageMem8> &in_img,
00044                                const std::vector<T_Points2DSet<C_Point2D>> &in_PointsSet,
00045                                                      const int i); // number of points to mark
00046                                                                    // -1 means all points
00047
00048     void MarkCorrespondences(const char *in_name,
00049                                const T_ImagesSet<AImageMem8> &in_img,
00050                                const T_Points2DSet<C_Point2D> &in_PointsSet,
00051                                                      const int N,
00052                                                      const int i);
00053
00054     void MakeDifferenceImage(const T_ImagesSet<AImageMem8> &in_img,
00055                                const std::vector<matrix_3_3> &in_Matrix,
00056                                const int i,
00057                                      const int j,
00058                                      const int k);
00059
00060     void DrawEpipolarLines(const T_ImagesSet<AImageMem8> &in_img,
00061                              const matrix_3_3 &in_Matrix,
00062                                      const std::vector<T_Points2DSet<C_Point2D>> &in_PointsSet,
00063                                      const int i,
00064                                      const int n);
00065
00066     void FindCommonFeaturePoints(T_Points2DSet<C_Point2D> &out_commonPoints,
00067                                    const std::vector<T_Points2DSet<C_Point2D>> &in_Inliers,
00068                                    const int N);
00069
00070     int Test(int argc, char *argv[]);
00071 }
00072 #endif //INCLUDINGS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл integral_transforms.h

  • Файлы
  • Список членов всех файлов

integral_transforms.h

См. документацию.
00001 #ifndef _INTEGRAL_TRANSFORMS_H
00002 #define _INTEGRAL_TRANSFORMS_H
00004 /*
00005  * Интегральные преобразования: Фурье, Хартли и.т.д.
00006  *
00007  ******************************************************************************/
00008 #include "numalg.h"
00010 namespace Vtl
00011 {
00012 namespace NumAlg
00013 {
00015 namespace IntTransf
00016 {
00036     namespace Utils
00037     {
00038         template<typename T > T Sqr(T v) { return v*v;}
00039
00040         namespace Impl
00041         {
00042             template<typename I,size_t ndim>
00043             struct ArrayElemProduct
00044             {
00045                 static I value(I n[])
00046                 {
00047                     return n[ndim-1]*ArrayElemProduct<I,ndim-1>::value(n);
00048                 }
00049             };
00050             template<typename I>
00051             struct ArrayElemProduct<I,0>
00052             {
00053                 static I value(I n[])
00054                 {
00055                     return 1;
00056                 }
00057             };
00071             template<typename R,typename T,typename I>
00072             class TrigRecurrence
00073             {
00074                 const T theta;
00075                 const T wpr;
00076                 const T wpi;
00077                 T wr;
00078                 T wi;
00079             public:
00081                 TrigRecurrence(bool reverse,I mmax)
00082                     : theta((reverse ?  -2*M_PI : 2*M_PI)/mmax)
00083                      ,wpr(-2.0*Sqr(sin(0.5*theta)))
00084                      ,wpi(sin(theta))
00085                 {
00086                     wr=1.0;
00087                     wi=0.0;
00088                 }
00089                 //T c() const {return wr;}
00090                 //T s() const {return wi;}
00091                 ~TrigRecurrence() {}
00092                 R MultR(R re,R im) const { return R(wr*re-wi*im); }
00093                 R MultI(R re,R im) const { return R(wr*im+wi*re); }
00095                 void next()
00096                 {
00097                     T wtemp=wr;
00098                     wr+=wtemp*wpr-wi*wpi; //Trigonometric recurrence.
00099                     wi+=wi*wpr+wtemp*wpi;
00100                 }
00101                 void butterfly_fft(R* re,R* im,I i,I j)
00102                 {
00103                     R tempr=MultR(re[j],im[j]);
00104                     R tempi=MultI(re[j],im[j]);
00105                     re[j] = re[i] - tempr;
00106                     im[j] = im[i] - tempi;
00107                     re[i] += tempr;
00108                     im[i] += tempi;
00109                 }
00110                 void butterfly_Hartley(R* even,R* odd,I i,I j)
00111                 {
00112                     //wr=c=cos = (R)cos(2*M_PI*i/blocksize);
00113                     //wi=s=sin = (R)sqrt(1-c*c);
00114                     R d0 = R(wr*odd[i] + wi*odd[j]);
00115                     R d1 = R(wr*odd[j] - wi*odd[i]);
00116                     odd[i] = even[i] - d0;
00117                     odd[j] = even[j] + d1;
00118                     even[i] += d0;
00119                     even[j] += - d1;
00120                 }
00121             };
00122         };
00124         template<size_t ndim,typename I>
00125         I ArrayElemProduct(I n[])
00126         {
00127             return Impl::ArrayElemProduct<I,ndim>::value(n);
00128         }
00130         template<typename I>
00131         I smallest_log2_ge_size(I size)
00132         {
00133             I ls=0;//ls = log(size)
00134             while( (I(1)<<ls) < size ) ++ls;
00135             return ls;
00136         }
00138         template<typename I>
00139         I CalcSmalestPow2(I size)
00140         {
00141             return 1<<smallest_log2_ge_size(size);
00142         }
00143
00145         template<typename I>
00146         I rev(I index, I log2_size)
00147         {
00148             I j = 0;
00149             while (log2_size--)
00150             {
00151                 j = (j<<1) | (index & 1);
00152                 index >>= 1;
00153             }
00154             return j;
00155         }
00167         template<typename I>
00168         I rev(I index, I log2_size,I step)
00169         {
00170             I j = 0;
00171             //I step=1<<log2_step;
00172             while (log2_size--)
00173             {
00174                 j = (j<<1) | (index & step);
00175                 index >>= 1;
00176             }
00177             return j;
00178         }
00196         template<typename T,typename I>
00197         void bit_reversal(T data, I size)
00198         {
00199             if(size <= 2) return;
00200             I ls=smallest_log2_ge_size(size);
00201             assert( size == (1<<ls) );
00202             for(I i = 1; (--size) > 0 ; ++i)
00203             {
00204                 I j = rev(i,ls);
00205                 if (j > i)
00206                     std::swap(data[i], data[j]);
00207             }
00208         }
00209         template<typename T,typename I>
00210         void bit_reversal(T data, I size, I step)
00211         {
00212             if(size <= 2) return;
00213             I ls=smallest_log2_ge_size(size);
00214             assert( size == (1<<ls) );
00215             assert( step == (1<<smallest_log2_ge_size(step)) );
00216             for(I i = step; (--size) > 0; i+=step)
00217             {
00218                 I j = rev(i,ls,step);
00219                 if (j > i)
00220                 {
00221                     std::swap(data[i], data[j]);
00222                 }
00223             }
00224         }
00225         template<typename T,typename I>
00226         void bit_reversal_complex(T data, I size,I step)
00227         {
00228             bit_reversal_complex(data, data+1,size,step);
00229         }
00230         template<typename T,typename I>
00231         void bit_reversal_complex(T re, T im, I size,I step)
00232         {
00233             if(size <= 2) return;
00234             I ls=smallest_log2_ge_size(size);
00235             assert( size == (1<<ls) );
00236             assert( step == (1<<smallest_log2_ge_size(step)) );
00237             for(I i = step; (--size) > 0; i+=step)
00238             {
00239                 I j = rev(i,ls,step);
00240                 if (j > i)
00241                 {
00242                     std::swap(re[i], re[j]);
00243                     std::swap(im[i], im[j]);
00244                 }
00245             }
00246         }
00247         namespace Impl
00248         {
00249             template<typename T,typename I>
00250             void SwapArrayHalfs(T* data, I size,I step,Loki::Int2Type<false>)
00251             {
00252                 I ofs=size>>1;
00253                 size=ofs;
00254                 ofs*=step;
00255                 for (I i = 0 ; (size--)!=0; i+=step)
00256                     std::swap(data[i], data[i+ofs]);
00257             }
00258             template<typename T,typename I>
00259             void SwapArrayHalfs(T* data, I size,I step,Loki::Int2Type<true>)
00260             {
00261                 I ofs=size>>1;
00262                 size=ofs;
00263                 ofs*=step;
00264                 for (I i = 0 ; (size--)!=0; i+=step)
00265                 {
00266                     std::swap(data[i], data[i+ofs]);//Re
00267                     std::swap(data[i+1], data[i+1+ofs]);//Im
00268                 }
00269             }
00270         }
00272         template<typename T,typename I>
00273         void SwapArrayHalfs(T* re,T* im, I size,I step)
00274         {
00275             I ofs=size>>1;
00276             size=ofs;
00277             ofs*=step;
00278             for (I i = 0 ; (size--)!=0; i+=step)
00279             {
00280                 std::swap(re[i], re[i+ofs]);
00281                 std::swap(im[i], im[i+ofs]);
00282             }
00283         }
00285         template<bool is_complex,typename T,typename I>
00286         void SwapArrayHalfs(T* data, I size,I step)
00287         {
00288             Impl::SwapArrayHalfs(data, size,step,Loki::Int2Type<is_complex>());
00289         }
00290         template<typename T,typename I>
00291         void swap(T* d1,T* d2,I len)
00292         {
00293             for(I j = 0; j < len; j++)
00294                 std::swap(d1[j],d2[j]);
00295         }
00297         template<typename T,typename I>
00298         void mult(T data[],I n,T multiplier,I step=1)
00299         {
00300             for( ; n-- ; data+=step )
00301             {
00302                 (*data)*=multiplier;
00303             }
00304         }
00310         template<bool is_complex_pairs,typename T,typename I>
00311         void SwapQuarters(T data[],I w,I h)
00312         {
00313             assert( w==CalcSmalestPow2(w) );
00314             assert( h==CalcSmalestPow2(h) );
00315             I n[]={w,h};
00316             SwapQuadrants<2,is_complex_pairs>(data,n);
00317             /*
00318             I w2=w>>1;
00319             I h2=h>>1;
00320             I half=w*h2;
00321             while(;h2--;data+=w)
00322             {
00323                 T* d2=data+half;
00324                 //верхний левый с нижним правым квадрантом
00325                 swap(data,d2+w2,w2);
00326                 //верхний правый с нижним левым квадрантом
00327                 swap(data+w2,d2,w2);
00328             }
00329             */
00330         }
00331         namespace Impl
00332         {
00333             template<bool is_complex_pairs,int nd>
00334             struct SwapQuadrants
00335             {
00336                 template<typename T,typename I>
00337                 static void sw(T* data_1,T* data_2,I n[],I ntot)
00338                 {
00339                     I nc=n[nd-1];
00340                     ntot/=nc;
00341                     for( nc>>=1 ; nc-- ; data_1+=ntot, data_2+=ntot )
00342                         SwapQuadrants<is_complex_pairs,nd-1>::sw(data_1,data_2,n,ntot);
00343                 }
00344             };
00345             template<bool is_complex_pairs>
00346             struct SwapQuadrants<is_complex_pairs,1>
00347             {
00348                 template<typename T,typename I>
00349                 static void sw(T* data_1,T* data_2,I n[],I ntot)
00350                 {
00351                     I nc2=is_complex_pairs ? n[0] : n[0]>>1;
00352                     for(I j=0; j< nc2 ; ++j)
00353                         std::swap(data_1[j],data_2[j]);
00354                 }
00355             };
00357             template<unsigned ndim,bool is_complex_pairs,typename I>
00358             size_t SwapQuadrants_offset(size_t mask,I nn[])
00359             {
00360                 size_t ofs=0;
00361                 for(size_t  k=0, j=1; k<ndim; ++k, mask>>=1)
00362                 {
00363                     j*=nn[k];
00364                     ofs+=(mask&1)? j/2 : 0;
00365                 }
00366                 return is_complex_pairs? ofs<<1 : ofs;
00367             }
00368         }
00396         template<unsigned ndim,bool is_complex_pairs,typename T,typename I>
00397         void SwapQuadrants(T data[],I n[])
00398         {
00399
00400             size_t max_mask=(1<<ndim)-1;
00401             I ntot=(is_complex_pairs ? 2 :1 )*ArrayElemProduct<ndim>(n);
00402             for(size_t  mask=0 ; mask <= (max_mask>>1); ++mask )
00403             {
00404                 size_t mask2=mask^max_mask; //(~mask)&max_mask;
00405                 //swap quadrants mask and mask2
00406                 size_t ofs_1=Impl::SwapQuadrants_offset<ndim,is_complex_pairs>(mask,n);
00407                 size_t ofs_2=Impl::SwapQuadrants_offset<ndim,is_complex_pairs>(mask2,n);
00408                 Impl::SwapQuadrants<is_complex_pairs,ndim>::sw(data+ofs_1,data+ofs_2,n,ntot);
00409             }
00410         }
00419         template<unsigned ndim,typename T,typename I>
00420         void SwapQuadrants(T re[],T im[],I n[])
00421         {
00422
00423             size_t max_mask=(1<<ndim)-1;
00424             const int is_complex_pairs =false;
00425             I ntot=(is_complex_pairs ? 2 :1 )*ArrayElemProduct<ndim>(n);
00426             for(size_t  mask=0 ; mask <= (max_mask>>1); ++mask )
00427             {
00428                 size_t mask2=mask^max_mask; //(~mask)&max_mask;
00429                 //swap quadrants mask and mask2
00430                 size_t ofs_1=Impl::SwapQuadrants_offset<ndim,is_complex_pairs>(mask,n);
00431                 size_t ofs_2=Impl::SwapQuadrants_offset<ndim,is_complex_pairs>(mask2,n);
00432                 Impl::SwapQuadrants<is_complex_pairs,ndim>::sw(re+ofs_1,re+ofs_2,n,ntot);
00433                 Impl::SwapQuadrants<is_complex_pairs,ndim>::sw(im+ofs_1,im+ofs_2,n,ntot);
00434             }
00435         }
00437         template<typename T,typename I>
00438         void TransposeSqrMatrix(T data[],I n)
00439         {
00440             for (I i= 0; i < n; ++i, data+=n+1 )
00441             {
00442                 T *p1=data;
00443                 T *p2=data;
00444                 for(I j=i+1; j<n ; ++j)
00445                 {
00446                     ++p1;
00447                     p2+=n;
00448                     std::swap(*p1,*p2);
00449                 }
00450             }
00451 /*
00452             size_t rows = size;
00453             for (size_t row = 0; row < rows; row++)
00454             {
00455                 T *r = img+row*size;
00456                 for (size_t col = row + 1; col < rows; col++)
00457                 {
00458                     T *r2 = img+col*size;
00459                     std::swap(r[col], r2[row]);
00460                 }
00461             }
00462 */
00463         }
00464
00497         template<size_t ndim,class Functor,typename I>
00498         void ForEachDimensionDo1D(Functor &func, I nn[])
00499         {
00500             // Compute total number of complex values.
00501             I ntot=ArrayElemProduct<ndim>(nn);
00502             I n_before=1;
00503             for(I k=0; k<ndim; ++k)
00504             {
00505                 I n=nn[k];
00506                 I n_to=n_before*n;
00507                 I n_after=ntot/n_to;
00508                 for(I j=0; n_after-- ; j+=n_to)
00509                 {
00510                     I cnt2=n_before;
00511                     for(I j2=j*func.sm; cnt2-- ; j2+=func.sm) //sm - is step multiplier
00512                         func(j2,n,n_before);
00513                 }
00514                 n_before=n_to;
00515             }
00516         }
00517
00521         template<size_t ndim,bool re_im_at_sep_loc,typename I>
00522         I offset_to_zero_freq(I nn[])
00523         {
00524             size_t ofs=0;
00525             I n=1;
00526             for(int i=0; i < ndim; ++i)
00527             {
00528                 n*=nn[i];
00529                 ofs+=n/2;
00530             }
00531             return re_im_at_sep_loc? ofs : (ofs<<1);
00532         }
00533
00537         namespace F
00538         {
00546             template<unsigned ndim,typename T,bool fromUpToDown>
00547             class ReflectHalfToOther
00548             {
00549                 T* amp_;
00550             private:
00551                 template<typename I>
00552                 void set_amp(I plus_k,I minus_k,Loki::Int2Type<true> )
00553                 {
00554                     amp_[minus_k]=amp_[plus_k];
00555                 }
00556                 template<typename I>
00557                 void set_amp(I plus_k,I minus_k,Loki::Int2Type<false> )
00558                 {
00559                     amp_[plus_k]=amp_[minus_k];
00560                 }
00561             public:
00562                 ReflectHalfToOther(T amp[])
00563                     : amp_(amp)
00564                 {}
00565                 template<bool upper_half,typename I>
00566                 void operator()(I plus_k,I minus_k,Loki::Int2Type<upper_half> )
00567                 {
00568                     set_amp(plus_k,minus_k,Loki::Int2Type<fromUpToDown>());
00569                 }
00570                 template<typename I>
00571                 void operator()(I k,Loki::Int2Type<false>)
00572                 {
00573                     amp_[k]=0;
00574                 }
00575                 template<typename I>
00576                 void operator()(I k,Loki::Int2Type<true>)
00577                 {
00578                     amp_[k]=0;
00579                 }
00580             };
00581
00586             template<typename T>
00587             class Test
00588             {
00589                 T* data_;
00590             public:
00591                 //enum { step=2 };
00592                 Test(T data[]) : data_(data) {}
00593                 template<bool upper_half,typename I>
00594                 void operator()(I plus_k,I minus_k,Loki::Int2Type<upper_half> )
00595                 {
00596                     data_[plus_k]+=0.2f;
00597                     data_[minus_k]+=0.1f;
00598                 }
00599 //              template<bool upper_half,typename I>
00600 //              void operator()(I k,Loki::Int2Type<upper_half> )
00601 //              {
00602 //                  data_[k]=99.01f;
00603 //              }
00604                 template<typename I>
00605                 void operator()(I k,Loki::Int2Type<true> )
00606                 {
00607                     data_[k]=99.01f;
00608                 }
00609                 template<typename I>
00610                 void operator()(I k,Loki::Int2Type<false> )
00611                 {
00612                     data_[k]=98.01f;
00613                 }
00614             };
00615         } //namespace ProcPair
00616         namespace Impl
00617         {
00618             template<size_t ndim,bool upper_half>
00619             struct proc_pos_neg_freq_
00620             {
00621                 template<typename I,class ProcPair>
00622                 static void job_c(I n[],I x1,I x2,ProcPair pp)
00623                 {
00624                     proc_pos_neg_freq_<ndim-1,upper_half>::job_single_left(n,x1,pp);
00625                     for(I c2=n[ndim-1]/2-1; c2-- ;)
00626                         proc_pos_neg_freq_<ndim-1,upper_half>::job_nc(n,x1,x2,pp);
00627                     proc_pos_neg_freq_<ndim-1,false>::job_c(n,x1,x2,pp);
00628                 }
00629                 template<typename I,class ProcPair>
00630                 static void job_single_left(I n[],I& x1,ProcPair pp)
00631                 {
00632                     I c=n[ndim-1];
00633                     while( c-- )
00634                         proc_pos_neg_freq_<ndim-1,upper_half>::job_single_left(n,x1,pp);
00635                 }
00636                 template<typename I,class ProcPair>
00637                 static void job_single_right(I n[],I& x2,ProcPair pp)
00638                 {
00639                     I c=n[ndim-1];
00640                     while( c-- )
00641                         proc_pos_neg_freq_<ndim-1,upper_half>::job_single_right(n,x2,pp);
00642                 }
00643                 template<typename I,class ProcPair>
00644                 static void job_nc(I n[],I& x1,I& x2,ProcPair pp)
00645                 {
00646                     proc_pos_neg_freq_<ndim-1,upper_half>::job_single_left(n,x1,pp);
00647                     I c=n[ndim-1]-1;
00648                     while( c-- )
00649                         proc_pos_neg_freq_<ndim-1,upper_half>::job_nc(n,x1,x2,pp);
00650                     proc_pos_neg_freq_<ndim-1,upper_half>::job_single_right(n,x2,pp);
00651                 }
00652             };
00653             template<bool upper_half>
00654             struct proc_pos_neg_freq_<0,upper_half>
00655             {
00656                 template<typename I,class ProcPair>
00657                 static void job_c(I n[],I& x1,I& x2,ProcPair pp)
00658                 {
00659                     assert(x1==x2);
00660                     pp(x2,x1,Loki::Int2Type<upper_half>());
00661                 }
00662                 template<typename I,class ProcPair>
00663                 static void job_single_left(I n[],I& x1,ProcPair pp)
00664                 {
00665                     pp(x1++,Loki::Int2Type<upper_half>());
00666                 }
00667                 template<typename I,class ProcPair>
00668                 static void job_single_right(I n[],I& x2,ProcPair pp)
00669                 {
00670                     pp(x2--,Loki::Int2Type<false>());
00671                 }
00672                 template<typename I,class ProcPair>
00673                 static void job_nc(I n[],I& x1,I& x2,ProcPair pp)
00674                 {
00675                     pp(x2--,x1++,Loki::Int2Type<upper_half>());
00676                 }
00677             };
00678         }
00691         template<size_t ndim,typename I,class ProcPair>
00692         static void proc_pos_neg_freq(I n[],ProcPair pp)
00693         {
00694             I x1=0;
00695             I x2=Utils::ArrayElemProduct<ndim>(n)-1;
00696             Impl::proc_pos_neg_freq_<ndim,true>::job_c(n,x1,x2,pp);
00697         }
00698     };
00709     namespace Fourier
00710     {
00714         template<typename T, typename I>
00715         void norm_ifft(T data[],I n,I step=1)
00716         {
00717             T multiplier=T(1.0/n);
00718             Utils::mult(data,n,multiplier,step);
00719         }
00722         template<typename T, typename I>
00723         void fft1D(T re[],T im[], I n)
00724         {
00725             fft1D<false>(re,im, n, 1);
00726         }
00729         template<typename T, typename I>
00730         void ifft1D(T re[],T im[], I n)
00731         {
00732             fft1D<true>(re,im, n, 1);
00733         }
00738         template<typename T, typename I>
00739         void fft1D(T data[], I n)
00740         {
00741             fft1D<false>(data,data+1, n, 2);
00742         }
00747         template<typename T, typename I>
00748         void ifft1D(T data[], I n)
00749         {
00750             fft1D<true>(data,data+1, n, 2);
00751         }
00756         template<typename T, typename I>
00757         void fft2D(T re[],T im[], I nn[])
00758         {
00759             fftND<2,false,true>(re,im, nn);
00760         }
00765         template<typename T, typename I>
00766         void fft2D(T re[],T im[], I width, I height)
00767         {
00768             I nn[]={width, height};
00769             fft2D(re,im,nn);
00770         }
00775         template<typename T, typename I>
00776         void ifft2D(T re[],T im[], I nn[])
00777         {
00778             fftND<2,true,true>(re,im, nn);
00779         }
00784         template<typename T, typename I>
00785         void ifft2D(T re[],T im[], I width, I height)
00786         {
00787             I nn[]={width, height};
00788             ifft2D(re,im, nn);
00789         }
00794         template<typename T, typename I>
00795         void fft2D(T data[], I nn[])
00796         {
00797             fftND<2,false,false>(data,data+1, nn);
00798         }
00803         template<typename T, typename I>
00804         void fft2D(T data[], I width, I height)
00805         {
00806             I nn[]={width, height};
00807             fft2D(data, nn);
00808         }
00813         template<typename T, typename I>
00814         void ifft2D(T data[], I nn[])
00815         {
00816             fftND<2,true,false>(data,data+1, nn);
00817         }
00822         template<typename T, typename I>
00823         void ifft2D(T data[], I width, I height)
00824         {
00825             I nn[]={width, height};
00826             ifft2D(data, nn);
00827         }
00833         template<typename T, typename I>
00834         void fft3D(T re[],T im[], I nn[])
00835         {
00836             fftND<3,false,true>(re,im, nn);
00837         }
00843         template<typename T, typename I>
00844         void fft3D(T re[],T im[], I n_x, I n_y,I n_z)
00845         {
00846             I nn[]={n_x,n_y,n_z};
00847             fft3D(re,im,nn);
00848         }
00854         template<typename T, typename I>
00855         void ifft3D(T re[],T im[], I nn[])
00856         {
00857             fftND<3,true,true>(re,im, nn);
00858         }
00864         template<typename T, typename I>
00865         void ifft3D(T re[],T im[], I n_x, I n_y,I n_z)
00866         {
00867             I nn[]={n_x,n_y,n_z};
00868             ifft3D(re,im,nn);
00869         }
00875         template<typename T, typename I>
00876         void fft3D(T data[], I nn[])
00877         {
00878             fftND<3,false,false>(data,data+1, nn);
00879         }
00885         template<typename T, typename I>
00886         void fft3D(T data[], I n_x, I n_y,I n_z)
00887         {
00888             I nn[]={n_x,n_y,n_z};
00889             fft3D(data,nn);
00890         }
00896         template<typename T, typename I>
00897         void ifft3D(T data[], I nn[])
00898         {
00899             fftND<3,true,false>(data,data+1, nn);
00900         }
00906         template<typename T, typename I>
00907         void ifft3D(T data[], I n_x, I n_y,I n_z)
00908         {
00909             I nn[]={n_x,n_y,n_z};
00910             ifft3D(data,nn);
00911         }
00922         template<bool is_reverse,typename T, typename I>
00923         void fft1D(T re[],T im[], I n, I step=1)
00924         {
00925             Utils::bit_reversal_complex(re,im, n,step);
00926             I nq=n*step;
00927             for(I m=2,mq=step ; m <= n ; m<<=1 )
00928             {
00929                 I mq2=mq;//mq2=mq/2
00930                 mq<<=1;
00931                 Utils::Impl::TrigRecurrence<T,double,I> tr(is_reverse,m);
00932                 for(I j=0 ; j < mq2 ; j+=step )
00933                 {
00934                     for(I k=j ; k < nq ; k+=mq )
00935                         tr.butterfly_fft(re,im,k,k+mq2);
00936                     tr.next();
00937                 }
00938             }
00939         }
00965         template<size_t ndim,bool is_reverse,bool re_im_at_sep_loc,typename T, typename I>
00966         void fftND(T re[],T im[], I nn[])
00967         {
00968             class func
00969             {
00970                 T *re;
00971                 T *im;
00972             public:
00973                 func(T re_[],T im_[]) : re(re_),im(im_) {}
00974                 void operator()(I j2,I n,I step)
00975                 {
00976                     Fourier::fft1D<is_reverse>(re+j2,im+j2, n, step);
00977                 }
00978                 enum { sm = re_im_at_sep_loc?1:2};//step multiplier
00979             };
00980             func f(re,im);
00981             Utils::ForEachDimensionDo1D<ndim>(f, nn);
00982         }
00986         namespace F
00987         {
00988             namespace Impl
00989             {
00990                 template<typename T>
00991                 void calc_F1multF2star_from_2_simult_real_fft(T& reQk,T& imQk,T& reQ_k,T& imQ_k)
00992                 {
00993                         T Re1= reQk + reQ_k;
00994                         T Im1= imQk - imQ_k;
00995                         T Re2= imQk + imQ_k;
00996                         T Im2=-reQk + reQ_k;
00997                         reQk = Re1*Re2+Im1*Im2;
00998                         reQ_k=reQk;
00999                         imQk = -Re1*Im2+Re2*Im1;
01000                         imQ_k= -imQk;
01001                 }
01002             }
01011             template<bool re_im_at_sep_loc,typename T> class ClalcF1F2conj;
01012             template<typename T>
01013             class ClalcF1F2conj<true,T>
01014             {
01015                 T* re_;
01016                 T* im_;
01017             public:
01018                 //enum { step=1 };
01019                 ClalcF1F2conj(T re[],T im[]) :re_(re),im_(im) {}
01020                 // j2 -> k , j1 -> -k
01021                 template<bool upper_half,typename I>
01022                 void operator()(I plus_k,I minus_k,Loki::Int2Type<upper_half> up_hlf)
01023                 {
01024                     Impl::calc_F1multF2star_from_2_simult_real_fft(re_[plus_k],im_[plus_k],re_[minus_k],im_[minus_k]);
01025                 }
01026                 template<bool upper_half,typename I>
01027                 void operator()(I k,Loki::Int2Type<upper_half> )
01028                 {
01029                     re_[k]=0;
01030                     im_[k]=0;
01031                 }
01032             };
01041             template<typename T>
01042             class ClalcF1F2conj<false,T>
01043             {
01044                 T* data_;
01045             public:
01046                 //enum { step=2 };
01047                 ClalcF1F2conj(T data[]) : data_(data) {}
01048                 template<bool upper_half,typename I>
01049                 void operator()(I plus_k,I minus_k,Loki::Int2Type<upper_half> up_hlf)
01050                 {
01051                     plus_k<<=1;
01052                     minus_k<<=1;
01053                     Impl::calc_F1multF2star_from_2_simult_real_fft(data_[plus_k],data_[plus_k+1],data_[minus_k],data_[minus_k+1])
01054                 }
01055                 template<bool upper_half,typename I>
01056                 void operator()(I k,Loki::Int2Type<upper_half> )
01057                 {
01058                     k<<=1;
01059                     data_[k]=0;
01060                     data_[k+1]=0;
01061                 }
01062             };
01162             template<typename T,unsigned first_second_or_both=0,unsigned layout=0>
01163             class SplitEvenOdd
01164             {
01165                 T* re;
01166                 T* im;
01167                 T* re1;
01168                 T* im1;
01169                 T* re2;
01170                 T* im2;
01171             private:
01172                 template<bool upper_half,typename I>
01173                 void extract_(I plus_k,I minus_k,Loki::Int2Type<upper_half> up_hlf ,Loki::Int2Type<0> )
01174                 {
01175                     T r1  = 0.5*( re[plus_k]  + re[minus_k]);
01176                     T i1  = 0.5*( im[plus_k]  - im[minus_k]);
01177                     T r2  = 0.5*( im[plus_k]  + im[minus_k]);
01178                     T i2  = 0.5*( re[minus_k] - re[plus_k] );
01179                     // игнорировать различия layout==0 и layout==2,
01180                     // при layout==0  up_hlf никогда не придет true - см. код operator()
01181                     set_1(r1,i1,plus_k,minus_k,up_hlf,Loki::Int2Type<layout&1>());
01182                     set_2(r2,i2,plus_k,minus_k,up_hlf,Loki::Int2Type<layout&1>());
01183                 }
01184                 template<bool upper_half,typename I>
01185                 void extract_(I plus_k,I minus_k,Loki::Int2Type<upper_half> up_hlf ,Loki::Int2Type<1> )
01186                 {
01187                     T r1  = 0.5*( re[plus_k]  + re[minus_k]);
01188                     T i1  = 0.5*( im[plus_k]  - im[minus_k]);
01189                     // игнорировать различия layout==0 и layout==2,
01190                     // при layout==0  up_hlf никогда не придет true - см. код operator()
01191                     set_1(r1,i1,plus_k,minus_k,up_hlf,Loki::Int2Type<layout&1>());
01192                 }
01193                 template<bool upper_half,typename I>
01194                 void extract_(I plus_k,I minus_k,Loki::Int2Type<upper_half> up_hlf ,Loki::Int2Type<2> )
01195                 {
01196                     T r2  = 0.5*( im[plus_k]  + im[minus_k]);
01197                     T i2  = 0.5*( re[minus_k] - re[plus_k] );
01198                     // игнорировать различия layout==0 и layout==2,
01199                     // при layout==0  up_hlf никогда не придет true - см. код operator()
01200                     set_2(r2,i2,plus_k,minus_k,up_hlf,Loki::Int2Type<layout&1>());
01201                 }
01202                 //layout==2
01203                 template<typename I>
01204                 void set_1(T r1,T i1,I plus_k,I minus_k,Loki::Int2Type<true> up_hlf ,Loki::Int2Type<0> )
01205                 {
01206                     re1[plus_k]= r1;
01207                     im1[plus_k]= i1;
01208                 }
01209                 //layout==0 or 2
01210                 template<typename I>
01211                 void set_1(T r1,T i1,I plus_k,I minus_k,Loki::Int2Type<false> up_hlf ,Loki::Int2Type<0> )
01212                 {
01213                     re1[plus_k]= r1;
01214                     im1[plus_k]= i1;
01215                     re1[minus_k]= r1;
01216                     im1[minus_k]=-i1;
01217                 }
01218                 //layout==2
01219                 template<typename I>
01220                 void set_2(T r2,T i2,I plus_k,I minus_k,Loki::Int2Type<true> up_hlf ,Loki::Int2Type<0> )
01221                 {
01222                     re2[plus_k]= r2;
01223                     im2[plus_k]= i2;
01224                 }
01225                 //layout==0 or 2
01226                 template<typename I>
01227                 void set_2(T r2,T i2,I plus_k,I minus_k,Loki::Int2Type<false> up_hlf ,Loki::Int2Type<0> )
01228                 {
01229                     re2[plus_k]= r2;
01230                     im2[plus_k]= i2;
01231                     re2[minus_k]= r2;
01232                     im2[minus_k]=-i2;
01233                 }
01234                 //layout==1
01235                 template<typename I>
01236                 void set_1(T r1,T i1,I plus_k,I minus_k,Loki::Int2Type<false> ,Loki::Int2Type<1> )
01237                 {
01238                     re1[plus_k]= r1;
01239                     im1[plus_k]= i1;
01240                 }
01241                 //layout==1
01242                 template<typename I>
01243                 void set_2(T r2,T i2,I plus_k,I minus_k,Loki::Int2Type<false> ,Loki::Int2Type<1> )
01244                 {
01245                     re2[minus_k]= r2;
01246                     im2[minus_k]=-i2;
01247                 }
01248                 template<typename I>
01249                 void zero(I k,Loki::Int2Type<0> )
01250                 {
01251                     zero(k,Loki::Int2Type<1>() );
01252                     zero(k,Loki::Int2Type<2>() );
01253                 }
01254                 template<typename I>
01255                 void zero(I k,Loki::Int2Type<1> )
01256                 {
01257                     re1[k]=0;
01258                     im1[k]=0;
01259                 }
01260                 template<typename I>
01261                 void zero(I k,Loki::Int2Type<2> )
01262                 {
01263                     re2[k]=0;
01264                     im2[k]=0;
01265                 }
01266                 template<typename I>
01267                 void set_zero(I k,Loki::Int2Type<true> )
01268                 {
01269                 }
01270                 template<typename I>
01271                 void set_zero(I k,Loki::Int2Type<false> )
01272                 {
01273                     zero(k,Loki::Int2Type<both>() );
01274                 }
01275
01276             public:
01278                 SplitEvenOdd(T Q_re[],T Q_im[],T re_1[],T im_1[],T re_2[],T im_2[])
01279                     : re(Q_re),im(Q_im),re1(re_1),im1(im_1),re2(re_2),im2(im_2)
01280                 {
01281                     LOKI_STATIC_CHECK((layout==0),This_constructor_form_used_ONLY_when_template_params_is__layout_is_0);
01282                 }
01284                 SplitEvenOdd(T Q_re[],T Q_im[],T re_12[],T im_12[])
01285                     : re(Q_re),im(Q_im),re1(re_12),im1(im_12),re2(re_12),im2(im_12)
01286                 {
01287                     LOKI_STATIC_CHECK((layout==1),This_constructor_form_used_ONLY_when_template_params_is__layout_is_1);
01288                 }
01290                 template<unsigned ndim>
01291                 SplitEvenOdd(T Q_re[],T Q_im[],T re_1[],T im_1[],T re_2[],T im_2[],size_t n[])
01292                     : re(Q_re),im(Q_im)
01293                     ,re1(re_1-ArrayElemProduct<ndim>(n)/2)
01294                     ,im1(im_1-ArrayElemProduct<ndim>(n)/2)
01295                     ,re2(re_2-ArrayElemProduct<ndim>(n)/2)
01296                     ,im2(im_2-ArrayElemProduct<ndim>(n)/2)
01297                 {
01298                     LOKI_STATIC_CHECK((layout==2),This_constructor_form_used_ONLY_when_template_params_is__layout_is_2);
01299                     LOKI_STATIC_CHECK(((Q_re!=re_1)&&(Q_re!=im_1)&&(Q_re!=re_2)&&(Q_re!=im_2)&&(Q_im!=re_1)&&(Q_im!=im_1)&&(Q_im!=re_2)&&(Q_im!=im_2)),This_constructor_form_used_ONLY_when_template_params_is__layout_is_2__it_cant_do_inplace);
01300                 }
01301                 template<unsigned ndim>
01302                 SplitEvenOdd(T Q_re[],T Q_im[],T re_dest[],T im_dest[],size_t n[])
01303                     : re(Q_re),im(Q_im)
01304                     ,re1(re_dest-ArrayElemProduct<ndim>(n)/2)
01305                     ,im1(im_dest-ArrayElemProduct<ndim>(n)/2)
01306                     ,re2(re_dest)
01307                     ,im2(im_dest)
01308                 {
01309                     LOKI_STATIC_CHECK((layout==2),This_constructor_form_used_ONLY_when_template_params_is__layout_is_2);
01310                     LOKI_STATIC_CHECK(((Q_re!=re_dest)&&(Q_re!=im_dest)&&(Q_im!=re_dest)&&(Q_im!=im_dest)),This_constructor_form_used_ONLY_when_template_params_is__layout_is_2__it_cant_do_inplace);
01311                 }
01312                 template<bool upper_half,typename I>
01313                 void operator()(I plus_k,I minus_k,Loki::Int2Type<upper_half> up_hlf)
01314                 {
01315                     //т.е. up_hlf==true - может быть только layout==2, когда пишется полная нижняя
01316                     //полуплоскость в массив половинного размера. В остальных случаях up_hlf=false
01317                     // и делается запись.
01318                     extract_(plus_k,minus_k,Loki::Int2Type<(up_hlf&&(layout==2))>(),Loki::Int2Type<both>() );
01319                 }
01320                 template<bool upper_half,typename I>
01321                 void operator()(I k,Loki::Int2Type<upper_half> up_hlf)
01322                 {
01323                     //т.е. up_hlf==true - может быть только layout==2, когда пишется полная нижняя
01324                     //полуплоскость в массив половинного размера. В остальных случаях up_hlf=false
01325                     // и делается запись.
01326                     set_zero(k,Loki::Int2Type<(up_hlf&&(layout==2))>() );
01327                 }
01328             };
01329         }//namespace F
01330     }//namespace Fourier
01352     namespace Hartley
01353     {
01354         namespace Impl
01355         {
01356             template<typename T,typename I>
01357             static void dif_sum(T *data,I i,I j)
01358             {
01359                 T d0 = data[i] - data[j];
01360                 data[i] += data[j];
01361                 data[j] = d0;
01362             }
01363         };
01364         /*-----------------------------------------------------*/
01366         template<typename T,typename I>
01367         void fht1D_(T *data, I n,I step)
01368         {
01369             if (n <= 0) return;
01370             Utils::bit_reversal(data,n,step);
01371
01372             //Отдельно размер блока равен 2.
01373             const I ns=n*step;
01374             for (I i = 0,dd=step<<1 ; i < ns; i += dd)
01375                 Impl::dif_sum(data,i,i+step);
01376
01377
01378             for (I blocksize = 4; blocksize <= n; blocksize <<= 1)
01379             {
01380                 //int blockcount = n/blocksize;//число блоков в массиве data
01381                 const I bs=blocksize*step;
01382                 const I blocksize_2 = bs>>1;
01383                 const I blocksize_4 = blocksize_2>>1;
01384
01385                 for (I i = 0; i < ns; i += bs)
01386                 {
01387                     I j = i+blocksize_2;
01388                     Impl::dif_sum(data,i,j);
01389                     Impl::dif_sum(data,i + blocksize_4,j + blocksize_4);
01390                 }
01391
01392                 if (blocksize == 4) continue;
01393
01394                 Utils::Impl::TrigRecurrence<T,double,I> tr(false,blocksize);
01395                 tr.next();
01396                 for (I i = step ; i < blocksize_4; i+=step )
01397                 {
01398                     I j=blocksize_2-i;
01399                     for (T *even=data; even<data+ns; even+=bs)
01400                         tr.butterfly_Hartley(even,even+blocksize_2,i,j);
01401
01402                     tr.next();
01403                 }
01404             }
01405         }
01409         namespace F
01410         {
01411             template<typename T>
01412             class Hartley2Modul
01413             {
01414                 T* data_in_;
01415                 T* data_out_;
01416             public:
01417                 //enum { step=2 };
01418                 Hartley2Modul(T data_in[],T data_out[]) : data_in_(data_in),data_out_(data_out)  {}
01419                 template<typename I>
01420                 void operator()(I plus_k,I minus_k)
01421                 {
01422                     T s=std::sqrt(IntTransf::Utils::Sqr(data_in_[plus_k])+IntTransf::Utils::Sqr(data_in_[minus_k]));
01423                     data_out_[plus_k]=s;
01424                     data_out_[minus_k]=s;
01425                 }
01426                 template<typename I>
01427                 void operator()(I plus_k)
01428                 {
01429                     data_out_[plus_k]=std::abs(data_in_[plus_k]);
01430                 }
01431             };
01432             template<typename T>
01433             class Hartley2Re
01434             {
01435                 T* data_in_;
01436                 T* data_out_;
01437             public:
01438                 //enum { step=2 };
01439                 Hartley2Re(T data_in[],T data_out[]) : data_in_(data_in),data_out_(data_out)  {}
01440                 template<bool upper_half,typename I>
01441                 void operator()(I plus_k,I minus_k,Loki::Int2Type<upper_half> up_hlf)
01442                 {
01443                     T s=(data_in_[plus_k]+data_in_[minus_k])/2;
01444                     data_out_[plus_k]=s;
01445                     data_out_[minus_k]=s;
01446                 }
01447                 template<bool upper_half,typename I>
01448                 void operator()(I k,Loki::Int2Type<upper_half> )
01449                 {
01450                     data_out_[k]=data_in_[k];
01451                 }
01452             };
01453             template<typename T>
01454             class Hartley2Im
01455             {
01456                 T* data_in_;
01457                 T* data_out_;
01458             public:
01459                 //enum { step=2 };
01460                 Hartley2Im(T data_in[],T data_out[]) : data_in_(data_in),data_out_(data_out)  {}
01461                 template<bool upper_half,typename I>
01462                 void operator()(I plus_k,I minus_k,Loki::Int2Type<upper_half> up_hlf)
01463                 {
01464                     T s=(data_in_[plus_k]-data_in_[minus_k])/2;
01465                     data_out_[plus_k]=s;
01466                     data_out_[minus_k]=-s;
01467                 }
01468                 template<bool upper_half,typename I>
01469                 void operator()(I k,Loki::Int2Type<upper_half> )
01470                 {
01471                     data_out_[k]=T(0);
01472                 }
01473             };
01485             template<typename T,bool amp_in_up_half_plane,bool only_half_amp=false>
01486             class Hartley2Amp
01487             {
01488                 T* hartley_;
01489                 T* amp_;
01490             private:
01491                 template<typename I>
01492                 void set_amp(I plus_k,I minus_k,T amplitude)
01493                 {
01494                     set_amp(plus_k,minus_k,amplitude,Loki::Int2Type<amp_in_up_half_plane>());
01495                 }//amp_in_up_half_plane
01496                 template<typename I>
01497                 void set_amp(I plus_k,I minus_k,T amplitude,Loki::Int2Type<true> )
01498                 {
01499                     amp_[minus_k]=amplitude;
01500                 }
01501                 template<typename I>
01502                 void set_amp(I plus_k,I minus_k,T amplitude,Loki::Int2Type<false> )
01503                 {
01504                     amp_[plus_k]=amplitude;
01505                 }
01506             public:
01507                 Hartley2Amp(T hartley[],T amp[])
01508                     : hartley_(hartley), amp_(amp)
01509                 {}
01510                 template<bool upper_half,typename I>
01511                 void operator()(I plus_k,I minus_k,Loki::Int2Type<upper_half> up_hlf)
01512                 {
01513                     T a=Vtl::sqr(hartley_[plus_k])+Vtl::sqr(hartley_[minus_k]);
01514                     a=std::sqrt(a/2);
01515                     set_amp(plus_k,minus_k,a);
01516                 }
01517                 template<typename I>
01518                 void operator()(I k,Loki::Int2Type<false>)
01519                 {
01520                     amp_[k]=0;
01521                 }
01522                 template<typename I>
01523                 void operator()(I k,Loki::Int2Type<true>)
01524                 {
01525                 }
01526             };
01538             template<unsigned ndim,typename T>
01539             class Hartley2AmpDown
01540             {
01541                 T* hartley_;
01542                 T* amp_;
01543             private:
01544                 template<typename I>
01545                 void set_amp(I plus_k,I minus_k,T amplitude,Loki::Int2Type<true> )
01546                 {
01547                     amp_[plus_k]=amplitude;
01548                 }
01549                 template<typename I>
01550                 void set_amp(I plus_k,I minus_k,T amplitude,Loki::Int2Type<false> )
01551                 {
01552                     amp_[plus_k]=amplitude;
01553                     amp_[minus_k]=amplitude;
01554                 }
01555             public:
01556                 Hartley2AmpDown(T hartley[],T amp[],size_t n[])
01557                     : hartley_(hartley), amp_(amp-ArrayElemProduct<ndim>(n)/2)
01558                 {}
01559                 template<bool upper_half,typename I>
01560                 void operator()(I plus_k,I minus_k,Loki::Int2Type<upper_half> up_hlf)
01561                 {
01562                     T a=Vtl::sqr(hartley_[plus_k])+Vtl::sqr(hartley_[minus_k]);
01563                     a=std::sqrt(a/2);
01564                     set_amp(plus_k,minus_k,a,up_hlf);
01565                 }
01566                 template<typename I>
01567                 void operator()(I k,Loki::Int2Type<false>)
01568                 {
01569                     amp_[k]=0;
01570                 }
01571                 template<typename I>
01572                 void operator()(I k,Loki::Int2Type<true>)
01573                 {
01574                 }
01575             };
01588             template<typename T,bool amp_in_up_half_plane,bool only_half_amp=false>
01589             class Hartley2PhaseAmp
01590             {
01591                 T* hartley_;
01592                 T* amp_;
01593                 T* phase_;
01594             private:
01595                 template<typename I>
01596                 void set_amp(I plus_k,I minus_k,T amplitude)
01597                 {
01598                     set_amp(plus_k,minus_k,amplitude,Loki::Int2Type<amp_in_up_half_plane>());
01599                 }//amp_in_up_half_plane
01600                 template<typename I>
01601                 void set_amp(I plus_k,I minus_k,T amplitude,Loki::Int2Type<true> )
01602                 {
01603                     amp_[minus_k]=amplitude;
01604                 }
01605                 template<typename I>
01606                 void set_amp(I plus_k,I minus_k,T amplitude,Loki::Int2Type<false> )
01607                 {
01608                     amp_[plus_k]=amplitude;
01609                 }
01610             public:
01611                 Hartley2PhaseAmp(T hartley[],T amp[],T phase[])
01612                     : hartley_(hartley), amp_(amp), phase_(phase)
01613                 {}
01614                 Hartley2PhaseAmp(T hartley[],T amp[],T phase[],unsigned ndim,size_t n[])
01615                     : hartley_(hartley), amp_(only_half_amp?amp-ArrayElemProduct<ndim>(n)/2:amp), phase_(phase)
01616                 {}
01617                 Hartley2PhaseAmp(T hartley_phase[],T amp[])
01618                     : hartley_(hartley_phase), amp_(amp), phase_(hartley_phase)
01619                 {}
01620                 template<unsigned ndim>
01621                 Hartley2PhaseAmp(T hartley_phase[],T amp[],size_t n[])
01622                     : hartley_(hartley_phase), amp_(only_half_amp?amp-ArrayElemProduct<ndim>(n)/2:amp), phase_(hartley_phase)
01623                 {}
01624                 template<bool upper_half,typename I>
01625                 void operator()(I plus_k,I minus_k,Loki::Int2Type<upper_half> up_hlf)
01626                 {
01627                     T a=Vtl::sqr(hartley_[plus_k])+Vtl::sqr(hartley_[minus_k]);
01628                     a=std::sqrt(a/2);
01629                     set_amp(plus_k,minus_k,a);
01630                     if(a>0)
01631                     {
01632                         phase_[plus_k]=hartley_[plus_k]/a;
01633                         phase_[minus_k]=hartley_[minus_k]/a;
01634                     }
01635                     else
01636                     {
01637                         phase_[plus_k]=0;
01638                         phase_[minus_k]=0;
01639                     }
01640                 }
01641                 template<typename I>
01642                 void operator()(I k,Loki::Int2Type<false>)
01643                 {
01644                     amp_[k]=0;
01645                     phase_[k]=0;
01646                 }
01647                 template<typename I>
01648                 void operator()(I k,Loki::Int2Type<true>)
01649                 {
01650                     phase_[k]=0;
01651                 }
01652             };
01665             template<unsigned ndim,typename T>
01666             class Hartley2PhaseAmpDown
01667             {
01668                 T* hartley_;
01669                 T* amp_;
01670                 T* phase_;
01671             private:
01672                 template<typename I>
01673                 void set_amp(I plus_k,I minus_k,T amplitude,Loki::Int2Type<true> )
01674                 {
01675                     amp_[plus_k]=amplitude;
01676                 }
01677                 template<typename I>
01678                 void set_amp(I plus_k,I minus_k,T amplitude,Loki::Int2Type<false> )
01679                 {
01680                     amp_[plus_k]=amplitude;
01681                     amp_[minus_k]=amplitude;
01682                 }
01683             public:
01684                 Hartley2PhaseAmpDown(T hartley[],T amp[],T phase[],size_t n[])
01685                     : hartley_(hartley), amp_(amp-ArrayElemProduct<ndim>(n)/2), phase_(phase)
01686                 {}
01687                 Hartley2PhaseAmpDown(T hartley_phase[],T amp[],size_t n[])
01688                     : hartley_(hartley_phase), amp_(amp-Utils::ArrayElemProduct<ndim>(n)/2), phase_(hartley_phase)
01689                 {}
01690                 template<bool upper_half,typename I>
01691                 void operator()(I plus_k,I minus_k,Loki::Int2Type<upper_half> up_hlf)
01692                 {
01693                     T a=Vtl::sqr(hartley_[plus_k])+Vtl::sqr(hartley_[minus_k]);
01694                     a=std::sqrt(a/2);
01695                     set_amp(plus_k,minus_k,a,up_hlf);
01696                     if(a>0)
01697                     {
01698                         phase_[plus_k]=hartley_[plus_k]/a;
01699                         phase_[minus_k]=hartley_[minus_k]/a;
01700                     }
01701                     else
01702                     {
01703                         phase_[plus_k]=0;
01704                         phase_[minus_k]=0;
01705                     }
01706                 }
01707                 template<typename I>
01708                 void operator()(I k,Loki::Int2Type<false>)
01709                 {
01710                     amp_[k]=0;
01711                     phase_[k]=0;
01712                 }
01713                 template<typename I>
01714                 void operator()(I k,Loki::Int2Type<true>)
01715                 {
01716                     phase_[k]=0;
01717                 }
01718             };
01727             template<typename T>
01728             class Hartley2Phase
01729             {
01730                 T* hartley_;
01731                 T* phase_;
01732             public:
01733                 Hartley2Phase(T hartley[],T phase[])
01734                     : hartley_(hartley), phase_(phase)
01735                 {}
01736                 Hartley2Phase(T hartley_phase[])
01737                     : hartley_(hartley_phase), phase_(hartley_phase)
01738                 {}
01739                 template<bool upper_half,typename I>
01740                 void operator()(I plus_k,I minus_k,Loki::Int2Type<upper_half> up_hlf)
01741                 {
01742                     T a=Vtl::sqr(hartley_[plus_k])+Vtl::sqr(hartley_[minus_k]);
01743                     if(a>0)
01744                     {
01745                         a=std::sqrt(a/2);
01746                         phase_[plus_k]=hartley_[plus_k]/a;
01747                         phase_[minus_k]=hartley_[minus_k]/a;
01748                     }
01749                     else
01750                     {
01751                         phase_[plus_k]=0;
01752                         phase_[minus_k]=0;
01753                     }
01754                 }
01755                 template<bool upper_half,typename I>
01756                 void operator()(I k,Loki::Int2Type<upper_half> )
01757                 {
01758                     phase_[k]=0;
01759                 }
01760             };
01796             template<typename T>
01797             class PhaseCorr
01798             {
01799                 T* hartley1_;
01800                 T* hartley2_;
01801                 T* corr_;
01802             public:
01803                 PhaseCorr(T hartley1[],T hartley2[],T corr[])
01804                     : hartley1_(hartley1), hartley2_(hartley2), corr_(corr)
01805                 {}
01806                 template<bool upper_half,typename I>
01807                 void operator()(I plus_k,I minus_k,Loki::Int2Type<upper_half> up_hlf)
01808                 {
01809                     T v1=hartley1_[plus_k]*hartley2_[plus_k]+hartley1_[minus_k]*hartley2_[minus_k];
01810                     T v2=hartley1_[minus_k]*hartley2_[plus_k]-hartley1_[plus_k]*hartley2_[minus_k];
01811                     corr_[plus_k]=(v1+v2)/2;
01812                     corr_[minus_k]=(v1-v2)/2;
01813                 }
01814                 template<bool upper_half,typename I>
01815                 void operator()(I k,Loki::Int2Type<upper_half> )
01816                 {
01817                     corr_[k]=0;
01818                 }
01819             };
01820         }//namespace F
01822         //Указатели hartley и real могут совпадать
01823         template<int ndim,typename T,typename I>
01824         void GetModul(T *hartley, I n[], T *real)
01825         {
01826             F::Hartley2Modul<T> pp(hartley,real);
01827             IntTransf::Utils::proc_pos_neg_freq<ndim>(n,pp);
01828         }
01830         //Указатели hartley и real могут совпадать
01831         template<int ndim,typename T,typename I>
01832         void GetReal(T *hartley, I n[], T *real)
01833         {
01834             F::Hartley2Re<T> pp(hartley,real);
01835             IntTransf::Utils::proc_pos_neg_freq<ndim>(n,pp);
01836         }
01837         template<typename T,typename I>
01838         void GetReal_1D(T *hartley, I n, T *real,I step=1,I step_real=1)
01839         {
01840             I sz2=n>>1;
01841             I last_h=n*step;
01842             I last_o=n*step_real;
01843             if(n==2)
01844             {
01845                 real[step_real] = hartley[step];
01846             }
01847             else
01848             {
01849                 for (I j=step,i =step_real ; sz2-- ; i+=step_real, j+=step)
01850                 {
01851                     T re = (hartley[j] + hartley[last_h-j])/2;
01852                     real[i] = re;
01853                     real[last_o-i] = re;
01854                 }
01855             }
01856             real[0] = hartley[0];
01857         }
01859         //Указатели hartley и imag могут совпадать
01860         template<int ndim,typename T,typename I>
01861         void GetImag(T *hartley, I n[], T *imag)
01862         {
01863             F::Hartley2Im<T> pp(hartley,imag);
01864             IntTransf::Utils::proc_pos_neg_freq<ndim>(n,pp);
01865         }
01866         template<typename T,typename I>
01867         void GetImag_1D(T *hartley, I n, T *imag,I step=1,I step_imag=1)
01868         {
01869             I sz2=n>>1;
01870             I last_h=n*step;
01871             I last_o=n*step_imag;
01872             if(n==2)
01873             {
01874                 imag[step_imag] = 0;
01875             }
01876             else
01877             {
01878                 for (I j=step,i =step_imag ; sz2-- ; i+=step_imag, j+=step)
01879                 {
01880                     T im = (hartley[j] - hartley[last_h-j])/2;
01881                     imag[i] = im;
01882                     imag[last_o-i] = -im;
01883                 }
01884             }
01885             imag[0] = 0;
01886         }
01888         template<typename T,typename I>
01889         void AddQuadrants2D(T data[],I w,I h)
01890         {
01891             assert(w == h);
01892 //          std::cout << "AddQuadrants2D===" <<std::endl;
01893             if(h<2 ||w<2)
01894                 return;
01895             //нулевая строка и нулевой столбец остаются неизменными
01896             T *row1 = data+w;
01897             T *row2 = data+w*(h-1);
01898             for (I h2=h>>1,w2=w>>1;  --h2; row1+=w,row2-=w)
01899             {
01900                 for (I x = 1; x < w2; x++)
01901                 {
01902                     T d1 = row1[x];
01903                     T d2 = row1[w - x];
01904                     T d3 = row2[x];
01905                     T d4 = row2[w - x];
01906
01907                     row1[x]     =   T(0.5)*(d1 + d2 + d3 - d4);
01908                     row1[w - x] =   T(0.5)*(d4 + d1 + d2 - d3);
01909                     row2[x]     =   T(0.5)*(d3 + d4 + d1 - d2);
01910                     row2[w - x] =   T(0.5)*(d2 + d3 + d4 - d1);
01911                 }
01912             }
01913         }
01914
01916         template<typename T,typename I>
01917         void fht2D_square(T data[],I w,I h)
01918         {
01919             assert(w == h);
01920
01921             I n[]={w,h};
01922             quasi_fht2D(data,w);
01923             AddQuadrants2D(data,w,h);
01924         }
01926         template<typename T,typename I>
01927         void quasi_fht2D(T data[],I n)
01928         {
01929             //int row;
01930             {//производим 1D преобразование Хартли со строками матрицы
01931                 T *d=data;
01932                 for (I i = n; i-- ; d+=n )
01933                     fht1D_(d, n,I(1));
01934             }
01935             //транспонируем матрицу
01936             Utils::TransposeSqrMatrix(data,n);
01937             //производим 1D преобразование Хартли со строками матрицы
01938             {//производим 1D преобразование Хартли со строками матрицы
01939                 T *d=data;
01940                 for (I i = n; i-- ; d+=n )
01941                     fht1D_(d, n,I(1));
01942             }
01943             //транспонируем матрицу
01944             Utils::TransposeSqrMatrix(data,n);
01945         }
01946
01947
01953         template<size_t ndim,typename T,typename I>
01954         void quasi_fhtND(T data[], I nn[])
01955         {
01956             class func
01957             {
01958                 T *data;
01959             public:
01960                 func(T data_[]) : data(data_){}
01961                 void operator()(I j2,I n,I step)
01962                 {
01963                     fht1D_(data+j2, n, step);
01964                 }
01965                 enum { sm=1 };//step multiplier is 1 - data is real, one sample follows another
01966
01967             };
01968             func f(data);
01969             Utils::ForEachDimensionDo1D<ndim>(f, nn);
01970         }
01971 /*
01972         template<typename T,typename I>
01973         void quasi_fhtND(T data[] unsigned long nn[], int ndim)
01974         {
01975             const I sm=1;
01976             I ntot=1;
01977             for(int idim=0;idim <ndim;idim++) // Compute total number of complex values.
01978                 ntot *= nn[idim];
01979             I n_before=1;
01980             for(I k=0; k<ndim; ++k)
01981             {
01982                 I n=nn[k];
01983                 n_to=n_before*n;
01984                 I n_after=ntot/n_to;
01985                 for(I j=0; n_after-- ; j+=n_to)
01986                 {
01987                     I cnt2=n_before;
01988                     for(I j2=j*sm; cnt2-- ; j2+=sm)
01989                         fht1D_(data+j2, n, n_before);
01990                 }
01991                 n_before=n_to;
01992             }
01993         }
01994 */
01996         template<typename T, typename I>
01997         void fht1D(T data[], I n)
01998         {
01999 //          Utils::SwapArrayHalfs<false>(data, n, I(1) );
02000             fht1D_(data, n, I(1) );
02001 //          Utils::SwapArrayHalfs<false>(data, n, I(1) );
02002         }
02003         template<typename T, typename I>
02004         void ifht1D(T data[], I n)
02005         {
02006 //          Utils::SwapArrayHalfs<false>(data, n, I(1) );
02007             fht1D_(data, n, I(1) );
02008 //          Utils::SwapArrayHalfs<false>(data, n, I(1) );
02009         }
02010         template<typename T, typename I>
02011         void fht2D(T data[], I width, I height)
02012         {
02013             fht2D_square(data,width,height);
02014         }
02015         template<typename T, typename I>
02016         void ifht2D(T data[], I width, I height)
02017         {
02018             fht2D_square(data,width,height);
02019         }
02020     };
02021     /*
02022         //Перестановка элементов массива
02023     template<typename T> struct CHartley
02024     {
02025         static void bit_reversal(T *array, int size)
02026         {
02027             //функция выполняет перестановку элементов массива.
02028             //Элемент с идексом i помещается
02029             //на место элемента с индексом j,
02030             //причем биты числа i есть биты числа j, записанные в обратном порядке
02031             //Пример. Пусть длина строки (n) равна 8. Рассматриваем только первые 3 (log(n)) битов.
02032             //Тогда i = 0 = 000 <=> j = 0 = 000
02033             //Тогда i = 1 = 001 <=> j = 4 = 100
02034             //Тогда i = 2 = 010 <=> j = 2 = 010
02035             //Тогда i = 3 = 011 <=> j = 6 = 110
02036             //Тогда i = 4 = 100 <=> j = 1 = 001
02037             //Тогда i = 5 = 101 <=> j = 5 = 101
02038             //Тогда i = 6 = 110 <=> j = 3 = 011
02039             //Тогда i = 7 = 111 <=> j = 7 = 111
02040
02041             if (size <= 2) return;
02042             int i, l;//l = log(size)
02043             l = 0;
02044             while ((1 << l) < size) l++;
02045             for (i = 1; i < size - 1; i++)
02046             {
02047                 int j, k, m;
02048                 j = 0;
02049                 k = i;
02050                 m = l;
02051                 while (m--)
02052                 {
02053                     j <<= 1;
02054                     j |= (k & 1);
02055                     k >>= 1;
02056                 }
02057
02058                 if (j > i)
02059                     std::swap(array[i], array[j]);
02060             }
02061         }
02063         static void Do1DInternal(T *data, int n)
02064         {
02065             if (n <= 0) return;
02066             bit_reversal(data, n);
02067
02068             int blocksize, blocksize_4, blocksize_2;//размер блока
02069             int blockcount;//число блоков в массиве data
02070             int i, j, k, l;
02071             T d0, d1, c, s, c0, s0;
02072             T *even, *odd;
02073
02074             //Отдельно размер блока равен 2.
02075             for (i = 0, j = 1; i < n; i += 2, j += 2)
02076             {
02077                 d0 = data[i] - data[j];
02078                 data[i] += data[j];
02079                 data[j] = d0;
02080             }
02081
02082             for (blocksize = 4; blocksize <= n; blocksize <<= 1)
02083             {
02084                 blockcount = n/blocksize;
02085                 blocksize_4 = blocksize/4;
02086                 blocksize_2 = blocksize/2;
02087
02088                 for (i = 0, j = blocksize_2; i < n; i += blocksize, j += blocksize)
02089                 {
02090                     d0 = data[i] - data[j];
02091                     data[i] += data[j];
02092                     data[j] = d0;
02093                     k = i + blocksize_4;
02094                     l = j + blocksize_4;
02095                     d0 = data[k] - data[l];
02096                     data[k] += data[l];
02097                     data[l] = d0;
02098                 }
02099
02100                 if (blocksize == 4) continue;
02101
02102                 c = (T)cos(2*M_PI/blocksize);
02103                 s = (T)sqrt(1-c*c);
02104                 c0 = c;
02105                 s0 = s;
02106                 for (i = 1, j=blocksize_2-1; i < blocksize_4; i++, j--)
02107                 {
02108                     c = (T)cos(2*M_PI*i/blocksize);
02109                     s = (T)sqrt(1-c*c);
02110
02111                     for (even=data, odd=data + blocksize_2; even<data+n; even+=blocksize, odd+=blocksize)
02112                     {
02113                         d0 = c*odd[i] + s*odd[j];
02114                         d1 = c*odd[j] - s*odd[i];
02115                         odd[i] = even[i] - d0;
02116                         odd[j] = even[j] + d1;
02117                         even[i] += d0;
02118                         even[j] += - d1;
02119                     }
02120
02121                     d0 = c*c0 - s*s0;
02122                     s = s*c0 + c*s0;
02123                     c = d0;
02124                 }
02125             }
02126         }
02128         static void ImageTranspose(T* img,size_t size)
02129         {
02130             size_t rows = size;
02131             for (size_t row = 0; row < rows; row++)
02132             {
02133                 T *r = img+row*size;
02134                 for (size_t col = row + 1; col < rows; col++)
02135                 {
02136                     T *r2 = img+col*size;
02137                     std::swap(r[col], r2[row]);
02138                 }
02139             }
02140         }
02142         static void TransposeQuarters(T* img,size_t size)
02143         {
02144             size_t w = size;
02145             size_t h = size;
02146
02147             //верхний левый с нижним правым квадрантом
02148             for (size_t  i = 0; i < h/2; ++i)
02149             {
02150                 T* row1 = img+i;
02151                 T* row2 = img+w*(i+h/2);
02152                 for (size_t j = 0; j < w/2; ++j)
02153                 {
02154                     //верхний левый с нижним правым квадрантом
02155                     std::swap(row1[j], row2[j+w/2]);
02156                     //верхний правый с нижним левым квадрантом
02157                     std::swap(row1[j+w/2], row2[j]);
02158                 }
02159             }
02160         }
02161
02163         static void Do1DRowsAndCols(T* img,size_t size)
02164         {
02165             //производим 1D преобразование Хартли со строками матрицы
02166             for (size_t row = 0; row < size; ++row)
02167                 Do1DInternal(img+size*row, size);
02168
02169             //транспонируем матрицу
02170             ImageTranspose(img,size);
02171
02172             //производим 1D преобразование Хартли со строками матрицы
02173             for (size_t row = 0; row < size; ++row)
02174                 Do1DInternal(img+size*row, size);
02175
02176             //транспонируем матрицу
02177             ImageTranspose(img,size);
02178         }
02180         static void AddQuadrants(T* img,size_t size)
02181         {
02182             size_t rows = size;
02183             //нулевая строка и нулевой столбец остаются неизменными
02184             for(size_t row = 1; row < rows/2; ++row)
02185             {
02186                 T* row1 = img+size*row;
02187                 T* row2 = img+size*(rows - row);
02188                 for(size_t col = 1; col < rows/2; col++)
02189                 {
02190                     T d1 = row1[col];
02191                     T d2 = row1[rows - col];
02192                     T d3 = row2[col];
02193                     T d4 = row2[rows - col];
02194
02195                     row1[col] =         (T)0.5*(d1 + d2 + d3 - d4);
02196                     row1[rows - col] =  (T)0.5*(d4 + d1 + d2 - d3);
02197                     row2[col] =         (T)0.5*(d3 + d4 + d1 - d2);
02198                     row2[rows - col] =  (T)0.5*(d2 + d3 + d4 - d1);
02199                 }
02200             }
02201         }
02202         static void Do2D(T* data,size_t size)
02203         {
02204             TransposeQuarters(data,size);
02205             Do1DRowsAndCols(data,size);
02206             AddQuadrants(data,size);
02207             TransposeQuarters(data,size);
02208         }
02209     };
02210     */
02211 }//namespace IntTransf
02213 } //namespace NumAlg
02214 } //namespace Vtl
02216 #endif //_INTEGRAL_TRANSFORMS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл KMeans.h

  • Файлы
  • Список членов всех файлов

KMeans.h

См. документацию.
00001 #ifndef KMEANS_H
00002 #define KMEANS_H
00003
00004 //system includings
00005 #include <vector>
00006 #include <iostream>
00007 #include <math.h>
00008
00009 // DatumType is needed to have member val, over which clusterization is to be
00010 // carried out
00011 template <typename T, typename DatumType>
00012 class Cluster1D
00013 {
00014 public:
00015     T val;                          // mean for cluster
00016     std::vector<const DatumType *> data;  // data items belonging to cluster
00017
00018 public:
00019     Cluster1D()
00020     {
00021       val = T(0);
00022     }
00023
00024     //---------------------------------------------------------------------------
00025     Cluster1D(const DatumType &d)
00026     {
00027       val = d.val;
00028     }
00029
00030     //---------------------------------------------------------------------------
00031     Cluster1D &operator + (const DatumType &d)
00032     {
00033       val += d.val;
00034         data.push_back(&d);
00035         return (*this);
00036     }
00037
00038     //---------------------------------------------------------------------------
00039     void Divide()
00040     {
00041         T size = T(data.size());
00042       if (size > 0)
00043         {
00044           val /= size;
00045         }
00046     }
00047
00048     //---------------------------------------------------------------------------
00049     // ItemType - type of data item or cluster
00050     template <typename ItemType>
00051     T Dist(const ItemType &d)
00052     {
00053       return T(fabs(double(val - d.val)));
00054     }
00055     //---------------------------------------------------------------------------
00056     void Print()
00057     {
00058     std::cout << "v = "
00059       << Vtl::Curvature::CurvatureScale<T>::value_to_radius(val);
00060     }
00061 };
00062
00064 // DatumType is needed to have members x and y, over which clusterization
00065 // is to be carried out
00066 template <typename T, typename DatumType>
00067 class Cluster2D
00068 {
00069 public:
00070     T x;                                                              // mean
00071     T y;                                                              //      for cluster
00072     std::vector<const DatumType *> data;  // data items belonging to cluster
00073
00074 public:
00075     Cluster2D()
00076     {
00077       x = y = T(0);
00078     }
00079
00080     //---------------------------------------------------------------------------
00081     Cluster2D(const DatumType &d)
00082     {
00083       x = d.x;
00084         y = d.y;
00085     }
00086
00087     //---------------------------------------------------------------------------
00088     Cluster2D &operator + (const DatumType &d)
00089     {
00090       x += d.x;
00091         y += d.y;
00092         data.push_back(&d);
00093         return (*this);
00094     }
00095
00096     //---------------------------------------------------------------------------
00097     void Divide()
00098     {
00099         T size = T(data.size());
00100       if (size > 0)
00101         {
00102           x /= size;
00103             y /= size;
00104         }
00105     }
00106
00107     //---------------------------------------------------------------------------
00108     // ItemType - type of data item or cluster
00109     template <typename ItemType>
00110     T Dist(const ItemType &d)
00111     {
00112       T dx = x - d.x;
00113         T dy = y - d.y;
00114       return T(sqrt(double(dx * dx + dy * dy)));
00115     }
00116     //---------------------------------------------------------------------------
00117     void Print()
00118     {
00119         std::cout << "x = " << x << "  y = " << y;
00120     }
00121 };
00122
00124 // data item needed for clusterization of points over their value
00125 template <typename T>
00126 class DatumR
00127 {
00128 public:
00129     int x;          // coordinates
00130     int y;          // of point
00131   int sgn;    // curvature direction
00132     T val;          // curvature radius
00133
00134 public:
00135     DatumR(int in_x,
00136              int in_y,
00137                  T in_v)
00138     {
00139       x = in_x;
00140         y = in_y;
00141         val = fabs(in_v);
00142     sgn = int(in_v / val);
00143     //std::cout << std::endl << "in = " << in_v <<  "  val = " << val
00144     //  << "  sgn = " << sgn;
00145     }
00146
00147   //---------------------------------------------------------------------------
00148   DatumR()
00149   {
00150     x = y = sgn = 0;
00151     val = T(0);
00152   }
00153
00154   //---------------------------------------------------------------------------
00155   DatumR<T>& operator = (const DatumR<T> &d)
00156   {
00157     x = d.x;
00158     y = d.y;
00159     val = d.val;
00160     sgn = d.sgn;
00161     return *this;
00162   }
00163 };
00164
00166 // data item needed for clusterization of their localization
00167 template <typename T>
00168 class DatumXY
00169 {
00170 public:
00171     T x;            // coordinates
00172     T y;            // of point
00173     const DatumR<T> *p;
00174
00175 public:
00176     DatumXY(T in_x,
00177               T in_y,
00178                   const DatumR<T> *in_point)
00179           : p(in_point)
00180     {
00181       x = in_x;
00182         y = in_y;
00183     }
00184 };
00185
00187 template <typename DatumType, typename ClusterType>
00188 void KMeans(std::vector<DatumType> &data,
00189                         std::vector<ClusterType> &means,
00190             std::vector<float> &dev,
00191                         int k)
00192 {
00193     // initialization of means with random data items
00194     int step = int((data.size() - 2 - k )/ float(k));
00195   //std::cout << std::endl << "data size: " <<  data.size() << "  k = " << k
00196   //  << "  step: " << step;
00197
00198   std::cout << std::endl;
00199   means.clear();
00200
00201   if (step < 1)
00202   {
00203     std::cout << std::endl << "too little step";
00204     std::cout << "  =>  empty means were saved";
00205     return;
00206   }
00207
00208   //std::cout << std::endl << std::endl << "Initial Means:  ";
00209   for (int i = 0; i < k; i++)
00210     {
00211     //std::cout << "i = " << k + step * i << "  ";
00212         means.push_back(ClusterType(data[k + step * i]));
00213     //means[i].Print();
00214     //std::cout << " | ";
00215     }
00216
00217     std::vector<ClusterType> newMeans(k);
00218
00219     float stepDif = 1.0f; // difference between previous and current means
00220     int size = data.size();
00221
00222   // while means are not stable
00223     while (stepDif > 0.5f)
00224   {
00225         // initialize new set of means with 0
00226     newMeans.assign(k, ClusterType());
00227         dev.assign(k, 0);
00228
00229     // for each data item
00230       for (int i = 0; i < size; i++)
00231         {
00232             // calculate distanses to each mean and determine the closest mean
00233             int iCl = 0;
00234             float minDist = means[0].Dist(data[i]);
00235
00236           for (int j = 1; j < k; j++)
00237             {
00238               float d = means[j].Dist(data[i]);
00239                 if (d < minDist)
00240                 {
00241                   minDist = d;
00242                     iCl = j;
00243                 }
00244             }
00245
00246             newMeans[iCl] = newMeans[iCl] + data[i];
00247       dev[iCl] += minDist;
00248     }
00249
00250     stepDif = 0;
00251         for (int i = 0; i < k;  i++)
00252         {
00253             // calculate mean value of cluster
00254             newMeans[i].Divide();
00255
00256       // calculate deviation in cluster
00257       if (newMeans[i].data.size() > 0)
00258       {
00259         dev[i] /= float(newMeans[i].data.size());
00260       }
00261
00262             // calculate difference between previous and current cluster
00263             stepDif += newMeans[i].Dist(means[i]);
00264
00265             means[i] = newMeans[i];
00266         }
00267
00268     }
00269 }
00270
00272 // Draw edge points with the mean color of the cluster they belong to
00273 template <typename IterType, typename T>
00274 void DrawRadCluster(Cluster1D< T, DatumR<T> > *cluster,
00275                                     IterType img,
00276                         int nls)
00277 {
00278     int size = cluster->data.size();
00279     for (int i = 0; i < size; i++)
00280     {
00281         *(img + cluster->data[i]->y * nls + cluster->data[i]->x) = cluster->val;
00282     }
00283 }
00284
00286 // Draw center points and corresponding edge points of the same cluster.
00287 // Also draw mean center of cluster with black point
00288 template <typename IterType, typename T>
00289 void DrawCentCluster(Cluster2D< T, DatumXY<T> > *cluster,
00290                      IterType img,
00291                      int width,
00292                      int height,
00293                                        int nls,
00294                      T color)
00295 {
00296     // draw all cluster data
00297   int size = cluster->data.size();
00298   for (int i = 0; i < size; i++)
00299     {
00300     // draw center point
00301         int x = int(cluster->data[i]->x);
00302         int y = int(cluster->data[i]->y);
00303
00304     if (x >=0 && x < width && y >= 0 && y < height)
00305     {
00306           *(img + y*nls + x) = color;
00307     }
00308
00309     // draw corresponding edge point
00310     x = int(cluster->data[i]->p->x);
00311         y = int(cluster->data[i]->p->y);
00312         *(img + y*nls + x) = color;
00313     }
00314
00315   // draw cluster center
00316   int x = int(cluster->x + 0.5);
00317     int y = int(cluster->y + 0.5);
00318
00319   if (x >=0 && x < width && y >= 0 && y < height)
00320   {
00321       *(img + y*nls + x) = T(255);
00322
00323     y = int(cluster->y);
00324     *(img + y*nls + x) = T(255);
00325
00326     x = int(cluster->x);
00327     y = int(cluster->y + 0.5);
00328     *(img + y*nls + x) = T(255);
00329
00330     y = int(cluster->y);
00331     *(img + y*nls + x) = T(255);
00332   }
00333 }
00334
00335 #endif // KMEANS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Literature.hxx

  • Файлы
  • Список членов всех файлов

Literature.hxx

См. документацию.
00001


Pipe Line Filters: Исходный файл LMMinimization.h

  • Файлы
  • Список членов всех файлов

LMMinimization.h

См. документацию.
00001 #ifndef LMMINIMIZATION_H_
00002 #define LMMINIMIZATION_H_
00003 #include <math.h>
00004 #include <vector>
00005 #include "nrutil.h"
00006
00007 void SWAP(float a, float b)
00008 {
00009     float swap = a;
00010     a = b;
00011     b = swap;
00012 }
00013 //#define SWAP(a,b) {swap=(a);(a)=(b);(b)=swap;}
00014
00016 // Linear equation solution by Gauss-Jordan elimination, equation (2.1.1) above.
00017 // a[1..n][1..n] is the input matrix.
00018 // b[1..n][1..m] is input containing the m right-hand side vectors.
00019 // On output, a is replaced by its matrix inverse, and b is replaced by the corresponding
00020 // set of solution vectors.
00021 void gaussj(float **a,
00022                         int n,
00023                         float **b,
00024                         int m)
00025 {
00026     int *indxc, *indxr, *ipiv;
00027     int i, icol, irow, j, k, l, ll;
00028     float big, dum, pivinv/*, temp*/;
00029
00030     // The integer arrays ipiv, indxr, and indxc are used for bookkeeping on the pivoting.
00031     indxc = ivector(1, n);
00032     indxr = ivector(1, n);
00033     ipiv = ivector(1, n);
00034
00035     for (j = 0; j < n; j++)     //(j = 1; j <= n; j++)
00036     {
00037         ipiv[j] = 0;
00038     }
00039
00040     // This is the main loop over the columns to be reduced.
00041     for (i = 0; i < n; i++)     //(i = 1; i <= n; i++)
00042     {
00043         big = 0.0;
00044
00045         // This is the outer loop of the search for a pivot element.
00046         for (j = 0; j < n; j++)     //(j = 1; j <= n; j++)
00047             if (ipiv[j] != 1)
00048                 for (k = 0; k < n; k++)     // (k = 1; k <= n; k++)
00049                 {
00050                     if (ipiv[k] == 0) {
00051                         if (fabs(a[j][k]) >= big) {
00052                             big=fabs(a[j][k]);
00053                             irow=j;
00054                             icol=k;
00055                         }
00056                     } else if (ipiv[k] > 1) nrerror("gaussj: Singular Matrix-1");
00057                 }
00058                 ++(ipiv[icol]);
00059
00060                 // We now have the pivot element, so we interchange rows, if needed, to put
00061                 // the pivot element on the diagonal. The columns are not physically
00062                 // interchanged, only relabeled: indxc[i], the column of the ith pivot element,
00063                 // is the ith column that is reduced, while indxr[i] is the row in which that
00064                 // pivot element was originally located. If indxr[i] 6= indxc[i] there is an
00065                 // implied column interchange. With this form of bookkeeping, the solution b's
00066                 // will end up in the correct order, and the inverse matrix will be scrambled
00067                 // by columns.
00068                     if (irow != icol) {
00069                         for (l = 0; l < n; l++)/*(l=1; l<=n; l++)*/ SWAP(a[irow][l], a[icol][l]);
00070                         for (l = 0; l < m; l++) /*(l=1;l<=m;l++)*/SWAP(b[irow][l], b[icol][l]);
00071                     }
00072
00073                     // We are now ready to divide the pivot row by the pivot element,
00074                     // located at irow and icol.
00075                     indxr[i]=irow;
00076                         indxc[i]=icol;
00077                         if (a[icol][icol] == 0.0) nrerror("gaussj: Singular Matrix-2");
00078                     pivinv=1.0/a[icol][icol];
00079                     a[icol][icol]=1.0;
00080                     for (l = 0; l < n; l++) /*(l=1;l<=n;l++)*/a[icol][l] *= pivinv;
00081                     for (l = 0; l < m; l++) /*(l=1;l<=m;l++)*/b[icol][l] *= pivinv;
00082
00083                     // Next, we reduce the rows ...except for the pivot one, of course.
00084                     for (ll = 0; ll < n; ll++)  //(ll=1;ll<=n;ll++)
00085                         if (ll != icol) {
00086                             dum=a[ll][icol];
00087                     a[ll][icol]=0.0;
00088                     for (l = 0; l < n; l++) /*(l=1;l<=n;l++)*/a[ll][l] -= a[icol][l]*dum;
00089                     for (l = 0; l < m; l++) /*(l=1;l<=m;l++)*/b[ll][l] -= b[icol][l]*dum;
00090                         }
00091     }
00092
00093     // This is the end of the main loop over columns of the reduction.
00094     // It only remains to unscramble the solution in view of the column interchanges. We do
00095     // this by interchanging pairs of columns in the reverse order that the permutation was
00096     // built up.
00097         for (l = n-1; l >= 0 ; l--) //(l=n;l>=1;l--)
00098         {
00099             if (indxr[l] != indxc[l])
00100                 for (k = 0; k < n; k++)     //(k=1;k<=n;k++)
00101                     SWAP(a[k][indxr[l]],a[k][indxc[l]]);
00102         }
00103         // And we are done.
00104         free_ivector(ipiv,1,n);
00105         free_ivector(indxr,1,n);
00106         free_ivector(indxc,1,n);
00107 }
00108
00110 // Expand in storage the covariance matrix covar, so as to take into account parameters that are
00111 // being held fixed. (For the latter, return zero covariances.)
00112 void covsrt(float **covar,
00113                         int ma,
00114                         int ia[],
00115                         int mfit)
00116 {
00117     int i,j,k;
00118     /*float swap;*/
00119
00120     for (i = mfit; i < ma; i++)     // (i = mfit + 1; i <= ma; i++)
00121     {
00122         for (j = 0; j < i; j ++)        // (j = 1; j <= i; j ++)
00123         {
00124             covar[i][j] = covar[j][i] = 0.0;
00125         }
00126
00127         k = mfit;
00128
00129         for (j = ma - 1; j >= 0; j--)       //(j = ma; j >= 1; j--)
00130         {
00131             if (ia[j])
00132             {
00133                 for (i = 0; i < ma; i++)        //(i = 1; i <= ma; i++)
00134                 {
00135                     SWAP(covar[i][k], covar[i][j]);
00136                 }
00137
00138                 for (i = 0; i < ma; i++)        //(i = 1; i <= ma; i++)
00139                 {
00140                     SWAP(covar[k][i], covar[j][i]);
00141                 }
00142
00143                 k--;
00144             }
00145         }
00146     }
00147 }
00148
00150 // Levenberg-Marquardt method, attempting to reduce the value chisq of a fit between
00151 // a set of data points x[1..ndata], y[1..ndata] with individual standard deviations
00152 // sig[1..ndata], and a nonlinear function dependent on ma coeffcients a[1..ma].
00153 // The input array ia[1..ma] indicates by nonzero entries those components of a that
00154 // should be fitted for, and by zero entries those components that should be held fixed
00155 // at their input values.
00156 // The program returns current best-fit values for the parameters a[1..ma], and chisq.
00157 // The arrays covar[1..ma][1..ma], alpha[1..ma][1..ma] are used as working space during
00158 // most iterations.
00159 // Supply a routine funcs(x, a, yfit, dyda, ma) that evaluates the fitting function
00160 // yfit, and its derivatives dyda[1..ma] with respect to the ftting parameters a at x.
00161 // On the first call provide an initial guess for the parameters a, and set alamda < 0
00162 // for initialization (which then sets alamda = 0.001). If a step succeeds chisq becomes
00163 // smaller and alamda decreases by a factor of 10. If a step fails alamda grows by
00164 // a factor of 10. You must call this routine repeatedly until convergence is achieved.
00165 // Then, make one final call with alamda = 0, so that covar[1..ma][1..ma] returns the
00166 // covariance matrix, and alpha the curvature matrix.
00167 // (Parameters held fixed will return zero covariances.)
00168 void mrqmin(float x[],
00169                         /*float y[],*/
00170                         float y,
00171                         float sig/*[]*/,
00172                         int ndata,
00173                         float a[],
00174                         int ia[],
00175             int ma,
00176                         float **covar,
00177                         float **alpha,
00178                         float *chisq,
00179                         void (*funcs)(float [],
00180                                       float [],
00181                                                     float *,
00182                                                     float [],
00183                                                     int),
00184                         float *alamda)
00185 {
00186     void covsrt(float **covar, int ma, int ia[], int mfit);
00187     void gaussj(float **a, int n, float **b, int m);
00188     void mrqcof(float x[], float y/*[]*/, float sig/*[]*/, int ndata, float a[],
00189         int ia[], int ma, float **alpha, float beta[], float *chisq,
00190         void (*funcs)(float[], float [], float *, float [], int));
00191
00192     int j,k,l;
00193     static int mfit;
00194     static float ochisq, *atry, *beta, *da, **oneda;
00195
00196     // Initialization
00197     if (*alamda < 0.0)
00198     {
00199         atry = vector(1, ma);
00200         beta = vector(1, ma);
00201         da = vector(1, ma);
00202
00203         for (mfit = 0, j = 0; j < ma; j++)      //(mfit = 0, j = 1; j <= ma; j++)
00204         {
00205             if (ia[j])
00206             {
00207                 mfit++;
00208             }
00209         }
00210
00211         oneda = matrix(0, mfit-1, 0, 0);
00212         *alamda = 0.001;
00213         mrqcof(x, y, sig, ndata, a, ia, ma, alpha, beta, chisq, funcs);
00214         ochisq = (*chisq);
00215
00216         for (j = 0; j < ma; j++)        //(j = 1; j <= ma; j++)
00217         {
00218             atry[j]=a[j];
00219         }
00220     }
00221
00222     // Alter linearized fitting matrix, by augmenting diagonal elements.
00223     for (j = 0; j < mfit; j++)  //(j = 1; j <= mfit; j++)
00224     {
00225         for (k = 0; k < mfit; k++)      //(k = 1; k <= mfit; k++)
00226         {
00227             covar[j][k] = alpha[j][k];
00228         }
00229
00230         covar[j][j] = alpha[j][j] * (1.0 + (*alamda));
00231       oneda[j][0] = beta[j];        //oneda[j][1] = beta[j];
00232     }
00233
00234     // Matrix solution.
00235     gaussj(covar, mfit, oneda, 1);
00236
00237     for (j = 0; j < mfit; j++)      //(j = 1; j <= mfit; j++)
00238     {
00239         da[j] = oneda[j][1];
00240     }
00241
00242     // Once converged, evaluate covariance matrix.
00243     if (*alamda == 0.0)
00244     {
00245         covsrt(covar, ma, ia, mfit);
00246       covsrt(alpha, ma, ia, mfit);              //Spread out alpha to its full size too.
00247         free_matrix(oneda, 0, mfit-1, 0, 0);        //(oneda, 1, mfit, 1, 1);
00248         free_vector(da, 0, ma-1);                               //(da, 1, ma);
00249         free_vector(beta, 0, ma-1);                         //(beta, 1, ma);
00250         free_vector(atry, 0, ma-1);                         //(atry, 1, ma);
00251         return;
00252     }
00253
00254     // Did the trial succeed?
00255     for (j = 0, l = 0; l < ma; l++)     //(j = 0, l = 1; l <= ma; l++)
00256     {
00257         if (ia[l])
00258         {
00259             atry[l] = a[l] + da[++j];
00260         }
00261     }
00262
00263     mrqcof(x, y, sig, ndata, atry, ia, ma, covar, da, chisq, funcs);
00264
00265     // Success, accept the new solution.
00266     if (*chisq < ochisq)
00267     {
00268         *alamda *= 0.1;
00269         ochisq = (*chisq);
00270
00271         for (j = 0; j < mfit; j++)      //(j = 1; j <= mfit; j++)
00272         {
00273           for (k = 0; k < mfit; k++)        //(k = 1; k <= mfit; k++)
00274             {
00275                 alpha[j][k] = covar[j][k];
00276             }
00277
00278           beta[j] = da[j];
00279       }
00280
00281       for (l = 0; l < ma; l++)      //(l = 1; l <= ma; l++)
00282         {
00283             a[l]=atry[l];
00284         }
00285     }
00286   // Failure, increase alamda and return.
00287     else
00288     {
00289         *alamda *= 10.0;
00290       *chisq=ochisq;
00291     }
00292 }
00293
00295 // Used by mrqmin to evaluate the linearized fitting matrix alpha, and vector beta
00296 // as in (15.5.8), and calculate chisq.
00297 void mrqcof(float x[],
00298                         /*float y[],*/
00299                         float y,
00300                         float sig/*[]*/,
00301                         int ndata,
00302                         float a[],
00303                         int ia[],
00304                         int ma,
00305                         float **alpha,
00306                         float beta[],
00307                         float *chisq,
00308                         void (*funcs)(float [],
00309                                       float [],
00310                                                     float *,
00311                                                     float [],
00312                                                     int))
00313
00314 {
00315     int i, j, k, l, m, mfit = 0;
00316     float ymod, wt, sig2i, dy, *dyda;
00317
00318     dyda = vector(1, ma);
00319
00320     for (j = 0; j < ma; j++)        //(j = 1; j <= ma; j++)
00321     {
00322         if (ia[j])
00323         {
00324             mfit++;
00325         }
00326     }
00327
00328     // Initialize (symmetric) alpha, beta.
00329     for (j = 0; j < mfit; j++)  // (j = 1; j <= mfit; j++)
00330     {
00331         for (k = 0; k < j; k++)  // (k = 1; k <= j; k++)
00332         {
00333             alpha[j][k] = 0.0;
00334         }
00335
00336         beta[j]=0.0;
00337     }
00338
00339     *chisq = 0.0;
00340
00341     // Summation loop over all data.
00342     for (i = 0; i < ndata; i+=4/*+*/)       //(i = 1; i <= ndata; i+=4/*+*/)
00343     {
00344         (*funcs)(x + i /*[i]*/, a, &ymod, dyda, ma);
00345         sig2i = 1.0 / (sig/*[i]*/ * sig/*[i]*/);
00346         dy = y/*[i]*/ - ymod;
00347
00348         for (j = 0, l = 0; l < ma; l++)     //(j = 0, l = 1; l <= ma; l++)
00349         {
00350             if (ia[l])
00351             {
00352                 wt = dyda[l] * sig2i;
00353
00354                 for (j++, k=0 ,m = 0; m < l; m++)       //(j++, k=0 ,m = 1; m <= l; m++)
00355                 {
00356                     if (ia[m])
00357                     {
00358                         alpha[j][++k] += wt * dyda[m];
00359                     }
00360                 }
00361
00362                 beta[j] += dy * wt;
00363             }
00364         }
00365
00366         // And find chisq.
00367         *chisq += dy * dy * sig2i;
00368     }
00369
00370     // Fill in the symmetric side.
00371     for (j = 1; j < mfit; j++)  // (j = 2; j <= mfit; j++)
00372     {
00373         for (k = 0; k < j; k++)     // (k = 1; k <= j; k++)
00374         {
00375             alpha[k][j] = alpha[j][k];
00376         }
00377     }
00378
00379     free_vector(dyda, 1, ma);
00380 }
00381
00383 //y(x; a) is the sum of na/3 Gaussians (15.5.16). The amplitude, center, and width of the
00384 //Gaussians are stored in consecutive locations of a: a[i] = Bk, a[i+1] = Ek, a[i+2] = Gk,
00385 //k = 1,...,na/3. The dimensions of the arrays are a[1..na], dyda[1..na].
00386 //void fgauss(float x, float a[], float *y, float dyda[], int na)
00387 //{
00388 //  int i;
00389 //  float fac,ex,arg;
00390 //  *y=0.0;
00391 //  for (i=1;i<=na-1;i+=3) {
00392 //      arg=(x-a[i+1])/a[i+2];
00393 //      ex=exp(-arg*arg);
00394 //      fac=a[i]*ex*2.0*arg;
00395 //      *y += a[i]*ex;
00396 //      dyda[i]=ex;
00397 //      dyda[i+1]=fac/a[i+2];
00398 //      dyda[i+2]=fac*arg/a[i+2];
00399 //  }
00400 //}
00401
00402 void FToMinimaze(float x[], float a[], float *y, float dyda[], int ma)
00403 {
00404     float x1 = x[0];
00405     float y1 = x[1];
00406     float x2 = x[2];
00407     float y2 = x[3];
00408
00409     dyda[0] = x1 * x2;
00410     dyda[1] = x2 * y1;
00411     dyda[2] = x2;
00412     dyda[3] = x1 * y2;
00413     dyda[4] = y1 * y2;
00414     dyda[5] = y2;
00415     dyda[6] = x1;
00416     dyda[7] = y1;
00417     dyda[8] = 1;
00418
00419     *y = x1 * x2 * a[0] + x2 * y1 * a[1] + x2 * a[2] + x1 * y2 * a[3] +
00420            y1 * y2 * a[4] + y2 * a[5] + x1 * a[6] + y1 * a[7] + a[8];
00421 }
00422 #endif //LMMINIMIZATION_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл MatrixOperations.h

  • Файлы
  • Список членов всех файлов

MatrixOperations.h

См. документацию.
00001 #ifndef MATRIXOPERATIONS_H_
00002 #define MATRIXOPERATIONS_H_
00003
00004 #include <iostream>
00005 #include <math.h>
00006 #include <fstream>
00007 #include <vector>
00008
00009 // library includings
00010 #include "nummet.h"
00011 #include "num_linalg.h"
00012 #include "Sort.h"
00013
00014 namespace Basics3D
00015 {
00016     class T_MatrixOperations
00017     {
00018     public:
00019
00020         template <class MatrixType>
00021         static void Normalize(MatrixType &out_M,
00022                                                     const MatrixType &in_M,
00023                                                     const MatrixType &T1_1,
00024                                                     const MatrixType &T)
00025         {
00026             out_M = boost::numeric::ublas::prod(T1_1, in_M);
00027             out_M = boost::numeric::ublas::prod(out_M, T);
00028         }
00029
00031         template <class MatrixType>
00032         static void TransformIntoNormCoord(std::vector<MatrixType> &out_matrix,
00033                                              const int in_w,
00034                                              const int in_h,
00035                                                                              const double in_sigma)
00036         {
00037             double d = sqrt( double(in_w * in_w + in_h * in_h));
00038
00039             Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> T;
00040             double err = C_TransformMatrices::Normalization(T, in_w / 2.0, in_h / 2.0,
00041                                                               d / 2.0, in_sigma);
00042             Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> T_1;
00043             C_TransformMatrices::NormalizationInverse(T_1, in_w / 2.0, in_h / 2.0,
00044                                                         d / 2.0, in_sigma);
00045
00046             for (int j = 0; j < int(out_matrix.size()); j++)
00047             {
00048                 T_MatrixOperations::Normalize(out_matrix[j], out_matrix[j], T, T_1);
00049             }
00050         }
00051
00053         template <class MatrixType>
00054         static void TransformIntoPixelCoord(std::vector<MatrixType> &out_matrix,
00055                                               const int in_w,
00056                                               const int in_h,
00057                                                                               const double in_sigma)
00058         {
00059             double d = sqrt(double(in_w * in_w + in_h * in_h));
00060
00061             Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> T;
00062             double err = C_TransformMatrices::Normalization(T, in_w / 2.0, in_h / 2.0,
00063                                                               d / 2.0, in_sigma);
00064             Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> TT;
00065             TT = boost::numeric::ublas::trans(T);
00066
00067             for (int i = 0; i < (int)out_matrix.size(); i++)
00068             {
00069                 T_MatrixOperations::Normalize(out_matrix[i], out_matrix[i], TT, T);
00070             }
00071         }
00072
00074         // Sort columns in order given by indexes k[]
00075         template <class MatrixType>
00076         static void SortColumns(MatrixType &out_M,
00077                                   const MatrixType &in_M,
00078                                                         const SortS<double> in_k[])
00079         {
00080             int m = in_M.size1();
00081             int n = in_M.size2();
00082
00083             // checking of sizes
00084             if (out_M.size1() != m || out_M.size2() != n)
00085             {
00086                 std::ostringstream os;
00087                 os << "Function T_MatrixOperations::SortColumns: input and output "
00088                     << "matrices should have the same size";
00089                 std::string str = os.str();
00090                 throw str.c_str();
00091             }
00092
00093             /*if (in_k.size() != n)
00094             {
00095                 std::ostringstream os;
00096                 os << "Function T_MatrixOperations::SortColumns: number of indexes "
00097                     << "and number of columns should be the same";
00098                 std::string str = os.str();
00099                 throw str.c_str();
00100             }*/
00101
00102             std::cout << std::endl << std::endl << "in_M" << std::endl;
00103             T_MatrixOperations::Print(in_M);
00104
00105             MatrixType tmp;
00106
00107             // Sorting
00108             for (int i = 0; i < m; i++)
00109             {
00110                 for (int j = 0; j < n; j++)
00111                 {
00112                     tmp(i, j) = in_M(i, n - in_k[j].index - 1);
00113                 }
00114             }
00115             out_M = tmp;
00116
00117             // Printing
00118             std::cout << std::endl << std::endl << "k" << std::endl;
00119             for (int i = 0; i < n; i++)
00120             {
00121                 std::cout << in_k[i].index << "  ";
00122             }
00123             std::cout << std::endl << std::endl << "out_M" << std::endl;
00124             T_MatrixOperations::Print(out_M);
00125         }
00126
00128         template <class MatrixType>
00129         static void Scale(MatrixType &out_M,
00130                             const MatrixType &in_M)
00131         {
00132             out_M.resize(in_M.size1(), in_M.size2(), false);
00133
00134             double c = in_M(in_M.size1() - 1, in_M.size2() - 1);
00135
00136             for (int i = 0; i < (int)in_M.size1(); i++)
00137             {
00138                 for (int j = 0; j < (int)in_M.size2(); j++)
00139                 {
00140                     out_M(i, j) = in_M(i, j) / c;
00141                 }
00142             }
00143         }
00144
00146         template <class MatrixType>
00147         static void Print(const MatrixType &in_M)
00148         {
00149             for (int i = 0; i < (int)in_M.size1()/*m_m*/; i++)
00150             {
00151                 if (i != 0) std::cout << "\n";
00152
00153                 for (int j = 0; j < (int)in_M.size2()/*m_n*/; j++)
00154                 {
00155                     /*if (abs(m_Ar[i * m_n + j]) < 0.000001)
00156                     {
00157                         std::cout.width(10);
00158                         std::cout << 0;
00159                     }
00160                     else
00161                     {*/
00162                         std::cout.precision(3);
00163                         std::cout.width(10);
00164                         std::cout << in_M(i, j);//m_Ar[i * size2()/*m_n*/ + j];
00165                     /*}*/
00166                 }
00167             }
00168         }
00170         template <class MatrixType>
00171         static void Save (const MatrixType &in_M,
00172                                             const char *filename)
00173         {
00174             std::ofstream outFile;
00175             outFile.open(filename);
00176
00177             for (int i = 0; i < (int)in_M.size1()/*m_m*/; i++)
00178             {
00179                 for (int j = 0; j < (int)in_M.size2()/*m_n*/; j++)
00180                 {
00181                     outFile << in_M(i, j)/*m_Ar[i * m_n + j]*/ << " ";
00182                 }
00183             }
00184
00185             outFile.close();
00186         }
00187
00188     };
00189 }
00190 #endif // MATRIXOPERATIONS_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл MistakeFunc.h

  • Файлы
  • Список членов всех файлов

MistakeFunc.h

См. документацию.
00001 #ifndef MISTAKE_FUNC_H_
00002 #define MISTAKE_FUNC_H_
00003
00004 #include <iostream>
00005 #include <vector>
00006 #include <math.h>
00007
00008 // library includings
00009 #include "num_linalg.h"
00010
00011 // own includings
00012 #include "Point2D.h"
00013 #include "Points2DSet.h"
00014
00015 namespace Basics3D
00016 {
00017     template <class Operations>
00018     class T_MistakeFunc
00019     {
00020     private:
00021         T_Points2DSet<C_Point2D> m_Points;
00022         int m_M;
00023
00024     public:
00026         T_MistakeFunc(const T_Points2DSet<C_Point2D> &in_Points,
00027                                     int in_M)
00028         {
00029           m_Points = in_Points;
00030             m_M = in_M;
00031         }
00032
00034         double Func(const Vtl::NumAlg::Lin::ublas::vector<double> &in_matrix)
00035         {
00036             double f = 0;
00037
00038             int size = m_Points.Size();
00039
00040             for (int i = 0; i < m_Points.Size(); i ++)
00041             {
00042                 f += Operations::MistFunc(in_matrix, m_Points[2 * i], m_Points[2 * i + 1]);
00043             }
00044
00045             return f;
00046         }
00047
00049         void Derivative(Vtl::NumAlg::Lin::ublas::vector<double> &out_dy,
00050                           const Vtl::NumAlg::Lin::ublas::vector<double> &in_matrix)
00051         {
00052             for (int i = 0; i < m_M; i++)
00053             {
00054                 out_dy[i] = 0;
00055             }
00056
00057             int size = m_Points.Size();
00058
00059             for (int i = 0; i < size; i++)
00060             {
00061                 Vtl::NumAlg::Lin::ublas::vector<double> tmp;
00062                 Operations::DerivativeOfMistFunc(tmp, in_matrix, m_Points[2 * i],
00063                                                    m_Points[2 * i + 1]);
00064
00065                 for (int j = 0; j < m_M; j++)
00066                 {
00067                   out_dy[j] += tmp[j];
00068                 }
00069             }
00070         }
00071     };
00072 }
00073 #endif // MISTAKE_FUNC_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Model.h

  • Файлы
  • Список членов всех файлов

Model.h

См. документацию.
00001 #ifndef MODEL_H_
00002 #define MODEL_H_
00003
00004 //library includings
00005 #include "num_linalg.h"
00006
00007 //own includings
00008 #include "Point2D.h"
00009 #include "Points2DSet.h"
00010 #include "Points2DParamSet.h"
00011
00012 namespace Basics3D
00013 {
00014     template<class Operations>
00015     class T_Model
00016     {
00017     private:
00018         Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> m_T;            // Normalization
00019         Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> m_T1_1;   //           matrices
00020         T_Points2DSet<C_Point2D> m_PointsSet;
00022     private:
00023         void Denormalize(std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>>
00024                                                                                  &out_Matrices,
00025                                          const double in_err)
00026         {
00027       for (int i = 0; i < (int)out_Matrices.size(); i++)
00028             {
00029                 T_MatrixOperations::Normalize(out_Matrices[i], out_Matrices[i], m_T1_1, m_T);
00030             }
00031         }
00032
00033   public:
00035         T_Model(){}
00036
00038         T_Model(T_Points2DSet<C_Point2D> in_PointsSet)
00039         {
00040           m_PointsSet = in_PointsSet;
00041         }
00042
00044         void Transform(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 1> &out_Point,
00045                          const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_Matrix,
00046                          const int i)
00047         {
00048           m_PointsSet[i].Matrix(&out_Point);
00049             out_Point = boost::numeric::ublas::prod(in_Matrix, out_Point);
00050             out_Point(0, 0) = out_Point(0, 0) / out_Point(2, 0);
00051             out_Point(1, 0) = out_Point(1, 0) / out_Point(2, 0);
00052             out_Point(2, 0) = 1;
00053         }
00054
00056         void Transform(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 1> &out_Point,
00057                          const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_Matrix,
00058                          const C_Point2D &in_point)
00059         {
00060           in_point.Matrix(&out_Point);
00061             out_Point = boost::numeric::ublas::prod(in_Matrix, out_Point);
00062             out_Point(0, 0) = out_Point(0, 0) / out_Point(2, 0);
00063             out_Point(1, 0) = out_Point(1, 0) / out_Point(2, 0);
00064             out_Point(2, 0) = 1;
00065         }
00066
00068         void GetSample(T_Points2DSet<C_Point2D> &out_sample)
00069         {
00070             m_PointsSet.RetPoints(out_sample, Operations::SampleSize());
00071         }
00072
00074         void ComputeMatrices
00075                    (std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> &out_Matrices,
00076                             T_Points2DSet<C_Point2D> &in_sample,
00077                             const double in_sigma)
00078         {
00079             Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> T1;
00080             double err = in_sample.Normalize(m_T, T1, in_sigma);
00081             Operations::NormMatrix(m_T1_1, T1, err);
00082           Vtl::NumAlg::Lin::ublas::matrix<double> system;
00083             Operations::CreateSystem(system, in_sample);
00084             Operations::Find(out_Matrices, system);
00085             Denormalize(out_Matrices, err);
00086         }
00087
00089         int IsInlier(const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_Matrix,
00090                        const int i,
00091                                  const double in_sigma)
00092         {
00093             if (m_PointsSet[2 * i].Numb() < 0)
00094             {
00095               return 0;
00096             }
00097
00098             Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 1> Point(3, 1);
00099           Transform(Point, in_Matrix, 2 * i);
00100
00101             double d = Operations::Dist(Point, m_PointsSet[2 * i + 1]);
00102
00103             if (d < Operations::DistThresh(in_sigma))
00104             {
00105                 return 1;
00106             }
00107             else
00108             {
00109               return 0;
00110             }
00111         }
00112
00114         void CountInliers(T_Points2DSet<C_Point2D> &out_inl,
00115                            const C_Points2DParamSet &in_points1,
00116                                          const C_Points2DParamSet &in_points2,
00117                            const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_matrix,
00118                            const double in_sigma,
00119                                          const double in_t)
00120         {
00121             int size1 = in_points1.Size();
00122             int size2 = in_points2.Size();
00123
00124             // for each point from the 1st set
00125             for (int i = 0; i < size1; i++)
00126             {
00127                 const C_Point2DParam *p_Point1 = in_points1[i];
00128
00129                 // points, which are not to be operated on, have number -1
00130                 if (p_Point1->Numb() < 0)
00131                 {
00132                   continue;
00133                 }
00134
00135                 Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 1> PointTrM(3, 1);
00136                 Transform(PointTrM, in_matrix,
00137                             C_Point2D(p_Point1->X(), p_Point1->Y(), p_Point1->Numb()));
00138
00139                 C_Point2D prevPoint(-1, -1, -1);
00140                 C_Point2D bestPoint(-1, -1, -1);
00141                 double prevDist = 1;
00142                 double bestDist = 1000;
00143
00144                 // for each point of the 2nd set
00145                 for (int j = 0; j < size2; j++)
00146                 {
00147                     const C_Point2DParam *p_Point2 = in_points2[j];
00148
00149                     // points, which are not to be operated on, have number -1
00150                     if (p_Point2->Numb() < 0)
00151                     {
00152                         continue;
00153                     }
00154
00155                     // if PointTrM is close enought to p_Point2
00156                     if (Operations::Dist(PointTrM, *p_Point2) < Operations::DistThresh(in_sigma))
00157                     {
00158                         // distance between parameter vectors of p_Point1 and p_Point2
00159                         double dist = p_Point1->Distance(*p_Point2);
00160
00161                         if (dist < bestDist)
00162                         {
00163                             prevDist = bestDist;
00164                             prevPoint = bestPoint;
00165                             bestDist = dist;
00166                             bestPoint = *p_Point2;
00167                         }
00168                     }
00169                 }
00170
00171                 // if difference between the best corresponding point and
00172                 // the next cor. point is big enought
00173                 if (prevDist / bestDist > in_t)
00174                 {
00175                     std::vector<C_Point2D> P;
00176                     P.push_back(C_Point2D(p_Point1->X(), p_Point1->Y(), p_Point1->Numb()));
00177                     P.push_back(C_Point2D(bestPoint.X(), bestPoint.Y(), bestPoint.Numb()));
00178                     out_inl.Add(P);
00179                 }
00180             }
00181         }
00182
00183
00184     };
00185 }
00186 #endif //MODEL_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл mslieqlz.h

  • Файлы
  • Список членов всех файлов

mslieqlz.h

См. документацию.
00001 #ifndef _MSILIEQLZ_H
00002 #define _MSILIEQLZ_H
00004 #include "aimage.h"
00005 #include "progrcnt.h"
00007 // MSliEqlz.h - SlidingEqualization filter class header file                          //
00008 // by Mintchenkov M.V.                                                                //
00010 class MSlidingEqualization
00011 {
00012     long *hist;
00013     const AImage* src_image;
00014     int N_colors;
00015     int Hi;
00016     int Wd;
00017     int Bt;
00018     AImage::YImageClass ClassType;
00019 private:
00020     void CloseThis();
00021 public:
00022     MSlidingEqualization();
00023     virtual ~MSlidingEqualization() { CloseThis(); }
00024     virtual void Init(const AImage *src);
00025     virtual bool Run(AImage* dst,int Original_XFrmSz,int Original_YFrmSz, ProgressCounter* Ind);
00026
00027     virtual void Close() { CloseThis(); }// use it to free up memory in use
00028
00029     // parameters for Destination Image
00030     virtual inline int Height() { return Hi; }// use it to get current height of image
00031     virtual inline int Width() { return Wd; }// use it to get current width of image
00032     virtual int Bits() { return Bt; }// use it to get current BitsPerPixel of image
00033     virtual inline AImage::YImageClass ImageClass() { return ClassType; }// use it to get current image class
00034 };
00036 #endif //_MSILIEQLZ_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- j -

  • jacobi() : Basics3D


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- k -

  • KT_Conv : Vtl::Plf::Kernel
  • KT_Corr : Vtl::Plf::Kernel
  • KT_Win : Vtl::Plf::Kernel


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- l -

  • lnsrch() : Basics3D
  • LoadPoints() : Basics3D


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- m -

  • MakeDifferenceImage() : Basics3D
  • MarkCorrespondences() : Basics3D
  • Mask : Vtl::Img
  • matrix_3_3 : Basics3D
  • matrix_max_abs_element() : Vtl::NumAlg::Lin
  • max() : Vtl
  • max_abs_element() : Vtl::NumAlg::Lin
  • min() : Vtl
  • minus_if_odd()
: Vtl::Alg
, Vtl::Alg::Impl
  • mult() : Vtl::NumAlg::IntTransf::Utils
  • mult_if()
: Vtl::Alg::Impl
, Vtl::Alg
, Vtl::Alg::Impl
  • mult_if_odd() : Vtl::Alg
  • Multichan : Vtl::Img
  • MultMinusOnePowerTo() : Vtl::Meta


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- n -

  • n_pow() : Vtl::Alg
  • nDefault : Vtl::ImAlg::C
  • nNoScale : Vtl::ImAlg::C
  • norm_ifft() : Vtl::NumAlg::IntTransf::Fourier
  • NormalizationType : Vtl::ImAlg::C
  • NormalizeImage() : Tests
  • nrc_dfpmin() : Vtl::NumAlg::Opt
  • nrc_lnsrch() : Vtl::NumAlg::Opt
  • nSaveChrom : Vtl::ImAlg::C
  • nSaveRatio : Vtl::ImAlg::C
  • nStretch : Vtl::ImAlg::C


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- o -

  • offset_to_zero_freq() : Vtl::NumAlg::IntTransf::Utils
  • offset_type : Vtl::Img
  • operator<<()
: Vtl::ImAlg::Model
, Vtl::ImAlg::Transf
, Vtl::ImAlg::Model
  • OtherIntegerTypes : Vtl::Types
  • OzWord : IFF


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- z -

  • zbrac() : Basics3D


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- a -

  • AddOrSub() : Vtl::Meta
  • AddQuadrants2D() : Vtl::NumAlg::IntTransf::Hartley
  • Affine() : Vtl::ImAlg::Resamp
  • align()
: Vtl::Meta
, Vtl::Img::Impl::Layout
  • AllArithTypes : Vtl::Types
  • AllIntegerTypes : Vtl::Types
  • ArithTypes : Vtl::Types
  • ArrayElemProduct() : Vtl::NumAlg::IntTransf::Utils


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- b -

  • BIL : Vtl::Img
  • BIP : Vtl::Img
  • bit_reversal() : Vtl::NumAlg::IntTransf::Utils
  • bit_reversal_complex() : Vtl::NumAlg::IntTransf::Utils
  • border() : Vtl::ImAlg::Conv::Impl::FastGaussConvolve
  • BoundsCyclic() : Vtl::ImAlg::Tools::findMax
  • BoundsNo() : Vtl::ImAlg::Tools::findMax
  • BSQ : Vtl::Img
  • build_strides() : Vtl::Img::Impl::Layout


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- c -

  • c() : Vtl::ImAlg::WndFun::Impl::Gauss
  • calc_F1multF2star_from_2_simult_real_fft() : Vtl::NumAlg::IntTransf::Fourier::F::Impl
  • calc_total_sum() : Vtl::ImAlg::Registration::Impl
  • CalcSmalestPow2() : Vtl::NumAlg::IntTransf::Utils
  • CartToPolar() : Vtl::ImAlg::Resamp
  • changeExt() : YFileSys
  • changeExtIf() : YFileSys
  • comp_AmpToPolar() : Vtl::ImAlg::Registration::Impl
  • comp_Phase() : Vtl::ImAlg::Registration::Impl
  • comp_phase_corr() : Vtl::ImAlg::Registration::Impl
  • comp_Rotate() : Vtl::ImAlg::Registration::Impl
  • Conv1pt() : Vtl::ImAlg::Conv
  • ConvolveNoExt() : Vtl::ImAlg::Conv
  • copy() : Vtl::Meta
  • copy_10_7() : Vtl::ImAlg::Tools
  • copy_1_1() : Vtl::ImAlg::Tools
  • copy_1_2() : Vtl::ImAlg::Tools
  • copy_2_1() : Vtl::ImAlg::Tools
  • copy_2_2() : Vtl::ImAlg::Tools
  • copy_2_3() : Vtl::ImAlg::Tools
  • copy_2_4() : Vtl::ImAlg::Tools
  • copy_3_1() : Vtl::ImAlg::Tools
  • copy_3_2() : Vtl::ImAlg::Tools
  • copy_3_3() : Vtl::ImAlg::Tools
  • copy_3_4() : Vtl::ImAlg::Tools
  • copy_3_5() : Vtl::ImAlg::Tools
  • copy_5_1() : Vtl::ImAlg::Tools
  • copy_6_1() : Vtl::ImAlg::Tools
  • CreateDir() : YFileSys
  • CreateFileName() : Tests
  • cwd() : YFileSys


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- d -

  • delta_correlation() : Vtl::ImAlg::Registration::Impl
  • determinant() : Vtl::Meta
  • dif_sum() : Vtl::NumAlg::IntTransf::Hartley::Impl
  • DrawEpipolarLines() : Basics3D
  • dsin() : Vtl::Alg


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- e -

  • EnviSample_DataTypesList : Vtl::Img
  • EnviSampleTypesList : Vtl::Img
  • envTransf_1_1() : Vtl::ImAlg::Tools
  • envTransf_2Ddircheck() : Vtl::ImAlg::Tools
  • envTransf_3D() : Vtl::ImAlg::Tools
  • envTransf_3e1_1() : Vtl::ImAlg::Tools
  • erf() : Vtl::NumAlg::Spf
  • erfc() : Vtl::NumAlg::Spf
  • erfcc() : Vtl::NumAlg::Spf
  • EssentialMatrix() : Basics3D


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- f -

  • fft1D() : Vtl::NumAlg::IntTransf::Fourier
  • fft2D() : Vtl::NumAlg::IntTransf::Fourier
  • fft3D() : Vtl::NumAlg::IntTransf::Fourier
  • fftND() : Vtl::NumAlg::IntTransf::Fourier
  • fht1D() : Vtl::NumAlg::IntTransf::Hartley
  • fht1D_() : Vtl::NumAlg::IntTransf::Hartley
  • fht2D() : Vtl::NumAlg::IntTransf::Hartley
  • fht2D_square() : Vtl::NumAlg::IntTransf::Hartley
  • find_offset() : Vtl::ImAlg::Registration::Impl
  • find_shift() : Vtl::ImAlg::Registration::Impl
  • FindCameraQuaternion() : Basics3D::Structure
  • FindCommonFeaturePoints() : Basics3D
  • FindTranslationToObjectCenterOfMass() : Basics3D::Structure
  • flip_vert() : Vtl::ImAlg::Registration::Impl
  • Fmin() : Vtl::NumAlg::Opt
  • ForEachDimensionDo1D() : Vtl::NumAlg::IntTransf::Utils
  • ForEachPermutation() : Vtl::Meta
  • ForEachPermutationOfIndexList() : Vtl::Meta
  • FromFM() : Basics3D::Structure


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- g -

  • G() : Vtl::ImAlg::Registration::Impl::OFlow
  • GammaCorFunctor() : Tests
  • getDir() : YFileSys
  • getEnv() : YFileSys
  • getExt() : YFileSys
  • getFileSize() : YFileSys
  • GetImag() : Vtl::NumAlg::IntTransf::Hartley
  • GetImag_1D() : Vtl::NumAlg::IntTransf::Hartley
  • GetModul() : Vtl::NumAlg::IntTransf::Hartley
  • getName() : YFileSys
  • getNameWithoutExt() : YFileSys
  • GetReal() : Vtl::NumAlg::IntTransf::Hartley
  • GetReal_1D() : Vtl::NumAlg::IntTransf::Hartley
  • getTime() : YFileSys
  • Grayscale : Vtl::Img


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- h -

  • highpass_filtering() : Vtl::ImAlg::Registration::Impl
  • highpass_filtering_half() : Vtl::ImAlg::Registration::Impl
  • HSV_HSL_hue() : Vtl::ImAlg::C
  • hypot() : Vtl::NumAlg::Lin


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- i -

  • ifft1D() : Vtl::NumAlg::IntTransf::Fourier
  • ifft2D() : Vtl::NumAlg::IntTransf::Fourier
  • ifft3D() : Vtl::NumAlg::IntTransf::Fourier
  • ifht1D() : Vtl::NumAlg::IntTransf::Hartley
  • ifht2D() : Vtl::NumAlg::IntTransf::Hartley
  • ImageClass : Vtl::Img
  • InRow_BoundsCyclic() : Vtl::ImAlg::Tools::findMax::Impl
  • InRow_BoundsNo() : Vtl::ImAlg::Tools::findMax::Impl
  • IntegerTypes : Vtl::Types
  • IntegrateKer() : Vtl::Plf::Kernel
  • IntegrateWindowedData() : Vtl::Plf::Kernel
  • Interleave : Vtl::Img
  • inverse_diag_matrix() : Vtl::NumAlg::Lin
  • inverse_diag_matrix_positive() : Vtl::NumAlg::Lin
  • IsAttrEq : YXML
  • isDirExist() : YFileSys
  • isExists() : YFileSys
  • isFileExist() : YFileSys
  • isFullName() : YFileSys
  • IsNameEq : YXML
  • isPathExist() : YFileSys


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- p -

  • Palette : Vtl::Img
  • print() : Vtl::Meta
  • print_array() : Vtl::Meta
  • PrintAndSave() : Basics3D
  • proc_pos_neg_freq() : Vtl::NumAlg::IntTransf::Utils
  • prod_diag() : Vtl::NumAlg::Lin
  • ProjectiveTransform() : Vtl::ImAlg::Resamp


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- q -

  • Q() : Vtl::ImAlg::WndFun::Impl::Gauss
  • quasi_fht2D() : Vtl::NumAlg::IntTransf::Hartley
  • quasi_fhtND() : Vtl::NumAlg::IntTransf::Hartley


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- r -

  • Ransac() : Basics3D
  • RealTypes : Vtl::Types
  • RecompMatrix() : Basics3D
  • RelerrEps() : Vtl::NumAlg
  • remExt() : YFileSys
  • Return1stArg() : Vtl::Alg
  • ReturnArg() : Vtl::Alg
  • ReturnArg_() : Vtl::Alg
  • rev() : Vtl::NumAlg::IntTransf::Utils
  • rm() : YFileSys
  • RotateScale() : Vtl::ImAlg::Resamp
  • RQDecomposition() : Basics3D
  • rtnewt() : Basics3D
  • rtsafe() : Basics3D


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- s -

  • SampleType : Vtl::Img
  • SaveAbsImageArray() : Tests
  • SaveColourImageArray() : Tests
  • SaveImage() : Tests
  • SaveImageArray() : Tests
  • SaveNormImageArray() : Tests
  • SaveVRML_AsPointsSet() : Basics3D::Structure
  • SEP : Vtl::Img
  • set() : Vtl::Meta
  • set_seq() : Vtl::Meta
  • sign() : Vtl::NumAlg
  • SignedIntegerTypes : Vtl::Types
  • SignedTypes : Vtl::Types
  • sincos()
: Vtl::Alg::Impl
, Vtl::Alg
  • sing_fortran() : Vtl::NumAlg::Lin
  • SingularValues() : Basics3D
  • smallest_log2_ge_size() : Vtl::NumAlg::IntTransf::Utils
  • SolveSystem() : Basics3D
  • sort() : Vtl::NumAlg::Implicit
  • sort_columns() : Vtl::NumAlg::Implicit
  • Sqr() : Vtl::NumAlg::IntTransf::Utils
  • sqr() : Vtl , Vtl::Plf::F11
  • Sscanf()
: Gen::Data
, Gen::Data::Impl
, Gen::Data
, Gen::Data::Impl
, Gen::Data
  • ST_c32f : Vtl::Img
  • ST_c64f : Vtl::Img
  • ST_f32 : Vtl::Img
  • ST_f64 : Vtl::Img
  • ST_s16 : Vtl::Img
  • ST_s32 : Vtl::Img
  • ST_s64 : Vtl::Img
  • ST_s8 : Vtl::Img
  • ST_u16 : Vtl::Img
  • ST_u32 : Vtl::Img
  • ST_u64 : Vtl::Img
  • ST_u8 : Vtl::Img
  • ST_Unknown : Vtl::Img
  • StrCmpI() : YFileSys
  • sum() : Vtl::Meta
  • swap() : Vtl::NumAlg::IntTransf::Utils
  • SwapArrayHalfs()
: Vtl::NumAlg::IntTransf::Utils
, Vtl::NumAlg::IntTransf::Utils::Impl
  • SwapQuadrants() : Vtl::NumAlg::IntTransf::Utils
  • SwapQuadrants_offset() : Vtl::NumAlg::IntTransf::Utils::Impl
  • SwapQuarters() : Vtl::NumAlg::IntTransf::Utils
  • sys_chrom : Vtl::ImAlg::C
  • sys_hue : Vtl::ImAlg::C
  • sys_other : Vtl::ImAlg::C
  • SystemType : Vtl::ImAlg::C


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- t -

  • Test() : Basics3D
  • test_save_x() : Tests
  • ToBounds() : Vtl
  • Transform() : Vtl::ImAlg::Resamp
  • transform_and_zero_freq() : Vtl::ImAlg::Registration::Impl
  • TransposeSqrMatrix() : Vtl::NumAlg::IntTransf::Utils
  • TrueColor : Vtl::Img
  • Type : Vtl::Plf::Kernel
  • type2ostream() : Vtl::Meta::IL


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- u -

  • UnsignedIntegerTypes : Vtl::Types


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- v -

  • v12_bilin() : Hanina
  • v12_bilinear() : Hanina


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- w -

  • window() : Vtl::ImAlg::Registration::Impl
  • WindowData() : Vtl::Plf::Kernel


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • k
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • u
  • v
  • w
  • x
  • z

Полный список членов простанств имен.

- x -

  • xchg() : Vtl::ImAlg::Tools


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений

  • ImageClass : Vtl::Img
  • Interleave : Vtl::Img
  • NormalizationType : Vtl::ImAlg::C
  • SampleType : Vtl::Img
  • SystemType : Vtl::ImAlg::C
  • Type : Vtl::Plf::Kernel


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • b
  • g
  • k
  • m
  • n
  • p
  • s
  • t

- b -

  • BIL : Vtl::Img
  • BIP : Vtl::Img
  • BSQ : Vtl::Img

- g -

  • Grayscale : Vtl::Img

- k -

  • KT_Conv : Vtl::Plf::Kernel
  • KT_Corr : Vtl::Plf::Kernel
  • KT_Win : Vtl::Plf::Kernel

- m -

  • Mask : Vtl::Img
  • Multichan : Vtl::Img

- n -

  • nDefault : Vtl::ImAlg::C
  • nNoScale : Vtl::ImAlg::C
  • nSaveChrom : Vtl::ImAlg::C
  • nSaveRatio : Vtl::ImAlg::C
  • nStretch : Vtl::ImAlg::C

- p -

  • Palette : Vtl::Img

- s -

  • SEP : Vtl::Img
  • ST_c32f : Vtl::Img
  • ST_c64f : Vtl::Img
  • ST_f32 : Vtl::Img
  • ST_f64 : Vtl::Img
  • ST_s16 : Vtl::Img
  • ST_s32 : Vtl::Img
  • ST_s64 : Vtl::Img
  • ST_s8 : Vtl::Img
  • ST_u16 : Vtl::Img
  • ST_u32 : Vtl::Img
  • ST_u64 : Vtl::Img
  • ST_u8 : Vtl::Img
  • ST_Unknown : Vtl::Img
  • sys_chrom : Vtl::ImAlg::C
  • sys_hue : Vtl::ImAlg::C
  • sys_other : Vtl::ImAlg::C

- t -

  • TrueColor : Vtl::Img


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- _ -

  • _dfpmin() : Basics3D


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- j -

  • jacobi() : Basics3D


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- l -

  • lnsrch() : Basics3D
  • LoadPoints() : Basics3D


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- m -

  • MakeDifferenceImage() : Basics3D
  • MarkCorrespondences() : Basics3D
  • matrix_max_abs_element() : Vtl::NumAlg::Lin
  • max() : Vtl
  • max_abs_element() : Vtl::NumAlg::Lin
  • min() : Vtl
  • minus_if_odd()
: Vtl::Alg::Impl
, Vtl::Alg
  • mult() : Vtl::NumAlg::IntTransf::Utils
  • mult_if()
: Vtl::Alg::Impl
, Vtl::Alg
  • mult_if_odd() : Vtl::Alg
  • MultMinusOnePowerTo() : Vtl::Meta


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- n -

  • n_pow() : Vtl::Alg
  • norm_ifft() : Vtl::NumAlg::IntTransf::Fourier
  • NormalizeImage() : Tests
  • nrc_dfpmin() : Vtl::NumAlg::Opt
  • nrc_lnsrch() : Vtl::NumAlg::Opt


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- o -

  • offset_to_zero_freq() : Vtl::NumAlg::IntTransf::Utils
  • operator<<() : Vtl::ImAlg::Model , Vtl::ImAlg::Transf


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- z -

  • zbrac() : Basics3D


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- a -

  • AddOrSub() : Vtl::Meta
  • AddQuadrants2D() : Vtl::NumAlg::IntTransf::Hartley
  • Affine() : Vtl::ImAlg::Resamp
  • align()
: Vtl::Img::Impl::Layout
, Vtl::Meta
  • ArrayElemProduct() : Vtl::NumAlg::IntTransf::Utils


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- b -

  • bit_reversal() : Vtl::NumAlg::IntTransf::Utils
  • bit_reversal_complex() : Vtl::NumAlg::IntTransf::Utils
  • border() : Vtl::ImAlg::Conv::Impl::FastGaussConvolve
  • BoundsCyclic() : Vtl::ImAlg::Tools::findMax
  • BoundsNo() : Vtl::ImAlg::Tools::findMax
  • build_strides() : Vtl::Img::Impl::Layout


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- c -

  • c() : Vtl::ImAlg::WndFun::Impl::Gauss
  • calc_F1multF2star_from_2_simult_real_fft() : Vtl::NumAlg::IntTransf::Fourier::F::Impl
  • calc_total_sum() : Vtl::ImAlg::Registration::Impl
  • CalcSmalestPow2() : Vtl::NumAlg::IntTransf::Utils
  • CartToPolar() : Vtl::ImAlg::Resamp
  • changeExt() : YFileSys
  • changeExtIf() : YFileSys
  • comp_AmpToPolar() : Vtl::ImAlg::Registration::Impl
  • comp_Phase() : Vtl::ImAlg::Registration::Impl
  • comp_phase_corr() : Vtl::ImAlg::Registration::Impl
  • comp_Rotate() : Vtl::ImAlg::Registration::Impl
  • Conv1pt() : Vtl::ImAlg::Conv
  • ConvolveNoExt() : Vtl::ImAlg::Conv
  • copy() : Vtl::Meta
  • copy_10_7() : Vtl::ImAlg::Tools
  • copy_1_1() : Vtl::ImAlg::Tools
  • copy_1_2() : Vtl::ImAlg::Tools
  • copy_2_1() : Vtl::ImAlg::Tools
  • copy_2_2() : Vtl::ImAlg::Tools
  • copy_2_3() : Vtl::ImAlg::Tools
  • copy_2_4() : Vtl::ImAlg::Tools
  • copy_3_1() : Vtl::ImAlg::Tools
  • copy_3_2() : Vtl::ImAlg::Tools
  • copy_3_3() : Vtl::ImAlg::Tools
  • copy_3_4() : Vtl::ImAlg::Tools
  • copy_3_5() : Vtl::ImAlg::Tools
  • copy_5_1() : Vtl::ImAlg::Tools
  • copy_6_1() : Vtl::ImAlg::Tools
  • CreateDir() : YFileSys
  • CreateFileName() : Tests
  • cwd() : YFileSys


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- d -

  • delta_correlation() : Vtl::ImAlg::Registration::Impl
  • determinant() : Vtl::Meta
  • dif_sum() : Vtl::NumAlg::IntTransf::Hartley::Impl
  • DrawEpipolarLines() : Basics3D
  • dsin() : Vtl::Alg


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- e -

  • envTransf_1_1() : Vtl::ImAlg::Tools
  • envTransf_2Ddircheck() : Vtl::ImAlg::Tools
  • envTransf_3D() : Vtl::ImAlg::Tools
  • envTransf_3e1_1() : Vtl::ImAlg::Tools
  • erf() : Vtl::NumAlg::Spf
  • erfc() : Vtl::NumAlg::Spf
  • erfcc() : Vtl::NumAlg::Spf
  • EssentialMatrix() : Basics3D


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- f -

  • fft1D() : Vtl::NumAlg::IntTransf::Fourier
  • fft2D() : Vtl::NumAlg::IntTransf::Fourier
  • fft3D() : Vtl::NumAlg::IntTransf::Fourier
  • fftND() : Vtl::NumAlg::IntTransf::Fourier
  • fht1D() : Vtl::NumAlg::IntTransf::Hartley
  • fht1D_() : Vtl::NumAlg::IntTransf::Hartley
  • fht2D() : Vtl::NumAlg::IntTransf::Hartley
  • fht2D_square() : Vtl::NumAlg::IntTransf::Hartley
  • find_offset() : Vtl::ImAlg::Registration::Impl
  • find_shift() : Vtl::ImAlg::Registration::Impl
  • FindCameraQuaternion() : Basics3D::Structure
  • FindCommonFeaturePoints() : Basics3D
  • FindTranslationToObjectCenterOfMass() : Basics3D::Structure
  • flip_vert() : Vtl::ImAlg::Registration::Impl
  • Fmin() : Vtl::NumAlg::Opt
  • ForEachDimensionDo1D() : Vtl::NumAlg::IntTransf::Utils
  • ForEachPermutation() : Vtl::Meta
  • ForEachPermutationOfIndexList() : Vtl::Meta
  • FromFM() : Basics3D::Structure


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- g -

  • G() : Vtl::ImAlg::Registration::Impl::OFlow
  • GammaCorFunctor() : Tests
  • getDir() : YFileSys
  • getEnv() : YFileSys
  • getExt() : YFileSys
  • getFileSize() : YFileSys
  • GetImag() : Vtl::NumAlg::IntTransf::Hartley
  • GetImag_1D() : Vtl::NumAlg::IntTransf::Hartley
  • GetModul() : Vtl::NumAlg::IntTransf::Hartley
  • getName() : YFileSys
  • getNameWithoutExt() : YFileSys
  • GetReal() : Vtl::NumAlg::IntTransf::Hartley
  • GetReal_1D() : Vtl::NumAlg::IntTransf::Hartley
  • getTime() : YFileSys


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- h -

  • highpass_filtering() : Vtl::ImAlg::Registration::Impl
  • highpass_filtering_half() : Vtl::ImAlg::Registration::Impl
  • HSV_HSL_hue() : Vtl::ImAlg::C
  • hypot() : Vtl::NumAlg::Lin


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- i -

  • ifft1D() : Vtl::NumAlg::IntTransf::Fourier
  • ifft2D() : Vtl::NumAlg::IntTransf::Fourier
  • ifft3D() : Vtl::NumAlg::IntTransf::Fourier
  • ifht1D() : Vtl::NumAlg::IntTransf::Hartley
  • ifht2D() : Vtl::NumAlg::IntTransf::Hartley
  • InRow_BoundsCyclic() : Vtl::ImAlg::Tools::findMax::Impl
  • InRow_BoundsNo() : Vtl::ImAlg::Tools::findMax::Impl
  • IntegrateKer() : Vtl::Plf::Kernel
  • IntegrateWindowedData() : Vtl::Plf::Kernel
  • inverse_diag_matrix() : Vtl::NumAlg::Lin
  • inverse_diag_matrix_positive() : Vtl::NumAlg::Lin
  • isDirExist() : YFileSys
  • isExists() : YFileSys
  • isFileExist() : YFileSys
  • isFullName() : YFileSys
  • isPathExist() : YFileSys


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- p -

  • print() : Vtl::Meta
  • print_array() : Vtl::Meta
  • PrintAndSave() : Basics3D
  • proc_pos_neg_freq() : Vtl::NumAlg::IntTransf::Utils
  • prod_diag() : Vtl::NumAlg::Lin
  • ProjectiveTransform() : Vtl::ImAlg::Resamp


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- q -

  • Q() : Vtl::ImAlg::WndFun::Impl::Gauss
  • quasi_fht2D() : Vtl::NumAlg::IntTransf::Hartley
  • quasi_fhtND() : Vtl::NumAlg::IntTransf::Hartley


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- r -

  • Ransac() : Basics3D
  • RecompMatrix() : Basics3D
  • RelerrEps() : Vtl::NumAlg
  • remExt() : YFileSys
  • Return1stArg() : Vtl::Alg
  • ReturnArg() : Vtl::Alg
  • ReturnArg_() : Vtl::Alg
  • rev() : Vtl::NumAlg::IntTransf::Utils
  • rm() : YFileSys
  • RotateScale() : Vtl::ImAlg::Resamp
  • RQDecomposition() : Basics3D
  • rtnewt() : Basics3D
  • rtsafe() : Basics3D


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- s -

  • SaveAbsImageArray() : Tests
  • SaveColourImageArray() : Tests
  • SaveImage() : Tests
  • SaveImageArray() : Tests
  • SaveNormImageArray() : Tests
  • SaveVRML_AsPointsSet() : Basics3D::Structure
  • set() : Vtl::Meta
  • set_seq() : Vtl::Meta
  • sign() : Vtl::NumAlg
  • sincos()
: Vtl::Alg
, Vtl::Alg::Impl
  • sing_fortran() : Vtl::NumAlg::Lin
  • SingularValues() : Basics3D
  • smallest_log2_ge_size() : Vtl::NumAlg::IntTransf::Utils
  • SolveSystem() : Basics3D
  • sort() : Vtl::NumAlg::Implicit
  • sort_columns() : Vtl::NumAlg::Implicit
  • sqr() : Vtl
  • Sqr() : Vtl::NumAlg::IntTransf::Utils
  • sqr() : Vtl::Plf::F11
  • Sscanf()
: Gen::Data
, Gen::Data::Impl
, Gen::Data
, Gen::Data::Impl
, Gen::Data
  • StrCmpI() : YFileSys
  • sum() : Vtl::Meta
  • swap() : Vtl::NumAlg::IntTransf::Utils
  • SwapArrayHalfs()
: Vtl::NumAlg::IntTransf::Utils
, Vtl::NumAlg::IntTransf::Utils::Impl
, Vtl::NumAlg::IntTransf::Utils
  • SwapQuadrants() : Vtl::NumAlg::IntTransf::Utils
  • SwapQuadrants_offset() : Vtl::NumAlg::IntTransf::Utils::Impl
  • SwapQuarters() : Vtl::NumAlg::IntTransf::Utils


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- t -

  • Test() : Basics3D
  • test_save_x() : Tests
  • ToBounds() : Vtl
  • Transform() : Vtl::ImAlg::Resamp
  • transform_and_zero_freq() : Vtl::ImAlg::Registration::Impl
  • TransposeSqrMatrix() : Vtl::NumAlg::IntTransf::Utils
  • type2ostream() : Vtl::Meta::IL


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- v -

  • v12_bilin() : Hanina
  • v12_bilinear() : Hanina


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- w -

  • window() : Vtl::ImAlg::Registration::Impl
  • WindowData() : Vtl::Plf::Kernel


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений
  • _
  • a
  • b
  • c
  • d
  • e
  • f
  • g
  • h
  • i
  • j
  • l
  • m
  • n
  • o
  • p
  • q
  • r
  • s
  • t
  • v
  • w
  • x
  • z

- x -

  • xchg() : Vtl::ImAlg::Tools


Pipe Line Filters: Члены классов

  • Пространства имен
  • Члены пространств имен
  • Указатель
  • Функции
  • Определения типов
  • Перечисления
  • Элементы перечислений

  • AllArithTypes : Vtl::Types
  • AllIntegerTypes : Vtl::Types
  • ArithTypes : Vtl::Types
  • EnviSample_DataTypesList : Vtl::Img
  • EnviSampleTypesList : Vtl::Img
  • IntegerTypes : Vtl::Types
  • IsAttrEq : YXML
  • IsNameEq : YXML
  • matrix_3_3 : Basics3D
  • offset_type : Vtl::Img
  • OtherIntegerTypes : Vtl::Types
  • OzWord : IFF
  • RealTypes : Vtl::Types
  • SignedIntegerTypes : Vtl::Types
  • SignedTypes : Vtl::Types
  • UnsignedIntegerTypes : Vtl::Types


Pipe Line Filters: Исходный файл Newton-Raphson.h

  • Файлы
  • Список членов всех файлов

Newton-Raphson.h

См. документацию.
00001 #ifndef NEWTON_RAPHSON_H_
00002 #define NEWTON_RAPHSON_H_
00003
00004 #include <math.h>
00005 #include <iostream>
00006
00007 // own includings
00008 #include "Func.h"
00009
00010 #define JMAX 20         // Set to maximum number of iterations.
00011 #define MAXIT 100       // Maximum allowed number of iterations.
00012
00013 namespace Basics3D
00014 {
00015     // Using the Newton-Raphson method, find the root of a function known
00016     // to lie in the interval [x1; x2]. The root rtnewt will be refined
00017     // until its accuracy is known within xacc. funcd is a user-supplied
00018     // routine that returns both the function value and the first
00019     // derivative of the function at the point x.
00020     double rtnewt(const IFuncWithDer *g,
00021                                 double x1,
00022                                 double x2,
00023                                 double xacc);
00024
00026     // Using a combination of Newton-Raphson and bisection, find the root
00027     // of a function bracketed between x1 and x2. The root, returned as
00028     // the function value rtsafe, will be refined until its accuracy is
00029     // known within xacc. funcd is a user-supplied routine that returns
00030     // both the function value and the first derivative of the function.
00031     double rtsafe(const IFuncWithDer *g,
00032                                 double x1,
00033                                 double x2,
00034                                 double xacc);
00035
00036 }
00037 #endif // NEWTON_RAPHSON_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл num_linalg.h

  • Файлы
  • Список членов всех файлов

num_linalg.h

См. документацию.
00001 #ifndef _NUM_LINALG_H
00002 #define _NUM_LINALG_H
00004 #include <algorithm>
00005 #define _USE_MATH_DEFINES
00006 #include <cmath>
00008 #include <boost/numeric/ublas/vector.hpp>
00009 #include <boost/numeric/ublas/matrix.hpp>
00010 #include <boost/numeric/ublas/matrix_proxy.hpp>
00011 #include <boost/numeric/ublas/symmetric.hpp>
00012 #include <boost/numeric/ublas/io.hpp>
00013 #include <boost/numeric/ublas/lu.hpp>
00014 #include <boost/numeric/ublas/blas.hpp>
00016 #include "vtl_meta_base.h"
00017 #include "numalg.h"
00019 namespace Vtl
00020 {
00021 namespace NumAlg
00022 {
00029 namespace Lin
00030 {
00032 namespace ublas = boost::numeric::ublas;
00033
00035 }//namespace Lin
00036 }//namespace NumAlg
00037 }//namespace Vtl
00039 #include "_num_boost_adds.h"
00040 #include "_num_implicit.h"
00042 #include "_num_svd.h"
00043 #include "_num_eigen.h"
00044 #include "_num_cholesky.h"
00045 #include "_num_qr.h"
00047 #endif //_NUM_LINALG_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл num_optimization.h

  • Файлы
  • Список членов всех файлов

num_optimization.h

См. документацию.
00001 // file: #include "num_optimization.h"
00002 #ifndef _NUM_OPTIMIZATION_H
00003 #define _NUM_OPTIMIZATION_H
00005 #include "numalg.h"
00006 #include "num_linalg.h"
00008 namespace Vtl {namespace NumAlg { namespace Opt {
00010     //
00049     //-///////////////////////////////////////////////////////////////////////////
00050     template<typename T,class Functor>
00051     inline T Fmin(Functor fun,T A,T B,T tol=T(0))
00052     {
00053         using namespace std; //function std::abs, std::sqrt
00054         using namespace Vtl::NumAlg; // function sign(,) , analog of FORTRAN SIGN(,)
00055
00056         //      G есть возведенная в квадрат величина, обратная к золотому сечению
00057         const T G=T(0.5*(3.- sqrt(5.)));
00058         //
00059         //     eps приблизительно равно квадратному корню из относительной машин-
00060         //     ной точности.
00061         //
00062         const T eps = sqrt( RelerrEps<T>() );
00063         //---------------< присвоение начальных значений >------
00064         T v=A+G*(B-A);
00065         T w=v;
00066         T x=v;
00067         T e=0.;
00068         T fx=fun(x);
00069         T fv=fx;
00070         T fw=fx;
00071
00072         T d,p,q,u;
00073         //***------------< Здесь начинается основной цикл >-------
00074         while(1)
00075         {
00076             const T xm=0.5*(A+B);
00077             const T tol1=eps*abs(x)+tol/3.;
00078             const T tol2=2.*tol1;
00079             //===============< Проверить критерий окончания >=========
00080             if( abs(x-xm) <= ( tol2-0.5*(B-A) ) )
00081             {//-------------**< Конец основноо цикла >**-----
00082                 return x;
00083             };
00084             // Необходимо ли золотое сечение
00085             bool logic= ( abs(e) <= tol1 );
00086             if( ! logic )
00087             {
00088                 // Построить параболу
00089                T r=(x-w)*(fx-fv);
00090                q=(x-v)*(fx-fw);
00091                p=(x-v)*q-(x-w)*r;
00092                q=2.*(q-r);
00093                if( q > 0. ) p=-p;
00094                q=abs(q);
00095                r=e;
00096                e=d;
00097                 // Приемлема ли парабола
00098                logic=logic || ( abs(p) >= abs(0.5*q*r) )
00099                || ( p <= q*(A-x) ) || ( p >= q*(B-x) );
00100             }
00101             if( logic )
00102             {
00103                 // Шаг золотого сечения
00104                 e = ( x >= xm ) ? (A-x) : (B-x) ;
00105                 d = G * e;
00106             }
00107             else
00108             {
00109                 // Шаг параболической интерполяции
00110                 d = p / q ;
00111                 u = x + d ;
00112                 // fun не следует вычислять слишком близко к A или B
00113                if( (u-A) < tol2 ) d=sign(tol1,xm-x);
00114                if( (B-u) < tol2 ) d=sign(tol1,xm-x);
00115             }
00116             // fun не следует вычислять слишком близко к x
00117             if( abs(d) >= tol1 )
00118                 u=x+d;
00119             else
00120                 u=x+sign(tol1,d);
00121
00122             const T fu = fun(u);
00123             // Присвоить новые значения параметрам A,B,v,w,x .
00124             if( fu > fx )
00125             {
00126                 if( u < x ) A=u;
00127                 else        B=u;
00128                 if( fu <= fw || w == x )
00129                 {
00130                     v=w;
00131                     fv=fw;
00132                     w=u;
00133                     fw=fu;
00134                 }
00135                 else if( fu <= fv || v == x || v == w )
00136                 {
00137                     v=u;
00138                     fv=fu;
00139                 }
00140             }
00141             else
00142             {
00143                 if( u >= x ) A=x;
00144                 else         B=x;
00145                 v=w;
00146                 fv=fw;
00147                 w=x;
00148                 fw=fx;
00149                 x=u;
00150                 fx=fu;
00151             }
00152         }//end of while(1);
00153     }
00176     template<typename T,int n,class Functor>
00177     inline void nrc_lnsrch(boost::numeric::ublas::c_vector<T,n>& xold_
00178                ,T fold
00179                ,boost::numeric::ublas::c_vector<T,n>& g_
00180                ,boost::numeric::ublas::c_vector<T,n>& p_
00181                ,boost::numeric::ublas::c_vector<T,n>& x_
00182                ,T& f
00183                ,T stpmax
00184                ,int& check
00185                ,Functor func)
00186 //  #include <math.h>
00187 //  #include "nrutil.h"
00188 //  #define alf 1.0e-4  // Ensures sufficient decrease in function value.
00189 //  #define tolx 1.0e-7 // Convergence criterion on delta x_.
00190 //  void lnsrch(int n, float xold_[], float fold, float g_[], float p_[], float x_[]
00191 //        , float *f, float stpmax, int *check
00192 //        , float (*func)(float [])
00193 //      )
00194     {
00195         using namespace boost::numeric::ublas;
00196         //::ublas::blas_1::dot()
00197         using namespace std; //max (вместо FMAX), abs
00198         const T alf=1.0e-4f;  // Ensures sufficient decrease in function value.
00199         const T tolx=1.0e-7f; // Convergence criterion on delta x_.
00200
00201         T a,alam2,b,disc,f2,rhs1,rhs2,tmplam;
00202
00203         check=0;
00208         T sum = sqrt( blas_1::dot(p_,p_) );
00209
00210         if(sum > stpmax)
00211         {
00214             //p_ *= stpmax/sum; - instead next string
00215             blas_1::scal(p_ , stpmax/sum);
00216         }
00217
00218         //float slope=0;
00219         //for(int i=1 ; i<=n ; i++ )
00220         //  slope += g_[i]*p_[i];
00221         T  slope=blas_1::dot(g_,p_);
00222         if( slope >= T(0) )
00223             throw "Roundoff problem in nrc_lnsrch.";
00224
00225         //float test=0; //Compute Lambda_min.
00226         //for(int i=1;i<=n;i++)
00227         //{
00228         //  float temp=abs(p_[i]) / max(abs(xold_[i]),float(1.0));
00229         //  if(temp > test)
00230         //      test=temp;
00231         //}
00232         T test=0; //Compute Lambda_min.
00233         {
00234             for( int i=0 ; i < n ; ++i )
00235             {
00236                 T temp = abs(p_[i]) / std::max( abs(xold_[i]) ,T(1.0) );
00237                 if(temp > test)
00238                     test=temp;
00239             }
00240         }
00241
00242         //float alamin=tolx/test;
00243         //float alam=1.0; // Always try full Newton step first.
00244         T alamin=tolx/test;
00245         T alam=T(1); // Always try full Newton step first.
00246
00248         for(;;)
00249         { //Start of iteration loop.
00252             blas_1::copy(x_,xold_);
00253             blas_1::axpy(x_,alam,p_);
00254
00255             f= func(x_);
00256             if(alam < alamin)
00257             { // Convergence on delta_x. For zero finding, the calling program should verify the convergence.
00260                 blas_1::copy(x_,xold_);
00261
00262                 check=1;
00263                 return;
00264             }
00265             else if(f <= fold+alf*alam*slope)
00266                 return; // Sufficient function decrease.
00267             else
00268             { //Backtrack.
00269                 if( alam == T(1) )
00270                     tmplam = -slope/( T(2)*(f-fold-slope)); //First time.
00271                 else
00272                 { //Subsequent backtracks.
00273                     rhs1 = f - fold - alam  * slope;
00274                     rhs2 = f2 - fold - alam2 * slope;
00275                     a = ( rhs1/(alam*alam) - rhs2/(alam2*alam2) ) / (alam-alam2);
00276                     b = ( -alam2*rhs1/(alam*alam) + alam*rhs2/(alam2*alam2) ) / (alam-alam2);
00277                     if( a == T(0) )
00278                         tmplam = -slope/(T(2)*b);
00279                     else
00280                     {
00281                         disc = b*b-T(3)*a*slope;
00282                         if(disc < T(0) )
00283                             tmplam = T(0.5)*alam;
00284                         else if(b <= T(0) )
00285                             tmplam = (-b+sqrt(disc))/(T(3)*a);
00286                         else
00287                             tmplam = -slope/(b+sqrt(disc));
00288                     }
00289                     if( tmplam > T(0.5)*alam )
00290                     tmplam=T(0.5)*alam; // Lambda <= 0.5*Lambda_1
00291                 }
00292             }
00293             alam2=alam;
00294             f2 = f;
00295             alam = std::max( tmplam, T(0.1)*alam ); // Lambda >= 0.1*Lambda_1
00296         } //Try again.
00297     }
00311     //
00364     template<typename T,int n,class Functor>
00365     inline T nrc_dfpmin(boost::numeric::ublas::c_vector<T,n>& p_
00366                 ,T gtol, int& iter
00367                 ,Functor func)
00368     {
00369         using namespace std; //max (вместо FMAX), abs (вместо fabs) , sqrt
00370         using namespace boost::numeric::ublas;
00371         typedef boost::numeric::ublas::c_vector<T,n> Vector;
00372         typedef boost::numeric::ublas::c_matrix<T,n,n> Matrix;
00373
00374         enum {itmax = 200};// Maximum allowed number of iterations.
00375         const T eps=Vtl::NumAlg::RelerrEps<T>();//3.0e-8f; // Machine precision.
00376         const T tolx=4.0f*eps; // Convergence criterion on x_ values.
00377         const T stpmx=100.0f; //Scaled maximum step length allowed in line searches.
00378         //void lnsrch(int n, float xold_[], float fold, float g_[], float p_[], float x_[],
00379         //          float *f, float stpmax, int *check, float (*func)(float []));
00380         T fret;
00381
00383         int check,its;
00384         T den,fac,fad,fae,fp,stpmax;
00385         T sumdg,sumxi,temp,test;
00386
00394         Vector dg_;
00395         Vector g_;
00396         Vector hdg_;
00397         Vector pnew_;
00398         Vector xi_;
00399         Matrix hessin;
00400
00403         fp=func(p_); // Calculate starting function value
00404         g_=func(p_,Loki::Int2Type<1>()); // and gradient,
00405
00414         //and initialize the inverse Hessian to the unit matrix.
00415         hessin = identity_matrix<T>(n,n);
00416         xi_ = -g_; //Initial line direction.
00417         T sum=blas_1::dot(p_,p_);
00418
00419         stpmax = stpmx * std::max(sqrt(sum),T(n));
00420         for(its=1;its<=itmax;its++)
00421         { //Main loop over the iterations.
00422             iter=its;
00423             nrc_lnsrch(p_,fp,g_,xi_,pnew_,fret,stpmax,check,func);
00424             //The new function evaluation occurs in nrc_lnsrch; save the function value in fp for the
00425             //next line search. It is usually safe to ignore the value of check.
00426             fp = fret;
00432             xi_=pnew_-p_;  // Update the line direction,
00433             p_=pnew_;        // and the current point.
00434
00435             test=T(0); //Test for convergence on Delta x_.
00436             {
00437                 for(int i=0 ; i < n ; ++i )
00438                 {
00439                     temp = abs(xi_[i]) / std::max( abs(p_[i]) , T(1) );
00440                     if( temp > test ) test=temp;
00441                 }
00442             }
00443             if( test < tolx )
00444             {
00445                 //FREEALL
00446                 return fret;
00447             }
00448
00450             blas_1::copy(dg_,g_);
00451
00453             g_=func(p_,Loki::Int2Type<1>());
00454
00455             test=T(0); //Test for convergence on zero gradient.
00456             den=std::max(fret,T(1));
00457             for(int i=0 ; i < n ; ++i )
00458             {
00459                 T temp = abs(g_[i]) * std::max(abs(p_[i]),T(1)) / den;
00460                 if (temp > test) test=temp;
00461             }
00462             if( test < gtol )
00463             {
00464                 //FREEALL
00465                 return fret;
00466             }
00468             dg_ = g_ - dg_; // Compute difference of gradients,
00469
00476             // and difference times current matrix.
00477             axpy_prod(hessin,dg_,hdg_,true); // hdg_  = prod(hessin,dg_) ; //param true means that v.clear before axpy_prod, so axpy_prod(A,x,v) v+=Ax becomes v=Ax
00478
00487             //Calculate dot products for the denominators.
00488             fac = blas_1::dot(dg_,xi_);
00489             fae = blas_1::dot(dg_,hdg_);
00490             //sumdg = blas_1::dot(dg_,dg_);
00491             //sumxi = blas_1::dot(xi_,xi_);
00492             sumdg = blas_1::nrm2(dg_);
00493             sumxi = blas_1::nrm2(xi_);
00494
00495             if( fac > sqrt(eps*sumdg*sumxi) )
00496             { //Skip update if fac not sufficiently positive.
00497                 fac=T(1)/fac;
00498                 fad=T(1)/fae;
00499                 // The vector that makes BFGS different from DFP:
00502                 dg_ = fac*xi_ - fad*hdg_; //????
00503
00512                 //The BFGS updating formula:
00513                 // M blas_2::sr(M &  m,const T& t,const V& v)//symmetric rank 1 update: m = m + t * (v * vT)
00514                 blas_2::sr(hessin, fac,xi_ );
00515                 blas_2::sr(hessin,-fad,hdg_);
00516                 blas_2::sr(hessin, fae,dg_ );
00517             }
00524             //Now calculate the next direction to go,
00525             axpy_prod(hessin,g_,xi_,true); // xi_ = prod(hessin,g_) ; //param true means that v.clear before axpy_prod, so axpy_prod(A,x,v) v+=Ax becomes v=Ax
00526             xi_ = - xi_;
00527
00528         }// and go back for another iteration.
00529         throw "too many iterations in dfpmin";
00530         //FREEALL
00531     }
00533 }}} // namespace Vtl {namespace NumAlg { namespace Opt {
00535 #endif //_NUM_OPTIMIZATION_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл numalg.h

  • Файлы
  • Список членов всех файлов

numalg.h

См. документацию.
00001 #ifndef _NUMALG_H
00002 #define _NUMALG_H
00004 #define _USE_MATH_DEFINES
00005 #include <cmath>
00006 #include <assert.h>
00007 #include "loki_TypeManip.h"
00009 namespace Vtl
00010 {
00012 namespace NumAlg
00013 {
00016     template<typename T1,typename T2>   T1 sign(T1 x1,T2 x2) { return (x2 >= 0) ? std::abs(x1) : -std::abs(x1); }
00017     //Вычисляет относительную погрешность вычислений с типом T (точность плавающей арифметики)
00018     template<typename T>
00019     T RelerrEps()
00020     {
00021         T eps=T(1);
00022         {
00023             T tol;
00024             do
00025             {
00026                 eps=eps/T(2);
00027                 tol=T(1)+eps;
00028             } while(tol > T(1));
00029         }
00030         return eps;
00031     }
00032 } //namespace NumAlg
00033 } //namespace Vtl
00035 #endif //_NUMALG_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл nummet00.h

  • Файлы
  • Список членов всех файлов

nummet00.h

См. документацию.
00001 #ifndef __NUMERIC0_H__
00002 #define __NUMERIC0_H__
00004 // Template realization numeric analysis functions:
00007 //
00008 //      template <class T> T nmRang(int k,T * a,int n);
00009 //      template <class T> T nmMedian(T * a,int n);
00010 //      template <class T,class TT> void nmLinearLeastSquares(int n,const T *x,const TT *y,double &slope,double& intercept);
00011 //    template <class T> double nmMeanAndDisp(int n,T* array,double *dispsqr);
00012 //    template <class T> int nmFindBadByStudent(int n,T* array,double* tau2,double* mean,double* disp2);
00013 //    template <class T> double nmFilteredMeanByStudent(int n,T* array,double* tau2,int* n_rest);
00014 //    template <class T,class TT> int nmFindBadByStudent(int n,T* x,TT* y,double* tau2);
00015 //
00016 //
00018 template <class T> T nmRang(int k,T * a,int n)
00019 {
00020     int l=0;
00021     int r=n-1;
00022     while(l<r)
00023     {
00024         T x=a[k];
00025         int i=l;
00026         int j=r;
00027         do
00028         {
00029             while(a[i]<x) i++;
00030             while(x<a[j]) j--;
00031             if(i<=j)
00032             {
00033                 T w=a[i];
00034                 a[i]=a[j];
00035                 a[j]=w;
00036                 i++;
00037                 j--;
00038             }
00039         } while(i<=j);
00040         if(j<k) l=i;
00041         if(k<i) r=j;
00042     }
00043     return a[k];
00044 }
00045 template <class T> T nmMedian(T * a,int n)
00046 {
00047     return nmRang(n>>1,a,n);//array index is from 0 to n-1, k-is mean array index, so no 1 add need.
00048 }
00049
00050 template <class T>
00051 void nmMedian1D(T* data,int n,int half_wnd_size,T* buf,bool reflect_edjes) //buf[2*(half_wnd_size*2+1)]
00052 {
00053     const int len=half_wnd_size*2+1;
00054     T* round_buf=buf;
00055     T* tmp=buf+len;
00056     //start init
00057     round_buf[half_wnd_size+1]=data[0];
00058     if(reflect_edjes)
00059     {
00060         for(int i=1; i<=half_wnd_size; i++)
00061         {
00062             round_buf[half_wnd_size+1-i]=round_buf[half_wnd_size+1+i]=data[i];
00063         }
00064     }
00065     else
00066     {
00067         for(int i=1; i<=half_wnd_size; i++)
00068         {
00069             round_buf[half_wnd_size+1+i]=data[i];
00070             round_buf[half_wnd_size+1-i]=data[0];
00071         }
00072     }
00073     //main loop
00074     int pos=0;
00075     for(int j=0; j<n; j++)
00076     {
00077         int l=j+half_wnd_size;
00078         if(l>=n)
00079         { //near right (top array) edge
00080             if(reflect_edjes)
00081             {
00082                 int pos2=pos;
00083                 if(++pos2>=len) pos2=0;
00084                 //l=n-1-(l-(n-1)); this data in array already overwrited, but it present in round_buf, find it
00085                 round_buf[pos]=round_buf[pos2]; //override sample left window by entered sample
00086             }
00087             else
00088             {
00089                 round_buf[pos]=data[n-1]; //override sample left window by entered sample
00090             }
00091         }
00092         else
00093         {
00094             round_buf[pos]=data[l]; //override sample left window by entered sample
00095         }
00096         if(++pos>=len) pos=0;
00097         for(int i=0; i<len; i++)
00098             tmp[i]=round_buf[i];
00099         data[j]=::nmMedian(tmp,len);
00100     }
00101 }
00102
00103 template <class T,class TT> void nmLinearLeastSquares(int n,const T *x,const TT *y,double &slope,double& intercept)
00104 {
00105     double m_x=0;
00106     double m_y=0;
00107     double m_xy=0;
00108     double m_x2=0;
00109     // вычислить средние
00110     for(int i=0; i<n; i++)
00111     {
00112         double xx=x[i];
00113         double yy=y[i];
00114         m_x += xx;
00115         m_y += yy;
00116         m_xy+= xx*yy;
00117         m_x2+= xx*xx;
00118     }
00119     //вычислить slope & intercept для x[] приведенного в диапазон [0,1]
00120     double div=m_x2-m_x*m_x/n;
00121     slope=(m_xy-m_x*m_y/n);
00122     slope=( div > ABS(slope)/1.0e40 )? slope/div : 0; //to prevent divide by zero and overflow
00123     intercept=(m_y-slope*m_x)/n;
00124 }
00125 template <class T> double nmMeanAndDisp(int n,const T* array,double *dispsqr)
00126 {
00127     double x=0;
00128     double s=0;
00129     for(int i=0; i<n ; i++)
00130     {
00131         T v=array[i];
00132         x+=v;
00133         s+=v*v;
00134     }
00135     x/=n;
00136     if(dispsqr)
00137     {
00138         s=s/n-x*x;
00139         *dispsqr=s;
00140     }
00141     return x;
00142 }
00143 template <class T> int nmFindBadByStudent(int n,const T* array,const double* tau2,double* mean,double* disp2)
00144 {// возвращает:
00145  //     -индекс плохого элемента, -1 если не найден
00146  //     -среднее , если указатель 'mean'не ноль
00147  //     -квадрат дисперсии, если указатель 'disp2' не ноль
00148  // Входные параметры:
00149  // n>3
00150  // T array[n];
00151  // double tau2[n+1];
00152     double s;
00153     double x=::nmMeanAndDisp(n,array,&s);
00154     int k=0;
00155     double d=0;
00156     for(int i=0; i<n; i++)
00157     {
00158         double dd=array[i]-x;
00159         dd=dd*dd;
00160         if(dd>d)
00161         {
00162             k=i;
00163             d=dd;
00164         }
00165     }
00166     if(mean)
00167         *mean=x;
00168     if(disp2)
00169         *disp2=s;
00170     if(d==0 || d<s*tau2[n])  //в случае s==0 следует проверить d==0 и  в этом случае результат достигнут
00171         return -1;
00172     return k;
00173 }
00174 template <class T> double nmFilteredMeanByStudent(int n,T* array,const double* tau2,int* n_rest)
00175 {// возвращает отфильтрованное среднее, массив пересортируется так,
00176  // что плохие значения оказываются в конце
00177  // хороших значений остается n_rest>=3 (в начале массива)
00178  // int array[n];
00179  // double tau2[n+1];
00180     double mean=0;;
00181     do
00182     {
00183         int k=::nmFindBadByStudent(n,array,tau2,&mean,0);
00184         if(k<0 )  //в случае s==0 следует проверить d==0 и  в этом случае результат достигнут
00185         {
00186             n--;
00187             break;
00188         }
00189         T v=array[k];
00190         array[k]=array[n-1];
00191         array[n-1]=v;
00192         n--;
00193     }   while(n>=3);
00194     if(n_rest)
00195         *n_rest=n+1;
00196     return mean;
00197 }
00198
00199 template <class T,class TT> int nmFindBadByStudent(int n,const T* x,const TT* y,const double* tau2)
00200 {// возвращает индекс плохого элемента, -1 если не найден
00201  // double x[n],y[n];
00202  // double tau2[n+1];
00203     double a;
00204     double b;
00205 	::nmLinearLeastSquares(n,x,y,a,b);
00206     double d=0;
00207     double s=0;
00208     int k=0;
00209     {
00210         for(int i=0; i<n ; i++)
00211         {
00212             double dd=y[i]-(a*x[i]+b);
00213             dd=dd*dd;
00214             s+=dd;
00215             if(dd>d)
00216             {
00217                 k=i;
00218                 d=dd;
00219             }
00220         }
00221         s/=n;
00222     }
00223     if(d==0 || d<s*tau2[n]) //в случае s==0 следует проверить d==0 и  в этом случае результат достигнут
00224         return -1;
00225     return k;
00226 }
00227 //>---------------------------------------------------------------------------------
00228 template<class T> T nmMaxArrayElem(int n,const T* array)
00229 {
00230     if(n<1 || !array)
00231         throw "Bad Param";
00232     T el=*array++;
00233     n--;
00234     while(n--)
00235     {
00236         if(el<*array)
00237             el=*array;
00238         array++;
00239     }
00240     return el;
00241 }
00243 #endif //__NUMERIC0_H__
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл nummet.h

  • Файлы
  • Список членов всех файлов

nummet.h

См. документацию.
00001 #ifndef __NUMMET_H__
00002 #define __NUMMET_H__
00004 #include "ytypes.h"
00005
00012 //#ifndef M_PI
00013 //  #define M_PI 3.1415926
00014 //#endif
00015
00018 double nmPoly(double x,const double *coef,int n);
00019 int nmPow(int a,int b);
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 double nmQUANC8(double (*FUN)(double,void *),const double A,const double B,
00035         void *param,const double ABSERR,const double RELERR,
00036         double& ERREST,int& NOFUN,double& FLAG);
00039 double nmFMIN(double (*FUN)(double,void *),double AX,double BX,void *param,double TOL);
00042 double nmZEROIN(double (*FUN)(double,void *),double AX,double BX,void *param,double TOL);
00045 void   nmSPLINE_FREE(int n,const double *x,const double *y,double *b,double *c,double *d);
00048 void   nmSPLINE(int n,const double *x,const double *y,double *b,double *c,double *d);
00052 double nmSEVAL(int n,double u,const double *x,const double *y,const double *b,const double *c,const double *d);
00055 double nmGAMMLN(double xx);
00058 int    nmSVD(int NM,int M,int N,double *A,double *W,double *U,double *V,double *RV1);
00060 int    nmVDCPS(int N,int *IPF,int *IEXP,int *IPWR);
00062 void   nmVTRAN(double *A,int N,int M);
00064 template<class T> T nmMaxArrayElem(int n,const T* array);
00067 double nmNormQRev(double p);
00069 double nmBetaFnForStudent(double n);
00072 double nmTStudentPercPtNlRoot(double p,int n);
00073 double nmTStudentPercPtAssimpt(double p,int n);
00074 double nmTStudentPercPt(double p,int n);
00075 double nmTStudentPercPtViaIntegral(double p,double n);
00076 double nmTStudentPercPtTauThreshold(double p,int n);// 0<p<1 , n>=3
00078 template <class T>          T      nmRang(int k,T * a,int n);
00079 template <class T>          T      nmMedian(T * a,int n);
00080 template <class T>          void   nmMedian1D(T* data,int n,int half_wnd_size,T* buf,bool reflect_edjes=false); //buf[2*(half_wnd_size*2+1)]
00081 template <class T,class TT> void   nmLinearLeastSquares(int n,const T *x,const TT *y,double &slope,double& intercept);
00082 template <class T>          int    nmFindBadByStudent(int n,const T* array,const double* tau2,double* mean,double* disp2);
00083 template <class T>          double nmMeanAndDisp(int n,const T* array,double *dispsqr=0);
00084 template <class T,class TT> int    nmFindBadByStudent(int n,const T* x,const TT* y,const double* tau2);
00085 template <class T>          double nmFilteredMeanByStudent(int n,T* array,const double* tau2,int* n_rest=0);
00086 // include templates bodies
00087 #include "nummet00.h" // end of NumericalMethodsDoxGroup
00090 #endif //__NUMMET_H__
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл oz.h

  • Файлы
  • Список членов всех файлов

oz.h

См. документацию.
00001 #ifndef _OZ_H
00002 #define _OZ_H
00004 #include "yfile.h"
00006 namespace IFF
00007 {
00008 typedef uint16_t OzWord;
00009 //
00010 //  3.2 Каждое  10-ти  разрядное  слово  данных располагается в двух
00011 //последовательных байтах следующим образом:
00012 //
00013 //             старший байт                      младший байт
00014 //  + 7 - 6 - 5 - 4 - 3 - 2 - 1 - 0 +   + 7 - 6 - 5 - 4 - 3 - 2 - 1 - 0 +
00015 //  ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦ 0 ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦   ¦
00016 //  +-------------------------------+   +-------------------------------+
00017 //                            9   8       7   6   5   4   3   2   1   0
00018 //                              номера разрядов 10-ти разрядного слова
00019 //
00020 //+---------------------------------------------------------------------+
00021 //¦номер¦        с о д е р ж и м о е   с л о в а          ¦ комментарий ¦
00022 //¦слова+-------------------------------------------------¦             ¦
00023 //¦     ¦ 15 14 13 12 11 10  9  8  7  6  5  4  3  2  1  0 ¦             ¦
00024 //¦-----+-------------------------------------------------+-------------¦
00025 //¦  1  ¦    номер маршрута                               ¦             ¦
00026 //¦  2  ¦    день                                         ¦  служебная  ¦
00027 //¦  3  ¦    месяц                                        ¦             ¦
00028 //¦  4  ¦    год                                          ¦  информация ¦
00029 //¦  5  ¦    час                                          ¦             ¦
00030 //¦  6  ¦    минуты                                       ¦  заголовок  ¦
00031 //¦  7  ¦    секунды (в тыс.долях) записи первой строки   ¦    всего    ¦
00032 //¦  8  ¦    час                                          ¦    сеанса   ¦
00033 //¦  9  ¦    минуты                                       ¦             ¦
00034 //¦ 10  ¦    секунды (в тыс.долях) записи последней строки¦             ¦
00035 //¦ 11  ¦    длина строки                                 ¦             ¦
00036 //¦ 12  ¦    число строк                                  ¦             ¦
00037 //¦ 13  ¦    спектральный диапазон  [1 .. 4]              ¦             ¦
00038 //¦ 14  ¦ бит на пиксель, 0 означает-10 bpp для обратной совместимости  ¦
00039 //¦ 15  ¦    не используется        [0]                   ¦             ¦
00040 //¦ 16  ¦        - / -                                    ¦             ¦
00041 //¦-----+-------------------------------------------------+-------------¦
00042 //
00043 //
00044 class OzFile
00045 : protected YFile
00046 {
00047 public:
00048 #pragma pack(push,1)
00049     struct Header
00050     {
00051         OzWord Trajectory;
00052         OzWord day;
00053         OzWord month;
00054         OzWord year;
00055         OzWord begHour;
00056         OzWord begMinutes;
00057         OzWord begSecond1000;
00058         OzWord endHour;
00059         OzWord endMinutes;
00060         OzWord endSecond1000;
00061         OzWord Width;
00062         OzWord Length;
00063         OzWord Chan;
00064         OzWord Bits;//0 means -10 bit for backward compatibility
00065         OzWord reserved[2];
00066     };
00067 #pragma pack(pop)
00068 private:
00069     Header head;
00070 public:
00071 //  Вспомогательные функции
00072     void writeHeader();
00073     void readHeader();
00074 public:
00075 //  Открытие/закрытие файла
00076     OzFile();
00077     virtual ~OzFile();
00078     void open(const char * szFileName,OpenMode access,
00079                 int  Width=0,int Height=0,int  bitsPerPixel=10);
00080     void close();
00081     //--------------------------------------------------
00082     void read(int x,int y,OzWord *line,int len);
00083     void write(int x,int y,const OzWord *line,int len);
00084     //------------------------------------------------
00085     int Width()  const { return head.Width; }
00086     int Length() const { return head.Length; }
00087     int Bits()   const { return head.Bits; }
00088     //--------------------------------------------------
00089     OzWord GetChanel() const;
00090     void   SetChanel(OzWord channel);
00091     OzWord GetTrajectory() const;
00092     void   SetTrajectory(OzWord traject);
00093     void   GetTime(OzWord& hour,OzWord& minutes,OzWord& seconds,OzWord& millisec) const;
00094     void   GetTimeEnd(OzWord& hour,OzWord& minutes,OzWord& seconds,OzWord& millisec) const;
00095     void   SetTime(OzWord hour,OzWord minutes,OzWord seconds,OzWord millisec);
00096     void   SetTimeEnd(OzWord hour,OzWord minutes,OzWord seconds,OzWord millisec);
00097     void   GetDate(OzWord& year,OzWord& month,OzWord& day) const;
00098     void   SetDate(OzWord year,OzWord month,OzWord day);
00099     void   GetHeader(Header* header) const;
00100     void   SetHeader(Header* header);
00101     bool   IsOneSeance(const OzFile& f) const;
00102 };
00103 } //namespace IFF
00105 #endif //_OZ_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл pbm_file.h

  • Файлы
  • Список членов всех файлов

pbm_file.h

См. документацию.
00001 #ifndef _PBM_FILE_H
00002 #define _PBM_FILE_H
00004 #include "yfile.h"
00005 namespace IFF
00006 {
00007 class PBMfile
00008 :public YFile
00009 {
00010     int width;
00011     int height;
00012     int bits;
00013     int type;
00014     unsigned data_offset;
00015 private:
00016     void nullify();
00017     void writeHeader();
00018     void readHeader();
00019 public:
00020     enum TYPE
00021     {
00022         //PBM_BILEVEL,
00023         PBM_GRAYSCALE,
00024         PBM_RGB,
00025         PBM_UNKNOWN=0xFFFF
00026     };
00027     PBMfile();
00028     virtual ~PBMfile();
00029     void open(const char *fname,OpenMode access,
00030                 int  Width=0,int  Heigth=0,int  bitsPerPixel=8,TYPE _type=PBM_GRAYSCALE);
00031     void close();
00032     bool IsOk() const {return type>=0; }
00033     //--------------------------------------------------
00034     void read(int x,int y,Byte *line,int len);
00035     void write(int x,int y,const Byte *line,int len);
00036     //------------------------------------------------
00037     int Width()  const { return width; }
00038     int Length() const { return height; }
00039     int Bits()   const { return bits; }
00040     TYPE Type() const;
00041     //--------------------------------------------------
00042 };
00043 } //namespace IFF
00045 #endif//_PBM_FILE_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл plf_filter_elem.h

  • Файлы
  • Список членов всех файлов

plf_filter_elem.h

См. документацию.
00001 #ifndef _PL_FILTER_ELEM_H
00002 #define _PL_FILTER_ELEM_H
00004 #include <iostream>
00005 #include <algorithm>
00006 #include "plf_port.h"
00007 namespace Vtl
00008 {
00009 namespace Plf
00010 {
00014
00015
00016
00017
00018     class FilterBase
00019     {
00020         std::string _name;
00021         const int num_inp;
00022         const int num_out;
00023         std::vector<InPortBase*>  in_ports;
00024         std::vector<OutPortBase*> out_ports;
00025     private:
00026         FilterBase& operator=(const FilterBase&);
00027         FilterBase(const FilterBase&);
00028     protected:
00029         FilterBase(int num_in_ports,int num_out_ports)
00030             :num_inp(num_in_ports),num_out(num_out_ports)
00031         {
00032             in_ports.resize(num_inp);
00033             out_ports.resize(num_out);
00034         }
00035         FilterBase(std::string name,int num_in_ports,int num_out_ports)
00036             :_name(name),num_inp(num_in_ports),num_out(num_out_ports)
00037         {
00038             in_ports.resize(num_inp);
00039             out_ports.resize(num_out);
00040         }
00041     public:
00042         virtual ~FilterBase()
00043         {
00044         }
00045         void setName(std::string name) {_name=name;}
00046         virtual std::string Name() const {return _name;}
00047         virtual int NumInputs() const {return num_inp;}
00048         virtual int NumOutputs() const {return num_out;}
00049         virtual InPortBase* getInPort(int i) const
00050         {
00051             assert(i>=0 && i<NumInputs());
00052             return in_ports[i];
00053         }
00054         virtual OutPortBase* getOutPort(int i) const
00055         {
00056             assert(i>=0 && i<NumOutputs());
00057             return out_ports[i];
00058         }
00059         virtual bool isComplex() const=0;
00060         virtual void AddPort(InPortBase& port,int i)
00061         {
00062             in_ports[i]=&port;
00063         }
00064         virtual void AddPort(OutPortBase& port,int i)
00065         {
00066             out_ports[i]=&port;
00067         }
00068     };
00089     class FilterComplex
00090         : public FilterBase
00091     {
00092     private:
00093         FilterComplex& operator=(const FilterComplex&);
00094         FilterComplex(const FilterComplex&);
00095     protected:
00096         FilterComplex(int num_in_ports,int num_out_ports)
00097             :FilterBase(num_in_ports,num_out_ports)
00098         {
00099         }
00100         FilterComplex(std::string name,int num_in_ports,int num_out_ports)
00101             :FilterBase(name,num_in_ports,num_out_ports)
00102         {
00103         }
00104     public:
00105         virtual ~FilterComplex()
00106         {
00107         }
00108         virtual bool isComplex() const { return true;}
00109     };
00114     class FilterElementary
00115         : public FilterBase
00116     {
00117     private:
00118         bool in_queue;
00119         bool finished;
00120         int h_max;
00121         int y_pos;
00122     public:
00123         int id;
00124     private:
00125         FilterElementary& operator=(const FilterElementary&);
00126         FilterElementary(const FilterElementary&);
00127     protected:
00128         FilterElementary(int num_in_ports,int num_out_ports)
00129             :FilterBase(num_in_ports,num_out_ports)
00130         {
00131         }
00132         FilterElementary(std::string name,int num_in_ports,int num_out_ports)
00133             :FilterBase(name,num_in_ports,num_out_ports)
00134         {
00135         }
00136     public:
00137         virtual ~FilterElementary()
00138         {
00139         }
00140         virtual bool isComplex() const { return false;}
00141         virtual void AddPort(InPortBase& port,int i,Extent ext)
00142         {
00143             port.Init(this,i,ext);
00144             FilterBase::AddPort(port,i);
00145         }
00146         virtual void AddPort(OutPortBase& port,int i)
00147         {
00148             port.Init(this,i);
00149             FilterBase::AddPort(port,i);
00150         }
00151         virtual void processLine()=0;
00152         virtual bool isFinished() const
00153         {
00154             return finished;
00155         }
00156         virtual void set_OutPortsImagesSizeAndInPortsExtents()
00157         {
00158             ImgSize ims=getInPort(0)->getImageSize();
00159             // Поведение по умолчанию:
00160             // у всех входов - размер изображения одинаков
00161             for(int i=1; i<NumInputs() ; i++)
00162             {
00163                 ImgSize  s=getInPort(i)->getImageSize();
00164                 if(s!=ims)
00165                 {
00166                     std::ostringstream os;
00167                     os << "Filter '" << this->Name() << "' image sizes in InPorts " << i-1 << " and " << i
00168                         << " is different: " << ims << " vs " << s ;
00169                     throw os.str();
00170                 }
00171             }
00172             //На выходе размер изображений равен размеру входных изображений
00173             for(int i=0; i<NumOutputs() ; i++)
00174             {
00175                 getOutPort(i)->set_bufferImgSize(ims);
00176             }
00177             // Extension - не изменяется и остается, как задан в конструкторе.
00178         }
00179         void init_OutPortsExtents()
00180         {
00181             for(int i=0; i<NumOutputs() ; i++)
00182             {
00183                 getOutPort(i)->init_bufferExtents();
00184             }
00185         }
00186         virtual void set_total_delay()
00187         {
00188             int delay=0;
00189             for(int i=0; i<NumInputs() ; i++)
00190                 delay=std::max(delay,getInPort(i)->total_delay);
00191             for(int i=0; i<NumOutputs() ; i++)
00192                 getOutPort(i)->set_total_delay(delay);
00193         }
00194
00195         void init_buffers()
00196         {
00197             h_max=0;
00198             y_pos=0;
00199             for(int i=0; i<NumOutputs() ; i++)
00200             {
00201                 getOutPort(i)->init_buffer();
00202                 h_max=std::max(getOutPort(i)->getImageSize().height,h_max);
00203             }
00204             in_queue=false;
00205             finished=false;
00206         }
00207         void put_in_queue(Fifo<int>& Q)
00208         {
00209             if(!in_queue)
00210             {
00211                 in_queue=true;
00212                 Q.put(this->id);
00213             }
00214         }
00215         virtual void TryPutInQueue(Fifo<int>& Q)
00216         {
00217             bool ready=true;;
00218             for(int i=0; i<NumOutputs(); ++i)
00219             {
00220                 OutPortBase* out=this->getOutPort(i);
00221                 if(out->inPopTailStage())
00222                 {
00223                     //printf("PopTail %s\n",this->Name().c_str());
00224                     out->PopTail();
00225                 }
00226                 else
00227                     ready = ready & out->isReadyForUpdate();
00228             }
00229             if(!isFinished())
00230             {
00231                 for(int i=0; i<NumInputs(); ++i)
00232                 {
00233                     InPortBase* in=this->getInPort(i);
00234                     ready = ready & in->isDataReady();
00235                 }
00236                 if(ready)
00237                 {
00239                     bool any_neighbour_in_queue=false;
00240                     for(int i=0; i<NumOutputs(); ++i)
00241                     {
00242                         OutPortBase* out=this->getOutPort(i);
00243                         any_neighbour_in_queue=any_neighbour_in_queue || out->getFilter()->in_queue;
00244                     }
00245                     for(int i=0; i<NumInputs(); ++i)
00246                     {
00247                         InPortBase* in=this->getInPort(i);
00248                         any_neighbour_in_queue=any_neighbour_in_queue || in->getFilter()->in_queue;
00249                     }
00250                     if(!any_neighbour_in_queue)
00252                     put_in_queue(Q);
00253                 }
00254             }
00255         }
00278         int Y_pos() const { return y_pos;}
00279         void do_1_step()
00280         {
00281             in_queue=false;
00282             processLine();
00283             ++y_pos;
00284             if(y_pos==h_max)
00285             {
00286                 Finish();
00287             }
00288         }
00289         void Finish()
00290         {
00291             for(int i=0; i<NumInputs(); ++i)
00292             {
00293                 InPortBase* in=this->getInPort(i);
00294                 in->Finish();
00295             }
00296             for(int i=0; i<NumOutputs(); ++i)
00297             {
00298                 OutPortBase* out=this->getOutPort(i);
00299                 out->Finish();
00300             }
00301             finished=true;
00302         }
00303     }; // end of PipeLineFiltersDoxGroup
00305 } //namespace Plf
00306 } //namespace Vtl
00307 #endif //_PL_FILTER_ELEM_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл plf_filters.h

  • Файлы
  • Список членов всех файлов

plf_filters.h

См. документацию.
00001 #ifndef _PLF_FILTERS_H
00002 #define _PLF_FILTERS_H
00004 #include <algorithm>
00005
00006 #include "plf_kernels_1d.h"
00007
00008 #include "plf_filter_elem.h"
00009 #include "plf_io_filter.h"
00010 #include "plf_iterators.h"
00011
00012 namespace Vtl
00013 {
00015 namespace Plf
00016 {
00026
00027     // class Levels
00040     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00041     class Levels
00042         : public FilterElementary
00043     {
00044     public:
00045         InPort<T> in;
00046         OutPort<T,P> out;
00047         int tmp;
00048     public:
00049         Levels()
00050             : FilterElementary(1,1)
00051         {
00052         }
00053         Levels(std::string name,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00054             : FilterElementary(1,1)
00055         {
00056             Init(name,post_proc);
00057         }
00058         virtual ~Levels()
00059         {
00060         }
00061         void Init(std::string name,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00062         {
00063             setName(name);
00064             out.setPostProc(post_proc);
00065             AddPort(in,0,Extent(0,0,0,0));
00066             AddPort(out,0);
00067             tmp=0;
00068         }
00069         virtual void processLine()
00070         {
00071             ImgSize ims=in.getImageSize();
00072             const int w=ims.width;
00073             out.beginUpdate();
00074                 ImageRef<T> img=in.getImg();
00075                 const T* input=img[0];
00076                 OutPortNoPostProc<T>::BufType::Iter_Line output=out.begin();
00078                 for(int x=0; x<w; x++)
00079                     *output++=*input++;
00080             in.ToNextLine(Y_pos()+1);
00081             out.endUpdate();
00082 //          printf("-G---- %d\n",tmp++);
00083 //          printf("-G---- %d %d %d %d\n",out.buffer.ext().left,out.buffer.ext().right,out.buffer.ext().before,out.buffer.ext().forward);
00084         }
00085     };
00087     // class FilterSqrtOfSumSqr
00095     template<typename T,class F,class P=Vtl::Plf::F11::DoNothing<T> >
00096     class PixByPix2to1
00097         : public FilterElementary
00098     {
00099     public:
00100         InPort<T> in_1;
00101         InPort<T> in_2;
00102         OutPort<T,P> out;
00103         F functor;
00104         int tmp;
00105     public:
00106         PixByPix2to1()
00107             : FilterElementary(2,1)
00108         {
00109         }
00110         PixByPix2to1(std::string name,F fun,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00111             : FilterElementary(2,1)
00112         {
00113             Init(name,fun,post_proc);
00114         }
00115         void Init(std::string name,F fun,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00116         {
00117             setName(name);
00118             out.setPostProc(post_proc);
00119             functor=fun;
00120             AddPort(in_1,0,Extent(0,0,0,0));
00121             AddPort(in_2,1,Extent(0,0,0,0));
00122             AddPort(out,0);
00123             tmp=0;
00124         }
00125         virtual ~PixByPix2to1()
00126         {
00127         }
00128         virtual void processLine()
00129         {
00130
00131             ImgSize ims=in_1.getImageSize();
00132             const int w=ims.width;
00133
00134             out.beginUpdate();
00135
00136 //          printf("PixByPix2to1: out.Y() | in_1.Y(), in_2.Y()=( %d | %d, %d )\n",out.Y_wait(),in_1.Y(),in_2.Y());
00137                 ImageRef<T> img_1=in_1.getImg();
00138                 ImageRef<T> img_2=in_2.getImg();
00139                 const T* p1=img_1[0];
00140                 const T* p2=img_2[0];
00141                 OutPortNoPostProc<T>::BufType::Iter_Line output=out.begin();
00142                 for(int x=0; x<w; x++)
00143                     *output++=functor(*p1++,*p2++);
00144             in_1.ToNextLine(Y_pos()+1);
00145             in_2.ToNextLine(Y_pos()+1);
00146             out.endUpdate();
00147 //          printf("-SQR-- %d\n",tmp++);
00148 //          printf("-G---- %d %d %d %d\n",out.buffer.ext().left,out.buffer.ext().right,out.buffer.ext().before,out.buffer.ext().forward);
00149         }
00150     };
00152     // class PixByPix3to1
00165     template<typename T,class Func=Vtl::Plf::F::Harris<T>,class P=Vtl::Plf::F11::DoNothing<T> >
00166     class PixByPix3to1
00167     : public FilterElementary
00168     {
00169     public:
00170         InPort<T> in_xx;
00171         InPort<T> in_xy;
00172         InPort<T> in_yy;
00173         OutPort<T,P> out;
00174         Func func;
00175     public:
00176         PixByPix3to1()
00177             : FilterElementary(3,1)
00178         {
00179         }
00180         PixByPix3to1(std::string name,Func functor,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00181             : FilterElementary(3,1)
00182         {
00183             Init(name,functor,post_proc);
00184         }
00185         virtual ~PixByPix3to1()
00186         {
00187         }
00188         void Init(std::string name,Func functor,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00189         {
00190             setName(name);
00191             func=functor;
00192             out.setPostProc(post_proc);
00193
00194             AddPort(in_xx,0,Extent(0,0,0,0));
00195             AddPort(in_xy,1,Extent(0,0,0,0));
00196             AddPort(in_yy,2,Extent(0,0,0,0));
00197
00198             AddPort(out,0);
00199         }
00200         virtual void set_OutPortsImagesSizeAndInPortsExtents()
00201         {
00202             ImgSize ims_xx=in_xx.getImageSize();
00203             ImgSize ims_xy=in_xy.getImageSize();
00204             ImgSize ims_yy=in_yy.getImageSize();
00205             if(ims_xx!=ims_xy ||ims_xx!=ims_yy )
00206             {
00207                 std::ostringstream os;
00208                 os<< "Filter Vtl::Plf::CorrelationMatrix2x2 \"" << Name() <<"\" : input images are of different size."
00209                     << " in_xx : " << ims_xx << " in_xy : " << ims_xy << " in_yy : " << ims_yy;
00210                 throw os.str();
00211             }
00212             FilterElementary::set_OutPortsImagesSizeAndInPortsExtents();
00213         }
00214         virtual void processLine()
00215         {
00216             ImgSize ims=in_xx.getImageSize();
00217             const int w=ims.width;
00218
00219             out.beginUpdate();
00220                 ImageRef<T> img_xx=in_xx.getImg();
00221                 ImageRef<T> img_xy=in_xy.getImg();
00222                 ImageRef<T> img_yy=in_yy.getImg();
00223
00224                 const T* p_xx=img_xx[0];
00225                 const T* p_xy=img_xy[0];
00226                 const T* p_yy=img_yy[0];
00227
00228                 OutPortNoPostProc<T>::BufType::Iter_Line output=out.begin();
00229
00230                 for(int x=0; x<w; x++)
00231                 {
00232                     *output++ = func(*p_xx++,*p_xy++,*p_yy++);
00233                 }
00234                 in_xx.ToNextLine(Y_pos()+1);
00235                 in_xy.ToNextLine(Y_pos()+1);
00236                 in_yy.ToNextLine(Y_pos()+1);
00237             out.endUpdate();
00238         }
00239     };
00240
00242     // class PixByPix4to1
00247     template<typename T,class Func=Vtl::Plf::F::Harris<T>,class P=Vtl::Plf::F11::DoNothing<T> >
00248     class PixByPix4to1
00249     : public FilterElementary
00250     {
00251     public:
00252         InPort<T> in_1;
00253         InPort<T> in_2;
00254         InPort<T> in_3;
00255         InPort<T> in_4;
00256         OutPort<T,P> out;
00257         Func func;
00258     public:
00259         PixByPix4to1()
00260             : FilterElementary(4,1)
00261         {
00262         }
00263         PixByPix4to1(std::string name,Func functor,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00264             : FilterElementary(4,1)
00265         {
00266             Init(name,functor,post_proc);
00267         }
00268         virtual ~PixByPix4to1()
00269         {
00270         }
00271         void Init(std::string name,Func functor,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00272         {
00273             setName(name);
00274             func=functor;
00275             out.setPostProc(post_proc);
00276             AddPort(in_1,0,Extent(0,0,0,0));
00277             AddPort(in_2,1,Extent(0,0,0,0));
00278             AddPort(in_3,2,Extent(0,0,0,0));
00279             AddPort(in_4,3,Extent(0,0,0,0));
00280             AddPort(out,0);
00281         }
00282         virtual void set_OutPortsImagesSizeAndInPortsExtents()
00283         {
00284             FilterElementary::set_OutPortsImagesSizeAndInPortsExtents();
00285         }
00286         virtual void processLine()
00287         {
00288             ImgSize ims=in_1.getImageSize();
00289             const int w=ims.width;
00290
00291             out.beginUpdate();
00292                 ImageRef<T> img_1=in_1.getImg();
00293                 ImageRef<T> img_2=in_2.getImg();
00294                 ImageRef<T> img_3=in_3.getImg();
00295                 ImageRef<T> img_4=in_4.getImg();
00296
00297                 const T* p_1=img_1[0];
00298                 const T* p_2=img_2[0];
00299                 const T* p_3=img_3[0];
00300                 const T* p_4=img_4[0];
00301
00302                 OutPortNoPostProc<T>::BufType::Iter_Line output=out.begin();
00303
00304                 for(int x=0; x<w; x++)
00305                 {
00306                     *output++ = func(*p_1++,*p_2++,*p_3++,*p_4++);
00307                 }
00308
00309                 in_1.ToNextLine(Y_pos()+1);
00310                 in_2.ToNextLine(Y_pos()+1);
00311                 in_3.ToNextLine(Y_pos()+1);
00312                 in_4.ToNextLine(Y_pos()+1);
00313             out.endUpdate();
00314         }
00315     };
00317     // class PixByPix5to1
00322     template<typename T,class Func=Vtl::Plf::F::Harris<T>,class P=Vtl::Plf::F11::DoNothing<T> >
00323     class PixByPix5to1
00324     : public FilterElementary
00325     {
00326     public:
00327         InPort<T> in_1;
00328         InPort<T> in_2;
00329         InPort<T> in_3;
00330         InPort<T> in_4;
00331         InPort<T> in_5;
00332         OutPort<T,P> out;
00333         Func func;
00334     public:
00335         PixByPix5to1()
00336             : FilterElementary(5,1)
00337         {
00338         }
00339         PixByPix5to1(std::string name,Func functor,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00340             : FilterElementary(5,1)
00341         {
00342             Init(name,functor,post_proc);
00343         }
00344         virtual ~PixByPix5to1()
00345         {
00346         }
00347         void Init(std::string name,Func functor,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00348         {
00349             setName(name);
00350             func=functor;
00351             out.setPostProc(post_proc);
00352             AddPort(in_1,0,Extent(0,0,0,0));
00353             AddPort(in_2,1,Extent(0,0,0,0));
00354             AddPort(in_3,2,Extent(0,0,0,0));
00355             AddPort(in_4,3,Extent(0,0,0,0));
00356             AddPort(in_5,4,Extent(0,0,0,0));
00357             AddPort(out,0);
00358         }
00359         virtual void set_OutPortsImagesSizeAndInPortsExtents()
00360         {
00361             FilterElementary::set_OutPortsImagesSizeAndInPortsExtents();
00362         }
00363         virtual void processLine()
00364         {
00365             ImgSize ims=in_1.getImageSize();
00366             const int w=ims.width;
00367
00368             out.beginUpdate();
00369                 ImageRef<T> img_1=in_1.getImg();
00370                 ImageRef<T> img_2=in_2.getImg();
00371                 ImageRef<T> img_3=in_3.getImg();
00372                 ImageRef<T> img_4=in_4.getImg();
00373                 ImageRef<T> img_5=in_5.getImg();
00374
00375                 const T* p_1=img_1[0];
00376                 const T* p_2=img_2[0];
00377                 const T* p_3=img_3[0];
00378                 const T* p_4=img_4[0];
00379                 const T* p_5=img_5[0];
00380
00381                 OutPortNoPostProc<T>::BufType::Iter_Line output=out.begin();
00382
00383                 for(int x=0; x<w; x++)
00384                 {
00385                     *output++ = func(*p_1++,*p_2++,*p_3++,*p_4++,*p_5++);
00386                 }
00387                 in_1.ToNextLine(Y_pos()+1);
00388                 in_2.ToNextLine(Y_pos()+1);
00389                 in_3.ToNextLine(Y_pos()+1);
00390                 in_4.ToNextLine(Y_pos()+1);
00391                 in_5.ToNextLine(Y_pos()+1);
00392             out.endUpdate();
00393         }
00394     };
00395
00396
00398     // class PixByPix3to3
00406     template<typename T,class Func=Vtl::Plf::F::Harris<T>,class P1=Vtl::Plf::F11::DoNothing<T> ,class P2=Vtl::Plf::F11::DoNothing<T> ,class P3=Vtl::Plf::F11::DoNothing<T> >
00407     class PixByPix3to3
00408     : public FilterElementary
00409     {
00410     public:
00411         InPort<T> in_1;
00412         InPort<T> in_2;
00413         InPort<T> in_3;
00414         OutPort<T,P1> out_1;
00415         OutPort<T,P2> out_2;
00416         OutPort<T,P3> out_3;
00417         Func func;
00418     public:
00419         PixByPix3to3()
00420             : FilterElementary(3,3)
00421         {
00422         }
00423         PixByPix3to3(std::string name,Func functor
00424             ,P1 post_proc_1=Vtl::Plf::F11::DoNothing<T>()
00425             ,P2 post_proc_2=Vtl::Plf::F11::DoNothing<T>()
00426             ,P3 post_proc_3=Vtl::Plf::F11::DoNothing<T>())
00427             : FilterElementary(3,3)
00428         {
00429             Init(name,functor,post_proc_1,post_proc_2,post_proc_3);
00430         }
00431         virtual ~PixByPix3to3()
00432         {
00433         }
00434         void Init(std::string name,Func functor
00435             ,P1 post_proc_1=Vtl::Plf::F11::DoNothing<T>()
00436             ,P2 post_proc_2=Vtl::Plf::F11::DoNothing<T>()
00437             ,P3 post_proc_3=Vtl::Plf::F11::DoNothing<T>())
00438         {
00439             setName(name);
00440             func=functor;
00441             out_1.setPostProc(post_proc_1);
00442             out_2.setPostProc(post_proc_2);
00443             out_3.setPostProc(post_proc_3);
00444
00445             AddPort(in_1,0,Extent(0,0,0,0));
00446             AddPort(in_2,1,Extent(0,0,0,0));
00447             AddPort(in_3,2,Extent(0,0,0,0));
00448
00449             AddPort(out_1,0);
00450             AddPort(out_2,1);
00451             AddPort(out_3,2);
00452         }
00453         virtual void set_OutPortsImagesSizeAndInPortsExtents()
00454         {
00455             ImgSize ims_1=in_1.getImageSize();
00456             ImgSize ims_2=in_2.getImageSize();
00457             ImgSize ims_3=in_3.getImageSize();
00458             if(ims_1!=ims_2 ||ims_1!=ims_3 )
00459             {
00460                 std::ostringstream os;
00461                 os<< "Filter Vtl::Plf::PixByPix3to1 \"" << Name() <<"\" : input images are of different size."
00462                     << " in_1 : " << ims_1 << " in_2 : " << ims_2 << " in_3 : " << ims_3;
00463                 throw os.str();
00464             }
00465             FilterElementary::set_OutPortsImagesSizeAndInPortsExtents();
00466         }
00467         virtual void processLine()
00468         {
00469             ImgSize ims=in_1.getImageSize();
00470             const int w=ims.width;
00471
00472             out_1.beginUpdate();
00473             out_2.beginUpdate();
00474             out_3.beginUpdate();
00475                 ImageRef<T> img_1=in_1.getImg();
00476                 ImageRef<T> img_2=in_2.getImg();
00477                 ImageRef<T> img_3=in_3.getImg();
00478
00479                 const T* p_1=img_1[0];
00480                 const T* p_2=img_2[0];
00481                 const T* p_3=img_3[0];
00482
00483                 OutPortNoPostProc<T>::BufType::Iter_Line o_1=out_1.begin();
00484                 OutPortNoPostProc<T>::BufType::Iter_Line o_2=out_2.begin();
00485                 OutPortNoPostProc<T>::BufType::Iter_Line o_3=out_3.begin();
00486
00487                 for(int x=0; x<w; x++)
00488                 {
00489                     func(p_1[x],p_2[x],p_3[x],o_1[x],o_2[x],o_3[x]);
00490                 }
00491                 in_3.ToNextLine(Y_pos()+1);
00492                 in_2.ToNextLine(Y_pos()+1);
00493                 in_1.ToNextLine(Y_pos()+1);
00494             out_3.endUpdate();
00495             out_2.endUpdate();
00496             out_1.endUpdate();
00497         }
00498     };
00500     // class PixByPix2to3
00511     template<typename T, class P=Vtl::Plf::F::CorrMatrix<T,T&> >
00512     class PixByPix2to3
00513     : public FilterElementary
00514     {
00515         P functor;
00516     public:
00517         InPort<T> in_1;
00518         InPort<T> in_2;
00519         OutPort<T> out_11;
00520         OutPort<T> out_12;
00521         OutPort<T> out_22;
00522     public:
00523         PixByPix2to3()
00524             : FilterElementary(2,3)
00525         {
00526         }
00527
00528         PixByPix2to3(std::string name)
00529             : FilterElementary(2,3)
00530         {
00531             Init(std::string name);
00532         }
00533         void Init(std::string name,P func=F23::CorrMatrix<T,T&>() )
00534         {
00535             setName(name);
00536             functor=func;
00537
00538             AddPort(in_1,0,Extent(0,0,0,0));
00539             AddPort(in_2,1,Extent(0,0,0,0));
00540             AddPort(out_11,0);
00541             AddPort(out_12,1);
00542             AddPort(out_22,2);
00543         }
00544         virtual ~PixByPix2to3()
00545         {
00546         }
00547         virtual void set_OutPortsImagesSizeAndInPortsExtents()
00548         {
00549             ImgSize ims_1=in_1.getImageSize();
00550             ImgSize ims_2=in_2.getImageSize();
00551             if(ims_1!=ims_2)
00552             {
00553                 std::ostringstream os;
00554                 os<< "Filter Vtl::Plf::CorrelationMatrix2x2 \"" << Name() <<"\" : input images are of different size."
00555                     << " in_1 : " << ims_1 << " in_2 : " << ims_2 ;
00556                 throw os.str();
00557             }
00558             Vtl::Plf::FilterElementary::set_OutPortsImagesSizeAndInPortsExtents();
00559         }
00560         virtual void processLine()
00561         {
00562             ImgSize ims=in_1.getImageSize();
00563             const int w=ims.width;
00564
00565             out_11.beginUpdate();
00566             out_12.beginUpdate();
00567             out_22.beginUpdate();
00568                 ImageRef<T> img_1=in_1.getImg();
00569                 ImageRef<T> img_2=in_2.getImg();
00570                 const T* p1=img_1[0];
00571                 const T* p2=img_2[0];
00572                 OutPortNoPostProc<T>::BufType::Iter_Line o_11=out_11.begin();
00573                 OutPortNoPostProc<T>::BufType::Iter_Line o_12=out_12.begin();
00574                 OutPortNoPostProc<T>::BufType::Iter_Line o_22=out_22.begin();
00575                 for(int x=0; x<w; x++)
00576                 {
00577                     functor(p1[x],p2[x],o_11[x],o_12[x],o_22[x]);
00578                 }
00579                 in_1.ToNextLine(Y_pos()+1);
00580                 in_2.ToNextLine(Y_pos()+1);
00581
00582             out_22.endUpdate();
00583             out_12.endUpdate();
00584             out_11.endUpdate();
00585         }
00586     };
00587
00589     // class EnvProc1to1
00656     template<typename T,class Func=F::HarrisNMS<T>,class P=Vtl::Plf::F11::DoNothing<T> >
00657     class EnvProc1to1
00658     : public FilterElementary
00659     {
00660         Func func;
00661     public:
00662         InPort<T> in;
00663         OutPort<T,P> out;
00664     public:
00665         EnvProc1to1()
00666             : FilterElementary(1,1)
00667         {
00668         }
00669         EnvProc1to1(std::string name,Func functor,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00670             : FilterElementary(1,1)
00671         {
00672             Init(name,functor,post_proc);
00673         }
00674         void Init(std::string name,Func functor,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00675         {
00676             setName(name);
00677             out.setPostProc(post_proc);
00678             func=functor;
00679             AddPort(in,0,functor.ext());
00680             AddPort(out,0);
00681         }
00682         virtual ~EnvProc1to1()
00683         {
00684         }
00685         virtual void processLine()
00686         {
00687             ImgSize ims=in.getImageSize();
00688             const int w=ims.width;
00689             out.beginUpdate();
00690             ImageRef<T> img=in.getImg();
00691             const T* input=img[0];
00692             int nls=img.nls();
00693             func.set_IterNextLineShift(nls);
00694             OutPort<T>::BufType::Iter_Line output=out.begin();
00695             for(int x=0; x<w; ++x)
00696             {
00697                 *output++ = func(input+x);
00698             }
00699             in.ToNextLine(Y_pos()+1);
00700             out.endUpdate();
00701         }
00702     };
00704     // class EnvProc3to1
00748     template<typename T,class Func=Fpie::CannyNMS<T>,class P=Vtl::Plf::F11::DoNothing<T> >
00749     class EnvProc3to1
00750     : public FilterElementary
00751     {
00752         Func func;
00753     public:
00754         InPort<T> in_val;
00755         InPort<T> in_gx;
00756         InPort<T> in_gy;
00757         OutPort<T,P> out;
00758     public:
00759         EnvProc3to1()
00760             : FilterElementary(3,1)
00761         {
00762         }
00763         EnvProc3to1(std::string name,Func functor=Fpie::CannyNMS<T>(),P post_proc=Vtl::Plf::F11::DoNothing<T>())
00764             : FilterElementary(3,1)
00765         {
00766             Init(name,functor,post_proc);
00767         }
00768         void Init(std::string name,Func functor=Fpie::CannyNMS<T>(),P post_proc=Vtl::Plf::F11::DoNothing<T>())
00769         {
00770             setName(name);
00771             out.setPostProc(post_proc);
00772             func=functor;
00773             AddPort(in_val,0,func.ext());
00774             AddPort(in_gx ,1,Extent(0));//Temporary! func.ext() вместо Extent(0) из-за отсутствия балансировки графа системы.
00775             AddPort(in_gy ,2,Extent(0));//Temporary! func.ext() вместо Extent(0) из-за отсутствия балансировки графа системы.
00776 //          AddPort(in_gx ,1,func.ext());//Temporary! func.ext() вместо Extent(0) из-за отсутствия балансировки графа системы.
00777 //          AddPort(in_gy ,2,func.ext());//Temporary! func.ext() вместо Extent(0) из-за отсутствия балансировки графа системы.
00778             AddPort(out,0);
00779         }
00780         virtual ~EnvProc3to1()
00781         {
00782         }
00783         virtual void processLine()
00784         {
00785             ImgSize ims=in_val.getImageSize();
00786             const int w=ims.width;
00787
00788
00789             ImageRef<T> img_v=in_val.getImg();
00790             const T* v=img_v[0];
00791             const int nls=img_v.nls();
00792             ImageRef<T> img_x=in_gx.getImg();
00793             const T* i_x=img_x[0];//-img_x.nls();;
00794             ImageRef<T> img_y=in_gy.getImg();
00795             const T* i_y=img_y[0];//-img_y.nls();
00796
00797             float sigma=1.0f;
00798             Vtl::Plf::F11::GammaCorMult<T> gam_mult(255,2.2f,sqrt(2.0f*3.1415926f)*sigma);
00799
00800             out.beginUpdate();
00801             OutPort<T>::BufType::Iter_Line output=out.begin();
00802
00803 //          printf("NonMaxSuppression: out.Y() | in_val.Y(), in_gx.Y(), in_gy.Y()=( %d | %d, %d, %d )\n",out.Y_wait(),in_val.Y(),in_gx.Y(),in_gy.Y());
00804
00805             func.set_IterNextLineShift(nls);
00806             for(int x=0; x<w; x++)
00807                 *output++=func(v+x,i_x[x],i_y[x]);
00808
00809             in_val.ToNextLine(Y_pos()+1);
00810             in_gx.ToNextLine(Y_pos()+1);
00811             in_gy.ToNextLine(Y_pos()+1);
00812             out.endUpdate();
00813         }
00814     };
00816     // class EnvProc1to2
00890     template<typename T,class Func=F::Himg2<T>,class P1=Vtl::Plf::F11::DoNothing<T>,class P2=Vtl::Plf::F11::DoNothing<T> >
00891     class EnvProc1to2
00892     : public FilterElementary
00893     {
00894         Func func;
00895     public:
00896         InPort<T> in;
00897         OutPort<T,P1> out_x;
00898         OutPort<T,P2> out_y;
00899     public:
00900         EnvProc1to2()
00901             : FilterElementary(1,2)
00902         {
00903         }
00904         EnvProc1to2(std::string name,Func functor,P1 post_proc_x=Vtl::Plf::F11::DoNothing<T>(),P2 post_proc_y=Vtl::Plf::F11::DoNothing<T>())
00905             : FilterElementary(1,2)
00906         {
00907             Init(name,functor,post_proc_x,post_proc_y);
00908         }
00909         void Init(std::string name,Func functor=Fpie::Himg2<T>(),P1 post_proc_x=Vtl::Plf::F11::DoNothing<T>(),P2 post_proc_y=Vtl::Plf::F11::DoNothing<T>())
00910         {
00911             setName(name);
00912             out_x.setPostProc(post_proc_x);
00913             out_y.setPostProc(post_proc_y);
00914             func=functor;
00915             AddPort(in,0,functor.ext());
00916             AddPort(out_x,0);
00917             AddPort(out_y,1);
00918         }
00919         virtual ~EnvProc1to2()
00920         {
00921         }
00922         virtual void processLine()
00923         {
00924             ImgSize ims=in.getImageSize();
00925             const int w=ims.width;
00926             out_x.beginUpdate();
00927             out_y.beginUpdate();
00928             ImageRef<T> img=in.getImg();
00929             const T* input=img[0];
00930             int nls=img.nls();
00931             func.set_IterNextLineShift(nls);
00932             OutPort<T>::BufType::Iter_Line o_x=out_x.begin();
00933             OutPort<T>::BufType::Iter_Line o_y=out_y.begin();
00934             for(int x=0; x<w; ++x)
00935             {
00936                 func(input+x,*o_x++,*o_y++);
00937             }
00938             in.ToNextLine(Y_pos()+1);
00939             out_y.endUpdate();
00940             out_x.endUpdate();
00941         }
00942     };
00943
00945     // class ConvolveHorz
00949     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00950     class ConvolveHorz
00951         : public FilterElementary
00952     {
00953     public:
00954         InPort<T> in;
00955         OutPort<T,P> out;
00956         const Kernel::Base<T,Kernel::KT_Conv> *ker;
00957         int tmp;
00958     public:
00959         ConvolveHorz()
00960             : FilterElementary(1,1)
00961         {
00962         }
00963         ConvolveHorz(std::string name,const Kernel::Base<T,Kernel::KT_Conv> *kernel,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00964             : FilterElementary(1,1)
00965         {
00966             Init(name,kernel,post_proc);
00967         }
00968         ~ConvolveHorz()
00969         {
00970         }
00971         void Init(std::string name,const Kernel::Base<T,Kernel::KT_Conv> *kernel,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00972         {
00973             setName(name);
00974             out.setPostProc(post_proc);
00975             ker=kernel;
00976             Extent ext(ker->left(),ker->right(),0,0);
00977             AddPort(in,0,ext);
00978             AddPort(out,0);
00979             tmp=0;
00980         }
00981         virtual void processLine()
00982         {
00983             ImgSize ims=in.getImageSize();
00984             const int w=ims.width;
00985
00986             out.beginUpdate();
00987 //          printf("HConv: out.Y() | in.Y() = ( %d | %d ) \n",out.Y_wait(),in.Y());
00988
00989             ImageRef<T> img=in.getImg();
00990             const T* input=img[0]-ker->left();
00991             OutPortNoPostProc<T>::BufType::Iter_Line output=out.begin();
00992             Vtl::ImAlg::Conv::ConvolveNoExt(input,input+img.w(),output,*ker);
00993
00994             in.ToNextLine(Y_pos()+1);
00995             out.endUpdate();
00996 //          printf("-H---- %d\n",tmp++);
00997         }
00998     };
00999
01001     // class ConvolveHorz
01006     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
01007     class ConvolveVert
01008         : public FilterElementary
01009     {
01010     public:
01011         InPort<T> in;
01012         OutPort<T,P> out;
01013         const Kernel::Base<T,Kernel::KT_Conv> *ker;
01014         int tmp;
01015     public:
01016         ConvolveVert()
01017             : FilterElementary(1,1)
01018         {
01019         }
01020         ConvolveVert(std::string name,const Kernel::Base<T,Kernel::KT_Conv> *kernel,P post_proc=Vtl::Plf::F11::DoNothing<T>())
01021             : FilterElementary(1,1)
01022         {
01023             Init(name,kernel,post_proc);
01024         }
01025         ~ConvolveVert()
01026         {
01027         }
01028         void Init(std::string name,const Kernel::Base<T,Kernel::KT_Conv> *kernel,P post_proc=Vtl::Plf::F11::DoNothing<T>())
01029         {
01030             setName(name);
01031             out.setPostProc(post_proc);
01032             ker=kernel;
01033             Extent ext(0,0,ker->left(),ker->right());
01034             AddPort(in,0,ext);
01035             AddPort(out,0);
01036 //          printf("ConvolveVert: ext= %d   %d\n",ext.before,ext.forward);
01037             tmp=0;
01038         }
01039         virtual void processLine()
01040         {
01041             ImgSize ims=in.getImageSize();
01042             const int w=ims.width;
01043
01044             out.beginUpdate();
01045
01046             ImageRef<T> img=in.getImg();
01047             LineIterator<T> input_begin(img);
01048             LineIterator<T> input_end(img,true);
01049             OutPortNoPostProc<T>::BufType::Iter_Line output=out.begin();
01050             Vtl::ImAlg::Conv::ConvolveNoExt(input_begin,input_end,output,*ker);
01051
01052             //in.setProcessed_YES();
01053             in.ToNextLine(Y_pos()+1);
01054             out.endUpdate();
01055 //          printf("-V---- %d\n",tmp++);
01056         }
01057     };
01058
01060     // class FilterResampleHorz
01064     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
01065     class FilterResampleHorz
01066         : public FilterElementary
01067     {
01068     public:
01069         InPort<T> in;
01070         OutPort<T,P> out;
01071         int w_new;
01072         int w_old;
01073         int tmp;
01074     public:
01075         FilterResampleHorz()
01076             : FilterElementary(1,1),w_new(0)
01077         {
01078         }
01079         FilterResampleHorz(std::string name,int new_width,P post_proc=Vtl::Plf::F11::DoNothing<T>())
01080             : FilterElementary(1,1)
01081         {
01082             Init(name,new_width,post_proc);
01083         }
01084         virtual ~FilterResampleHorz()
01085         {
01086         }
01087
01088         void Init(std::string name,int new_width,P post_proc=Vtl::Plf::F11::DoNothing<T>())
01089         {
01090             setName(name);
01091             out.setPostProc(post_proc);
01092             w_new=new_width;
01093             AddPort(in,0,Extent(0,0,0,0));
01094             AddPort(out,0);
01095             tmp=0;
01096         }
01097         virtual void set_OutPortsImagesSizeAndInPortsExtents()
01098         {
01099             ImgSize ims=in.getImageSize();
01100             w_old=ims.width;
01101             ims.width=w_new;
01102             out.set_bufferImgSize(ims);
01103             // Extension - не изменяется и остается, как задан в конструкторе.
01104         }
01105
01106         virtual void processLine()
01107         {
01108             out.beginUpdate();
01109
01110             ImageRef<T> img=in.getImg();
01111             const T* input=img[0];
01112             int w_in=w_old;
01113             int w_out=w_new;
01114             OutPortNoPostProc<T>::BufType::Iter_Line output=out.begin();
01115             //if(w_out>w_in)
01116             {
01117                 double k=(w_in-1.)/(w_out-1.);
01118                 for(int x_out=0; x_out<w_out ; ++x_out)
01119                 {
01120                     double x=x_out*k;
01121                     int x_in=(int)x;
01122                     x-=x_in;
01123                     *output++=T(input[x_in]*(1-x)+input[x_in+1]*x);
01124                 }
01125 //              OutPortNoPostProc<T>::BufType::Iter_Line output=out.begin_line_insert();
01126 //              for(int x=0; x<w_new; x++)
01127 //                  *output++=functor(*input++);
01128             }
01129             in.ToNextLine(Y_pos()+1);
01130             out.endUpdate();
01131 //          printf("-RsH-- %d\n",tmp++);
01132         }
01133     };
01135     // class FilterResampleVert
01139     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
01140     class FilterResampleVert
01141         : public FilterElementary
01142     {
01143     public:
01144         InPort<T> in;
01145         OutPort<T,P> out;
01146         int h_new;
01147         int h_old;
01148         double cof;
01149         int y;
01150     public:
01151         FilterResampleVert()
01152             : FilterElementary(1,1),h_new(0)
01153         {
01154             y=0;
01155         }
01156         FilterResampleVert(std::string name,int new_height,P post_proc=Vtl::Plf::F11::DoNothing<T>())
01157             : FilterElementary(1,1)
01158         {
01159             Init(name,new_height,post_proc);
01160         }
01161         virtual ~FilterResampleVert()
01162         {
01163         }
01164         void Init(std::string name,int new_height,P post_proc=Vtl::Plf::F11::DoNothing<T>())
01165         {
01166             setName(name);
01167             out.setPostProc(post_proc);
01168             h_new=new_height;
01169             AddPort(in,0,Extent(0,0,0,1));
01170             AddPort(out,0);
01171             y=0;
01172         }
01173         virtual void set_OutPortsImagesSizeAndInPortsExtents()
01174         {
01175             ImgSize ims=in.getImageSize();
01176             h_old=ims.height;
01177             ims.height=h_new;
01178             out.set_bufferImgSize(ims);
01179             cof=((h_old-1.)/(h_new-1.));
01180             // Extension - не изменяется и остается, как задан в конструкторе.
01181         }
01182
01183         virtual void processLine()
01184         {
01185             out.beginUpdate();
01186
01187             ImageRef<T> img=in.getImg();
01188             const T* input=img[0];
01189             int w=img.w();
01190             OutPortNoPostProc<T>::BufType::Iter_Line output=out.begin();
01191
01192             double k=cof*y;
01193             int y_in=int(k);
01194             k-=y_in;
01195             //if(h_new>h_old)
01196             {
01197                 for(int x=0; x<w ; ++x)
01198                 {
01199                     *output++=T(input[x]*(1-k)+input[x+img.nls()]*k);
01200                 }
01201
01202 //              OutPortNoPostProc<T>::BufType::Iter_Line output=out.begin_line_insert();
01203 //              for(int x=0; x<w_new; x++)
01204 //                  *output++=functor(*input++);
01205             }
01206             ++y;
01207             int y_in_next=int(cof*y);
01208             if( ( y_in_next > y_in ) ) //|| ( y >= h_old ) )
01209             {
01210                 //in.ToNextLine(y_in+1);
01211                 in.ToNextLine(y_in_next);
01212             }
01213             out.endUpdate();
01214 //          printf("-RsV-- %d\n",y);
01215 //          printf("-RsV-- %d %d %d %d\n",out.buffer.ext().left,out.buffer.ext().right,out.buffer.ext().before,out.buffer.ext().forward);
01216         }
01217     };
01218  // end of ElementaryFiltersDoxGroup
01220 } //namespace Plf
01221 } //namespace Vtl
01223 #endif //_PLF_FILTERS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл plf_filters_complex.h

  • Файлы
  • Список членов всех файлов

plf_filters_complex.h

См. документацию.
00001 #ifndef _PLF_FILTER_COMPLEX_H
00002 #define _PLF_FILTER_COMPLEX_H
00004 #include "plf_filters.h"
00005 #include "color_spaces.h"
00006
00007 namespace Vtl
00008 {
00009 // @brief  находится в файле plf_filters.h, здесь не описывается
00010 namespace Plf
00011 {
00021
00022     // class SeparableConv2D
00029     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00030     class SeparableConv2D
00031         : public FilterComplex
00032     {
00033         Vtl::Plf::ConvolveHorz<T> h_conv;
00034         Vtl::Plf::ConvolveVert<T,P> v_conv;
00035     private:
00036         SeparableConv2D(const SeparableConv2D&);
00037         SeparableConv2D& operator=(const SeparableConv2D&);
00038     public:
00039         InPort<T> & in() {return v_conv.in; }
00040         OutPort<T,P> & out() {return h_conv.out; }
00041         SeparableConv2D()
00042             : FilterComplex(1,1)
00043         {
00044 //          AddPort(in(),0);
00045 //          AddPort(out(),0);
00046         }
00047         SeparableConv2D(std::string name,const Kernel::Base<T,Kernel::KT_Conv> *kernel_x,const Kernel::Base<T,Kernel::KT_Conv> *kernel_y,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00048             : FilterComplex(1,1)
00049         {
00050             Init(name,kernel_x,kernel_y,post_proc);
00051         }
00052         void Init(std::string name,const Kernel::Base<T,Kernel::KT_Conv> *kernel_x,const Kernel::Base<T,Kernel::KT_Conv> *kernel_y,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00053         {
00054             setName(name);
00055             out().setPostProc(post_proc);
00056             v_conv.Init(Name()+"::V-conv",kernel_y);
00057             h_conv.Init(Name()+"::H-conv",kernel_x);
00058         //------ create graph --------------------
00059             v_conv.out.ConnectTo(&h_conv.in);
00060 //          AddPort(in(),0);
00061 //          AddPort(out(),0);
00062         }
00063         virtual ~SeparableConv2D()
00064         {
00065         }
00066     };
00068     // class Average
00081     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00082     class Average
00083         : public FilterComplex
00084     {
00085         SeparableConv2D<T,P> conv2D;
00086     private:
00087         Average(const Average&);
00088         Average& operator=(const Average&);
00089     public:
00090         InPort<T> & in() {return conv2D.in(); }
00091         OutPort<T,P> & out() {return conv2D.out(); }
00092         Average()
00093             : FilterComplex(1,1)
00094         {
00095 //          AddPort(in(),0);
00096 //          AddPort(out(),0);
00097         }
00098         Average(std::string name,const Kernel::Base<T,Kernel::KT_Conv> *kernel_1D,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00099             : FilterComplex(1,1)
00100         {
00101             Init(name,kernel_1D,post_proc);
00102         }
00103         void Init(std::string name,const Kernel::Base<T,Kernel::KT_Conv> *kernel_1D,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00104         {
00105             setName(name);
00106             out().setPostProc(post_proc);
00107             conv2D.Init(Name(),kernel_1D,kernel_1D,post_proc);
00108 //          AddPort(in(),0);
00109 //          AddPort(out(),0);
00110         }
00111         virtual ~Average()
00112         {
00113         }
00114     };
00116     // class Sharpen
00133     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00134     class Sharpen
00135         : public FilterComplex
00136     {
00137         Average<T> mean;
00138         PixByPix2to1<T,F21::Sharpen<T>,P > sharp;
00139     private:
00140         Sharpen(const Sharpen&);
00141         Sharpen& operator=(const Sharpen&);
00142     public:
00143         InPortComb<T> in;
00144         OutPort<T,P> & out() {return sharp.out; }
00145         Sharpen()
00146             : FilterComplex(1,1)
00147         {
00148 //          AddPort(in(),0);
00149 //          AddPort(out(),0);
00150         }
00151         Sharpen(std::string name,const Kernel::Base<T,Kernel::KT_Conv> *kernel_1D,float amp=4.0,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00152             : FilterComplex(1,1)
00153         {
00154             Init(name,kernel_1D,amp,post_proc);
00155         }
00156         void Init(std::string name,const Kernel::Base<T,Kernel::KT_Conv> *kernel_1D,float amp=4.0,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00157         {
00158             setName(name);
00159             out().setPostProc(post_proc);
00160             mean.Init(Name()+"::Mean",kernel_1D);
00161             F21::Sharpen<T> s(amp);
00162             sharp.Init(Name()+"::Sharpen",s,post_proc);
00163             mean.out().ConnectTo(&sharp.in_2);
00164             in.Add(&mean.in());
00165             in.Add(&sharp.in_1);
00166 //          AddPort(in(),0);
00167 //          AddPort(out(),0);
00168         }
00169         virtual ~Sharpen()
00170         {
00171         }
00172     };
00174     // class AverageGauss
00184     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00185     class AverageGauss
00186         : public FilterComplex
00187     {
00188         typedef Vtl::ImAlg::WndFun::Gauss<T,0> G0;
00189         Vtl::Plf::Kernel::FKern<T> gauss;
00190         Average<T,P> aver;
00191     private:
00192         AverageGauss(const AverageGauss&);
00193         AverageGauss& operator=(const AverageGauss&);
00194     public:
00195         InPort<T> & in() {return aver.in(); }
00196         OutPort<T,P> & out() {return aver.out(); }
00197         AverageGauss()
00198             : FilterComplex(1,1)
00199         {
00200 //          AddPort(in(),0);
00201 //          AddPort(out(),0);
00202         }
00203         AverageGauss(std::string name,float sigma=1.0f,float env_sigmas=2.5f,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00204             : FilterComplex(1,1)
00205         {
00206             Init(name,sigma,env_sigmas,post_proc);
00207         }
00208         void Init(std::string name,float sigma=1.0f,float env_sigmas=2.5f,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00209         {
00210             setName(name);
00211             out().setPostProc(post_proc);
00212             //gauss.Init(sigma,env_sigmas);
00213             G0 g0(sigma,env_sigmas);
00214             gauss.Init(g0);
00215
00216             aver.Init(Name(),&gauss,post_proc);
00217 //          AddPort(in(),0);
00218 //          AddPort(out(),0);
00219         }
00220         virtual ~AverageGauss()
00221         {
00222         }
00223     };
00225     // class HImage
00234     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00235     class HImage
00236         : public FilterComplex
00237     {
00238
00239         EnvProc1to1<T,Fpie::Himg<T>,P > h;
00240     private:
00241         HImage(const HImage&);
00242         HImage& operator=(const HImage&);
00243     public:
00244         InPort<T> & in() {return h.in; }
00246         OutPort<T,P> & out() {return h.out; }
00247         HImage()
00248             : FilterComplex(1,1)
00249         {
00250 //          AddPort(in(),0);
00251 //          AddPort(out(),0);
00252         }
00253         HImage(std::string name,int radius,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00254             : FilterComplex(1,1)
00255         {
00256             Init(name,radius,post_proc);
00257         }
00259         void Init(std::string name,int radius,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00260         {
00261             setName(name);
00262             Fpie::Himg<T> hi(radius);
00263             h.Init(name,hi,post_proc);
00264         //------ create graph --------------------
00265             //not to do - one filter only
00266 //          AddPort(in(),0);
00267 //          AddPort(out(),0);
00268         }
00269         virtual ~HImage()
00270         {
00271         }
00272     };
00274     // class BiLateral
00283     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00284     class BiLateral
00285         : public FilterComplex
00286     {
00287
00288         EnvProc1to1<T,Fpie::BiLateralSmooth<T>,P > bi;
00289     private:
00290         BiLateral(const BiLateral&);
00291         BiLateral& operator=(const BiLateral&);
00292     public:
00293         InPort<T> & in() {return bi.in; }
00295         OutPort<T,P> & out() {return bi.out; }
00296         BiLateral()
00297             : FilterComplex(1,1)
00298         {
00299 //          AddPort(in(),0);
00300 //          AddPort(out(),0);
00301         }
00302         BiLateral(std::string name,float epsilon,float sigma=2.0f,float env_sigmas=2.0f,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00303             : FilterComplex(1,1)
00304         {
00305             Init(name,epsilon,sigma,env_sigmas);
00306         }
00308         void Init(std::string name,float epsilon,float sigma=2.0f,float env_sigmas=2.0f,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00309         {
00310             setName(name);
00311             Fpie::BiLateralSmooth<T> b(epsilon,sigma,env_sigmas);
00312             bi.Init(name,b,post_proc);
00313         //------ create graph --------------------
00314             //not to do - one filter only
00315 //          AddPort(in(),0);
00316 //          AddPort(out(),0);
00317         }
00318         virtual ~BiLateral()
00319         {
00320         }
00321     };
00323     // class GradientModul
00333     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00334     class GradientModul
00335         : public FilterComplex
00336     {
00337         T sigma;
00338         typedef typename Vtl::Plf::F11::Comb<T,Vtl::Plf::F11::GammaCorMult<T>,P> PostProc;
00339
00340         typedef Vtl::ImAlg::WndFun::Gauss<T,0> G0;
00341         typedef Vtl::ImAlg::WndFun::Gauss<T,1> G1;
00342         Vtl::Plf::Kernel::FKern<T> gauss;
00343         Vtl::Plf::Kernel::FKern<T> gauss_deriv;
00344
00345 //      Vtl::Plf::Kernel::Gauss<T,0,Kernel::KT_Conv> gauss;
00346 //      Vtl::Plf::Kernel::Gauss<T,1,Kernel::KT_Conv> gauss_deriv;
00347         Vtl::Plf::SeparableConv2D<T> gx;
00348         Vtl::Plf::SeparableConv2D<T> gy;
00349         Vtl::Plf::PixByPix2to1<T,Vtl::Plf::F21::SqrtOfSumSqr<T>,PostProc> sum_sqr;
00350     private:
00351         GradientModul(const GradientModul&);
00352         GradientModul& operator=(const GradientModul&);
00353     public:
00354         InPortComb<T> in;
00356         OutPort<T,PostProc > & out() {return sum_sqr.out; }
00358         OutPort<T,P> & out_gx() {return gx.out(); }
00360         OutPort<T,P> & out_gy() {return gy.out(); }
00361         GradientModul()
00362             : FilterComplex(1,1)
00363         {
00364 //          AddPort(in(),0);
00365 //          AddPort(out(),0);
00366         }
00368         GradientModul(std::string name,T output_maxval,float sigma_=1.0f,float env_sigmas=2.5f,float gamma_correction=2.2f,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00369             : FilterComplex(1,1)
00370         {
00371             Init(name,output_maxval,sigma_,env_sigmas,gamma_correction,post_proc);
00372         }
00374         void Init(std::string name,T output_maxval,float sigma_=1.0f,float env_sigmas=2.5f,float gamma_correction=2.2f,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00375         {
00376             setName(name);
00377             sigma=sigma_;
00378             G0 g0(sigma,env_sigmas);
00379             G1 g1(sigma,env_sigmas);
00380             gauss.Init(g0);
00381             gauss_deriv.Init(g1);
00382 //          gauss.Init(sigma,env_sigmas);
00383 //          gauss_deriv.Init(sigma,env_sigmas);
00384             gx.Init(Name()+"::gx",&gauss_deriv,&gauss);
00385             gy.Init(Name()+"::gy",&gauss,&gauss_deriv);
00386             const Vtl::Plf::F21::SqrtOfSumSqr<T> ssqr;
00387             Vtl::Plf::F11::GammaCorMult<T> gam_mult(output_maxval,gamma_correction,sqrt(2.0f*3.1415926f)*sigma);
00388             Vtl::Plf::F11::Comb<T,Vtl::Plf::F11::GammaCorMult<T>,P> gam_mult_pproc(gam_mult,post_proc);
00389             sum_sqr.Init(Name()+"::SumSqr",ssqr,gam_mult_pproc);
00390         //------ create graph --------------------
00391             out_gx().ConnectTo(&sum_sqr.in_1);
00392             out_gy().ConnectTo(&sum_sqr.in_2);
00393
00394             in.Add(&gx.in());
00395             in.Add(&gy.in());
00396 //          AddPort(in,0);
00397 //          AddPort(out(),0);
00398         }
00399         virtual ~GradientModul()
00400         {
00401         }
00402     };
00404     // class MeanAndDisp
00414     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00415     class MeanAndDisp
00416         : public FilterComplex
00417     {
00418         Vtl::Plf::Levels<T,Vtl::Plf::F11::Sqr<T> > sqr;
00419         typedef Vtl::ImAlg::WndFun::Gauss<T,0> G0;
00420         Vtl::Plf::Kernel::FKern<T> gauss;
00421
00422         Vtl::Plf::Average<T> mean;
00423         Vtl::Plf::Average<T> sqr_mean;
00424         Vtl::Plf::PixByPix2to1<T,Vtl::Plf::F21::Disp<T> > disp;
00425     private:
00426         MeanAndDisp(const MeanAndDisp&);
00427         MeanAndDisp& operator=(const MeanAndDisp&);
00428     public:
00429         InPortComb<T> in;
00431         OutPort<T,P> & out_mean() {return mean.out(); }
00433         OutPort<T,P> & out_disp() {return disp.out; }
00434         MeanAndDisp()
00435             : FilterComplex(1,1)
00436         {
00437 //          AddPort(in(),0);
00438 //          AddPort(out(),0);
00439         }
00441         MeanAndDisp(std::string name,T output_maxval,float sigma=1.0f,float env_sigmas=2.5f,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00442             : FilterComplex(1,1)
00443         {
00444             Init(name,output_maxval,sigma,env_sigmas,post_proc);
00445         }
00447         void Init(std::string name,T output_maxval,float sigma=1.0f,float env_sigmas=2.5f,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00448         {
00449             setName(name);
00450             //sigma=sigma_;
00451             G0 g0(sigma,env_sigmas);
00452             gauss.Init(g0);
00453 //          gauss.Init(sigma,env_sigmas);
00454             Vtl::Plf::F11::Sqr<T> s;
00455             Vtl::Plf::F21::Disp<T> d;
00456
00457             sqr.Init(Name()+"::sqr",s);
00458             mean.Init(Name()+"::mean(v)",&gauss);
00459             sqr_mean.Init(Name()+"::mean(v^2)",&gauss);
00460             disp.Init(Name()+"::(\\<v^2\\>-\\<v\\>^2)",d);
00461         //------ create graph --------------------
00462             sqr.out.ConnectTo(&sqr_mean.in());
00463             mean.out().ConnectTo(&disp.in_1);
00464             sqr_mean.out().ConnectTo(&disp.in_2);
00465             in.Add(&sqr.in);
00466             in.Add(&mean.in());
00467 //          AddPort(in(),0);
00468 //          AddPort(out(),0);
00469         }
00470         virtual ~MeanAndDisp()
00471         {
00472         }
00473     };
00475     // class StatDiff
00513     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00514     class StatDiff
00515         : public FilterComplex
00516     {
00517 //      Vtl::Plf::Levels<T,Vtl::Plf::F::Sqr<T> > sqr;
00518 //      Vtl::Plf::ConvKernelGauss<T> gauss;
00519         Vtl::Plf::MeanAndDisp<T> mean_and_disp;
00520         PixByPix3to1<T,Vtl::Plf::F31::StatDiff<T>,P > stat;
00521     private:
00522         StatDiff(const StatDiff&);
00523         StatDiff& operator=(const StatDiff&);
00524     public:
00525         InPortComb<T> in;
00526         OutPort<T,P> & out() {return stat.out; }
00527         StatDiff()
00528             : FilterComplex(1,1)
00529         {
00530 //          AddPort(in(),0);
00531 //          AddPort(out(),0);
00532         }
00534         StatDiff(std::string name,T output_maxval,float sigma=5.0f,float env_sigmas=2.0f,float amplification=6.0f,float sigma_desired=85.0f,float mean_desired=128.0f,float alpha=0.8f,P post_proc=Vtl::Plf::F11::DoNothing<T>() )
00535             : FilterComplex(1,1)
00536         {
00537             Init(name,output_maxval,sigma,env_sigmas,amplification,sigma_desired,mean_desired,alpha,post_proc);
00538         }
00540         void Init(std::string name,T output_maxval,float sigma=5.0f,float env_sigmas=2.0f,float amplification=6.0f,float sigma_desired=85.0f,float mean_desired=128.0f,float alpha=0.8f,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00541         {
00542             setName(name);
00543             //out().setPostProc(post_proc);
00544
00545             mean_and_disp.Init(Name()+"::MeanAndDisp",output_maxval,sigma,env_sigmas);
00546             Vtl::Plf::F31::StatDiff<T> s(amplification,sigma_desired,mean_desired,alpha);
00547             stat.Init(Name()+"::StatDiff",s,post_proc);
00548         //------ create graph --------------------
00549             mean_and_disp.out_mean().ConnectTo(&stat.in_xy);
00550             mean_and_disp.out_disp().ConnectTo(&stat.in_yy);
00551             in.Add(&stat.in_xx);
00552             in.Add(&mean_and_disp.in);
00553 //          AddPort(in(),0);
00554 //          AddPort(out(),0);
00555         }
00556         virtual ~StatDiff()
00557         {
00558         }
00559     };
00561     // class DeNoise
00571     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00572     class DeNoise
00573         : public FilterComplex
00574     {
00575 //      Vtl::Plf::Levels<T,Vtl::Plf::F::Sqr<T> > sqr;
00576 //      Vtl::Plf::ConvKernelGauss<T> gauss;
00577         Vtl::Plf::MeanAndDisp<T> mean_and_disp;
00578         PixByPix3to1<T,Vtl::Plf::F31::DeNoise<T>,P > denoise;
00579     private:
00580         DeNoise(const DeNoise&);
00581         DeNoise& operator=(const DeNoise&);
00582     public:
00583         InPortComb<T> in;
00584         OutPort<T,P> & out() {return denoise.out; }
00585         DeNoise()
00586             : FilterComplex(1,1)
00587         {
00588 //          AddPort(in(),0);
00589 //          AddPort(out(),0);
00590         }
00592         DeNoise(std::string name,T output_maxval,float sigma=5.0f,float env_sigmas=2.0f,float in_k_sigmas=2.0f,P post_proc=Vtl::Plf::F11::DoNothing<T>() )
00593             : FilterComplex(1,1)
00594         {
00595             Init(name,output_maxval,sigma,env_sigmas,in_k_sigmas,post_proc);
00596         }
00598         void Init(std::string name,T output_maxval,float sigma=5.0f,float env_sigmas=2.0f,float in_k_sigmas=2.0f,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00599         {
00600             setName(name);
00601             //out().setPostProc(post_proc);
00602
00603             mean_and_disp.Init(Name()+"::MeanAndDisp",output_maxval,sigma,env_sigmas);
00604             Vtl::Plf::F31::DeNoise<T> s(in_k_sigmas);
00605             denoise.Init(Name()+"::DeNoise",s,post_proc);
00606         //------ create graph --------------------
00607             mean_and_disp.out_mean().ConnectTo(&denoise.in_xy);
00608             mean_and_disp.out_disp().ConnectTo(&denoise.in_yy);
00609             in.Add(&denoise.in_xx);
00610             in.Add(&mean_and_disp.in);
00611 //          AddPort(in(),0);
00612 //          AddPort(out(),0);
00613         }
00614         virtual ~DeNoise()
00615         {
00616         }
00617     };
00619     // class Canny
00628     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00629     class Canny
00630         : public FilterComplex
00631     {
00632         float sigma;
00633         typedef typename Vtl::Plf::F11::Comb<T,Vtl::Plf::F11::GammaCorMult<T>,P> PostProc;
00634
00635         Vtl::Plf::GradientModul<T> mgrad;
00636         Vtl::Plf::EnvProc3to1<T,Fpie::CannyNMS<T>,P> nms;
00637     private:
00638         Canny(const Canny&);
00639         Canny& operator=(const Canny&);
00640     public:
00641         InPortComb<T>& in() {return mgrad.in;}
00642         OutPort<T,P>& out() {return nms.out;}
00643         Canny()
00644             : FilterComplex(1,1)
00645         {
00646 //          AddPort(in(),0);
00647 //          AddPort(out(),0);
00648         }
00650         Canny(std::string name,T threshold,T output_maxval,float sigma=1.0f,float env_sigmas=2.5f,float gamma_correction=2.2f,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00651             : FilterComplex(1,1)
00652         {
00653             Init(name,threshold,output_maxval,sigma,env_sigmas,gamma_correction,post_proc);
00654         }
00656         void Init(std::string name,T threshold,T output_maxval,float sigma=1.0f,float env_sigmas=2.5f,float gamma_correction=2.2f,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00657         {
00658             setName(name);
00659             mgrad.Init(Name()+"::MogGrad",output_maxval,sigma,env_sigmas,gamma_correction);
00660             Vtl::Plf::Fpie::CannyNMS<T> nms_proc(threshold);
00661             nms.Init(Name()+"::NMS",nms_proc,post_proc);
00662         //------ create graph --------------------
00663             mgrad.out().ConnectTo(&nms.in_val);
00664             mgrad.out_gx().ConnectTo(&nms.in_gx);
00665             mgrad.out_gy().ConnectTo(&nms.in_gy);
00666 //          AddPort(in,0);
00667 //          AddPort(out(),0);
00668         }
00669         virtual ~Canny()
00670         {
00671         }
00672     };
00674     // class DiZenzo
00686     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00687     class DiZenzo
00688         : public FilterComplex
00689     {
00690         float sigma;
00691 //      typedef typename Vtl::Plf::F::Comb<T,Vtl::Plf::F::GammaCorMult<T>,P> PostProc;
00692
00693         typedef Vtl::ImAlg::WndFun::Gauss<T,0> G0;
00694         typedef Vtl::ImAlg::WndFun::Gauss<T,1> G1;
00695         Vtl::Plf::Kernel::FKern<T> gauss;
00696         Vtl::Plf::Kernel::FKern<T> gauss_deriv;
00697         Vtl::Plf::SeparableConv2D<T> gx_1;
00698         Vtl::Plf::SeparableConv2D<T> gy_1;
00699         Vtl::Plf::SeparableConv2D<T> gx_2;
00700         Vtl::Plf::SeparableConv2D<T> gy_2;
00701         Vtl::Plf::SeparableConv2D<T> gx_3;
00702         Vtl::Plf::SeparableConv2D<T> gy_3;
00703
00704         Vtl::Plf::PixByPix2to3<T,Vtl::Plf::F23::CorrMatrix<T,T&> > mat_1;
00705         Vtl::Plf::PixByPix2to3<T,Vtl::Plf::F23::CorrMatrix<T,T&> > mat_2;
00706         Vtl::Plf::PixByPix2to3<T,Vtl::Plf::F23::CorrMatrix<T,T&> > mat_3;
00707
00708         Vtl::Plf::PixByPix3to1<T,Vtl::Plf::F31::Sum3<T> > sum_1;
00709         Vtl::Plf::PixByPix3to1<T,Vtl::Plf::F31::Sum3<T> > sum_2;
00710         Vtl::Plf::PixByPix3to1<T,Vtl::Plf::F31::Sum3<T> > sum_3;
00711
00712         PixByPix3to3<T, Vtl::Plf::F33::DiZenzo<T> ,Vtl::Plf::F11::GammaCorMult<T> > color_modul_eigvec;
00713
00714         Vtl::Plf::EnvProc3to1<T,Fpie::CannyNMS<T>,P> nms;
00715
00716     private:
00717         DiZenzo(const DiZenzo&);
00718         DiZenzo& operator=(const DiZenzo&);
00719     public:
00720         InPortComb<T> in_1;
00721         InPortComb<T> in_2;
00722         InPortComb<T> in_3;
00724         OutPort<T > & out() {return nms.out; }
00725         DiZenzo()
00726             : FilterComplex(1,1)
00727         {
00728         }
00729         DiZenzo(std::string name,T output_maxval,T threshold=20,float sigma_=1.0f,float env_sigmas=2.5f,float gamma_correction=2.2f,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00730             : FilterComplex(1,1)
00731         {
00732             Init(name,output_maxval,threshold,sigma_,env_sigmas,gamma_correction,post_proc);
00733         }
00734
00735         void Init(std::string name,T output_maxval,float threshold=20,float sigma_=1.0f,float env_sigmas=2.5f,float gamma_correction=2.2f,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00736         {
00737             setName(name);
00738             sigma=sigma_;
00739             G0 g0(sigma,env_sigmas);
00740             gauss.Init(g0);
00741             G1 g1(sigma,env_sigmas);
00742             gauss_deriv.Init(g1);
00743             //gauss.Init(sigma,env_sigmas);
00744             //gauss_deriv.Init(sigma,env_sigmas);
00745             gx_1.Init(Name()+"::gx",&gauss_deriv,&gauss);
00746             gy_1.Init(Name()+"::gy",&gauss,&gauss_deriv);
00747             gx_2.Init(Name()+"::gx",&gauss_deriv,&gauss);
00748             gy_2.Init(Name()+"::gy",&gauss,&gauss_deriv);
00749             gx_3.Init(Name()+"::gx",&gauss_deriv,&gauss);
00750             gy_3.Init(Name()+"::gy",&gauss,&gauss_deriv);
00751             const Vtl::Plf::F23::CorrMatrix<T,T&> cov;
00752             mat_1.Init("1-cov",cov);
00753             mat_2.Init("2-cov",cov);
00754             mat_3.Init("3-cov",cov);
00755
00756             const Vtl::Plf::F31::Sum3<T> s3;
00757             sum_1.Init("sum gx^2",s3);
00758             sum_2.Init("sum gx*gy",s3);
00759             sum_3.Init("sum gy^2",s3);
00760
00761             Vtl::Plf::F11::GammaCorMult<T> gam_mult(output_maxval,gamma_correction,sqrt(2.0f*M_PI)*sigma);
00762
00763             const Vtl::Plf::F33::DiZenzo<T> dz;
00764             color_modul_eigvec.Init("color_modul_eigvec",dz,gam_mult);
00765
00766             Vtl::Plf::Fpie::CannyNMS<T> canny(threshold);
00767             nms.Init("NMS",canny,post_proc);
00768
00769         //------ create graph --------------------
00770
00771             gx_1.out().ConnectTo(&mat_1.in_1);
00772             gy_1.out().ConnectTo(&mat_1.in_2);
00773             gx_2.out().ConnectTo(&mat_2.in_1);
00774             gy_2.out().ConnectTo(&mat_2.in_2);
00775             gx_3.out().ConnectTo(&mat_3.in_1);
00776             gy_3.out().ConnectTo(&mat_3.in_2);
00777
00778             mat_1.out_11.ConnectTo(&sum_1.in_xx);
00779             mat_2.out_11.ConnectTo(&sum_1.in_xy);
00780             mat_3.out_11.ConnectTo(&sum_1.in_yy);
00781
00782             mat_1.out_12.ConnectTo(&sum_2.in_xx);
00783             mat_2.out_12.ConnectTo(&sum_2.in_xy);
00784             mat_3.out_12.ConnectTo(&sum_2.in_yy);
00785
00786             mat_1.out_22.ConnectTo(&sum_3.in_xx);
00787             mat_2.out_22.ConnectTo(&sum_3.in_xy);
00788             mat_3.out_22.ConnectTo(&sum_3.in_yy);
00789
00790             sum_1.out.ConnectTo(&color_modul_eigvec.in_1);
00791             sum_2.out.ConnectTo(&color_modul_eigvec.in_2);
00792             sum_3.out.ConnectTo(&color_modul_eigvec.in_3);
00793
00794             color_modul_eigvec.out_1.ConnectTo(&nms.in_val);
00795             color_modul_eigvec.out_2.ConnectTo(&nms.in_gx);
00796             color_modul_eigvec.out_3.ConnectTo(&nms.in_gy);
00797
00798             in_1.Add(&gx_1.in());
00799             in_1.Add(&gy_1.in());
00800             in_2.Add(&gx_2.in());
00801             in_2.Add(&gy_2.in());
00802             in_3.Add(&gx_3.in());
00803             in_3.Add(&gy_3.in());
00804         }
00805         virtual ~DiZenzo()
00806         {
00807         }
00808     };
00810     // class HImageEdge
00820     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00821     class HImageEdge
00822         : public FilterComplex
00823     {
00824         Vtl::Plf::EnvProc1to2<T,Fpie::Himg2<T> > himage;
00825         Vtl::Plf::PixByPix2to1<T,Vtl::Plf::F21::SqrtOfSumSqr<T> > sum_sqr;
00826         Vtl::Plf::EnvProc3to1<T,Fpie::CannyNMS<T>,P> nms;
00827     private:
00828         HImageEdge(const HImageEdge&);
00829         HImageEdge& operator=(const HImageEdge&);
00830     public:
00831         InPort<T>& in() {return himage.in;}
00832         OutPort<T,P>& out() {return nms.out;}
00833         HImageEdge()
00834             : FilterComplex(1,1)
00835         {
00836 //          AddPort(in(),0);
00837 //          AddPort(out(),0);
00838         }
00840         HImageEdge(std::string name,int radius,T threshold,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00841             : FilterComplex(1,1)
00842         {
00843             Init(name,radius,threshold,post_proc);
00844         }
00846         void Init(std::string name,int radius,T threshold,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00847         {
00848             setName(name);
00849             const Vtl::Plf::Fpie::Himg2<T> hi(radius);
00850             himage.Init("H-Img-pseudograd",hi);
00851             const Vtl::Plf::F21::SqrtOfSumSqr<T> ssqr;
00852             sum_sqr.Init(Name()+"::SumSqr",ssqr);
00853             Vtl::Plf::Fpie::CannyNMS<T> nms_proc(threshold);
00854             nms.Init(Name()+"::NMS",nms_proc,post_proc);
00855         //------ create graph --------------------
00856             himage.out_x.ConnectTo(&sum_sqr.in_1);
00857             himage.out_y.ConnectTo(&sum_sqr.in_2);
00858             sum_sqr.out.ConnectTo(&nms.in_val);
00859             himage.out_x.ConnectTo(&nms.in_gx);
00860             himage.out_y.ConnectTo(&nms.in_gy);
00861 //          AddPort(in(),0);
00862 //          AddPort(out(),0);
00863         }
00864         virtual ~HImageEdge()
00865         {
00866         }
00867     };
00868
00870     // class GradientCorr
00875     template<typename T,class P=F::CorrMatrix<T,T&> >
00876     class GradientCorr
00877         : public FilterComplex
00878     {
00879         float sigma;
00880         typedef Vtl::ImAlg::WndFun::Gauss<T,0> G0;
00881         typedef Vtl::ImAlg::WndFun::Gauss<T,1> G1;
00882         Vtl::Plf::Kernel::FKern<T> gauss;
00883         Vtl::Plf::Kernel::FKern<T> gauss_deriv;
00884         Vtl::Plf::SeparableConv2D<T> gx;
00885         Vtl::Plf::SeparableConv2D<T> gy;
00886         Vtl::Plf::PixByPix2to3<T,Vtl::Plf::F23::CorrMatrix<T,T&> > corr;
00887     private:
00888         GradientCorr(const GradientCorr&);
00889         GradientCorr& operator=(const GradientCorr&);
00890     public:
00891         InPortComb<T> in;
00893         OutPort<T > & out_xx() {return corr.out_11; }
00895         OutPort<T > & out_xy() {return corr.out_12; }
00897         OutPort<T > & out_yy() {return corr.out_22; }
00899         GradientCorr()
00900             : FilterComplex(1,1)
00901         {
00902 //          AddPort(in(),0);
00903 //          AddPort(out(),0);
00904         }
00905         GradientCorr(std::string name,float sigma_=1.0f,float env_sigmas=2.5f,P func=F23::CorrMatrix<T,T&>())
00906             : FilterComplex(1,1)
00907         {
00908             Init(name,sigma_,env_sigmas,func);
00909         }
00910         void Init(std::string name,float sigma_=1.0f,float env_sigmas=2.5f,P func=F23::CorrMatrix<T,T&>())
00911         {
00912             setName(name);
00913             sigma=sigma_;
00914             G0 g0(sigma,env_sigmas);
00915             G1 g1(sigma,env_sigmas);
00916             gauss.Init(g0);
00917             gauss_deriv.Init(g1);
00918             //gauss.Init(sigma,env_sigmas);
00919             //gauss_deriv.Init(sigma,env_sigmas);
00920             gx.Init(Name()+"::gx",&gauss_deriv,&gauss);
00921             gy.Init(Name()+"::gy",&gauss,&gauss_deriv);
00922
00923             corr.Init(Name()+"::2to3",func );
00924         //------ create graph --------------------
00925             gx.out().ConnectTo(&corr.in_1);
00926             gy.out().ConnectTo(&corr.in_2);
00927
00928             in.Add(&gx.in());
00929             in.Add(&gy.in());
00930 //          AddPort(in,0);
00931 //          AddPort(out(),0);
00932         }
00933         virtual ~GradientCorr()
00934         {
00935         }
00936     };
00938     // class Detect
00961     template<typename T,class Func=Vtl::Plf::F31::Harris<T>,class P=Vtl::Plf::F11::DoNothing<T> >
00962     class Detect
00963         : public FilterComplex
00964     {
00965         Vtl::Plf::GradientCorr<T,F23::CorrMatrix<T,T&> > corr;
00966         Vtl::Plf::Average<T> avg_xx;
00967         Vtl::Plf::Average<T> avg_xy;
00968         Vtl::Plf::Average<T> avg_yy;
00969         typedef Vtl::ImAlg::WndFun::Gauss<T,0> G0;
00970         Vtl::Plf::Kernel::FKern<T> gauss;
00971         Vtl::Plf::PixByPix3to1<T,Func,P > det;
00972     private:
00973         Detect(const Detect&);
00974         Detect& operator=(const Detect&);
00975     public:
00976         InPortComb<T>&  in() { return corr.in; }
00977         OutPort<T,P> & out() {return det.out; }
00978         Detect()
00979             : FilterComplex(1,1)
00980         {
00981 //          AddPort(in(),0);
00982 //          AddPort(out(),0);
00983         }
00984         Detect(std::string name,float sigma_=1.0f,float env_sigmas=2.5f,Func functor=Vtl::Plf::F31::Harris<T>(),P post_proc=Vtl::Plf::F11::DoNothing<T>())
00985             : FilterComplex(1,1)
00986         {
00987             Init(name,sigma_,env_sigmas,functor,post_proc);
00988         }
00989         void Init(std::string name,float sigma=1.0f,float env_sigmas=2.5f,Func functor=Vtl::Plf::F31::Harris<T>(),P post_proc=Vtl::Plf::F11::DoNothing<T>())
00990         {
00991             setName(name);
00992             F23::CorrMatrix<T,T&> corr_mat;
00993             corr.Init(Name()+"::corr",sigma,env_sigmas,corr_mat);
00994             float coef=1.7f;
00995             G0 g0(coef*sigma,env_sigmas);
00996             gauss.Init(g0);
00997 //          gauss.Init(coef*sigma,env_sigmas);
00998             avg_xx.Init(Name()+"::avg_xx",&gauss);
00999             avg_xy.Init(Name()+"::avg_xy",&gauss);
01000             avg_yy.Init(Name()+"::avg_yy",&gauss);
01001             det.Init(Name()+"::functor",functor,post_proc);
01002         //------ create graph --------------------
01003             corr.out_xx().ConnectTo(&avg_xx.in());
01004             corr.out_xy().ConnectTo(&avg_xy.in());
01005             corr.out_yy().ConnectTo(&avg_yy.in());
01006             avg_xx.out().ConnectTo(&det.in_xx);
01007             avg_xy.out().ConnectTo(&det.in_xy);
01008             avg_yy.out().ConnectTo(&det.in_yy);
01009
01010 //          AddPort(in,0);
01011 //          AddPort(out(),0);
01012         }
01013         virtual ~Detect()
01014         {
01015         }
01016     };
01018     // class Detect
01023     template<typename T,class Func=Vtl::Plf::F31::Harris<T>,class P=Vtl::Plf::F11::DoNothing<T> >
01024     class HarrisLaplace
01025         : public FilterComplex
01026     {
01027         Vtl::Plf::GradientCorr<T,F23::CorrMatrix<T,T&> > corr;
01028         Vtl::Plf::Average<T> avg_xx;
01029         Vtl::Plf::Average<T> avg_xy;
01030         Vtl::Plf::Average<T> avg_yy;
01031         typedef Vtl::ImAlg::WndFun::Gauss<T,0> G0;
01032         Vtl::Plf::Kernel::FKern<T> gauss;
01033         Vtl::Plf::PixByPix5to1<T,Func,P > det;
01034     private:
01035         HarrisLaplace(const HarrisLaplace&);
01036         HarrisLaplace& operator=(const HarrisLaplace&);
01037     public:
01038         InPortComb<T> in;
01039 //      InPortComb<T>&  in() { return corr.in; }
01040         OutPort<T,P> & out() {return det.out; }
01041         HarrisLaplace()
01042             : FilterComplex(1,1)
01043         {
01044 //          AddPort(in(),0);
01045 //          AddPort(out(),0);
01046         }
01047         HarrisLaplace(std::string name,float sigma_=1.0f,float env_sigmas=2.5f,Func functor=Vtl::Plf::F31::Harris<T>(),P post_proc=Vtl::Plf::F11::DoNothing<T>())
01048             : FilterComplex(1,1)
01049         {
01050             Init(name,sigma_,env_sigmas,functor,post_proc);
01051         }
01052         void Init(std::string name,float sigma=1.0f,float env_sigmas=2.5f,Func functor=Vtl::Plf::F31::Harris<T>(),P post_proc=Vtl::Plf::F11::DoNothing<T>())
01053         {
01054             setName(name);
01055             F23::CorrMatrix<T,T&> corr_mat;
01056             corr.Init(Name()+"::corr",sigma,env_sigmas,corr_mat);
01057             float coef=1.7f;
01058             G0 g0(coef*sigma,env_sigmas);
01059             gauss.Init(g0);
01060
01061             avg_xx.Init(Name()+"::avg_xx",&gauss);
01062             avg_xy.Init(Name()+"::avg_xy",&gauss);
01063             avg_yy.Init(Name()+"::avg_yy",&gauss);
01064             det.Init(Name()+"::functor",functor,post_proc);
01065         //------ create graph --------------------
01066             corr.out_xx().ConnectTo(&avg_xx.in());
01067             corr.out_xy().ConnectTo(&avg_xy.in());
01068             corr.out_yy().ConnectTo(&avg_yy.in());
01069
01070             avg_xx.out().ConnectTo(&det.in_1);
01071             avg_xy.out().ConnectTo(&det.in_2);
01072             avg_yy.out().ConnectTo(&det.in_3);
01073             //in.out().ConnectTo(&det.in_4);
01074             //avg_yy.out().ConnectTo(&det.in_5);
01075
01076
01077             in.Add(&corr.in);
01078             in.Add(&det.in_4);
01079             in.Add(&det.in_5);
01080 //          AddPort(in,0);
01081 //          AddPort(out(),0);
01082         }
01083         virtual ~HarrisLaplace()
01084         {
01085         }
01086     };
01088     // class Resample
01095     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
01096     class Resample
01097         : public FilterComplex
01098     {
01099         Vtl::Plf::FilterResampleVert<float> v_resamp;
01100         Vtl::Plf::FilterResampleHorz<float,P> h_resamp;
01101     private:
01102         Resample(const Resample&);
01103         Resample& operator=(const Resample&);
01104     public:
01105         InPort<T> & in() {return v_resamp.in; }
01106         OutPort<T,P> & out() {return h_resamp.out; }
01107         Resample()
01108             : FilterComplex(1,1)
01109         {
01110 //          AddPort(in(),0);
01111 //          AddPort(out(),0);
01112         }
01113         Resample(std::string name,int new_width,int new_height,P post_proc=Vtl::Plf::F11::DoNothing<T>())
01114             : FilterComplex(1,1)
01115         {
01116             Init(name,new_width,new_height,post_proc);
01117         }
01118         void Init(std::string name,int new_width,int new_height,P post_proc=Vtl::Plf::F11::DoNothing<T>())
01119         {
01120             setName(name);
01121             out().setPostProc(post_proc);
01122
01123             v_resamp.Init(Name()+"::V-resample",new_height);
01124             h_resamp.Init(Name()+"::H-resample",new_width);
01125         //------ create graph --------------------
01126             v_resamp.out.ConnectTo(&h_resamp.in);
01127 //          AddPort(in(),0);
01128 //          AddPort(out(),0);
01129         }
01130         virtual ~Resample()
01131         {
01132         }
01133     }; // end of ComplexFiltersDoxGroup
01135 } //namespace Plf
01136 } //namespace Vtl
01138 #endif //_PLF_FILTER_COMPLEX_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл plf_functors.h

  • Файлы
  • Список членов всех файлов

plf_functors.h

См. документацию.
00001 #ifndef _PLF_FUNCTORS_H
00002 #define _PLF_FUNCTORS_H
00004 #include "alexandresku.h"
00005 #include "ytypes.h"
00006 #include "plf_strip_buffer_support.h"
00008 namespace Vtl
00009 {
00010 // @brief  находится в файле plf_filters.h, здесь не описывается
00011 namespace Plf
00012 {
00021
00022
00023
00024
00025
00026
00027     namespace F11
00028     {
00029         template<typename T> T sqr(T v) {return v*v;}
00043         template<typename T>
00044         struct DoNothing
00045         {
00046             T operator()(T val) {return val;}
00047         };
00051         template<typename T>
00052         struct Convert
00053         {
00054             template<typename T1>
00055             T operator()(T1 val) {return T(val);}
00056         };
00060         struct Convert2ByteBounded
00061         {
00062             template<typename T1>
00063             uint8_t operator()(T1 val) {return uint8_t( (val>255) ? 255 : ((val<0)?0:val) ); }
00064         };
00065
00079         template<typename T,typename Comp>
00080         class Threshold
00081         {
00082             T tr;
00083             Comp c;
00084             T r;
00085         public:
00086             Threshold(T threshold=128,Comp comp=std::less<T>(),T replace=T(0))
00087                 : tr(threshold),c(comp),r(replace)
00088             {}
00089             T operator()(T val)
00090             {
00091                 return c(val,tr)?r:val;
00092             }
00093         };
00107         template<typename T,class F1,class F2>
00108         struct Comb
00109         {
00110             F1 first_;
00111             F2 second_;
00112             Comb() {}
00113             Comb(F1 first,F2 second) :first_(first),second_(second) {}
00114             template<typename T1>
00115             T operator()(T1 val) {return second_(first_(val));}
00116         };
00117         /*
00118         template<typename T,class F1,class F2>
00119         struct Comb
00120         {
00121             F1 first_;
00122             F2 second_;
00123             Comb() {}
00124             Comb(F1 first,F2 second) :first_(first),second_(second) {}
00125             T operator()(T val) {return second_(first_(val));}
00126         };
00127         */
00142         template<typename T>
00143         class Negative
00144         {
00145             T maxval;
00146         public:
00147             Negative() {}
00148             Negative(T max_val):maxval(max_val) {}
00149             T operator()(T val) const {return maxval-val;}
00150         };
00164         template<typename T>
00165         class Bias
00166         {
00167             T bias;
00168         public:
00169             Bias() {}
00170             Bias(T add_to_pixel):bias(add_to_pixel) {}
00171             T operator()(T val) const {return val+bias;}
00172         };
00186         template<typename T>
00187         class Mult
00188         {
00189             T mult;
00190         public:
00191             Mult() {}
00192             Mult(T mult_each_pixel):mult(mult_each_pixel) {}
00193             T operator()(T val) const {return val*mult;}
00194         };
00198         template<typename T>
00199         struct ConvertMult
00200         {
00201             ConvertMult(T mult_) : mult(mult_) {}
00202             template<typename T1>
00203             T operator()(T1 val) {return T(mult*val);}
00204         private:
00205             T mult;
00206         };
00220         template<typename T>
00221         class Lin
00222         {
00223             T _a;
00224             T _b;
00225         public:
00226             Lin(){}
00227             Lin(T a,T b):_a(a),_b(b) {}
00228             T operator()(T val) const {return _a*val+_b;}
00229         };
00243         template<typename T>
00244         class ToBounds
00245         {
00246             T n;
00247             T x;
00248         public:
00249             ToBounds(T min_val=0,T max_val=255):n(min_val),x(max_val) {}
00250             T operator()(T val) const {return Vtl::ToBounds(val,n,x);}
00251         };
00255         template<typename T>
00256         struct Abs
00257         {
00258             template<typename T1>
00259             T operator()(T1 val) {return T(val<T1(0)?-val:val);}
00260         };
00261
00265         template<typename T>
00266         struct Sqrt
00267         {
00268             T operator() (T val) { return sqrt(val); }
00269         };
00283         template<typename T>
00284         struct Sqr
00285         {
00286             template<typename T1>
00287             T operator()(T1 val) {return T(val*val);}
00288         };
00289         /*
00290         template<typename T>
00291         class Sqr
00292         {
00293         public:
00294             Sqr(){}
00295             T operator()(T val) const {return val*val;}
00296         };
00297         */
00314         template<typename T>
00315         class GammaCor
00316         {
00317             T maxval;
00318             double gamma;
00319         public:
00320             GammaCor() {}
00321             GammaCor(T max_val,double _gamma):maxval(max_val),gamma(1./std::max(_gamma,1.0e-8)) {}
00322             T operator()(T val) const {return T(maxval*pow(double(val/maxval),gamma));}
00323         };
00327         template<typename T>
00328         class Log
00329         {
00330             double threshold;
00331         public:
00332             Log(double threshold_) : threshold(threshold_) {}
00333             template<typename T1>
00334             T operator()(T1 val) {return T(std::log(std::max(threshold,double(val)))); }
00335         };
00350         template<typename T>
00351         class GammaCorMult
00352         {
00353             T maxval;
00354             double gamma;
00355             double mult;
00356         public:
00357             GammaCorMult(){}
00358             GammaCorMult(T max_val,double _gamma,double mult_each_pixel)
00359                 : maxval(max_val)
00360                   ,gamma(1./std::max(_gamma,1.0e-8))
00361                   ,mult(mult_each_pixel/max_val) {}
00362             T operator()(T val) const {return T(maxval*pow(double(val*mult),gamma));}
00363         };
00364     }//namespace F11
00370     namespace F21
00371     {
00377         template<typename T>
00378         class SqrtOfSumSqr
00379         {
00380         public:
00381             SqrtOfSumSqr() {}
00382             T operator()(T v1,T v2) const {return sqrt(v1*v1+v2*v2);}
00383         };
00384
00385
00386         template<typename T>
00387         struct Sum
00388         {
00389             template<typename T1>
00390             T operator()(T1 val1,T1 val2) {return T(val1+val2);}
00391         };
00392         template<typename T>
00393         struct Dif
00394         {
00395             template<typename T1>
00396             T operator()(T1 val1,T1 val2) {return T(val1-val2);}
00397         };
00398         template<typename T>
00399         struct AbsDif
00400         {
00401             template<typename T1>
00402             T operator()(T1 val1,T1 val2) {return T(std::abs(val1-val2));}
00403             T operator()(uint8_t val1,uint8_t val2) {return T(std::abs(int(val1)-int(val2)));}
00404             T operator()(uint16_t val1,uint16_t val2) {return T(std::abs(int(val1)-int(val2)));}
00405             T operator()(uint32_t val1,uint32_t val2) {return T(std::abs(int(val1)-int(val2)));}
00406         };
00412         template<typename T>
00413         struct Prod
00414         {
00415             template<typename T1>
00416             T operator()(T1 val1,T1 val2) {return T(val1*val2);}
00417         };
00425         template<typename T>
00426         class Sharpen
00427         {
00428             float alpha;
00429         public:
00430             Sharpen(float amp=2.0f):alpha(amp) {}
00431             T operator()(T val,T mean) const {return mean+alpha*(val-mean);}
00432         };
00440         template<typename T>
00441         class Disp
00442         {
00443         public:
00444             Disp() {}
00445             T operator()(T mean,T sqr_mean) const {return sqrt(sqr_mean-mean*mean);}
00446         };
00447     }//namespace F21
00453     namespace F31
00454     {
00460         template<typename T>
00461         class Sum3
00462         {
00463         public:
00464             Sum3()
00465             {
00466             }
00467             T operator()(T v1,T v2,T v3) const
00468             {
00469                 return v1+v2+v3;;
00470             }
00471         };
00472         template<typename T>
00473         struct HessianDet
00474         {
00475             template<typename T1>
00476             T operator()(T1 Dxx,T1 Dxy,T1 Dyy) {return T(Dxx*Dyy-Dxy*Dxy);}
00477         };
00478         template<typename T>
00479         struct HessianDetSqrt
00480         {
00481             template<typename T1>
00482             T operator()(T1 Dxx,T1 Dxy,T1 Dyy) {T1 d=Dxx*Dyy-Dxy*Dxy; return T(d>=0?sqrt(d):-sqrt(d));}
00483             //T operator()(T1 Dxx,T1 Dxy,T1 Dyy) {return T(std::abs(Dxx*Dyy-Dxy*Dxy));}
00484         };
00485
00515         template<typename T>
00516         class Harris
00517         {
00518             T k;
00519             T mult;
00520         public:
00521             Harris(T sigma=1.0f,T coef=0.04f) : mult(6.3f*sigma),k(coef)
00522             {
00523                 //mult=sqrt(2.0f*3.1415926f)*sigma;
00524             }
00525             T operator()(T v11,T v12,T v22) const
00526             {
00527                 T h=v11*v22-v12*v12-k*sqr(v11+v22);
00528                 return mult*sqrt(sqrt(h));
00529             }
00530         };
00536         template<typename T>
00537         class Trace
00538         {
00539             T mult;
00540         public:
00541             Trace(T sigma=1.0f) : mult(3.0f*sigma)
00542             {
00543                 //mult=sqrt(2.0f*3.1415926f)*sigma;
00544             }
00545             T operator()(T v11,T v12,T v22) const
00546             {
00547                 return mult*sqrt(v11+v22);
00548             }
00549         };
00565         template<typename T>
00566         class MaxEigenVal
00567         {
00568             T mult;
00569         public:
00570             MaxEigenVal(T sigma=1.0f) : mult(2.9f*sigma)
00571             {
00572             }
00573             T operator()(T v11,T v12,T v22) const
00574             {
00575                 T a=(v11-v22)/2;
00576                 T b=(v11+v22)/2;
00577                 T D = sqrt(sqr(a) + sqr(v12));
00578                 return mult*sqrt(b+D);
00579                 //T lambda_1= b+D;
00580                 //T lambda_2= b-D;
00581                 //return lambda_2;
00582             }
00583         };
00599         template<typename T>
00600         class MinEigenVal
00601         {
00602             T mult;
00603         public:
00604             MinEigenVal(T sigma=1.0f) : mult(6.3f*sigma)
00605             {
00606             }
00607             T operator()(T v11,T v12,T v22) const
00608             {
00609                 T a=(v11-v22)/2;
00610                 T b=(v11+v22)/2;
00611                 T D = sqrt(sqr(a) + sqr(v12));
00612                 return mult*sqrt(b-D);
00613                 //T lambda_1= b+D;
00614                 //T lambda_2= b-D;
00615                 //return lambda_2;
00616             }
00617         };
00633         template<typename T>
00634         class DiffEigenVal
00635         {
00636             T mult;
00637         public:
00638             DiffEigenVal(T sigma=1.0f) : mult(2.9f*sigma)
00639             {
00640             }
00641             T operator()(T v11,T v12,T v22) const
00642             {
00643                 T a=(v11-v22)/2;
00644                 //T b=(v11+v22)/2;
00645                 T D = sqrt(sqr(a) + sqr(v12));
00646                 return mult*sqrt(2*D);
00647                 //T lambda_1= b+D;
00648                 //T lambda_2= b-D;
00649                 //return lambda_2;
00650             }
00651         };
00659         template<typename T>
00660         class StatDiff
00661         {
00662             float A;
00663             float sigma_d;
00664             float m_d;
00665             float alpha;
00666         public:
00667             StatDiff(float amplification=6.0f,float sigma_desired=85.0f,float mean_desired=128.0f,float phone_to_edges=0.8f)
00668                 : A(amplification),sigma_d(sigma_desired),m_d(mean_desired),alpha(phone_to_edges)
00669             {
00670             }
00671             T operator()(T f,T f_mean,T f_sigma) const
00672             {
00673                 return (f-f_mean)*(A*sigma_d/(A*f_sigma+sigma_d))+alpha*m_d+(1-alpha)*f_mean;
00674             }
00675         };
00684         template<typename T>
00685         class DeNoise
00686         {
00687             float k;
00688         public:
00689             DeNoise(float in_k_sigmas=2.0f)
00690                 : k(in_k_sigmas)
00691             {
00692             }
00693             T operator()(T f,T f_mean,T f_sigma) const
00694             {
00695                 return T((abs(f-f_mean)>k*f_sigma )?f_mean:f);
00696             }
00697         };
00698     }//namespace F31
00699
00705     namespace F51
00706     {
00712         template<typename T>
00713         class HarrisLaplace
00714         {
00715             T k;
00716             T mult;
00717         public:
00718             HarrisLaplace(T sigma=1.0f,T coef=0.04f) : mult(6.3f*sigma),k(coef)
00719             {
00720                 //mult=sqrt(2.0f*3.1415926f)*sigma;
00721             }
00722             T operator()(T v11,T v12,T v22,T d2x,T d2y) const
00723             {
00724                 T h=v11*v22-v12*v12-k*sqr(v11+v22);
00725                 T harris=mult*sqrt(sqrt(h));
00726                 if(harris>30)
00727                     return harris;
00728                 else
00729                     return (d2x+d2y)/2;
00730             }
00731         };
00732     }//namespace F51
00739     namespace F23
00740     {
00757         template<typename T,typename Iter=T&>
00758         class CorrMatrix
00759         {
00760         public:
00761             CorrMatrix() {}
00762             void operator()(T v1,T v2,Iter o11,Iter o12,Iter o22) const {o11=v1*v1; o12=v1*v2; o22=v2*v2;}
00763         };
00764         template<typename T,typename Iter=T&>
00765         class CorrMatrixAdd
00766         {
00767         public:
00768             CorrMatrixAdd() {}
00769             void operator()(T v1,T v2,Iter o11,Iter o12,Iter o22) const {o11+=v1*v1; o12+=v1*v2; o22+=v2*v2;}
00770         };
00771
00772     }//namespace F23
00779     namespace F33
00780     {
00781
00794         template<typename T,typename Iter=T&>
00795         class DiZenzo
00796         {
00797         public:
00798             DiZenzo()
00799             {
00800             }
00801             void operator()(T v11,T v12,T v22,Iter lamda_1,Iter eigv_x,Iter eigv_y) const
00802             {
00803                 T a=(v11-v22)/2;
00804                 T b=(v11+v22)/2;
00805                 T D = sqrt(sqr(a) + sqr(v12));
00806                 //T lambda_1 ^2 = b+D;
00807                 //T lambda_2 ^2 = b-D;
00808                 a=b+D;
00809                 // lamda_1=a;  -ПРАВКА ОТ 16.10.2010 : /3 т.к. если 3 канала идентичны результат должен быть как в Канниб sqrt() - чтобы результат был пропорц. производной, а не квадрату.
00810                 lamda_1=sqrt(T(a/3));
00811                 v11=v11-a;
00812                 if(a>0)
00813                 {
00814                     if(v11 > v12)
00815                     {
00816                         b=v11;
00817                         a=-v12;
00818                     }
00819                     else
00820                     {
00821                         a=-v12;
00822                         b=v11;
00823                     }
00824                     //D=sqrt(a*a+b*b);
00825                     eigv_x=a;
00826                     eigv_y=b;
00827                 }
00828                 else
00829                 {
00830                     eigv_x=1;
00831                     eigv_y=0;
00832                 }
00833             }
00834         };
00835     }//namespace F33
00840     namespace Fpie
00841     {
00842
00849         template<typename T>
00850         class HarrisNMS
00851         {
00852             int nls;
00853         public:
00857             void set_IterNextLineShift(int modul_nls) { nls=modul_nls;}
00858             Extent ext() const {return Extent(1,1,1,1); }
00859             HarrisNMS() {nls=0x5FFFFFFF;}
00860             T operator()(const T* input)
00861             {
00862                 T v=input[0];
00863                 const T* inp1=input-1;
00864                 const T* inp0=inp1-nls;
00865                 const T* inp2=inp1+nls;
00866                 if( v <= inp1[0] || v <= inp1[2]
00867                     || v <= inp0[0] || v <= inp0[1] || v <= inp0[2]
00868                     || v <= inp2[0] || v <= inp2[1] || v <= inp2[2]
00869                     )
00870                     return 0;
00871                 return v;
00872             }
00873         };
00881         template<typename T>
00882         class HarrisNMS_Smooth
00883         {
00884             int nls;
00885         public:
00889             void set_IterNextLineShift(int modul_nls) { nls=modul_nls;}
00890             Extent ext() const {return Extent(1,1,1,1); }
00891             HarrisNMS_Smooth() {nls=0x5FFFFFFF;}
00892             T operator()(const T* input)
00893             {
00894                 T v=input[0];
00895                 const T* inp1=input-1;
00896                 const T* inp0=inp1-nls;
00897                 const T* inp2=inp1+nls;
00898                 if( v <= inp1[0] || v <= inp1[2]
00899                     || v <= inp0[0] || v <= inp0[1] || v <= inp0[2]
00900                     || v <= inp2[0] || v <= inp2[1] || v <= inp2[2]
00901                     )
00902                     return 0;
00903                 return (2*v+inp1[0]+inp1[2]+ inp0[0]+inp0[1]+inp0[2]+ inp2[0]+inp2[1]+inp2[2])/T(10);
00904             }
00905         };
00910         template<typename T>
00911         class Himg2
00912         {
00913             int r;
00914             int nls;
00915             double mult;
00916         public:
00920             void set_IterNextLineShift(int modul_nls) { nls=modul_nls;}
00921             Extent ext() const {return Extent(r); }
00922             Himg2(int radius_of_square=5):r(ABS(radius_of_square))
00923             {
00924                 nls=0x5FFFFFFF;
00925                 mult=1./(Vtl::Plf::F11::sqr(2*r+1)-1);
00926             }
00927             void operator()(const T* input,T& output_x,T& output_y)
00928             {
00929                 T v0=input[0];
00930                 const T* p=input-r*nls;
00931                 double tx=0;
00932                 double ty=0;
00933                 for(int y=-r; y<=r ;++y,p+=nls)
00934                 {
00935                     for(int x=-r; x<=r ;++x)
00936                     {
00937                         T t=p[x]-v0;
00938                         if(x!=0 || y!=0)
00939                         {
00940                             double d=sqrt(double(x*x+y*y));
00941                             tx+=t*x/d;
00942                             ty+=t*y/d;
00943                         }
00944                     }
00945                 }
00946                 output_x=T(mult*tx);
00947                 output_y=T(mult*ty);
00948             }
00949         };
00954         template<typename T>
00955         class Himg
00956         {
00957             Himg2<T> hi;
00958         public:
00962             void set_IterNextLineShift(int modul_nls) { hi.set_IterNextLineShift(modul_nls);}
00963             Extent ext() const {return hi.ext(); }
00964             Himg(int radius_of_square=5):hi(radius_of_square) {}
00965             T operator()(const T* input)
00966             {
00967                 T v0=input[0];
00968                 T gx;
00969                 T gy;
00970                 hi(input,gx,gy);
00971                 return sqrt(gx*gx+gy*gy);
00972             }
00973         };
00978         template<typename T>
00979         class BiLateralSmooth
00980         {
00981             int r;
00982             float sigma_22;
00983             int nls;
00984             //double mult;
00985             float eps_22;
00986         public:
00990             void set_IterNextLineShift(int modul_nls) { nls=modul_nls;}
00991             Extent ext() const {return Extent(r); }
00992             BiLateralSmooth(float epsilon=20.0f,float sigma=2.0f,float env_sigmas=2.0f)
00993                 :r(int(sigma*env_sigmas+0.5)),sigma_22(2*sigma*sigma),eps_22(2*epsilon*epsilon)
00994             {
00995                 nls=0x5FFFFFFF;
00996                 //mult=1./(Vtl::Plf::F::sqr(2*r+1)-1);
00997             }
00998             T operator()(const T* input)
00999             {
01000                 T v0=input[0];
01001                 const T* p=input-r*nls;
01002                 double sum=0;
01003                 double sum_k=0;
01004                 for(int y=-r; y<=r ;++y,p+=nls)
01005                 {
01006                     for(int x=-r; x<=r ;++x)
01007                     {
01008                         T k=fun(x,y,p[x],v0);
01009                         sum_k+=k;
01010                         sum+=p[x]*k;
01011                     }
01012                 }
01013                 return T(sum/sum_k);
01014             }
01015         private:
01016             T fun(int x,int y,T fx,T fy)
01017             {
01018                 return exp(-(x*x+y*y)/sigma_22-sqr(fx-fy)/eps_22);
01019             }
01020         };
01022         // class CannyNMS
01038         template<typename T>
01039         class CannyNMS
01040         {
01041             T thr;
01042             int nls;
01043         public:
01047             void set_IterNextLineShift(int modul_nls) { nls=modul_nls;}
01048             Extent ext() const {return Extent(1,1,1,1); }
01049             CannyNMS() {nls=0x5FFFFFFF;}
01050             CannyNMS(T threshold):thr(threshold) {nls=0x5FFFFFFF;}
01051             T operator()(const T* modul,T gx,T gy)
01052             {
01053                 if(modul[0]>=thr)
01054                 {
01055                     T v1;
01056                     T v2;
01057                     if(ABS(gx) < ABS(gy))
01058                     {//Искать точку пересечения градиента с гор. линиями квадрата - градиент ближе к вертикали
01059                         T alpha=gx/gy;
01060                         if(alpha<0)
01061                         {// (gx< gy) && ((gx<0 gy >0 )|| (gx>0 gy < 0 ) )
01062                             // Двойными линиями отмечено где, '+' - центры пикселей,
01063                             // alpha=0 - вертикаль (|) , alpha=1 - диагональ (/)
01064                             //
01065                             //    +-+=+
01066                             //    | | |
01067                             //    +-+-+
01068                             //    | | |
01069                             //    +=+-+
01070                             //
01071                             v1=(1+alpha)*modul[-nls]-alpha*modul[-nls+1];
01072                             v2=(1+alpha)*modul[+nls]-alpha*modul[+nls-1];
01073                         }
01074                         else
01075                         {// (gx< gy) && ( (gx>=0 gy >0) || ( gx<=0 gy < 0 ) )
01076                             // Двойными линиями отмечено где, '+' - центры пикселей,
01077                             // alpha=0 - вертикаль (|) , alpha=1 - диагональ (\)
01078                             //
01079                             //    +=+-+
01080                             //    | | |
01081                             //    +-+-+
01082                             //    | | |
01083                             //    +-+=+
01084                             //
01085                             v1=(1-alpha)*modul[-nls]+alpha*modul[-nls-1];
01086                             v2=(1-alpha)*modul[+nls]+alpha*modul[+nls+1];
01087                         }
01088                     }
01089                     else
01090                     {//Искать точку пересечения градиента с верт. линиями квадрата- градиент ближе к горизонтали
01091                         T alpha=gy/gx;
01092                         if(alpha<0)
01093                         {// (gx >= gy) && ( (gx>0 , gy<=0) || ( gx <0 gy >= 0 ) )
01094                             // Двойными линиями (#) отмечено где, '+' - центры пикселей,
01095                             // alpha=0 - горизонталь (-) , alpha=1 - диагональ (/)
01096                             //
01097                             //
01098                             //    +-+-+
01099                             //    | | #
01100                             //    +-+-+
01101                             //    # | |
01102                             //    +-+-+
01103                             //
01104                             v1=(1+alpha)*modul[-1]-alpha*modul[-1+nls];
01105                             v2=(1+alpha)*modul[+1]-alpha*modul[+1-nls];
01106                         }
01107                         else
01108                         {// (gx >= gy) && ( (gx>0 , gy>=0) || ( gx <0 gy <= 0 ) )
01109                             // Двойными линиями (#) отмечено где, '+' - центры пикселей,
01110                             // alpha=0 - горизонталь (-) , alpha=1 - диагональ (\)
01111                             //
01112                             //    +-+-+
01113                             //    # | |
01114                             //    +-+-+
01115                             //    | | #
01116                             //    +-+-+
01117                             //
01118                             v1=(1-alpha)*modul[-1]+alpha*modul[-1-nls];
01119                             v2=(1-alpha)*modul[+1]+alpha*modul[+1+nls];
01120                         }
01121                     }
01122                     T v0=modul[0];
01123                     if( (v0 >= v1) && (v0 >= v2) )
01124                         return v0;
01125                 }
01126                 return 0;
01127             }
01128         };
01130         // class CannyNMS_2
01154         template<typename T>
01155         class CannyNMS_2
01156         {
01157             T thr;
01158             T eps;
01159             int nls;
01160         public:
01164             void set_IterNextLineShift(int modul_nls) { nls=modul_nls;}
01165             Extent ext() const {return Extent(2,2,2,2); }
01166             CannyNMS_2() {nls=0x5FFFFFFF;}
01167             CannyNMS_2(T threshold,T epsilon=0.1f):thr(threshold),eps(epsilon) {nls=0x5FFFFFFF;}
01168             T operator()(const T* modul,T gx,T gy)
01169             {
01170                 if(modul[0]>=thr)
01171                 {
01172                     T v1;
01173                     T v2;
01174                     T v3;
01175                     T v4;
01176                     if(ABS(gx) < ABS(gy))
01177                     {//Искать точку пересечения градиента с гор. линиями квадрата - градиент ближе к вертикали
01178                         T alpha=gx/gy;
01179                         if(alpha<0)
01180                         {// (gx< gy) && ((gx<0 gy >0 )|| (gx>0 gy < 0 ) )
01181                             // Двойными линиями отмечено где, '+' - центры пикселей,
01182                             // alpha=0 - вертикаль (|) , alpha=1 - диагональ (/)
01183                             //
01184                             //    +-+=+
01185                             //    | | |
01186                             //    +-+-+
01187                             //    | | |
01188                             //    +=+-+
01189                             //
01190                             v1=(1+alpha)*modul[-nls]-alpha*modul[-nls+1];
01191                             v2=(1+alpha)*modul[+nls]-alpha*modul[+nls-1];
01192                             if(alpha>-0.5)
01193                             {
01194                                 v3=(1+alpha)*modul[-2*nls]-alpha*modul[-2*nls+1];
01195                                 v4=(1+alpha)*modul[+2*nls]-alpha*modul[+2*nls-1];
01196                             }
01197                             else
01198                             {
01199                                 v3=(1+alpha)*modul[-2*nls+1]-alpha*modul[-2*nls+2];
01200                                 v4=(1+alpha)*modul[+2*nls-1]-alpha*modul[+2*nls-2];
01201                             }
01202                         }
01203                         else
01204                         {// (gx< gy) && ( (gx>=0 gy >0) || ( gx<=0 gy < 0 ) )
01205                             // Двойными линиями отмечено где, '+' - центры пикселей,
01206                             // alpha=0 - вертикаль (|) , alpha=1 - диагональ (\)
01207                             //
01208                             //    +=+-+
01209                             //    | | |
01210                             //    +-+-+
01211                             //    | | |
01212                             //    +-+=+
01213                             //
01214                             v1=(1-alpha)*modul[-nls]+alpha*modul[-nls-1];
01215                             v2=(1-alpha)*modul[+nls]+alpha*modul[+nls+1];
01216                             if(alpha<0.5)
01217                             {
01218                                 v3=(1-alpha)*modul[-2*nls]+alpha*modul[-2*nls-1];
01219                                 v4=(1-alpha)*modul[+2*nls]+alpha*modul[+2*nls+1];
01220                             }
01221                             else
01222                             {
01223                                 v3=(1-alpha)*modul[-2*nls-1]+alpha*modul[-2*nls-2];
01224                                 v4=(1-alpha)*modul[+2*nls+1]+alpha*modul[+2*nls+2];
01225                             }
01226                         }
01227                     }
01228                     else
01229                     {//Искать точку пересечения градиента с верт. линиями квадрата- градиент ближе к горизонтали
01230                         T alpha=gy/gx;
01231                         if(alpha<0)
01232                         {// (gx >= gy) && ( (gx>0 , gy<=0) || ( gx <0 gy >= 0 ) )
01233                             // Двойными линиями (#) отмечено где, '+' - центры пикселей,
01234                             // alpha=0 - горизонталь (-) , alpha=1 - диагональ (/)
01235                             //
01236                             //
01237                             //    +-+-+
01238                             //    | | #
01239                             //    +-+-+
01240                             //    # | |
01241                             //    +-+-+
01242                             //
01243                             v1=(1+alpha)*modul[-1]-alpha*modul[-1+nls];
01244                             v2=(1+alpha)*modul[+1]-alpha*modul[+1-nls];
01245                             if(alpha>-0.5)
01246                             {
01247                                 v3=(1+alpha)*modul[-2]-alpha*modul[-2+nls];
01248                                 v4=(1+alpha)*modul[+2]-alpha*modul[+2-nls];
01249                             }
01250                             else
01251                             {
01252                                 v3=(1+alpha)*modul[-2+nls]-alpha*modul[-2+2*nls];
01253                                 v4=(1+alpha)*modul[+2-nls]-alpha*modul[+2-2*nls];
01254                             }
01255                         }
01256                         else
01257                         {// (gx >= gy) && ( (gx>0 , gy>=0) || ( gx <0 gy <= 0 ) )
01258                             // Двойными линиями (#) отмечено где, '+' - центры пикселей,
01259                             // alpha=0 - горизонталь (-) , alpha=1 - диагональ (\)
01260                             //
01261                             //    +-+-+
01262                             //    # | |
01263                             //    +-+-+
01264                             //    | | #
01265                             //    +-+-+
01266                             //
01267                             v1=(1-alpha)*modul[-1]+alpha*modul[-1-nls];
01268                             v2=(1-alpha)*modul[+1]+alpha*modul[+1+nls];
01269                             if(alpha<0.5)
01270                             {
01271                                 v3=(1-alpha)*modul[-2]+alpha*modul[-2-nls];
01272                                 v4=(1-alpha)*modul[+2]+alpha*modul[+2+nls];
01273                             }
01274                             else
01275                             {
01276                                 v3=(1-alpha)*modul[-2-nls]+alpha*modul[-2-2*nls];
01277                                 v4=(1-alpha)*modul[+2+nls]+alpha*modul[+2+2*nls];
01278                             }
01279                         }
01280                     }
01281                     T v0=modul[0];
01282                     if(
01283                         ( ((v0-v1)>eps) || ((ABS(v0-v1)<=2*eps) && ((v0-v3)>4*eps) ) )
01284                         &&  ( ((v0-v2)>eps) || ((ABS(v0-v2)<=2*eps) && ((v0-v4)>4*eps) ) )
01285                         )
01286                         return v0;
01287                 }
01288                 return 0;
01289             }
01290         };
01291     }//namespace F // end of ElementaryFiltersDoxGroup
01293 } //namespace Plf
01294 } //namespace Vtl
01295
01297 #endif //_PLF_FUNCTORS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл plf_gistogram.h

  • Файлы
  • Список членов всех файлов

plf_gistogram.h

См. документацию.
00001 #ifndef _PLF_GISTOGRAM_H
00002 #define _PLF_GISTOGRAM_H
00004 // @brief  находится в файле plf_filters.h, здесь не описывается
00005 namespace Vtl
00006 {
00007 // @brief  находится в файле plf_filters.h, здесь не описывается
00008 namespace Plf
00009 {
00016     namespace OLSI
00017     {
00026         template<typename T>
00027         class mediana
00028         {
00029         public:
00030             T I;
00031             int n;
00032             public :
00033                 void set_m(T _I, int _n){I=_I; n = _n;};
00034                 mediana(T I, int n) : I(I), n(n) {};
00035         public:
00036             mediana()
00037             {
00038                 I=0;
00039                 n=0;
00040             };
00041         };
00049         template<typename T>
00050         class Gistogramm
00051         {
00052         protected:
00053             std::vector<int> gisMem;
00054             std::vector<int*> gishh;
00055             std::vector<mediana<T> > gisMedians;
00056             int _img_width;
00057             int _size_of_ramka;
00058         public :
00059             Gistogramm(){}
00060             void Init(int bits,  int img_width,int size_of_ramka)
00061             {
00062                 int N=(1<<bits);
00063                 gisMem.resize(img_width*N);
00064                 gisMedians.resize(img_width);
00065                 gishh.resize(img_width);
00066                 for(int i=0; i<img_width; ++i)
00067                 {
00068                     gishh[i]=&(gisMem[i*N]);
00069                 }
00070                 _size_of_ramka=size_of_ramka;
00071                 _img_width=img_width;
00072             }
00073             ~Gistogramm()
00074             {
00075             }
00076             T getMediana_value(int x)
00077             {
00078                 return getMediana(x)->I;
00079             }
00080         protected:
00081             int *get_gistogram(int x)
00082             {
00083                 return gishh[x];
00084             }
00085             mediana<T> *getMediana(int x)
00086             {
00087                 return &(gisMedians[x]);
00088             }
00089
00090             void del_insert_pixel_from_histogram(T I_del, T I_add, int x)
00091             {
00092                 int* p;
00093                 mediana<T> *med;
00094                 p=get_gistogram(x);
00095                 med=getMediana(x);
00096                 p[I_add]++;
00097                 p[I_del]--;
00098                 if (med->I<I_del)
00099                 {
00100                     if (med->I>I_add)
00101                     {
00102                         if (med->n > 1)
00103                         {
00104                             med->n=(med->n)-1;
00105                         }
00106                         else
00107                         {
00108                             T index= (med->I)-1;
00109                             while (p[index]==0)index--;
00110                             med->set_m(index, p[index]);
00111                         }
00112                     }
00113                 }
00114                 else if (med->I > I_del)
00115                 {
00116                     if(med->I<=I_add)
00117                     {
00118                         if (med->n < p[med->I])
00119                         {
00120                             med->n=(med->n)+1;
00121                         }
00122                         else
00123                         {
00124                             T index= (med->I)+1;
00125                             while (p[index]==0)index++;
00126                             med->set_m(index,1);
00127                         }
00128                     }
00129                 }
00130                 else
00131                 {
00132                     if (med->I<I_add)
00133                     {
00134                         if (med->n>p[med->I])
00135                         {
00136                             T index= (med->I)+1;
00137                             while (p[index]==0)index++;
00138                             med->set_m(index,1);
00139                         }
00140                     }
00141                     else if (med->I>I_add)
00142                     {
00143                         if (med->n>1)
00144                         {
00145                             med->n=(med->n)-1;
00146                         }
00147                         else
00148                         {
00149                             T index= (med->I)-1;
00150                             while (p[index]==0)index--;
00151                             med->set_m(index, p[index]);
00152                         }
00153                     }
00154                 }
00155             }
00156         public:
00157             void add_del_lines_to_gist(const T *add, const T *del )
00158             {
00159                 int ramka = 2*_size_of_ramka+1;
00160                 for (int i=0;i<ramka; i++)
00161                 {
00162                     for(int j=0;j<=i;j++)
00163                     {
00164                         del_insert_pixel_from_histogram(del[i],add[i],j);
00165                     }
00166                 }
00167
00168                 for(int i=ramka;i<_img_width;i++)
00169                 {
00170                     for(int j=i;j>i-ramka;j--)
00171                     {
00172                         del_insert_pixel_from_histogram(del[i],add[i],j);
00173                     }
00174                 }
00175
00176                 for(int i=_img_width;i<_img_width+2*_size_of_ramka;i++)
00177                 {
00178                     for(int j=_img_width-1;j>i-ramka;j--)
00179                     {
00180                         del_insert_pixel_from_histogram(del[i],add[i],j);
00181                     }
00182                 }
00183             }
00184             void initGis_of_one_line(const T *start)
00185             {
00186                 int ramka = 2*_size_of_ramka+1;
00187                 for (int i=0;i<ramka; i++)
00188                 {
00189                     for(int j=0;j<=i;j++)
00190                     {
00191                         get_gistogram(j)[(int)start[i]]++;
00192                     }
00193                 }
00194                 for(int i=ramka;i<_img_width;i++)
00195                 {
00196                     for(int j=i;j>i-ramka;j--)
00197                     {
00198                         get_gistogram(j)[(int)start[i]]++;
00199                     }
00200                 }
00201                 for(int i=_img_width;i<_img_width+2*_size_of_ramka;i++)
00202                 {
00203                     for(int j=_img_width-1;j>i-ramka;j--)
00204                     {
00205                         get_gistogram(j)[(int)start[i]]++;
00206                     }
00207                 }
00208             }
00209             void initMediansForGistogramms(void)
00210             {
00211                 int ramka=2*_size_of_ramka+1;
00212                 unsigned count_of_pixels=(ramka*ramka)/2+1;
00213                 for (int i=0;i<_img_width;i++)
00214                 {
00215                     unsigned last_pix=0;
00216                     T ii=0;
00217                     while (last_pix<count_of_pixels)
00218                     {
00219                         last_pix=last_pix+gishh[i][ii];
00220                         ii++;
00221                     }
00222                     getMediana(i)->I =ii-1;
00223                     getMediana(i)->n =(count_of_pixels-(last_pix-gishh[i][ii-1]));
00224                 }
00225             }
00226         };
00227
00228
00229     /*********************************************************************************************************/
00230
00238     template<typename T>
00239     class Gistogramm2: public Gistogramm<T>
00240         {
00241             std::vector<int>gisInf;
00242             std::vector<int>secondParts;
00243
00244         public:
00245             void Init(int bits,  int img_width,int size_of_ramka)
00246             {
00247                 int N=(1<<bits);
00248                 gisMem.resize((img_width+size_of_ramka)*N);
00249                 gisMedians.resize(img_width+size_of_ramka);
00250                 gishh.resize(img_width+size_of_ramka);
00251                 for(int i=0; i<img_width+size_of_ramka; ++i)
00252                 {
00253                     gishh[i]=&(gisMem[i*N]);
00254                 }
00255
00256                 _size_of_ramka=size_of_ramka;
00257                 _img_width=img_width;
00258                 init_gisInf();
00259                 init_secondParts();
00260             };
00261             ~Gistogramm2()
00262             {
00263             };
00264
00265         private:
00266             int *get_gisInf(int i)
00267             {
00268                 return &(gisInf[2*i]);
00269             };
00270
00271         private:
00272             void init_gisInf()
00273             {
00274                 gisInf.resize((_img_width+_size_of_ramka)*2);
00275                 int ramka = 2*_size_of_ramka+1;
00276                 int n = (_img_width+_size_of_ramka)/(ramka);
00277                 int x=0;
00278                 int *p;
00279                 for (int i=0;i<n;i++)
00280                 {
00281                     for (int it=0;it<_size_of_ramka;it++)
00282                     {
00283                         p=get_gisInf(x);
00284                         p[0]=x;
00285                         p[1]=_size_of_ramka+1;
00286                         x++;
00287                     }
00288                     p=get_gisInf(x);
00289                     p[0]=x;
00290                     p[1]=ramka;
00291                     ++x;
00292                     for (int it=0;it<_size_of_ramka;it++)
00293                     {
00294                         p=get_gisInf(x);
00295                         p[0]=x;
00296                         p[1]=_size_of_ramka;
00297                         x++;
00298                     }
00299                 }
00300
00301                 int step=0;
00302                 while (x<_img_width+_size_of_ramka)
00303                 {
00304                     p=get_gisInf(x);
00305                     if (step<_size_of_ramka)
00306                     {
00307                         p[0]=x;
00308                         p[1]=_size_of_ramka+1;
00309                         x++;
00310                         step++;
00311                     }
00312                     else
00313                     {
00314                         p[0]=x+1;
00315                         p[1]=_size_of_ramka;
00316                         x++;
00317                         step++;
00318                     }
00319                 }
00320             };
00321
00322         private:
00323             void init_secondParts()
00324             {
00325                 secondParts.resize(_img_width);
00326                 for(int i=0;i<_img_width;i++)
00327                 {
00328                     secondParts[i]=get_secont_part(i);
00329                 }
00330             }
00331
00332         private:
00333             int get_secont_part(int x) // - пиксель в строке исходного изображения без добавки справа и слева
00334             {
00335                 int ramka=2*_size_of_ramka+1;
00336                 int a=(x-_size_of_ramka)/(ramka);
00337                 int n=(_img_width+_size_of_ramka)/ramka;
00338                 int r=_size_of_ramka;
00339                 if (x<r)
00340                 {
00341                     return x+r+1;
00342                 }
00343                 else if (x>=n*ramka)
00344                 {
00345                     return x+r;
00346                 }
00347                 if (((x-r)==0)||(x-r)%ramka==0)
00348                 {
00349                     return -1;
00350                 }
00351                 else if ((r+a*ramka<x)&&(x<=2*r+a*ramka))
00352                 {
00353                     return x+r;
00354                 }
00355                 else if ((2*r+a*ramka<x)&&(x<r+(a+1)*ramka))
00356                 {
00357                     return x+r+1;
00358                 }
00359                 else return -1;
00360             }
00361
00362             public:
00363                 void add_del_lines_to_gist(const T *add, const T *del )
00364                 {
00365                     for (int i=0; i<_img_width+_size_of_ramka;i++)
00366                     {
00367                         int *inf = get_gisInf(i);
00368                         int shift = inf[0];
00369                         int step = inf[1];
00370                         for (int it=0;it<step; it++)
00371                         {
00372                             del_insert_pixel_from_histogram(del[shift+it], add[shift+it], i);
00373                         }
00374                     }
00375
00376                 };
00377             public:
00378                 void initGis_of_one_line(const T *start)
00379                 {
00380                     for (int i=0; i<_img_width+_size_of_ramka;i++)
00381                     {
00382                         int *inf = get_gisInf(i);
00383                         int shift = inf[0];
00384                         int step = inf[1];
00385                         for (int it=0;it<step; it++)
00386                         {
00387                             get_gistogram(i)[(int)start[shift+it]]++;
00388                         }
00389                     }
00390                 };
00391
00392             public:
00393                 void initMediansForGistogramms(void)
00394                 {
00395                     int ramka=2*_size_of_ramka+1;
00396                     for (int i=0;i<_img_width+_size_of_ramka;i++)
00397                     {
00398                         int p_c = get_gisInf(i)[1];
00399                         unsigned count_of_pixels=(p_c*ramka)/2;
00400                         if (p_c%2!=0) count_of_pixels++;
00401                         T last_pix=0;
00402                         T ii=0;
00403                         while (last_pix<count_of_pixels)
00404                         {
00405                             last_pix=last_pix+gishh[i][ii];
00406                             ii++;
00407                         }
00408                         getMediana(i)->I=(ii-1);
00409                         getMediana(i)->n=(count_of_pixels-(last_pix-gishh[i][ii-1]));
00410                     }
00411                 };
00412
00413             public:
00414                 T getMediana_value(int x)
00415                 {
00416                     int second_part = secondParts[x];
00417                     mediana<T> *f_med = getMediana(x);
00418                     if (second_part==-1) return f_med ->I;
00419                     mediana<T>  *s_med = getMediana(second_part);
00420                     int *f_p = get_gistogram(x);
00421                     int *s_p = get_gistogram(second_part);
00422                     if (f_med->I == s_med->I) return f_med->I;
00423
00424                     int delt=0;
00425                     if (f_med ->I > s_med->I)
00426                     {
00427                         delt=s_p[s_med->I]-s_med->n;
00428                         for (T it = (s_med ->I)+1; it < f_med->I; it++)
00429                         {
00430                             delt = delt+s_p[it];
00431                         }
00432                         T cur_med = f_med->I;
00433                         int t=f_med->n-1;
00434                         while (t<delt)
00435                         {
00436                             cur_med--;
00437                             t=t+f_p[cur_med]+s_p[cur_med];
00438                         }
00439                         return cur_med;
00440                     }
00441                     else
00442                     {
00443                         delt=f_p[f_med->I]-f_med->n;
00444                         for (T it = (f_med ->I)+1; it < s_med->I; it++)
00445                         {
00446                             delt = delt+f_p[it];
00447                         }
00448                         T cur_med = s_med->I;
00449                         int t=s_med->n-1;
00450                         while (t<delt)
00451                         {
00452                             cur_med--;
00453                             t=t+s_p[cur_med]+f_p[cur_med];
00454                         }
00455                         return cur_med;
00456                     }
00457                 }
00458         };
00459     }
00460 } //namespace Plf
00461 } //namespace Vtl
00462 #endif //_PLF_GISTOGRAM_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл plf_io_filter.h

  • Файлы
  • Список членов всех файлов

plf_io_filter.h

См. документацию.
00001 #ifndef _IO_FILTER_H
00002 #define _IO_FILTER_H
00004 #include <list>
00005 #include "aimage.h"
00006 #include "plf_filters.h"
00007 namespace Vtl
00008 {
00009 // @brief  находится в файле plf_filters.h, здесь не описывается
00010 namespace Plf
00011 {
00020
00021     // class SrcArray
00032     template<typename T,class I,class P=Vtl::Plf::F11::DoNothing<T> >
00033     class SrcArray
00034         : public FilterElementary
00035     {
00036     public:
00037         OutPort<T,P> out;
00038     private:
00039         I * data;
00040         int y;
00041         int w;
00042         int h;
00043         int nls;
00044     public:
00045         SrcArray()
00046             : FilterElementary(0,1),data(0)
00047         {
00048             y=0;
00049             w=0;
00050             h=0;
00051             nls=0;
00052         }
00053         SrcArray(std::string name,I * ptr,int width,int height,int next_line_shift,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00054             : FilterElementary(0,1),data(0)
00055         {
00056             SrcArray::Init(name,ptr,width,height,next_line_shift,post_proc);
00057         }
00058         virtual ~SrcArray()
00059         {
00060         }
00061         void Init(std::string name,I * ptr,int width,int height,int next_line_shift,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00062         {
00063             setName(name);
00064             data=ptr;
00065             w=width;
00066             h=height;
00067             nls=next_line_shift;
00068             out.setPostProc(post_proc);
00069             AddPort(out,0);
00070             Restart();
00071         }
00072         void Restart()
00073         {
00074             y=0;
00075         }
00076         virtual void set_OutPortsImagesSizeAndInPortsExtents()
00077         {
00078             out.set_bufferImgSize(ImgSize(w,h));
00079         }
00080         virtual void processLine()
00081         {
00082             if(y<h)
00083             {
00084                 out.beginUpdate();
00085                 OutPortNoPostProc<T>::BufType::Iter_Line it=out.begin();
00086                 I *p=data+y*nls;
00087                 for(int x=0; x<w; x++)
00088                     *it++=*p++;
00089                 y++;
00090                 out.endUpdate();
00091             }
00092         }
00093     };
00095     // class SrcAImage
00100     template<typename T,class I,class P=Vtl::Plf::F11::DoNothing<T> >
00101     class SrcAImage
00102         : public SrcArray<T,typename I::Pixel,P>
00103     {
00104     public:
00105         SrcAImage()
00106             : SrcArray<T,I::Pixel,P>(),img(0)
00107         {
00108         }
00109         SrcAImage(std::string name,I * ptr,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00110             : SrcArray<T,I::Pixel,P>(name,(*ptr)[0],ptr->Width(),ptr->Height(),ptr->NextLineShift(),post_proc)
00111         {
00112         }
00113         virtual ~SrcAImage()
00114         {
00115         }
00116         void Init(std::string name,I * ptr,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00117         {
00118             SrcArray::Init(name,(*ptr)[0],ptr->Width(),ptr->Height(),ptr->NextLineShift(),post_proc);
00119         }
00120     };
00122     // class SrcAImageRgb
00127     template<typename T,class I,class P=Vtl::Plf::F11::DoNothing<T> >
00128     class SrcAImageRgb
00129         : public FilterElementary
00130     {
00131     public:
00132         OutPort<T,P> out_1;
00133         OutPort<T,P> out_2;
00134         OutPort<T,P> out_3;
00135     private:
00136         typename I::PlaneImageType * r;
00137         typename I::PlaneImageType * g;
00138         typename I::PlaneImageType * b;
00139         int y;
00140         int w;
00141         int h;
00142     public:
00143         SrcAImageRgb()
00144             : FilterElementary(0,1),img(0)
00145         {
00146         }
00147         SrcAImageRgb(std::string name,I * ptr,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00148             : FilterElementary(name,0,1),img(ptr)
00149         {
00151             w=img->Width();
00152             h=img->Height();
00153             AddPort(out_1,0);
00154             AddPort(out_2,1);
00155             AddPort(out_3,2);
00156             Restart();
00157         }
00158         virtual ~SrcAImageRgb()
00159         {
00160         }
00161         void Init(std::string name,I * ptr,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00162         {
00163             img=ptr;
00164             setName(name);
00165             out_1.setPostProc(post_proc);
00166             out_2.setPostProc(post_proc);
00167             out_3.setPostProc(post_proc);
00169             w=img->Width();
00170             h=img->Height();
00171             AddPort(out_1,0);
00172             AddPort(out_2,1);
00173             AddPort(out_3,2);
00174             Restart();
00175         }
00176         void Restart()
00177         {
00178             y=0;
00179         }
00180         virtual void set_OutPortsImagesSizeAndInPortsExtents()
00181         {
00182             out_1.set_bufferImgSize(ImgSize(w,h));
00183             out_2.set_bufferImgSize(ImgSize(w,h));
00184             out_3.set_bufferImgSize(ImgSize(w,h));
00185         }
00186         virtual void processLine()
00187         {
00188             if(y<h)
00189             {
00190                 out_1.beginUpdate();
00191                 out_2.beginUpdate();
00192                 out_3.beginUpdate();
00193                 copy_line(out_1.begin(),(*(img->GetPlane8(0)))[y]);
00194                 copy_line(out_2.begin(),(*(img->GetPlane8(1)))[y]);
00195                 copy_line(out_3.begin(),(*(img->GetPlane8(2)))[y]);
00196                 y++;
00197                 out_3.endUpdate();
00198                 out_2.endUpdate();
00199                 out_1.endUpdate();
00200             }
00201         }
00202     private:
00203         void copy_line(typename OutPortNoPostProc<T>::BufType::Iter_Line it,typename I::PlaneImageType::Pixel *p)
00204         {
00205             for(int x=0; x<w; x++)
00206                 *it++=*p++;
00207         }
00208     };
00210     // class DstArray
00215     template<typename T,class Pixel>
00216     class DstArray
00217         : public FilterElementary
00218     {
00219     public:
00220         InPort<T> in;
00221     private:
00222         Pixel * img;
00223         int y;
00224         int w;
00225         int h;
00226         int nls;
00227     public:
00228         DstArray(std::string name)
00229             : FilterElementary(name,1,0),img(0)
00230         {
00231             AddPort(in,0,Extent(0,0,0,0));
00232             w=0;
00233             h=0;
00234             Restart();
00235         }
00236         virtual ~DstArray()
00237         {
00238         }
00239         void setDstImage(Pixel* ptr,int width,int height, int next_line_shift)
00240         {
00241             img=ptr;
00242             w=width;
00243             h=height;
00244             nls=next_line_shift;
00245             Restart();
00246         }
00247         void Restart()
00248         {
00249             y=0;
00250         }
00251         virtual void set_OutPortsImagesSizeAndInPortsExtents()
00252         {//Must be empty for destination filter, NOT using base definition!
00253         }
00254         virtual void processLine()
00255         {
00256             if(y<h)
00257             {
00258                 ImageRef<T> im=in.getImg();
00259                 const T* input=im[0];
00260                 Pixel *p=img + nls*y;
00261                 for(int x=0; x<w; x++)
00262                     *p++=Pixel(*input++);
00263                 y++;
00264             }
00265             in.ToNextLine(y);
00266         }
00267     };
00269     // class DstAImage
00274     template<typename T,class I>
00275     class DstAImage
00276         : public DstArray<T,typename I::Pixel>
00277     {
00278     public:
00279         DstAImage(std::string name)
00280             : DstArray<T,I::Pixel>(name)
00281         {
00282         }
00283         virtual ~DstAImage()
00284         {
00285         }
00286         void setDstImage(I * ptr)
00287         {
00288             DstArray<T,I::Pixel>::setDstImage((*ptr)[0],ptr->Width(),ptr->Height(),ptr->NextLineShift());
00289         }
00290     };
00292     // class DstContainer
00298     template<typename T,class C,class P=Vtl::Plf::F11::DoNothing<T> >
00299     class DstContainer
00300         : public FilterElementary
00301     {
00302     public:
00303         InPort<T> in;
00304     private:
00305         int y;
00306         int w;
00307         int h;
00308         int tmp;
00309         C& container;
00310         T thresh;
00311     public:
00312         DstContainer(std::string name,C& container_,T threshold=T(0))
00313             : FilterElementary(name,1,0),container(container_),thresh(threshold)
00314         {
00315             AddPort(in,0,Extent(0,0,0,0));
00316             w=0;
00317             h=0;
00318             Restart();
00319         }
00320         virtual ~DstContainer()
00321         {
00322         }
00323         void setDstImage(Vtl::Plf::ImgSize is)
00324         {
00325             w=is.width;
00326             h=is.height;
00327             Restart();
00328         }
00329         void Restart()
00330         {
00331             y=0;
00332             tmp=0;
00333         }
00334         virtual void set_OutPortsImagesSizeAndInPortsExtents()
00335         {//Must be empty for destination filter, NOT using base definition!
00336         }
00337         virtual void processLine()
00338         {
00339             if(y<h)
00340             {
00341                 ImageRef<T> im=in.getImg();
00342                 const T* input=im[0];
00343                 for(int x=0; x<w; x++)
00344                 {
00345                     T value = *input++;
00346                     if(value>thresh)
00347                     {
00348                         container.Add(x,y,value);
00349                         //std::cout << tmp++ << "  " << x-(w/2) << " , "<< y-(h/2) << " , " << value <<std::endl;
00350                     }
00351                 }
00352                 y++;
00353             }
00354             in.ToNextLine(y);
00355         }
00356     };
00357  // end of IoFiltersDoxGroup
00359 } //namespace Plf
00360 } //namespace Vtl
00361 #endif //_IO_FILTER_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл plf_iterators.h

  • Файлы
  • Список членов всех файлов

plf_iterators.h

См. документацию.
00001 #ifndef _PLF_ITERATORS_H
00002 #define _PLF_ITERATORS_H
00004 #include <algorithm>
00005 namespace Vtl
00006 {
00007 // @brief  находится в файле plf_filters.h, здесь не описывается
00008 namespace Plf
00009 {
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027     template<typename T>
00028     class ColumnIteratorFast
00029     {
00030         const T* ptr;
00031         int stride;
00032     private:
00033         ColumnIteratorFast() {}
00034     public:
00035         ColumnIteratorFast(const T* pointer,int step) : ptr(pointer), stride(step) {}
00036         ColumnIteratorFast(const ColumnIteratorFast& it) : ptr(it.ptr), stride(it.stride) {}
00037
00038         const T& operator*()  { return *ptr;}
00039         ColumnIteratorFast& operator++()  {ptr+=stride; return *this;}
00040 //      ColumnIteratorFast operator++(int)  {ColumnIteratorFast it(*this); ptr+=stride; return it;}
00041         ColumnIteratorFast& operator--()  {ptr-=stride; return *this;}
00042 //      ColumnIteratorFast operator--(int)  {ColumnIteratorFast it(*this); ptr-=stride; return it;}
00043     };
00054     template<typename T>
00055     class LineIterator
00056     {
00057         const T* ptr;
00058         const int nls;
00059 //      const int h;
00060     public:
00061         LineIterator(ImageRef<T>& img,bool end=false)
00062             :ptr(img[-img.ext().before]),nls(img.nls())//,h(img.h());
00063         {
00064             if(end)
00065                 ptr+=img.w();
00066         }
00067         ColumnIteratorFast<T> operator*() const { return ColumnIteratorFast<T>(ptr,nls);}
00068         LineIterator& operator++()  {++ptr; return *this;}
00069 //      ColumnIteratorFast operator++(int)  {ColumnIteratorFast it(*this); ptr+=stride; return it;}
00070         LineIterator& operator--()  {--ptr; return *this;}
00071 //      ColumnIteratorFast operator--(int)  {ColumnIteratorFast it(*this); ptr-=stride; return it;}
00072         bool operator!=(const LineIterator& li) const { return ptr!=li.ptr;}
00073     }; // end of IteratorsForElementaryFiltersDoxGroup
00075 } //namespace Plf
00076 } //namespace Vtl
00077 #endif //_PLF_ITERATORS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл plf_kernels_1d.h

  • Файлы
  • Список членов всех файлов

plf_kernels_1d.h

См. документацию.
00001 #ifndef _KERNELS_1D_H
00002 #define _KERNELS_1D_H
00004 #include  "convolve.h"
00005 namespace Vtl
00006 {
00007 // @brief  находится в файле plf_filters.h, здесь не описывается
00008 namespace Plf
00009 {
00039 namespace Kernel
00040 {
00041     enum Type
00042     {
00043         KT_Conv,
00044         KT_Corr,
00045
00046
00047         KT_Win
00048     };
00063     template<typename T,Kernel::Type kernel_type_=KT_Conv,bool double_kernel_=false>
00064     class Base
00065     {
00066     public:
00067         typedef T value_type;
00068         typedef T& reference_type;
00069         typedef const T& const_reference_type;
00070         typedef T* pointer_type;
00071         typedef const T* const_pointer_type;
00072         typedef T* iterator;
00073         typedef const T* const_iterator;
00074         enum { kernel_type=kernel_type_ };
00075         enum { double_kernel=double_kernel_?1:0 };
00076     private:
00077         std::vector<T> data;
00078         iterator ptr_left;
00079         iterator ptr_center;
00080         iterator ptr_after_right;
00081         int _size;
00082         int _left;
00083         int _right;
00084         std::string filtername;
00085     private:
00086         Base(); //Запретить конструктор по умолчанию
00087         Base(const Base&); //Запретить конструктор копирования
00088         Base& operator=(const Base&); //Запретить конструктор копирования
00089     protected:
00090         Base(std::string name) : filtername(name) {} //Запретить создавать объекты этого класса, разрешить наследовать из него
00093         void _Init(int left,int right)
00094         {
00095             assert( left >=0);
00096             _left=left;
00097             _right=(right<0)?left:right;
00098             if(kernel_type==KT_Conv)
00099             {
00100                 std::swap(_left,_right);
00101             }
00102             _size=left+right+1;
00103             data.resize(Vtl::Alg::mult_if<double_kernel>(_size,2));
00104             ptr_left=&(data[0]);
00105             ptr_center=&(data[left]);
00106             ptr_after_right=ptr_left+_size;
00107         }
00108         void _Init_Last_step()
00109         {
00110             _double_ker(Loki::Int2Type<double_kernel>() );
00111         }
00112     private:
00113         void _double_ker(Loki::Int2Type<1> ) {::memcpy(ptr_after_right,ptr_left,_size*sizeof(data[0]));}
00114         void _double_ker(Loki::Int2Type<0> ) {}
00115     public:
00116         Type type() const { return kernel_type;}
00117         virtual ~Base() {}
00119         const_iterator center() const {return ptr_center;}
00121         const_iterator begin() const {return (const_iterator)ptr_left;}
00123         const_iterator end() const {return ptr_after_right;}
00126         const T* Center() const {return ptr_center;}
00129         const T* Left() const {return ptr_left;}
00132         const T* Right() const {return ptr_left+_size-1;}
00134         int size() const {return _size;}
00136         int left() const {return _left;}
00137         int right() const {return _right;}
00142         std::string Name() const {return filtername;}
00177         std::string SaveForMathLab() const
00178         {
00179             std::ostringstream os;
00180             int i=-left();
00181             for(const_iterator it=begin(); it!=end(); it++,i++)
00182                 os<< i << " " <<*it <<std::endl;
00183             os<<std::endl;
00184             return os.str();
00185         }
00186     protected:
00187         iterator center_internal() {return ptr_center;}
00188         iterator begin_internal() {return ptr_left;}
00189         iterator end_internal() {return ptr_after_right;}
00190     protected:
00203         template<unsigned N>    void normalize()
00204         {
00205             if( kernel_type==KT_Win )
00206                 return normalize_window();
00207             const int cof=(Vtl::Alg::isOdd<N>::value)?-Vtl::Alg::Factorial<N>::value:Vtl::Alg::Factorial<N>::value;
00208             T sum=0;
00209             const_iterator d=begin();
00210             for(int i=0; i<size(); i++)
00211                 sum+=Vtl::Alg::x_to_N<N>::value(i-left())*(*d++);
00212             if(sum==0)
00213                 throw "Kernel::Base::normalize(Vtl::Types::Int2Type<N>): sum==0 !";
00214             if( (kernel_type==KT_Conv) && (Vtl::Alg::isOdd<N>::value) )
00215                 sum=-sum;
00216             multBy(cof/sum);
00217         }
00218         virtual void normalize_window()
00219         {
00220         }
00221     private:
00222         void multBy(T val)
00223         {
00224             for(iterator d=begin_internal(); d!=end(); ++d)
00225                 *d=(*d)*val;
00226         }
00227     };
00228     /*
00229     Ограничение окном:
00230     Желательно:
00231     Functor f(params);
00232     KernelWin ker(f,size,center,metod_to_padd_extrapolate_if_need);
00233     ker - массив размера size.
00234     */
00235
00236
00238     template<typename T,Kernel::Type kernel_type_=KT_Conv,bool double_kernel_=false>
00239     class Table
00240         :public Base<T,kernel_type_,double_kernel_>
00241     {
00242     public:
00243         Table(const char *name) : Base<T,kernel_type_,double_kernel_>(name) {}
00244         Table(const char *name,const T* ker,int size,int left)
00245             : Base<T,kernel_type_,double_kernel_>(name)
00246         {
00247             Init(ker,size,left);
00248         }
00249         virtual ~Table() {}
00258         void Init(const T* ker,int size,int left)
00259         {
00260             _Init(left,size-left-1);
00261             std::copy(ker,ker+size,begin_internal());
00262             _Init_Last_step();
00263         }
00264     };
00265
00266
00288     template<typename T,Kernel::Type kernel_type_=KT_Conv,bool double_kernel_=false>
00289     class FKern
00290         :public Base<T,kernel_type_,double_kernel_>
00291     {
00292     public:
00293         FKern() : Base<T,kernel_type_,double_kernel_>("KernelNotInitializedByFunctor") {}
00294         template<class FF>
00295         FKern(FF functor)
00296             : Base<T,kernel_type_,double_kernel_>(FF::Name())
00297         {
00298             Init(functor);
00299         }
00300         template<class FF>
00301         FKern(FF functor, size_t wnd_size,T center_pos=T(-1),T fill_by=T(0))
00302             : Base<T,kernel_type_,double_kernel_>(FF::Name())
00303         {
00304             Init(functor,wnd_size,center_pos,fill_by);
00305         }
00306         virtual ~FKern() {}
00312         template<class FF>
00313         void Init(FF functor)
00314         {
00315             LOKI_STATIC_CHECK(((kernel_type_==Kernel::KT_Conv)||(kernel_type_==Kernel::KT_Corr)),This_Init_function_form_can_be_used_only_for_kernels_with_type_KT_Conv_or_KT_Corr);
00316 //          func=functor;// надо ли?
00317             //Calculate kernel size and center
00318             _Init_conv( functor );
00319             _Init_Last_step();
00320         }
00331         template<class FF>
00332         void Init(FF functor, size_t wnd_size,T center_pos,T fill_by=T(0))
00333         {
00334             LOKI_STATIC_CHECK((kernel_type_==Kernel::KT_Win),This_Init_function_form_can_be_used_only_for_kernels_with_type_KT_Win);
00335             //Calculate kernel size and center
00336             _Init_win( functor,wnd_size,center_pos,fill_by);
00337             _Init_Last_step();
00338         }
00339     private:
00340         template<class FF>
00341         void _Init_conv(FF functor)
00342         {
00343             //Calculate kernel size and center
00344             //Примечание: functor.left();functor.right();functor.center() возвращают значения x при которых
00345             // цунктор достигает левой/правой границы или имеет центр.
00346             // Локальные переменные left, right обозначают количество точек в ядре дляной (left+1+right) точек,
00347             // центр функтора будет находиться там,  где в предыдущей формуле находится единица.
00348             // Локальные переменные left, right целочисленные и НЕотрицательные.
00349             int left=int(functor.center()-functor.left()+0.5);
00350             int right=int(functor.right()-functor.center()+0.5);
00351             if(FF::finit_support_left)
00352             {
00353                 if((functor.center()-left)< functor.left())
00354                     --left;
00355             }
00356             if(FF::finit_support_right)
00357             {
00358                 if((functor.center()+right)> functor.right())
00359                     --right;
00360             }
00361             //уменьшить размер ядра, если возможно.
00362             FF::value_type vc=std::abs(functor(functor.center()));
00363             {
00364                 FF::arg_type ofs=functor.center()-left; //приведение центра функтора в точку ядра где единица в формуле size=left+1+right;
00365                 for(int i=0; i<left+right+1; ++i)
00366                     vc=std::max(vc,std::abs(functor(i+ofs)));
00367             }
00368             const FF::value_type near_zero=vc*NumAlg::RelerrEps<FF::value_type>();
00369             if(std::abs(functor(functor.center()-left)) <= near_zero )
00370                 --left;
00371             if(std::abs(functor(functor.center()+right)) <= near_zero)
00372                 --right;
00373             FF::arg_type ofs=functor.center()-left; //приведение центра функтора в точку ядра где единица в формуле size=left+1+right;
00374             _Init(left,right);//size=left+right+1 !!!
00375             build(functor,ofs);
00376             //build(functor,functor.center);
00377         }
00378         template<class FF>
00379         void _Init_win(FF functor,size_t wnd_size,T center_pos,T fill_by)
00380         {
00381             //Calculate kernel size and center
00382             //Примечание: functor.left();functor.right();functor.center() возвращают значения x при которых
00383             // цунктор достигает левой/правой границы или имеет центр.
00384             // Локальные переменные left, right обозначают количество точек в ядре дляной (left+1+right) точек,
00385             // центр функтора будет находиться там,  где в предыдущей формуле находится единица.
00386             // Локальные переменные left, right целочисленные и НЕотрицательные.
00387
00388             FF::arg_type ofs=functor.center()-center_pos; //приведение центра функтора в точку ядра center_pos (первая точка ядра 0, center_pos может быть нецелым);
00389             int i_left=int(std::ceil(functor.left()-ofs));
00390             if(i_left>0)
00391             {
00392                 //there is i_left entries to fill by default
00393             }
00394             int i_right=int(std::floor(functor.right()-ofs-0.5));
00395             if(i_right<((int(wnd_size)-1)))
00396             {
00397                 //there is (wnd_size-i_right-1) entries to fill by default
00398             }
00399             //if(i_left<0 || i_right>=wnd_size-1 ) - error!!!
00400             _Init(0,int(wnd_size)-1);//size=left+right+1 !!!
00401             build(functor,ofs);
00402             //build(functor,functor.center);
00403         }
00410         template<class FF>
00411         void build(FF func,typename FF::arg_type ofs)
00412         {
00413             build(func,ofs,Loki::Int2Type<kernel_type_>() );
00414         }
00415         template<class FF>
00416         void build(FF func,typename FF::arg_type ofs, Loki::Int2Type<KT_Conv> )
00417         {
00418             iterator d=begin_internal();
00419             ofs=FF::arg_type(ofs+size()-1);
00420             for(int i=0; i<Base::size(); i++)
00421                 *d++=func(ofs-i);//(size-1-i)-ofs)=(size-1-ofs)-i
00422             normalize<FF::conv_norm_alg>();
00423         }
00424         template<class FF>
00425         void build(FF func,typename FF::arg_type ofs, Loki::Int2Type<KT_Corr> )
00426         {
00427             iterator d=begin_internal();
00428             for(int i=0; i<Base::size(); i++)
00429                 *d++=func(FF::arg_type(i+ofs));
00430             normalize<FF::conv_norm_alg>();
00431         }
00432         template<class FF>
00433         void build(FF func,typename FF::arg_type ofs, Loki::Int2Type<KT_Win> )
00434         {
00435             iterator d=begin_internal();
00436             for(int i=0; i<Base::size(); i++)
00437             {
00438                 *d++=func(FF::arg_type(i+ofs));
00439             }
00440             //normalize<FF::conv_norm_alg>();
00441         }
00442     };
00450     template<typename T,typename iterator_in,typename iterator_ker>
00451     void WindowData(iterator_in in,iterator_ker begin,iterator_ker end,T mult=1.0f,T bias=0.0f)
00452     {
00453         for(; begin!=end; ++in )
00454         {
00455             (*in)=mult*((*in)-bias)*(*begin++);
00456         }
00457     }
00462     template<typename T,typename iterator_in,typename iterator_ker>
00463     T IntegrateWindowedData(iterator_in in,iterator_ker begin,iterator_ker end)
00464     {
00465         T sum=0;
00466         for(; begin!=end; ++in )
00467         {
00468             sum+=(*in)*(*begin++);
00469         }
00470         return sum;
00471     }
00476     template<typename T,typename iterator_ker>
00477     T IntegrateKer(iterator_ker begin,iterator_ker end)
00478     {
00479         T sum=0;
00480         for(; begin!=end;  )
00481         {
00482             sum+=(*begin++);
00483         }
00484         return sum;
00485     }
00490     template<typename T>
00491     class ImageWin
00492     {
00493         Vtl::Plf::Kernel::FKern<T,Vtl::Plf::Kernel::KT_Win,false> ker_x;
00494         Vtl::Plf::Kernel::FKern<T,Vtl::Plf::Kernel::KT_Win,false> ker_y;
00495     public:
00496         ImageWin()
00497         {
00498         }
00499         template<class Fx,class Fy,typename TT>
00500         void Init(Fx functor_x,Fy functor_y,size_t width,size_t height,TT center_x,TT center_y,T fill_by)
00501         {
00502             ker_x.Init(functor_x,width,center_x,fill_by);
00503             ker_y.Init(functor_y,height,center_y,fill_by);
00504         }
00505         void Run(T *p,int nls)
00506         {
00507             T int_w=0;
00508             T int_w_x_data=0;
00509             T *p_cur=p;
00510             for(Vtl::Plf::Kernel::Base<T,Vtl::Plf::Kernel::KT_Win,false>::const_iterator iy=ker_y.begin(); iy!=ker_y.end() ; ++iy)
00511             {
00512                 int_w        += (*iy)*Vtl::Plf::Kernel::IntegrateKer<T>(ker_x.begin(),ker_x.end());
00513                 int_w_x_data += (*iy)*Vtl::Plf::Kernel::IntegrateWindowedData<T>(p_cur,ker_x.begin(),ker_x.end());
00514                 p_cur+=nls;
00515             }
00516             p_cur=p;
00517             T ofs=int_w_x_data/int_w;
00518             for(Vtl::Plf::Kernel::Base<T,Vtl::Plf::Kernel::KT_Win,false>::const_iterator iy=ker_y.begin(); iy!=ker_y.end() ; ++iy)
00519             {
00520                 Vtl::Plf::Kernel::WindowData(p_cur,ker_x.begin(),ker_x.end(),*iy,ofs);
00521                 p_cur+=nls;
00522             }
00523         }
00524     };
00525
00526
00527
00528 } //namespace Vtl::Plf::Kernel // end of ConvolutionKernelsDoxGroup
00530 } //namespace Plf
00531 } //namespace Vtl
00532
00534 #endif //_KERNELS_1D_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл plf_port.h

  • Файлы
  • Список членов всех файлов

plf_port.h

См. документацию.
00001 #ifndef _PLF_PORT_H
00002 #define _PLF_PORT_H
00004 #include <list>
00005 #include "plf_strip_buffer.h"
00006 #include "plf_functors.h"
00007
00008 namespace Vtl
00009 {
00010 // @brief  находится в файле plf_filters.h, здесь не описывается
00011 namespace Plf
00012 {
00063     class FilterBase;
00064     class FilterElementary;
00065     class FilterComplex;
00066
00067     class Port;
00068     class InPortBase;
00069     class OutPortBase;
00070     template<typename T> class InPort;
00071     template<typename T> class OutPortNoPostProc;
00077     class Port
00078     {
00079     private:
00080         FilterElementary * filter; //> Фильтр, которому принадлежит порт
00081         int port; //> номер этого порта в фильре (нумерация входов и выходов раздельная)
00082     private:
00083         Port(const Port&);
00084         Port& operator=(const Port&);
00085     protected:
00086         Port()
00087             :filter(0),port(0)
00088         {
00089         }
00090         void _init(FilterElementary * _filter,int _port)
00091         {
00092             filter=_filter;
00093             port=_port;
00094         }
00095
00096     public:
00097         virtual ~Port() {}
00098         virtual FilterElementary * getFilter() {return filter;} //>Возвращает указатель на фильтр, к которому принадлежит этот порт
00099         virtual int getPort() {return port;} //>Возвращает номер порта в фильтре, к которому принадлежит этот порт, нумерация входных и выходных портов раздельная.
00100         virtual void print()
00101         {
00102             printf("class Port: this=0x%08X  Filter=0x%08X port=%d \n",unsigned(this),unsigned(filter),port);
00103         }
00107         virtual ImgSize  getImageSize() const=0;
00108     };
00114     class InPortBase
00115         : public Port
00116     {
00117     public:
00118         friend  class OutPortBase;
00119         int total_delay;
00120     private:
00121         InPortBase(const InPortBase&);
00122         InPortBase& operator=(const InPortBase&);
00123     private:
00124         Extent ext_required;
00127         Strip strip;
00128         bool finished;
00129     protected:
00130         InPortBase()
00131             :Port()
00132         {
00133             total_delay=0;
00134         }
00135         void _init(FilterElementary * _filter,int _port,Extent extent_required)
00136         {
00137             Port::_init(_filter,_port);
00138             ext_required=extent_required;
00139             //lines=ext_required.before+ext_required.forward;
00140             Rewind();
00141         }
00142     public:
00143         virtual void Init(FilterElementary * _filter,int _port,Extent extent_required)=0;
00144         virtual ~InPortBase() {}
00145         Extent ext() const { return ext_required;}
00146 //      virtual ImgSize  getImageSize() const=0;
00147         void Rewind()
00148         {
00149             int y=0;
00150             //Затребуемая полоса всегда должна удовлетворять условию
00151             //forward>=before, иначе на начальных строках изображения
00152             //подготовить буфер невозможно, а на последующих строках,
00153             //когда это станет возможным, разрешение нарушения такого
00154             //неравенства приведет к изменению задержки и следовательно
00155             //баланса задержек всего графа схемы. См. комментарий в
00156             // StripBuffer::init_2(const Extent& ext);
00157             int forw=std::max(ext_required.before,ext_required.forward);
00158             strip=Strip(y-ext_required.before,y+forw+1);
00159             finished=false;
00160         }
00161         void ToNextLine(int y)
00162         {
00163             if(y>=Y())
00164             {
00165                 int delta=y-Y();
00166                 strip+=delta;
00167             }
00168             if(Y() >= getImageSize().height)
00169                 Finish();
00170         }
00171         bool isFinished() const {return finished; }
00172         void Finish()
00173         {
00174             finished=true;
00175         }
00176         virtual bool isDataReady()=0;
00177         int Y() const {return strip.last()+ext_required.before; }
00178         Strip getRequiredStrip() { return strip; }
00179
00181         virtual OutPortBase * BaseConnectedTo()=0;
00182     };
00188     class OutPortBase
00189         : public Port
00190     {
00191     private:
00192         OutPortBase(const OutPortBase&);
00193         OutPortBase& operator=(const OutPortBase&);
00194     public:
00195         typedef std::list<InPortBase*> List;
00196         struct Connection
00197         {
00198             FilterBase* filter;
00199             int i_in;
00200             Connection(FilterBase* filter_,int i_in_) : filter(filter_),i_in(i_in_) {}
00201         };
00202     protected:
00203         OutPortBase()
00204             :Port()
00205         {
00206         }
00207         void ConnectTo_(InPortBase *in_port)
00208         {
00209             connected_to.push_back(in_port);
00210         }
00211     private:
00212         List connected_to;
00213         bool finished;
00214     public:
00215         virtual void Init(FilterElementary * _filter,int _port)
00216         {
00217             Port::_init(_filter,_port);
00218         }
00219         virtual ~OutPortBase()
00220         {
00221         }
00222
00223         virtual void Rewind()
00224         {
00225             finished=false;
00226         }
00227         virtual int this_delay()=0;
00228         Extent calcRequiredExtent()
00229         {
00230             Extent e(0,0,0,0);
00231             for(List::iterator it=connected_to.begin();it!=connected_to.end();it++)
00232             {
00233                 InPortBase* in=(*it);
00234                 e.max(in->ext());
00235             }
00236             return e;
00237         }
00239         virtual void set_total_delay(int before_delay)
00240         {
00241             before_delay+=this_delay();
00242             for(List::const_iterator it=connected_to.begin(); it!=connected_to.end(); ++it)
00243             {
00244                 InPortBase *in=*it;
00245                 in->total_delay=before_delay;
00246             }
00247         }
00248         virtual int NumConnectedTo() const {return connected_to.size();}
00249
00250         void putConnectionsInQueue(std::list<Vtl::Plf::FilterElementary *>& Q)
00251         {
00252             for(List::const_iterator it=connected_to.begin(); it!=connected_to.end(); ++it)
00253             {
00254                 InPortBase *in=*it;
00255                 Q.push_back(in->getFilter());
00256             }
00257         }
00258         void putConnectionsInQueue(Fifo<Vtl::Plf::FilterElementary*>& Q)
00259         {
00260             for(List::const_iterator it=connected_to.begin(); it!=connected_to.end(); ++it)
00261             {
00262                 InPortBase *in=*it;
00263                 Q.put(in->getFilter());
00264             }
00265         }
00266         virtual Strip getRequestedStrips()
00267         {
00268             Strip s;
00269             int cnt=0;
00270             for(List::const_iterator it=connected_to.begin(); it!=connected_to.end(); ++it)
00271             {
00272                 InPortBase *in=*it;
00273                 if( !in->isFinished() )
00274                 {
00275                     if(cnt)
00276                         s|=in->getRequiredStrip();
00277                     else
00278                         s=in->getRequiredStrip();
00279                     cnt++;
00280                 }
00281             }
00282             if(cnt==0)
00283                 Finish();
00284             return s;
00285         }
00289         bool isFinished() const {return finished; }
00299         void Finish()
00300         {
00301             finished=true;
00302         }
00305         bool isReadyForUpdate()
00306         {//СРАВНИТЬ y_first и y_first+lines с тем какие строки в буфере
00307             if(isFinished())
00308                 return false;
00309             Strip s=getRequestedStrips();
00310             if(isFinished())
00311                 return false;
00312             bool can=getStrip().canMove(s);
00313             return can;
00314         }
00315         virtual bool inPopTailStage()=0;
00316         virtual void PopTail()=0;
00317
00318         virtual Strip getStrip() const =0;
00319
00320         virtual void set_bufferImgSize(const ImgSize& ims)=0;
00321         virtual void init_bufferExtents()=0;
00322         virtual void init_buffer()=0;
00323         virtual void init_buffer(Extent ext)=0;
00324
00325         virtual void increase_delay_by(int delta_delay)=0;
00326     };
00338     template<typename T>
00339     class InPort
00340         : public InPortBase
00341     {
00342     public:
00343         friend class OutPortNoPostProc<T>;
00344         typedef StripBuffer<T> BufType;
00345     private:
00346         OutPortNoPostProc<T> * input;// порт к которому подключен
00347     private:
00348         InPort(const InPort&);
00349         InPort& operator=(const InPort&);
00350     public:
00351         InPort()
00352             : InPortBase()
00353         {
00354         }
00355         virtual void Init(FilterElementary * _filter,int _port,Extent extent_required)
00356         {
00357             InPortBase::_init(_filter,_port,extent_required);
00358         }
00359         virtual ~InPort()
00360         {
00361         }
00362         OutPortNoPostProc<T> * ConnectedTo()
00363         {
00364             return input;
00365         }
00366         virtual OutPortBase * BaseConnectedTo()
00367         {
00368             return ConnectedTo();
00369         }
00370
00371         ImageRef<T> getImg()
00372         {
00373             assert(input!=0);
00374             return input->getImg(ext(),getRequiredStrip());
00375         }
00376         virtual ImgSize  getImageSize() const
00377         {
00378             assert(input!=0);
00379             return input->getImageSize();
00380         }
00381         virtual bool isDataReady()
00382         {//СРАВНИТЬ y_first и y_first+lines с тем какие строки в буфере
00383             Vtl::Plf::Strip s=BaseConnectedTo()->getStrip();
00384             Vtl::Plf::Strip s_req=getRequiredStrip();
00385             bool result=s.isContains(s_req);
00386             return result;
00387 //          return BaseConnectedTo()->getStrip().isContains(getRequiredStrip());
00388         }
00389     };
00395     template<typename T>
00396     class InPortComb
00397 //      : public InPortBase
00398     {
00399     public:
00400         friend class OutPortNoPostProc<T>;
00401         typedef StripBuffer<T> BufType;
00402         typedef std::list<InPort<T>*> List;
00403     private:
00404 //      OutPortNoPostProc<T> * input;// порт к которому подключен
00405     public:
00406         List inps;
00407     private:
00408         InPortComb(const InPortComb&);
00409         InPortComb& operator=(const InPortComb&);
00410     public:
00411         InPortComb()
00412 //          : InPortBase()
00413         {
00414         }
00415 //      virtual void Init(FilterElementary * _filter,int _port,Extent extent_required)
00416 //      {
00417 //          InPortBase::_init(_filter,_port,extent_required);
00418 //      }
00419         void Clear()
00420         {
00421             inps.clear();
00422         }
00423         void Add(InPort<T>* inp)
00424         {
00425             assert(inp!=0);
00426             inps.push_back(inp);
00427         }
00428         void Add(InPortComb<T>* inp)
00429         {
00430             assert(inp!=0);
00431             for(List::const_iterator it=inp->inps.begin(); it!=inp->inps.end(); ++it)
00432                 inps.push_back(*it);
00433         }
00434         virtual ~InPortComb()
00435         {
00436         }
00437 /*      OutPortNoPostProc<T> * ConnectedTo()
00438         {
00439             return input;
00440         }
00441         virtual OutPortBase * BaseConnectedTo()
00442         {
00443             return ConnectedTo();
00444         }
00445
00446         ImageRef<T> getImg()
00447         {
00448             assert(input!=0);
00449             return input->getImg(ext(),getRequiredStrip());
00450         }
00451         virtual ImgSize  getImageSize() const
00452         {
00453             assert(input!=0);
00454             return input->getImageSize();
00455         }
00456         virtual bool isDataReady()
00457         {//СРАВНИТЬ y_first и y_first+lines с тем какие строки в буфере
00458             Vtl::Plf::Strip s=BaseConnectedTo()->getStrip();
00459             bool result=true;
00460             for()
00461             InPort<T> *in;
00462             Vtl::Plf::Strip s_req=in->getRequiredStrip();
00463             result=result && s.isContains(s_req);
00464             return result;
00465 //          return BaseConnectedTo()->getStrip().isContains(getRequiredStrip());
00466         }
00467 */
00468     };
00480     template<typename T>
00481     class OutPortNoPostProc
00482         : public OutPortBase
00483     {
00484         friend class InPort<T>;
00485     public:
00486         typedef StripBuffer<T> BufType;
00487         typedef typename BufType::Iter_Line Iter;
00488     private:
00489         BufType buffer;
00490 //====== Конструкторы и деструкторы =======
00491     private:
00492         OutPortNoPostProc(const OutPortNoPostProc&);
00493         OutPortNoPostProc& operator=(const OutPortNoPostProc&);
00494     protected:
00495         OutPortNoPostProc()
00496             :OutPortBase()
00497         {
00498         }
00499     public:
00500         virtual ~OutPortNoPostProc()
00501         {
00502         }
00504         virtual void Init(FilterElementary * _filter,int _port)
00505         {
00506             OutPortBase::Init(_filter,_port);
00507         }
00508 //====== Настройка =======
00510         virtual void set_bufferImgSize(const ImgSize& ims)
00511         {
00512             buffer.init_1(ims);
00513         }
00515         virtual void init_bufferExtents()
00516         {
00517             Extent ext=this->calcRequiredExtent();
00518             buffer.init_2(ext);
00519             buffer.init_3(0);
00520         }
00522         virtual void increase_delay_by(int delta_delay)
00523         {
00524             buffer.init_3(delta_delay);
00525         }
00527         virtual void init_buffer()
00528         {
00529             buffer.init_4();
00530             Rewind();
00531         }
00532         //ВМЕСТО (!!!) ШАГОВ 4&5&6
00533         virtual void init_buffer(Extent ext)
00534         {
00535             buffer.init_2(ext);
00536             //buffer.init_3(0);
00537             //buffer.init_4();
00538             //Rewind();
00539         }
00540         virtual int this_delay()
00541         {
00542             return this->buffer.delay();
00543         }
00544 //====== Подключение входов и информация о них =======
00545         void ConnectTo(InPort<T> *in_port)
00546         {
00547             assert(in_port!=0);
00548             in_port->input=this;
00549             ConnectTo_(in_port);
00550         }
00551         void ConnectTo(InPortComb<T> *in_ports)
00552         {
00553             assert(in_ports!=0);
00554             //std::list<InPort<T>*> inps;
00555             for(std::list<InPort<T>*>::iterator it=in_ports->inps.begin(); it!=in_ports->inps.end(); ++it )
00556             {
00557                 InPort<T> *in_port=*it;
00558                 in_port->input=this;
00559                 ConnectTo_(in_port);
00560             }
00561         }
00562 //====== Текущее состояние  =======
00563         virtual void Rewind()
00564         {
00565             OutPortBase::Rewind();
00566             buffer.Rewind();
00567         }
00571         int Y_wait() const {return buffer.Y_wait(); }
00573         int Y() const {return buffer.Y(); }
00575         virtual Strip getStrip() const
00576         {
00577             //return Strip(buffer.Y_last(),buffer.Y_wait());
00578             return buffer.getCurStrip();
00579         }
00580 //====== Чтение данных  =======
00581         virtual ImgSize  getImageSize() const {return buffer.ImageSize(); }
00582         ImageRef<T> getImg(const Extent& ex1,const Strip& strip) const {return buffer.getImg(ex1,strip); }
00583
00584 //====== Закладка новой строки  =======
00587         typename Iter begin() { return buffer.begin_line_insert(); }
00590         typename Iter end() { return buffer.end_line_insert(); }
00591
00592         virtual void beginUpdate()
00593         {
00594             assert(begin()==0);
00595             assert(buffer.Y_wait()<buffer.ImageSize().height);
00596             buffer.InsertNextLineStart();
00597         }
00598         virtual void endUpdate()
00599         {
00600             assert(begin()!=0);
00601             buffer.InsertNextLineFinished();
00602             if(buffer.Y_wait()>=buffer.ImageSize().height)
00603             {
00604                 Finish();
00605             }
00606         }
00607         virtual bool inPopTailStage()
00608         {
00609             Strip s=getRequestedStrips();
00610             return ((buffer.Y_wait() >= buffer.ImageSize().height )
00611                 && (buffer.Y() < (buffer.ImageSize().height-1))
00612                 && getStrip().canMove(s));
00613         }
00614         virtual void PopTail()
00615         {
00616                 buffer.PopTail();
00617         }
00618
00619     };
00632     template<typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00633     class OutPort
00634         : public OutPortNoPostProc<T>
00635     {
00636         P functor_post_proc;
00637 //====== Конструкторы и деструкторы =======
00638     private:
00639         OutPort(const OutPort&);
00640         OutPort& operator=(const OutPort&);
00641     public:
00642         OutPort()
00643             :OutPortNoPostProc<T>()
00644         {
00645         }
00646         OutPort(P func_post_proc)
00647             :OutPortNoPostProc<T>(),functor_post_proc(func_post_proc)
00648         {
00649         }
00650         void setPostProc(P func_post_proc)
00651         {
00652             functor_post_proc=func_post_proc;
00653         }
00654         virtual ~OutPort()
00655         {
00656         }
00657         virtual void endUpdate()
00658         {
00659             assert(begin()!=0);
00660             proc(functor_post_proc);
00661             OutPortNoPostProc<T>::endUpdate();
00662         }
00663     private:
00664         template<class P> void proc(P functor)
00665         {
00666             for(Iter it=begin(); it!=end(); ++it)
00667                 (*it)=functor(*it);
00668         }
00669         void proc(Vtl::Plf::F11::DoNothing<T> )
00670         {
00671         }
00672     }; // end of PipeLineFiltersDoxGroup    Порты и буфферы.
00674 } //namespace Plf
00675 } //namespace Vtl
00676 #endif //_PLF_PORT_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл plf_strip_buffer.h

  • Файлы
  • Список членов всех файлов

plf_strip_buffer.h

См. документацию.
00001 #ifndef _PLF_STRIP_BUFFER_H
00002 #define _PLF_STRIP_BUFFER_H
00004 #include <algorithm>
00005 #include "plf_strip_buffer_support.h"
00006 namespace Vtl
00007 {
00008 // @brief  находится в файле plf_filters.h, здесь не описывается
00009 namespace Plf
00010 { // end of PipeLineFiltersDoxGroup
00026 //#define DEBUG_SHOW_ALL_BUFFER
00041     template<typename T>
00042     class StripBuffer
00043     {
00044         std::vector<T> vec; //>массив в котором собственно хранится порция (несколько строк) изображения (виртуального).
00045         Extent ex; //>
00046         ImgSize ims;//> Размер виртуального изображения, которое представляет этот буфер.
00047         int full_width;
00052         int y_wait;
00053         ImageRef<T> ir;
00054 #ifdef DEBUG_SHOW_ALL_BUFFER
00055         ImageRef<T> __ir;
00056 #endif
00057     private:
00058         T* ptrLineStart(int y) { return (&(vec[0]))+full_width*(y+ex.forward);}
00059         T* ptrLine0(int y) { return ptrLineStart(y)+ex.left;}
00060     public:
00061         StripBuffer() {}
00062         virtual ~StripBuffer() {}
00115         void init_1(const ImgSize& sz)
00116         {
00117             assert(sz.width>0 && sz.height>0);
00118             ims=sz;
00119         }
00120         void init_2(const Extent& ext)
00121         {
00122             ext.checkCompatible(ims);
00123             ex=ext;
00124             if(ex.forward<ex.before)
00125                 ex.forward=ex.before; // иначе сложно обрабатывать!
00126             full_width=ex.left+ims.width+ex.right;
00127         }
00128         void init_3(int increase_delay_by)
00129         {
00130             Extent ext(ex);
00131             ext.forward+=increase_delay_by;
00132             ext.checkCompatible(ims);
00133             ex=ext;
00134         }
00135
00136         void init_4()
00137         {
00138             vec.resize(full_width*(ex.forward+1+ex.forward));
00139             //y_wait=0; //Ожидается поступление строки входного изображения номер 'y_wait'.
00140             //y_wait=-ex.before; //Ожидается подготовка строки номер 'y_wait' выходного изображения.
00141             Rewind();
00142             ir=ImageRef<T>(ptrLine0(0) ,ims.width,full_width,ex);
00143 #ifdef DEBUG_SHOW_ALL_BUFFER
00144             __ir=ImageRef<T>(ptrLine0(0) ,ims.width,full_width,Extent(ex.left,ex.right,ex.forward,ex.forward));
00145 #endif
00146         }
00147         void Rewind()
00148         {
00149             y_wait=0;
00150             ptr_beg_ins=0;
00151         } // end of StripBufferInitDoxGroup
00169
00170
00171         ImgSize ImageSize() const {return ims;}
00179         Extent ext() const {return ex;}
00182         int delay() const {return ex.forward; }
00186         Strip delay(Extent extent) const
00187         {
00188             return Strip(Y_last()+extent.before,Y_wait()-extent.forward);
00189         }
00191         int Y() const {return Y_wait()-delay()-1; }
00195         int Y_wait() const {return y_wait;}
00199         int Y_last() const { return y_wait-(ex.forward+1+ex.before);}
00203         Strip getCurStrip() const
00204         {
00205             return Strip(Y_last(),Y_wait());
00206         }
00207  // end of StripBufferPositionInfoDoxGroup
00233 #ifdef DEBUG_SHOW_ALL_BUFFER
00234         const ImageRef<T>& getImg() const {return __ir; }
00235 #else
00236         const ImageRef<T>& getImg() const {return ir; }
00237 #endif
00238         ImageRef<T> getImg(const Extent& ex1,const Strip& strip) const
00239         {
00240             assert(getCurStrip().isContains(strip));
00241             int y_cent=strip.last()+ex1.before;
00242             int y_offset=y_cent-Y();
00243             return ImageRef<T>(getImg(),ex1,y_offset);
00244         } // end of StripBufferReadDataDoxGroup
00253         typedef T* Iter_Line;
00254         void InsertNextLineStart()
00255         {
00256 //          assert(is_WaitData());
00257             if( y_wait <= ex.forward )
00258             {
00259                 if( y_wait <= ex.before )
00260                 {
00261                     ptr_beg_ins=ptrLine0(y_wait);
00262                     //потом надо:
00263                     // 1) заполнить по итератору img_width пикселей
00264                     // 2) отразить края влево и вправо
00265                     // 3) скопировать (отразить) строку y_wait в строку -y_wait.
00266                 }
00267                 else
00268                 {
00269                     ptr_beg_ins=ptrLine0(y_wait);
00270                     //потом надо:
00271                     // 1) заполнить по итератору img_width пикселей
00272                     // 2) отразить края влево и вправо
00273                     // отражать строку не надо!!!
00274                 }
00275             }
00276             else
00277             {
00278                 if(ex.forward>0)
00279                     memmove(ptrLineStart(-ex.before),ptrLineStart(-ex.before+1),sizeof(T)*full_width*(ex.before+ex.forward));
00280                 ptr_beg_ins=ptrLine0(ex.forward);
00281                 //потом надо:
00282                 // 1) заполнить по итератору img_width пикселей
00283                 // 2) отразить края влево и вправо
00284             }
00285         }
00286         void InsertNextLineFinished()
00287         { // call next filters that data ready!
00288 //          assert(is_WaitData() && (ptr_beg_ins!=0) );
00289             //Если требуется - выполнить отражение последней введенной строки относительно левого и/или правого края изображения
00290             if(ex.left>0)
00291                 _hFlipLeft(begin_line_insert(),ex.left);
00292             if(ex.right>0)
00293                 _hFlipRight(end_line_insert(),ex.right);
00294             //
00295             if( y_wait <= ex.before )
00296             { // 3) скопировать (отразить) строку y_wait в строку -y_wait.
00297                 if(y_wait!=0)
00298                     _mirrorLineRelCenter(y_wait,-y_wait);
00299             }
00300             ptr_beg_ins=0;
00301             y_wait++;
00302         }
00303         void PopTail()
00304         {
00305 //          assert(!is_WaitData());
00306 //          assert(!is_EndData());
00307             int s=(y_wait-ims.height+1);
00308             int d=(ex.forward>ex.before)? s:ex.before;
00309             s=2*s;
00310             if(d>ex.forward || s >(2*ex.forward+1) )
00311             {
00312                 std::ostringstream os;
00313                 os << "StripBuffer::PopTail(): before= "<< ex.before << " forward=" <<ex.forward << " d = " << d << " s=" << s;
00314                 throw os.str();
00315             }
00316             memmove(ptrLineStart(-d),ptrLineStart(-d+1),sizeof(T)*full_width*(d+ex.forward));
00317 //          memmove(ptrLineStart(-ex.forward),ptrLineStart(-ex.forward+1),sizeof(T)*full_width*(ex.forward+ex.forward));
00318             memcpy(ptrLineStart(ex.forward),ptrLineStart(ex.forward-s),sizeof(T)*full_width);
00319             ++y_wait;
00320         }
00321         Iter_Line begin_line_insert() { return ptr_beg_ins; }
00322         Iter_Line   end_line_insert() { return ptr_beg_ins+ims.width; }
00323     private:
00328         T* ptr_beg_ins;
00329         void _hFlipLeft(Iter_Line it,int len)
00330         {
00331                 Iter_Line r=it;
00332                 while(len--)
00333                     *--it=*++r;
00334         }
00335         void _hFlipRight(Iter_Line it,int len)
00336         {
00337                 Iter_Line r=it--;
00338                 while(len--)
00339                     *r++=*--it;
00340         }
00341         void _mirrorLineRelCenter(int src_y,int dst_y)
00342         {
00343             if(src_y==dst_y)
00344                 return;
00345             T* s=ptrLineStart(src_y);
00346             T* d=ptrLineStart(dst_y);
00347             ::memcpy(d,s,sizeof(T)*full_width);
00348         } // end of StripBufferInsertDoxGroup
00350     }; // end of PortsAndBuffersDoxGroup  Порты и буфферы.
00352 } //namespace Plf
00353 } //namespace Vtl
00354 #endif //_PLF_STRIP_BUFFER_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл plf_strip_buffer_support.h

  • Файлы
  • Список членов всех файлов

plf_strip_buffer_support.h

См. документацию.
00001 #ifndef _PLF_STRIP_BUFFER_SUPPORT_H
00002 #define _PLF_STRIP_BUFFER_SUPPORT_H
00004 #include <sstream>
00005 #include <algorithm>
00006 #include <list>
00007 namespace Vtl
00008 {
00009 // @brief  находится в файле plf_filters.h, здесь не описывается
00010 namespace Plf
00011 { // end of PipeLineFiltersDoxGroup
00020
00021
00022
00023
00024
00025
00026     struct ImgSize
00027     {
00028         int width;//> Ширина изображения
00029         int height;//> Высота изображения
00030         ImgSize() : width(0),height(0) {}
00031         ImgSize(int w,int h): width(w),height(h) {}
00033         bool operator!=(const ImgSize& is)
00034         {
00035             return (width!=is.width) || (height!=is.height);
00036         }
00038         bool operator==(const ImgSize& is)
00039         {
00040             return !((*this)!=is);
00041         }
00043         friend std::ostream& operator<<(std::ostream& out,const ImgSize& is)
00044         {
00045             return out<< "(W=" << is.width << ",H=" <<is.height<<")";
00046         }
00047     };
00059     struct Extent
00060     {
00061         int left; //> На сколько элементов данных должна быть реальная строка изображения быть дополнена влево
00062         int right;//> На сколько элементов данных должна быть реальная строка изображения быть дополнена вправо
00063         int before;//>Сколько строк кроме текущей надо знать из уже подававшихся ранее
00064         int forward;//> Сколько строк изображения надо знать вперед по отношению к текущей
00069         Extent(int _left,int _right,int _before,int _forward) : left(_left),right(_right),before(_before),forward(_forward) {}
00071         explicit Extent(int radius=0) : left(radius),right(radius),before(radius),forward(radius) {}
00072         Extent& max(const Extent& e)
00073         {
00074             left=std::max(left,e.left);
00075             right=std::max(right,e.right);
00076             before=std::max(before,e.before);
00077             forward=std::max(forward,e.forward);
00078             return *this;
00079         }
00080         void checkCompatible(const ImgSize& is) const
00081         {
00082             check(left,is.width,"left","width");
00083             check(right,is.width,"right","width");
00084             check(before,is.height,"before","height");
00085             check(forward,is.height,"forward","height");
00086         }
00087     private:
00088         static void check(int ex_param,int im_param,const char* ex_name,const char* im_name)
00089         {
00090             std::ostringstream os;
00091             if(ex_param<0)
00092             {
00093                 os<< "Negative image Extent: " << ex_name << "=" << ex_param;
00094                 throw os.str();
00095             }
00096             if(im_param<=0)
00097             {
00098                 os<< "Negative or zero image dimension: " << im_name << "=" << im_param;
00099                 throw os.str();
00100             }
00101             if(im_param<=ex_param)
00102             {
00103                 os<< "Requested Extent '" << ex_name << "'=" << ex_param
00104                     << " is greater or equal than image param '"
00105                     << im_name << "'=" << im_param
00106                     << ", no sufficient data to reflect! ";
00107                 throw os.str();
00108             }
00109         }
00110     };
00118     template<typename T>
00119     class ImageRef
00120     {
00121         T*     _data;
00122         int    _width;
00123         int    _nls;
00124         Extent _ex;
00125     public:
00126         typedef T Pixel;
00127     private:
00128         static void check(int a,int b,const char* name)
00129         {
00130             std::ostringstream os;
00131             if(a<0)
00132             {
00133                 os<< "Negative image Extent: " << name;
00134                 throw os.str();
00135             }
00136             if(b<0)
00137             {
00138                 os<< "Negative new image Extent: " << name;
00139                 throw os.str();
00140             }
00141             if(a<b)
00142             {
00143                 os<< "Requested new image Extent: '" << name << "' is larger than original";
00144                 throw os.str();
00145             }
00146         }
00147     public:
00148         ImageRef()
00149             :_data(0),_width(0),_nls(0),_ex()
00150         {}
00151         ImageRef(T* data_ptr,int width,int next_line_shift,Extent ex)
00152             :_data(data_ptr),_width(width),_nls(next_line_shift),_ex(ex)
00153         {
00154         }
00155         ImageRef(const ImageRef& ir,const Extent& new_ext,int y_offset)
00156         {
00157             check(ir._ex.left,new_ext.left,"left");
00158             check(ir._ex.right,new_ext.right,"right");
00159             check(ir._ex.before,new_ext.before,"before");
00160             check(ir._ex.forward,new_ext.forward,"forward");
00161             _data=ir._data+y_offset*ir._nls;
00162             _width=ir._width;
00163             _nls=ir._nls;
00164             _ex=new_ext;
00165         }
00166         int nls() const {return _nls;}
00167         int w() const {return _width;}
00168         int h() const {return _ex.before,+1+_ex.forward;}
00169         const Extent& ext() const {return _ex;}
00170         const T* operator[](int y)  const {return _data+_nls*y;}
00171     };
00184     class Strip
00185     {
00186         int y_last;
00187         int y_wait;
00188     public:
00189         Strip(): y_wait(-1),y_last(0) {}
00190         Strip(int y_start,int y_after_end): y_wait(y_after_end),y_last(y_start) {}
00191         Strip(int y_current,Extent ext): y_wait(y_current-ext.before),y_last(y_current+ext.forward) {}
00192         Strip(const Strip& s): y_wait(s.y_wait),y_last(s.y_last) {}
00193         Strip& operator=(const Strip& s) { y_wait=s.y_wait; y_last=s.y_last; return *this;}
00195         bool isEmpty() const {return y_last>y_wait; }
00196         int last() const {return y_last;}
00197 //
00198         Strip& operator++() { ++y_wait;++y_last; return *this;}
00199         Strip& operator+=(int delta) { y_wait+=delta;y_last+=delta; return *this;}
00200         Strip& operator|=(const Strip& s) { y_last=std::min(y_last,s.y_last); y_wait=std::max(y_wait,s.y_wait); return *this;}
00201         friend static Strip operator|(const Strip& s1,const Strip& s2) { Strip s(s1); s|=s2; return s;}
00203         bool isContains(const Strip& s) const {return ( y_last <= s.y_last ) && ( s.y_wait <= y_wait ); }
00205         bool isContains(int y) const {return ( y_last <= y ) && ( y <= y_wait ); }
00207         bool isIn(const Strip& s) const {return s.isContains(*this); }
00210         bool canMove(const Strip& s) const
00211         {
00212             //Strip next(*this);
00213             //++next;
00214             //return next.isContains(s);
00215             return y_last < s.y_last;
00216         }
00217     };
00224     template<class T>
00225     class Fifo
00226     {
00227         std::list<T> lst;
00228     public:
00229         Fifo() {}
00230         ~Fifo() {}
00231         bool empty() const { return lst.size()==0;}
00232         void put(T x)
00233         {
00234             lst.push_back(x);
00235         }
00236         T get()
00237         {
00238             assert(!lst.empty());
00239             T x=*(lst.begin());
00240             lst.pop_front();
00241             return x;
00242         }
00243     }; // end of PortsAndBuffersDoxGroup  Порты и буфферы.
00245 } //namespace Plf
00246 } //namespace Vtl
00248 #endif //_PLF_STRIP_BUFFER_SUPPORT_H


Pipe Line Filters: Исходный файл plf_sys.h

  • Файлы
  • Список членов всех файлов

plf_sys.h

См. документацию.
00001 #ifndef _PLF_SYS_H
00002 #define _PLF_SYS_H
00004 #include <iostream>
00005 #include <fstream>
00006 #include "ytypes.h"
00007 #include "plf_filters.h"
00008 #include "datastring.h"
00009 #include "yfilesys.h"
00011 namespace Vtl
00012 {
00013 // @brief  находится в файле plf_filters.h, здесь не описывается
00014 namespace Plf
00015 {
00024 namespace Impl
00025 {
00027     // struct Edge
00034     struct Edge
00035     {
00036         int id_of;
00037         int id_outp;
00038         int id_if;
00039         int id_inp;
00040         int id_edge;
00041     };
00043     // struct Node
00047     struct Node
00048     {
00049         enum Role
00050         {
00051             Source,
00052             Target,
00053             Transformer
00054         };
00055         Vtl::Plf::FilterElementary* fil;
00056         int id;
00057         int n_in;
00058         int n_out;
00059         int n_oto; //К какому числу входов (сумма) подсоединены n_out выходов.
00060         Role role;
00061         int rank;
00062         std::list<int> Adj;
00063         std::list<int> AdjPrev;
00064         std::list<int> Adj_Next;
00065         std::list<int> Adj_Prev;
00066         std::vector<int> extra_delay;
00067         //----------------------
00068         Node() {fil=0;n_in=0;n_out=0;n_oto=0;}
00069         Node(FilterElementary* filter,int id)
00070         {
00071             this->id=id;
00072             fil=filter;
00073             fil->id=id;
00074             n_in=fil->NumInputs();
00075             n_out=fil->NumOutputs();
00076             if(n_in==0 && n_out==0)
00077             {
00078                 std::ostringstream os;
00079                 os << "Filter '" << fil->Name() << "' has NO inputs NO outputs";
00080                 throw os.str();
00081             }
00082             n_oto=0;
00083             for(int i=0; i<n_out; ++i)
00084             {
00085                 n_oto+=fil->getOutPort(i)->NumConnectedTo();
00086             }
00087             if(n_in==0)
00088                 role=Source;
00089             else if(n_out==0)
00090                 role=Target;
00091             else
00092                 role=Transformer;
00093             rank=-1;
00094         }
00095         void buildAdj(const std::vector<Node> & graph,std::vector<Edge>& edges)
00096         {
00097             Adj.clear();
00098             AdjPrev.clear();
00099             Adj_Next.clear();
00100             Adj_Prev.clear();
00101             Fifo<Vtl::Plf::FilterElementary*> Q;
00102             for(int i=0; i<fil->NumOutputs(); ++i)
00103             {
00104                 //Adj.merge(fil->getOutPort(i)->getConnectedToIds());
00105                 fil->getOutPort(i)->putConnectionsInQueue(Q);
00106                 while(!Q.empty())
00107                 {
00108                     FilterElementary *f=Q.get();
00109                     Edge e;
00110                     e.id_of=fil->id;
00111                     e.id_if=f->id;
00112                     e.id_outp=i;
00113                     for(int j=0; j<f->NumInputs(); ++j)
00114                         if(fil==f->getInPort(j)->BaseConnectedTo()->getFilter())
00115                         {
00116                             e.id_inp=j;
00117                             break;
00118                         }
00119                     int id_edge=edges.size();
00120                     e.id_edge=id_edge;
00121                     edges.push_back(e);
00122                     Adj.push_back(id_edge);
00123                 }
00124             }
00125             for(std::list<int>::const_iterator it=Adj.begin(); it!=Adj.end(); ++it)
00126             {
00127                 int id_edge=*it;
00128                 int id_if=edges[id_edge].id_if;
00129                 if(Adj_Next.end()==std::find(Adj_Next.begin(),Adj_Next.end(),id_if))
00130                     Adj_Next.push_back(id_if);
00131             }
00132             for(int j=0; j<fil->NumInputs(); ++j)
00133             {
00134                 OutPortBase* outp=fil->getInPort(j)->BaseConnectedTo();
00135                 int id_prev=outp->getFilter()->id;
00136                 //так как граф топологически отсортирован, то эта нода уже построена
00137                 for(std::list<int>::const_iterator it=graph[id_prev].Adj.begin(); it!=graph[id_prev].Adj.end(); ++it)
00138                 {
00139                     int i=*it;
00140                     Edge e=edges[i];
00141                     if(e.id_if == id)
00142                     AdjPrev.push_back(i);
00143                 }
00144             }
00145             for(std::list<int>::const_iterator it=AdjPrev.begin(); it!=AdjPrev.end(); ++it)
00146             {
00147                 int id_of=edges[(*it)].id_of;
00148                 if(Adj_Prev.end()==std::find(Adj_Prev.begin(),Adj_Prev.end(),id_of))
00149                     Adj_Prev.push_back(id_of);
00150             }
00151         }
00152     };
00154     // class GraphBuilder
00161     class GraphBuilder
00162     {
00163         std::vector<Node> & graph;
00164         std::vector<Edge> & edges;
00165         std::list<Node> src;
00166         std::list<Node> sorted;
00167         std::list<Node> dst;
00168         int id;
00169         std::ostringstream os_back;
00170     public:
00171         std::string BackEdges()
00172         {
00173             return os_back.str();
00174         }
00175         GraphBuilder(std::vector<Node> & _graph,std::vector<Impl::Edge>& _edges) :graph(_graph),edges(_edges) {}
00176         template<typename IterSrc> void build(IterSrc begin,IterSrc end)
00177         {
00178             id=0;
00179             graph.resize(0);
00180             //DFS + topologicallySort
00181             for(;begin!=end ;++begin)
00182                 DFS_Visit(*begin);
00183
00184             fillTopologicallySortedVector();
00185         }
00186         void build(FilterElementary * begin,FilterElementary * end)
00187         {
00188             id=0;
00189             graph.resize(0);
00190             //DFS + topologicallySort
00191             for(;begin!=end ;++begin)
00192                 DFS_Visit(begin);
00193             fillTopologicallySortedVector();
00194         }
00195         template<typename Iter> FilterElementary * checkInGraph(Iter begin,Iter end)
00196         {
00197             for(;begin!=end ;++begin)
00198             {
00199                 if(isWhite(*begin))
00200                     return *begin;
00201             }
00202             return 0;
00203         }
00204         template<typename Iter> FilterElementary * checkInGraph(Iter* begin,Iter* end)
00205         {
00206             for(;begin!=end ;++begin)
00207             {
00208                 if(isWhite(begin))
00209                     return begin;
00210             }
00211             return 0;
00212         }
00213         void findParentNotInGraph()
00214         {
00215             for(size_t i=0; i<graph.size() ; ++i)
00216             {
00217                 FilterElementary * f=graph[i].fil;
00218                 for(int i=0; i< f->NumInputs(); ++i)
00219                 {
00220                     FilterElementary * parent=f->getInPort(i)->BaseConnectedTo()->getFilter();
00221                     if(isWhite(parent))
00222                     {
00223                         std::ostringstream os;
00224                         os  << "Filter \"" << parent->Name()
00225                             << "\" is parent to filter \"" << f->Name()
00226                             << "\" but not distinguishable from directed sources. Check your code!";
00227                         throw os.str();
00228                     }
00229                 }
00230             }
00231         }
00232     private:
00233         void fillTopologicallySortedVector()
00234         {
00235             int n=0;
00236             for(std::list<Node>::iterator it=src.begin(); it!=src.end(); it++ )
00237             {
00238                 Node node=*it;
00239                 node.id=n;
00240                 node.fil->id=n;
00241                 graph[n++]=node;
00242             }
00243             for(std::list<Node>::iterator it=sorted.begin(); it!=sorted.end(); it++ )
00244             {
00245                 Node node=*it;
00246                 node.id=n;
00247                 node.fil->id=n;
00248                 graph[n++]=node;
00249             }
00250             for(std::list<Node>::iterator it=dst.begin(); it!=dst.end(); it++ )
00251             {
00252                 Node node=*it;
00253                 node.id=n;
00254                 node.fil->id=n;
00255                 graph[n++]=node;
00256             }
00257             edges.resize(0);
00258             for(size_t i=0; i<graph.size() ; ++i)
00259                 graph[i].buildAdj(graph,edges);
00260         }
00262         bool isWhite(FilterElementary * filter)
00263         {
00264             if(0<= filter->id && filter->id < int(graph.size()) )
00265                 if(graph[filter->id].fil == filter)
00266                     return false;//Уже была пройдена как минимум один раз и помещена в граф.
00267             return true;
00268         }
00271         bool isGray(FilterElementary * filter)
00272         {
00273             return graph[filter->id].rank==-1;
00274         }
00279         void DFS_Visit(FilterElementary * filter)
00280         {
00281             std::list<Vtl::Plf::FilterElementary *> Q;
00282             //Сделать серой (в данном варианте поместить в graph[]),
00283             // id играет роль переменной time из Кормен стр.447
00284             // Node.id и filter.id - роль d[u]
00285             graph.push_back(Node(filter,id++));
00286             // Для всех смежных вершин обработать ребро.
00287             // Собрать все смежные вершины
00288             for(int i=0; i<filter->NumOutputs(); i++)
00289             {
00290                 OutPortBase* o=filter->getOutPort(i);
00291                 o->putConnectionsInQueue(Q);
00292             }
00293             // Так как это мультиграф, то могут быть несколько ребер от этого узла
00294             // к какому либо соседу, надо обрабатывать только одно,
00295             // чтобы это был граф и все теоремы верны.
00296             // Убрать дубликаты:
00297             for(std::list<Vtl::Plf::FilterElementary *>::iterator it=Q.begin(); it!=Q.end(); ++it)
00298             {
00299                 std::list<Vtl::Plf::FilterElementary *>::iterator it2=it;
00300                 ++it2; //следующий элемент за it
00301                 while( it2!=Q.end())
00302                 {
00303                     //сохранить текущий итератор и инкрементировать итератор-переменную цикла
00304                     std::list<Vtl::Plf::FilterElementary *>::iterator it3=it2++;
00305                     if(*it==*it3)
00306                         Q.erase(it3); //удалить элемент, it3 стал невалидным он и только он (С++ Standard ISO/IEC 14882 p.477)
00307                 }
00308             }
00309             //теперь в Q нет дубликатов и граф простой
00310             for(std::list<Vtl::Plf::FilterElementary *>::iterator it=Q.begin(); it!=Q.end(); ++it)
00311             {
00312                 if(isWhite(*it))
00313                     DFS_Visit(*it);
00314                 else if(isGray(*it))
00315                 {
00316                     //std::ostringstream os_back;
00317                     os_back << "Back edge found: from filter \"" << filter->Name()
00318                         << "\" to filter \"" << (*it)->Name() << "\". Check your code!"
00319                         << std::endl;
00320                     //throw os_back.str();
00321                 }
00322             }
00323             //Вершина обработана, делаем ее черной
00324             graph[filter->id].rank=0;
00325             if(graph[filter->id].role==Node::Transformer)
00326                 sorted.push_front(graph[filter->id]);
00327             else if(graph[filter->id].role==Node::Target)
00328                 dst.push_front(graph[filter->id]);
00329             else // Node::Source
00330                 src.push_front(graph[filter->id]);
00331         }
00332     };
00333     class DelayAdjuster
00334     {
00335         std::vector<Node> & graph;
00336         const std::vector<Edge> & edges;
00337     public:
00338         std::vector<int> d;
00339         std::vector<int> b;
00340     public:
00343         DelayAdjuster(std::vector<Node>& graph_,const std::vector<Edge> & edges_)
00344             : graph(graph_),edges(edges_)
00345         {
00346         }
00347         void Run()
00348         {
00349             //process in topologically sorted order
00351             d.assign(graph.size(),0);
00352             b.assign(edges.size(),0);
00353             for(size_t i=0; i<graph.size(); ++i)
00354             {
00355                 if(graph[i].role == Node::Source)
00356                 {
00357                     d[i]=0;
00358                 }
00359                 else
00360                 {
00361                     for(std::list<int>::const_iterator it=graph[i].AdjPrev.begin(); it!=graph[i].AdjPrev.end(); ++it)
00362                     {
00363                         const int id_edge= *it;
00364                         const Edge& e=edges[id_edge];
00365                         assert(e.id_if==i);
00366                         int dd=d[e.id_of]+w(e.id_if,e.id_inp);
00367                         dd=std::max(d[i],dd);
00368                         d[i]=dd;
00369                     }
00370                     for(std::list<int>::const_iterator it=graph[i].AdjPrev.begin(); it!=graph[i].AdjPrev.end(); ++it)
00371                     {
00372                         const int id_edge= *it;
00373                         const Edge& e=edges[id_edge];
00374                         int delta=d[i];
00375                         delta=delta-(d[e.id_of]+w(e.id_if,e.id_inp));
00376                         b[id_edge]=delta;
00377                     }
00378                 }
00379             }
00380 /*
00381             for(int i=0; i<int(graph.size()); ++i)
00382             {
00383                 printf("d[%d]=%d\n",i,int(d[i]));
00384             }
00385 */
00386             //--Eat delays already in buffer
00387 //          printf("Eat delays already in buffer\n");
00388             std::vector<Extent> ext_fin;
00389             std::vector<int32_t> min_delay;
00390             for(size_t i=0; i<graph.size(); ++i)
00391             {//for each node
00392                 Impl::Node & n=graph[i];
00393
00394                 //n.extra_delay.assign(n.n_out,0);
00395                 min_delay.assign(n.n_out,INT32_MAX);
00396                 ext_fin.assign(n.n_out,Extent(0));
00397
00398 //              printf("Filter id=%d \n",i);
00399                 for(std::list<int>::const_iterator it=n.Adj.begin(); it!=n.Adj.end(); ++it)
00400                 {
00401                     const int id_edge= *it;
00402                     const Edge& e=edges[id_edge];
00403                     assert(e.id_of==i);
00404                     assert(e.id_outp<n.n_out);
00405                     int32_t del=b[e.id_edge];
00406                     Extent ex=graph[e.id_if].fil->getInPort(e.id_inp)->ext();
00407                     ex.forward+=b[id_edge];
00408                     ext_fin[e.id_outp]=ex.max(ext_fin[e.id_outp]);
00409                     min_delay[e.id_outp]=std::min(min_delay[e.id_outp],del);
00410
00411                 }
00412                 for(int j=0; j<n.n_out; ++j)
00413                 {
00414                     Extent ext=ext_fin[j];
00415 /*
00416                     printf("OutPort=%d, Ext(%3d,%3d,%3d,%3d)\n",j
00417                     ,ext.left
00418                     ,ext.right
00419                     ,ext.before
00420                     ,ext.forward
00421                     );
00422 */
00423                     n.fil->getOutPort(j)->init_buffer(ext);
00424                 }
00425 //              Vtl::Plf::OutPortBase* o=n.fil->getOutPort(e.id_outp);
00426 //              Extent ext=o->calcRequiredExtent();
00427
00428             }
00429
00430
00431             //--Разделить задержку на 2 части:
00432             //  1) разбег, надо увеличивать буфер
00433             //  2) общая часть, можно протолкнуть назад.
00434         }
00435     private:
00436         int w(int id_fil,int id_port)
00437         {
00438             return graph[id_fil].fil->getInPort(id_port)->ext().forward;
00439         }
00440     };
00441 }//namespace Impl
00443     // class FiltersSystem
00449     class FiltersSystem
00450     {
00451         std::vector<Impl::Node> graph;
00452         std::vector<Impl::Edge> edges;
00453         std::vector<int> sources;
00454         std::vector<int> multi_inputs;
00455         std::vector<int> multi_connected_to;
00456         std::vector<int> targets;
00457         std::string fname_dot;
00458     private:
00459         template<typename IterSrc> void _fillVec(std::vector<std::pair<FilterElementary *,bool> >& vec,IterSrc begin,IterSrc end)
00460         {
00461             for(;begin!=end ;++begin)
00462                 vec.push_back(std::pair<FilterElementary *,bool>(*begin,false));
00463         }
00464         template<typename IterSrc> void _fillVec(std::vector<std::pair<FilterElementary *,bool> >& vec,IterSrc* begin,IterSrc* end)
00465         {
00466             for(;begin!=end ;++begin)
00467                 vec.push_back(std::pair<FilterElementary *,bool>(begin,false));
00468         }
00469     public:
00470         virtual ~FiltersSystem() {}
00471         FiltersSystem(const char* dot_file_name=0)
00472             : fname_dot(dot_file_name?dot_file_name:"")
00473         {
00474         }
00475         FiltersSystem(std::string dot_file_name)
00476             : fname_dot(dot_file_name)
00477         {
00478         }
00479         void set_DotFName(std::string dot_file_name){ fname_dot=dot_file_name;}
00480         void set_DotFName(const char* dot_file_name=0) {fname_dot=dot_file_name?dot_file_name:"";}
00481         std::string get_DotFName() {return fname_dot;}
00482         //---------------------------------------------------------------
00483         template<typename IterSrc>
00484             void Assign(IterSrc src_begin,IterSrc src_end,FilterElementary * dst)
00485         {
00486             Assign(src_begin,src_end,dst,dst+1);
00487         }
00488         template<typename IterDst>
00489             void Assign(FilterElementary * src,IterDst dst_begin,IterDst dst_end)
00490         {
00491             Assign(src,src+1,dst_begin,dst_end);
00492         }
00493         void Assign(FilterElementary * src,FilterElementary * dst)
00494         {
00495             Assign(src,src+1,dst,dst+1);
00496         }
00497         template<typename IterSrc,typename IterDst>
00498             void Assign(IterSrc src_begin,IterSrc src_end,IterDst dst_begin,IterDst dst_end)
00499         {
00500             Impl::GraphBuilder gb(graph,edges);
00501             gb.build(src_begin,src_end );
00502             if(fname_dot.length()!=0)
00503                 SaveGraphAsDot(fname_dot.c_str());
00504             //Сообщить об обратных ребрах
00505             if(gb.BackEdges().length()>0)
00506             {
00507                 throw gb.BackEdges();
00508             }
00509             //Проверить все ли Targets достижимы из источников
00510             FilterElementary * f=gb.checkInGraph(dst_begin,dst_end);
00511             if(f)
00512             {
00513                 std::ostringstream os;
00514                 os  << "Target filter \"" << f->Name()
00515                     << "\" is not distinguishable from directed sources. Check your code!";
00516                 throw os.str();
00517             }
00518             //проверить все ли родители входят в граф, в.т.ч. висячие входы
00519             gb.findParentNotInGraph();
00520             //Заполнить массивы std::vector<int> sources,multi_inputs,targets;
00521             findSourcesTargetsAndJunctions();
00522         //===== теперь граф построен, вроде бы нессобразностей нет ===============
00523             propagateImageSize();
00524             //Adjust StripBuffer's Extents
00525             init_buffersExtents();
00526         //Adjust dalays
00527             Impl::DelayAdjuster da(graph,edges);
00528             da.Run();
00529             {
00530                 EdgeLabel_DelayB el_b(da.b);
00531                 std::string fn=YFileSys::getNameWithoutExt(fname_dot)+"_b.dot";
00532                 _SaveGraphAsDot(fn.c_str(),el_b);
00533             }
00534
00535             //===== все настроено, собственно можно захватывать ресурсы и работать ===
00536
00537
00538             InitStripBuffers(); //- делается теперь в DelayAdjuster
00539         }
00540         //---------------------------------------------------------------
00541         void show_lists()
00542         {
00543 #if 0
00544             for(size_t i=0; i<graph.size(); ++i)
00545             {
00546                 Impl::Node n=graph[i];
00547                 printf("Filter id=%d  name=%s\n",n.id,n.fil->Name().c_str());
00548                 printf("Adj_Next: ");
00549                 for(std::list<int>::iterator it=n.Adj_Next.begin(); it!=n.Adj_Next.end(); ++it)
00550                 {
00551                     int id=*it;
00552                     printf("%d, ",id);
00553                 }
00554                 printf("\n");
00555                 printf("Adj_Prev: ");
00556                 for(std::list<int>::iterator it=n.Adj_Prev.begin(); it!=n.Adj_Prev.end(); ++it)
00557                 {
00558                     int id=*it;
00559                     printf("%d, ",id);
00560                 }
00561                 printf("\n");
00562                 printf("Adj: (Edge.id,Edge.id_inp,Edge.id_outp) : ");
00563                 for(std::list<int>::const_iterator it=n.Adj.begin(); it!=n.Adj.end(); ++it)
00564                 {
00565                     Impl::Edge e=edges[*it];
00566                     printf("(%d,%d,%d,%d) ",e.id_if,e.id_inp,e.id_of,e.id_outp);
00567                 }
00568                 printf("\n");
00569             }
00570 #endif
00571         }
00572         //---------------------------------------------------------------
00573         void Run(ProgressCounter* indicator=0,const char* name="")
00574         {
00575             //Находим приемник с изображением максимальной высоты:
00576             int dst_max_haight=0;
00577             int id_dst_max=-1;
00578             int id_dst_max_inp=-1;
00579             for(size_t i=0; i<targets.size(); ++i)
00580             {
00581                 int n=graph[targets[i]].fil->NumInputs();
00582                 for(int j=0; j<n; j++)
00583                 {
00584                     int d=graph[targets[i]].fil->getInPort(j)->getImageSize().height;
00585                     if(d>dst_max_haight)
00586                     {
00587                         dst_max_haight=d;
00588                         id_dst_max=graph[targets[i]].id;
00589                         id_dst_max_inp=j;
00590                     }
00591                 }
00592             }
00593             if(indicator)
00594             {
00595                 indicator->start(name,0,dst_max_haight);
00596             }
00597             int y=0;
00598             Fifo<int> Q;
00599             //Источники всегда готовы, поэтому начинаем проталкивать данные с них.
00600             for(size_t i=0; i<sources.size(); ++i)
00601                 graph[sources[i]].fil->put_in_queue(Q);
00602             //Цикл, пока есть что обрабатывать
00603             while(!Q.empty())
00604             {
00605                 int id=Q.get();
00606                 graph[id].fil->do_1_step();
00607                 if(id==id_dst_max)
00608                 {
00609                     if(indicator)
00610                     {
00611                         indicator->current(graph[id].fil->getInPort(id_dst_max_inp)->Y());
00612                     }
00613                 }
00614
00615 //              printf("y=%d,  id=%d\n",y++,id);
00616                 // проверить не готов ли какой либо из последующих фильтров,
00617                 // если да - поставить в очередь на обработку.
00618                 for(std::list<int>::iterator it=graph[id].Adj_Next.begin(); it!=graph[id].Adj_Next.end(); ++it)
00619                 {
00620                     int id_next=*it;
00621                     graph[id_next].fil->TryPutInQueue(Q);
00622                 }
00623                 // проверить не готов ли какой либо из ПРЕДШЕСТВУЮЩИХ фильтров,
00624                 // если да - поставить в очередь на обработку.
00625                 // Если предыдущий фильтр содержит готовые данные в конце буфера
00626                 // (последние строки изображения) - если надо вытолкнуть их требуемую порцию.
00627                 // Если он закончил - то не имеет смысла проверять могут ли входы дать ему
00628                 // еще что-то, все равно не требуется.
00629                 if(!graph[id].fil->isFinished())
00630                 {
00631                     for(std::list<int>::iterator it=graph[id].Adj_Prev.begin(); it!=graph[id].Adj_Prev.end(); ++it)
00632                     {
00633                         int id_prev=*it;
00634                         graph[id_prev].fil->TryPutInQueue(Q);
00635                     }
00636                 }
00637                 // Не стал ли готов он сам?
00638                 // Проверка всегда, после того как фильтр отработал и
00639                 // просмотрены входы и выходы т.к. фильтр может быть неготов как
00640                 // по входам так и по выходам.
00641                 graph[id].fil->TryPutInQueue(Q);
00642             }
00643             if(indicator)
00644             {
00645                 indicator->finish();
00646             }
00647             show_lists();
00648         }
00649         //---------------------------------------------------------------
00650         void SaveGraphAsDot(const char* fname) const
00651         {
00652             SaveGraphAsDot(std::string(fname));
00653         }
00654         void SaveGraphAsDot(std::string fname) const
00655         {
00656             EdgeLabel_Unknown el;
00657             _SaveGraphAsDot(fname,el);
00658         }
00659         void SaveGraphAsDot(std::ostream& os) const
00660         {
00661             EdgeLabel_Unknown el;
00662             _SaveGraphAsDot(os,el);
00663         }
00664         template<class E>
00665         void _SaveGraphAsDot(std::string fname,E& efunc) const
00666         {
00667             std::ofstream os;
00668             os.open(fname.c_str(),std::ios_base::out | std::ios_base::trunc );
00669             _SaveGraphAsDot(os,efunc);
00670             os.flush();
00671             os.close();
00672         }
00673         template<class E>
00674         void _SaveGraphAsDot(std::ostream& os,E& efunc) const
00675         {
00676             const char* fillcolor="\"#FCDDB4\"";
00677             const char* fillcolor_src="\"#CBFCB4\"";
00678             const char* fillcolor_dst="\"#FCB4B4\"";
00679             os << "digraph " << "test123" << " {" << std::endl;
00680             os << "   node [fontname=Helvetica, fontsize=12];"<< std::endl;
00681             os << "   edge [style=\"solid\", color=\"black\" ,arrowhead=\"open\"];"<< std::endl;
00682             {
00683                 for(size_t i=0; i<graph.size(); i++)
00684                 {
00685                     os  << "   node" << i
00686                         << " [label=\""<< graph[i].fil->Name() << " \\n(" << graph[i].id <<")" <<"\""
00687                         << ", shape=" << ((graph[i].role==Impl::Node::Transformer)?"record":"oval")
00688                         << ", color=" << "black"
00689 //                      << ", color=" << ((graph[i].role==Node::Source)? "green":(graph[i].role==Node::Target)?"red":"black")
00690                         << ", fillcolor=" << ((graph[i].role==Impl::Node::Source)? fillcolor_src:(graph[i].role==Impl::Node::Target)?fillcolor_dst:fillcolor)
00691                         << ", fontcolor=black"
00692                         << ", style=filled"
00693                         << "];" << std::endl;
00694                 }
00695                 for(size_t i=0; i<graph.size(); i++)
00696                 {
00697                     for(std::list<int>::const_iterator it=graph[i].Adj.begin(); it!=graph[i].Adj.end(); ++it)
00698                     {
00699                         const Impl::Edge& e=edges[*it];
00700                         //int v=(*it).id;
00701                         os  << "   node" << i << "-> " << "node" << e.id_if
00702                             << " [label=\""<< efunc(e) <<"\""
00703                             << " taillabel=\"" << e.id_outp <<"\""
00704                             << " headlabel=\"" << e.id_inp  <<"\""
00705                             << "];"
00706                             << std::endl;
00707                     }
00708                 }
00709             }
00710             os << "}" << std::endl;
00711         }
00712         struct EdgeLabel_Unknown
00713         {
00714             EdgeLabel_Unknown() {}
00715             std::string operator()(const Impl::Edge& e) {return "a";}
00716         };
00717         class EdgeLabel_DelayB
00718         {
00719             const std::vector<int>& b;
00720         public:
00721             EdgeLabel_DelayB(const std::vector<int>& b_) : b(b_) {}
00722             std::string operator()(const Impl::Edge& e) {return std::string("b=")+DataString(b[e.id_edge]);}
00723         };
00724
00725     private:
00726         void printList(std::string name,const std::vector<int>& lst) const
00727         {
00728
00729             std::cout << "===="<< name << "===="<< std::endl;
00730             for(size_t i=0; i<lst.size(); ++i)
00731             {
00732                 std::cout << graph[lst[i]].fil->Name() << " " << graph[lst[i]].id << std::endl;;
00733             }
00734             std::cout << "========"<< std::endl;;
00735         }
00736         //---------------------------------------------------------------
00737         void findSourcesTargetsAndJunctions()
00738         {
00739             sources.resize(0);
00740             multi_inputs.resize(0);
00741             multi_connected_to.resize(0);
00742             targets.resize(0);
00743             for(size_t i=0; i<graph.size(); i++)
00744             {// Должно всегда быть graph[i].id == i
00745                 if(graph[i].role==Impl::Node::Source)
00746                     sources.push_back(graph[i].id);
00747                 else if(graph[i].role==Impl::Node::Target)
00748                     targets.push_back(graph[i].id);
00749                 if(graph[i].fil->NumInputs()>1) // It may be target too !!!
00750                     multi_inputs.push_back(graph[i].id);
00751                 if(graph[i].n_oto>1) // It may be target too !!!
00752                     multi_connected_to.push_back(graph[i].id);
00753             }
00754             //printList("sources",sources);
00755             //printList("targets",targets);
00756             //printList("multi_inputs",multi_inputs);
00757             //printList("multi_connected_to",multi_connected_to);
00758         }
00759
00760         void propagateImageSize()
00761         {
00762             for(size_t i=0; i<graph.size() ; ++i)
00763             {
00764                 //graph[i].fil->set_buffersImgSize();
00765                 graph[i].fil->set_OutPortsImagesSizeAndInPortsExtents();
00766             }
00767         }
00768         void init_buffersExtents()
00769         {
00770             for(size_t i=0; i<graph.size() ; ++i)
00771             {
00772                 graph[i].fil->init_OutPortsExtents();
00773             }
00774         }
00775         void InitStripBuffers()
00776         {
00777             for(size_t i=0; i<graph.size(); ++i)
00778             {
00779                 Vtl::Plf::FilterElementary * filter=graph[i].fil;
00780                 filter->init_buffers();
00781             }
00782         }
00783
00784     }; // end of PipeLineFiltersDoxGroup
00786 } //namespace Plf
00787 } //namespace Vtl
00789 #endif //_PLF_SYS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл plt_filter_image.h

  • Файлы
  • Список членов всех файлов

plt_filter_image.h

См. документацию.
00001 #ifndef _PLF_FILTER_IMAGES_H
00002 #define _PLF_FILTER_IMAGES_H
00004 #include <algorithm>
00005
00006 #include "plf_kernels_1d.h"
00007
00008 #include "plf_filter_elem.h"
00009 #include "plf_io_filter.h"
00010 #include "plf_iterators.h"
00011 #include "plf_gistogram.h"
00012
00013 namespace Vtl
00014 {
00015 // @brief  находится в файле plf_filters.h, здесь не описывается
00016 namespace Plf
00017 {
00025     template <typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00026     class medianFilter
00027     : public FilterElementary
00028     {
00029     public:
00030         Vtl::Plf::OLSI::Gistogramm<T> gistogr;
00031         InPort<T> in;
00032         OutPort<T,P> out;
00033         int r;
00034         int _bits;
00035     public:
00036         medianFilter()
00037             : FilterElementary(1,1)
00038         {
00039         }
00040         medianFilter(int rr,int bits, std::string name,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00041             : FilterElementary(1,1)
00042         {
00043             Init(rr,bits,name,post_proc);
00044         }
00045         void Init(int rr,int bits,std::string name,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00046         {
00047             setName(name);
00048             out.setPostProc(post_proc);
00049             r=rr;
00050             _bits=bits;
00051             AddPort(in,0,Extent(r,r,r+1,r));
00052             AddPort(out,0);
00053         }
00054
00055         virtual void set_OutPortsImagesSizeAndInPortsExtents()
00056         {
00057             FilterElementary::set_OutPortsImagesSizeAndInPortsExtents();
00058
00059             ImgSize img_size=in.getImageSize();
00060             gistogr.Init(_bits,img_size.width,r);
00061         }
00062
00063         virtual ~medianFilter()
00064         {
00065         }
00066         virtual void processLine()
00067         {
00068             ImgSize ims=in.getImageSize();
00069             const int w=ims.width;
00070
00071             //int i= in.get
00072             out.beginUpdate();
00073             ImageRef<T> img=in.getImg();
00074             const T* input=img[0];
00075
00076             OutPortNoPostProc<T>::BufType::Iter_Line output=out.begin();
00077
00078             if(Y_pos()==0)
00079             {
00080                 for(int y=-r; y<=r; y++)
00081                 {
00082                     input=img[y];
00083                     //printf(" %d\n",int(input[0]));
00084                     gistogr.initGis_of_one_line(input-r);
00085                 }
00086
00087                 gistogr.initMediansForGistogramms();
00088
00089                 for(int x=0; x<w; x++)
00090                 {
00091
00092                     *output++ =gistogr.getMediana_value(x);
00093                 }
00094             }
00095             else
00096             {
00097                  const T* add = img[r];
00098                  const T* del = img[-r-1];
00099                 gistogr.add_del_lines_to_gist(add-r, del-r);
00100                 for(int x=0; x<w; x++)
00101                 {
00102                     *output++ = gistogr.getMediana_value(x);
00103                 }
00104             }
00105             in.ToNextLine(Y_pos()+1);
00106             out.endUpdate();
00107         }
00108     };
00109
00117     template <typename T,class P=Vtl::Plf::F11::DoNothing<T> >
00118     class medianFilter2
00119     : public FilterElementary
00120     {
00121     public:
00122         Vtl::Plf::OLSI::Gistogramm2<T> gistogr;
00123         InPort<T> in;
00124         OutPort<T,P> out;
00125         int r;
00126         int _bits;
00127     public:
00128         medianFilter2()
00129             : FilterElementary(1,1)
00130         {
00131         }
00132         medianFilter2(int rr,int bits, std::string name,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00133             : FilterElementary(1,1)
00134         {
00135             Init(rr,bits,name,post_proc);
00136         }
00137         void Init(int rr, int bits,std::string name,P post_proc=Vtl::Plf::F11::DoNothing<T>())
00138         {
00139             setName(name);
00140             out.setPostProc(post_proc);
00141             r=rr;
00142             _bits=bits;
00143             AddPort(in,0,Extent(r,r,r+1,r));
00144             AddPort(out,0);
00145         }
00146
00147         virtual void set_OutPortsImagesSizeAndInPortsExtents()
00148         {
00149             FilterElementary::set_OutPortsImagesSizeAndInPortsExtents();
00150
00151             ImgSize img_size=in.getImageSize();
00152             gistogr.Init(_bits,img_size.width,r);
00153         }
00154
00155         virtual ~medianFilter2()
00156         {
00157         }
00158         virtual void processLine()
00159         {
00160             ImgSize ims=in.getImageSize();
00161             int w = ims.width;
00162             out.beginUpdate();
00163             ImageRef<T> img=in.getImg();
00164             const T* input=img[0];
00165
00166             OutPortNoPostProc<T>::BufType::Iter_Line output=out.begin();
00167             if(Y_pos()==0)
00168             {
00169                 ImageRef<T> img=in.getImg();
00170                 for(int y=-r; y<=r; y++)
00171                 {
00172                     const T* input=img[y];
00173                     gistogr.initGis_of_one_line(input-r);
00174                 }
00175
00176                 gistogr.initMediansForGistogramms();
00177
00178                 for(int x=0; x<w; x++)
00179                 {
00180                     *output++ = gistogr.getMediana_value(x);
00181                 }
00182             }
00183             else
00184             {
00185                  const T* add = img[r];
00186                  const T* del = img[-r-1];
00187                 gistogr.add_del_lines_to_gist(add-r, del-r);
00188                 for(int x=0; x<w; x++)
00189                 {
00190                     *output++ = gistogr.getMediana_value(x);
00191                 }
00192             }
00193             in.ToNextLine(Y_pos()+1);
00194             out.endUpdate();
00195         }
00196     };
00197 } //namespace Plf
00198 } //namespace Vtl
00199 #endif //_PLF_FILTER_IMAGES_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Point2D.h

  • Файлы
  • Список членов всех файлов

Point2D.h

См. документацию.
00001 #ifndef POINT2D_H_
00002 #define POINT2D_H_
00003
00004 #include <iostream>
00005
00006 //library includings
00007 #include "num_linalg.h"
00008
00009 namespace Basics3D
00010 {
00011     class C_Point2D
00012     {
00013     protected:
00014         double m_x;
00015         double m_y;
00016         int m_numb;
00017
00018     public:
00019         C_Point2D();
00020
00021         C_Point2D(double in_x,
00022                             double in_y,
00023                             int in_numb);
00024
00025         C_Point2D(std::ifstream inFile);
00026
00027         double X() const;
00028
00029         double Y() const;
00030
00031         int Numb() const;
00032
00033         void SetNumb(const int i);
00034
00035         void Matrix(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 1>* out) const;
00036
00037         C_Point2D operator = (const C_Point2D in_point);
00038
00039         void Shift (double in_MeanX,
00040                                 double in_MeanY);
00041
00042         void Scale (double in_coef);
00043
00044         void Print() const;
00045     };
00046 }
00047 #endif // POINT2D_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Point2DParam.h

  • Файлы
  • Список членов всех файлов

Point2DParam.h

См. документацию.
00001 #ifndef POINT_2D_PARAM_H_
00002 #define POINT_2D_PARAM_H_
00003
00004 #include <vector>
00005
00006 //library includings
00007 #include "num_linalg.h"
00008
00009 // own includings
00010 #include "Point2D.h"
00011 #include "MatrixOperations.h"
00012
00013 namespace Basics3D
00014 {
00015     class C_Point2DParam : public C_Point2D
00016     {
00017     private:
00018         double m_sigma;
00019         double m_angle;
00020         std::vector<float> m_param;
00021         static const int m_paramNumb = 128;
00022
00023     public:
00024         C_Point2DParam(double in_x,
00025                                      double in_y,
00026                                      int in_numb,
00027                                      double in_sigma,
00028                                      double in_angle,
00029                                      const std::vector<float> &in_param);
00030
00031         float Param(int i) const;
00032
00033         static int ParamNumb()
00034         {
00035             return m_paramNumb;
00036         }
00037
00038         double Distance(const C_Point2DParam &in_point) const;
00039
00040         /*static void Load(T_Points2DSet<C_Point2DParam> &out_PointsSet,
00041                          char *in_filename,
00042                                  double in_t);*/
00043     };
00044 }
00045 #endif // POINT_2D_PARAM_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Points2DParamSet.h

  • Файлы
  • Список членов всех файлов

Points2DParamSet.h

См. документацию.
00001 #ifndef POINTS_2D_PARARM_SET_H_
00002 #define POINTS_2D_PARARM_SET_H_
00003
00004 #include <vector>
00005 #include <fstream>
00006 #include <iostream>
00007
00008 #include <vector>
00009
00010 // own includings
00011 #include "Point2D.h"
00012 #include "Point2DParam.h"
00013 #include "Points2DSet.h"
00014
00015 namespace Basics3D
00016 {
00017     class C_Points2DParamSet
00018     {
00019     private:
00020         std::vector<C_Point2DParam> m_Points;
00021         int m_groupSize;
00022         std::vector<double> m_MeanX;
00023         std::vector<double> m_MeanY;
00024         std::vector<double> m_MeanDev;
00025
00026     private:
00027         double MeanX(int i);
00028
00029         double MeanY(int i);
00030
00031         double MeanDev(int i);
00032
00033         void ClearMeans();
00034
00035     public:
00036         C_Points2DParamSet(int i = 1);
00037
00038         int Size() const;
00039
00040         void Disable(T_Points2DSet<C_Point2D> &in_Set,
00041                        int j);
00042
00043         void EnableAll();
00044
00045         void Load(const char* in_filename,
00046                     const int in_imHeight);
00047
00048         const C_Point2DParam* operator[](int i) const;
00049
00050         void Normalize();
00051
00052         //~C_Points2DParamSet();
00053     };
00054 }
00055 #endif // POINTS_2D_PARARM_SET_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Points2DSet.h

  • Файлы
  • Список членов всех файлов

Points2DSet.h

См. документацию.
00001 #ifndef POINTSSET_H_
00002 #define POINTSSET_H_
00003
00004 #include <vector>
00005 #include <fstream>
00006 #include <math.h>
00007
00008 // own includings
00009 #include "TransformMatrices.h"
00010 #include "MatrixOperations.h"
00011 #include "Point2D.h"
00012
00013 namespace Basics3D
00014 {
00015     template<class Point>
00016     class T_Points2DSet
00017     {
00018     private:
00019         std::vector<Point> m_Points;
00020     int m_groupSize;
00021         std::vector<double> m_MeanX;
00022         std::vector<double> m_MeanY;
00023         std::vector<double> m_MeanDev;
00024
00025     private:
00026         void ClearMeans()
00027         {
00028             for (int i = 0; i < m_groupSize; i++)
00029             {
00030                 m_MeanX[i] = m_MeanY[i] = m_MeanDev[i] = -1;
00031             }
00032         }
00033
00035
00036     public:
00038         double MeanX(int i)
00039         {
00040             if (i >= m_groupSize)
00041             {
00042                 throw "\nIndex is to be less than group size";
00043                 return -1;
00044             }
00045
00046             if (m_MeanX[i] == -1)
00047             {
00048                 m_MeanX[i] = 0;
00049
00050                 for (int j = 0; j < Size(); j++)
00051                 {
00052                     m_MeanX[i] += m_Points[m_groupSize * j + i].X();
00053                 }
00054
00055                 m_MeanX[i] /= Size();
00056             }
00057
00058             return m_MeanX[i];
00059         }
00060
00062         double MeanY(int i)
00063         {
00064             if (i >= m_groupSize)
00065             {
00066                 throw "\nIndex is to be less than group size";
00067                 return -1;
00068             }
00069
00070             if (m_MeanY[i] == -1)
00071             {
00072                 m_MeanY[i] = 0;
00073
00074                 for (int j = 0; j < Size(); j++)
00075                 {
00076                     m_MeanY[i] += m_Points[m_groupSize * j + i].Y();
00077                 }
00078
00079                 m_MeanY[i] /= Size();
00080             }
00081
00082             return m_MeanY[i];
00083         }
00084
00086         double MeanDev(int i)
00087         {
00088             if (i >= m_groupSize)
00089             {
00090                 throw "\nIndex is to be less than group size";
00091                 return -1;
00092             }
00093
00094             if (m_MeanDev[i] < 0)
00095             {
00096                 m_MeanDev[i] = 0;
00097
00098                 for (int j = 0; j < Size(); j++)
00099                 {
00100                     C_Point2D P = m_Points[m_groupSize * j + i];
00101                     m_MeanDev[i] += sqrt((P.X() - MeanX(i)) * (P.X() - MeanX(i)) +
00102                                                              (P.Y() - MeanY(i)) * (P.Y() - MeanY(i)));
00103                 }
00104
00105                 m_MeanDev[i] /= Size();
00106             }
00107             return m_MeanDev[i];
00108         }
00109
00111         T_Points2DSet(int in_groupSize = 1)
00112         {
00113             InitGroupSize(in_groupSize);
00114         }
00115
00117         T_Points2DSet<Point> operator = (const T_Points2DSet<C_Point2D> &in_Set)
00118         {
00119           m_groupSize = in_Set.GroupSize();
00120
00121             m_MeanX.resize(m_groupSize);
00122             m_MeanY.resize(m_groupSize);
00123             m_MeanDev.resize(m_groupSize);
00124
00125             ClearMeans();
00126
00127             m_Points.clear();
00128
00129             int size = in_Set.Size() * in_Set.GroupSize();
00130             m_Points.resize(size);
00131
00132             for (int i = 0; i < size; i++)
00133             {
00134               m_Points[i] = in_Set[i];
00135             }
00136
00137             return (*this);
00138         }
00139
00141         int GroupSize() const
00142         {
00143           return m_groupSize;
00144         }
00145
00147         void InitGroupSize(int i)
00148         {
00149             if (m_Points.size() != 0)
00150             {
00151                 throw "\nInitialization of the group size can be made only when the set is empty\n";
00152                 return;
00153             }
00154
00155             m_groupSize = i;
00156
00157             m_MeanX.resize(m_groupSize);
00158             m_MeanY.resize(m_groupSize);
00159             m_MeanDev.resize(m_groupSize);
00160
00161             ClearMeans();
00162         }
00163
00165         int Size() const
00166         {
00167             return int(m_Points.size()) / m_groupSize;
00168         }
00169
00171         void Clear()
00172         {
00173             m_Points.clear();
00174         }
00175
00177         void Add(std::vector<Point> &in_p)
00178         {
00179             int size = in_p.size();
00180
00181             if (size - size / m_groupSize * m_groupSize > 0)
00182             {
00183                 throw "\nThe input group of pounts has not appropriate  size";
00184                 return;
00185             }
00186
00187             int prevSize = m_Points.size();
00188
00189             m_Points.resize(prevSize + size);
00190
00191             for (int i = 0; i < size; i++)
00192             {
00193                 m_Points[prevSize + i] = in_p[i];
00194             }
00195
00196             ClearMeans();
00197         }
00198
00200         void Disable(T_Points2DSet<Point> &in_Set)
00201         {
00202             int size = in_Set.Size() * in_Set.GroupSize();
00203
00204           for (int i = 0; i < size; i++)
00205             {
00206                 int numb = in_Set[i].Numb();
00207                 if (numb >= 0)
00208                 {
00209                 m_Points[numb].SetNumb(-1);
00210                 }
00211             }
00212         }
00213
00215         void EnableAll()
00216         {
00217             for (int i = 0; i < Size(); i++)
00218             {
00219                 for (int j = 0; j < GroupSize(); j++)
00220                 {
00221                     m_Points[GroupSize() * i + j].SetNumb(i);
00222                 }
00223             }
00224         }
00225
00227         void RemoveGroup(int in_i)
00228         {
00229             int s = Size();
00230
00231             if (in_i < Size())
00232             {
00233                 /*for (int j = in_i - 1; j < in_i + 3; j++)
00234                 {
00235                     std::cout << std::endl << j << std::endl
00236                         << "  x = " << m_Points[GroupSize() * j].X()
00237                         << "  y = " << m_Points[GroupSize() * j].Y()
00238                         << std::endl << "  x = " << m_Points[GroupSize() * j + 1].X()
00239                         << "  y = " << m_Points[GroupSize() * j + 1].Y();
00240                 }*/
00241
00242                 for (int j = 0; j < GroupSize(); j++)
00243                 {
00244                     m_Points.erase(m_Points.begin() + GroupSize() * in_i);
00245                     //std::cout << std::endl << "in_i = " << in_i << "  j = " << j;
00246                 }
00247
00248                 /*for (int j = in_i - 1; j < in_i + 2; j++)
00249                 {
00250                     std::cout << std::endl << j << std::endl
00251                         << "  x = " << m_Points[GroupSize() * j].X()
00252                         << "  y = " << m_Points[GroupSize() * j].Y()
00253                         << std::endl << "  x = " << m_Points[GroupSize() * j + 1].X()
00254                         << "  y = " << m_Points[GroupSize() * j + 1].Y();
00255                 }*/
00256             }
00257             else
00258             {
00259                 std::cout << std::endl << "not deleted:  in_i = " << in_i << "  size = " << Size();
00260             }
00261
00262             if (s - Size() != 1)
00263             {
00264                 std::cout << std::endl << "s - size = " << s - Size();
00265             }
00266         }
00267
00269         Point operator[] (int i) const
00270         {
00271             return m_Points[i];
00272         }
00273
00275         void Load(const char *in_filename,
00276                             const double in_t,
00277                             const int in_imHeight)
00278         {
00279         std::ifstream inFile;
00280         inFile.open(in_filename, std::ios::in);
00281
00282         if (!inFile)
00283         {
00284             std::cerr << "Can't open " << in_filename << "\n";
00285             return;
00286         }
00287
00288         float x1, y1, x2, y2, c, dist, distPrev;
00289         int numb = 0;
00290         int n;
00291         inFile >> n;
00292
00293         for (int i = 0; i < n; i++)
00294         {
00295             inFile >> c;
00296             inFile >> dist;
00297             inFile >> distPrev;
00298             inFile >> c;
00299             inFile >> c;
00300
00301             inFile >> x1;
00302             inFile >> y1;
00303
00304             for (int j=0; j<130; j++)
00305             {
00306                 inFile >> c;
00307             }
00308
00309             inFile >> x2;
00310             inFile >> y2;
00311
00312             for (int j=0; j<130; j++)
00313             {
00314                 inFile >> c;
00315             }
00316
00317             //std::vector<C_Point2D> P;
00318             if (in_t * dist < distPrev)
00319             {
00320                 //P.push_back(C_Point2D(x1, y1, 2 * numb));
00321                 //P.push_back(C_Point2D(x2, y2, 2 * numb + 1));
00322
00323                 //out_PointsSet.Add(P);
00324                 m_Points.push_back(C_Point2D(x1, in_imHeight - y1, 2 * numb));;
00325                 m_Points.push_back(C_Point2D(x2, in_imHeight - y2, 2 * numb + 1));
00326
00327                 numb++;
00328             }
00329         }
00330
00331         inFile.close();
00332     }
00333
00335         // Save points related to one of the images
00336         // in_n - number of point in group to save =
00337         //        = number of image
00338         void Save(char *in_filenameX,
00339                     char *in_filenameY,
00340                     int in_n)
00341         {
00342             std::ofstream outFileX;
00343             std::ofstream outFileY;
00344             outFileX.open(in_filenameX, std::ios::out);
00345             outFileY.open(in_filenameY, std::ios::out);
00346
00347             for (int i = 0; i < Size(); i++)
00348             {
00349                 outFileX << m_Points[GroupSize() * i + in_n].X() << " ";
00350                 outFileY << m_Points[GroupSize() * i + in_n].Y() << " ";
00351             }
00352
00353             outFileX.close();
00354             outFileY.close();
00355         }
00356
00358         // Moves center of mass of points to (0, 0) and sqrt(MaxX^2 + MaxY^2) -> sqrt(2)
00359         // Returns transformation matrices
00360         double Normalize(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_T,
00361                                        Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_T1,
00362                                        const double in_sigma)
00363       {
00364             std::vector<double> coef(m_groupSize);
00365
00366             for (int i = 0; i < m_groupSize; i++)
00367             {
00368                 coef[i] = sqrt(2.0) / MeanDev(i);
00369             }
00370
00371             for (int i = 0; i < Size(); i++)
00372             {
00373                 for (int j = 0; j < m_groupSize; j++)
00374                 {
00375                     m_Points[m_groupSize * i + j].Shift(MeanX(j), MeanY(j));
00376                     m_Points[m_groupSize * i + j].Scale(coef[j]);
00377                 }
00378             }
00379
00380             // Computing of normalization matrices
00381             C_TransformMatrices::Normalization(out_T, m_MeanX[0], m_MeanY[0], m_MeanDev[0],
00382                                                                                        in_sigma);
00383             double err = C_TransformMatrices::Normalization(out_T1, m_MeanX[1], m_MeanY[1],
00384                                                                          m_MeanDev[1], in_sigma);
00385             ClearMeans();
00386             return err;
00387         }
00388
00390         // Moves origin from the up left corner to the center of the image
00391         // and sqrt(MaxX^2 + MaxY^2) -> sqrt(2)
00392         double Normalize(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_T,
00393                                        Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_T1,
00394                                        int in_width,
00395                            int in_height,
00396                                          const double in_sigma)
00397       {
00398             std::vector<double> coef(m_groupSize);
00399
00400             std::cout << std::endl << std::endl;
00401             for (int i = 0; i < m_groupSize; i++)
00402             {
00403                 coef[i] = sqrt(2.0) / MeanDev(i);
00404                 std::cout << "coef[i] = " << coef[i] << "  ";
00405             }
00406
00407             std::cout << std::endl << std::endl << "MeanX[0] - in_width / 2.0 = " <<
00408                 MeanX(0) - in_width / 2.0 << " | MeanY[0] - in_heigth / 2.0 = " <<
00409                 MeanY(0) - in_height / 2.0 << std::cout << "MeanX[1] - in_width / 2.0 = " <<
00410                 MeanX(1) - in_width / 2.0 << " | MeanY[1] - in_heigth / 2.0 = " <<
00411                 MeanY(1) - in_height / 2.0;
00412
00413             for (int i = 0; i < Size(); i++)
00414             {
00415                 for (int j = 0; j < m_groupSize; j++)
00416                 {
00417                     m_Points[m_groupSize * i + j].Shift(in_width / 2.0, in_height / 2.0);
00418                     m_Points[m_groupSize * i + j].Scale(coef[j]);
00419                 }
00420             }
00421
00422             // Computing of normalization matrices
00423             C_TransformMatrices::Normalization(out_T, in_width / 2.0, in_height / 2.0,
00424                                                                          m_MeanDev[0], in_sigma);
00425             double err = C_TransformMatrices::Normalization(out_T1, in_width / 2.0,
00426                                                         in_height / 2.0, m_MeanDev[1], in_sigma);
00427             ClearMeans();
00428             return err;
00429         }
00430
00432         void RetPoints (T_Points2DSet<Point> &out_P,
00433                                         int in_c) const
00434       {
00435             // rand: 0 - 2^15-1  =>  0 - Size()
00436             double coef = (Size() - 1) / (pow(2.0, 15) - 1);
00437
00438             for (int i = 0; i < in_c; i++)
00439             {
00440                 int n = -1;
00441                 int j;
00442
00443                 while (n < 0)
00444                 {
00445                   j = (int)(rand() * coef);
00446                     n = m_Points[2 * j].Numb();
00447                 }
00448
00449                 std::vector<C_Point2D> P;
00450                 P.push_back(m_Points[2 * j]);
00451                 P.push_back(m_Points[2 * j + 1]);
00452                 out_P.Add(P);
00453             }
00454         }
00455
00457         // Makes a set of groups of n+1 corresponding points - *out,
00458         // *in_groups is a set of groups of n cor. points
00459         // *in_pairs is a set of pairs of cor. points
00460         // The last points in groups and the first points in pairs must be from the same image
00461         static void Combine(T_Points2DSet<Point> &out,
00462                                                 const T_Points2DSet<Point> &in_groups,
00463                                                 const T_Points2DSet<Point> &in_pairs,
00464                                                 int n)
00465         {
00466             int numbGroups = in_groups.Size();
00467             int numbPairs = in_pairs.Size();
00468
00469             T_Points2DSet<Point> temp(n + 1);
00470             temp.Clear();
00471
00472             for (int i = 0; i < numbGroups; i++)
00473             {
00474                 int numb1 = in_groups[i * n + n - 1].Numb();
00475
00476                 for (int j = 0; j < numbPairs; j++)
00477                 {
00478                     int numb2 = in_pairs[j * 2].Numb();
00479
00480                     if (numb1 == numb2)
00481                     {
00482                         std::vector<C_Point2D> P;
00483
00484                         for (int k = 0; k < n; k++)
00485                         {
00486                             P.push_back(in_groups[i * n + k]);
00487                         }
00488                         P.push_back(in_pairs[j * 2 + 1]);
00489
00490                         temp.Add(P);
00491                         break;
00492                     }
00493                     /*if ((p1.X() != p2.X() || p1.Y() != p2.Y()) && (p1.Numb() == p2.Numb()))
00494                     {
00495                         std::cout << std::endl << p1.X() << "  " << p2.X() << "     " << p1.Y() << "  "
00496                             << p2.Y() << "      " << p1.Numb();
00497                     }*/
00498                 }
00499             }
00500
00501             out = temp;
00502         }
00503
00505         void Print() const
00506         {
00507             std::cout << "\n";
00508
00509             for (int i=0; i<(int)m_Points.size(); i++)
00510             {
00511                 C_Point2D P = m_Points[i];
00512                 std::cout << P.Numb() << "  " << P.X() << "  " << P.Y() <<"\n";
00513             }
00514         }
00515
00517     };
00518 }
00519 #endif // POINTSSET_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл progrcnt.h

  • Файлы
  • Список членов всех файлов

progrcnt.h

См. документацию.
00001 #ifndef _PROGRCNT_H
00002 #define _PROGRCNT_H
00004
00005 void SetMessageLanguage(bool rus=false);
00025 class ProgressCounter
00026 {
00027 public:
00028     ProgressCounter() {}
00029   virtual ~ProgressCounter() {}
00030   // next virtual functions MUST redeclared to draw ProgressBar
00031   // and user abort capability. These functions called ONLY by process.
00032   virtual bool russian() const=0;
00033   virtual void start(const char *filter_name,int count_start,int count_end)=0;
00034   virtual bool current(int count_current)=0; // if return true - process will aborted
00035   virtual void finish()=0;
00036   virtual void error(const char *msg)=0;
00037   virtual bool InProgress() const=0;
00038 };
00039
00040 class AErrorStatusBase
00041 {
00042 public:
00043     AErrorStatusBase()          {}
00044     virtual ~AErrorStatusBase() {}
00045     virtual const char *ClassName()const=0; // class name where error occured
00046     virtual const char *DerivedClassName()const=0; // class name in base of wich error occured
00047     virtual const char *File() const=0; //source file where error occured
00048     virtual int Line() const=0; //line in source file where error ocurred
00049     virtual const char *Msg() const=0;  // return error message
00050     operator const char *() const {return Msg();}
00051 };
00052
00053 class ErrorStatusBase
00054 : public AErrorStatusBase
00055 {
00056     const char *file;
00057     int line;
00058     const char *cls_this;
00059     const char *cls;
00060 protected:
00061     bool msg_need_delete;
00062   char *msg; //allocated/init by derived class
00063 public:
00064   ErrorStatusBase(const char *fname,int nline,const char *_cls_this,const char *_cls,bool del_msg);
00065     virtual ~ErrorStatusBase();
00066     virtual const char *ClassName()const {return cls_this;} // class name where error occured
00067     virtual const char *DerivedClassName()const {return cls;} // class name in base of wich error occured
00068     virtual const char *File() const {return file; } //source file where error occured
00069     virtual int Line() const  {return line;} //line in source file where error ocurred
00070     virtual const char *Msg() const;  // return error message
00071 };
00072
00074 #endif //_PROGRCNT_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл ProjectiveMatrix.h

  • Файлы
  • Список членов всех файлов

ProjectiveMatrix.h

См. документацию.
00001 #ifndef PROJECTIVE_MATRIX_H_
00002 #define PROJECTIVE_MATRIX_H_
00003
00004 // library includings
00005 #include "num_linalg.h"
00006
00007 // own includings
00008 #include "Epipole.h"
00009 #include "TransformMatrices.h"
00010 #include "MatrixOperations.h"
00011 #include "Sort.h"
00012
00013 namespace Basics3D
00014 {
00015     // Computes projective (camera) matrices in canonical form from
00016     // fundamental matrix according with Result 9.14 (Hartley, p.274)
00017   class C_ProjectiveMatrix
00018     {
00019     private:
00020         static void GetW(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_W);
00021
00022         static void SortColumns(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_M,
00023                                   const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_M,
00024                                                         const int k[3]);
00025
00026         static void SortSV(int k[3]);
00027
00028         // Hartley res. 9.19 (p.277)
00029         // computes one of four variants of camera matrix out_P retrieved from ess.m.
00030         // in_UWV - U * W * V^T or U * W^T * V^T
00031         // k -  number of the smallest of singular values of ess.m.
00032         // sgn = 1 / -1
00033         static void GetP(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4> &out_P,
00034                            const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_UWV,
00035                                        const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_U,
00036                                        const int in_k,
00037                                        const int in_sgn);
00038
00039     public:
00040       static void Left(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4> &out);
00041
00042         static void Right(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4> &out,
00043                                     const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_F);
00044
00045         static void Right(std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4>> &out_P,
00046                                     const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_E);
00047     };
00048 }
00049
00050 #endif //PROJECTIVE_MATRIX_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Ransac.h

  • Файлы
  • Список членов всех файлов

Ransac.h

См. документацию.
00001 #ifndef RANSAC__H_
00002 #define RANSAC__H_
00003
00004 //library includings
00005 #include "num_linalg.h"
00006
00007 // own includings
00008 #include "Model.h"
00009 #include "Point2D.h"
00010 #include "Points2DSet.h"
00011
00012 namespace Basics3D
00013 {
00014     // in_p is a probability, that at least one of the random
00015     //      samples of m_samp points is free from outliers
00016     // in_t is the threshold for distance between pixels
00017     template<class Operations>
00018     void Ransac(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00019                  T_Points2DSet<C_Point2D> &out_Inliers,
00020                  T_Model<Operations> &in_Model,
00021                          T_Points2DSet<C_Point2D> &in_PointsSet,
00022                          int in_size,
00023                          double in_sigma,
00024                        double in_p = 0.99)
00025   {
00026         double N = 100000;              // number of selections
00027         int maxInl = 0;                           // max number of inliers
00028         int size = in_PointsSet.Size(); // number of pairs in input set
00029
00030         for (int sampleCount = 0; sampleCount < N; sampleCount++)
00031         {
00032             // Get normalized sample and normalization matrices
00033             T_Points2DSet<C_Point2D> sample(2);
00034             in_Model.GetSample(sample);
00035
00036             // Compute matrix
00037             std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> Matrices;
00038             in_Model.ComputeMatrices(Matrices, sample, in_sigma);
00039
00040             // for homography matrix Matrices.size = 1,
00041             // for fundamental matrix Matrices.size = 1 or 3.
00042             for (int j = 0; j < (int)Matrices.size(); j++)
00043             {
00044                 Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> M(3, 3);
00045                 M = Matrices[j];
00046
00047                 // Count the number of inliers
00048                 int numbInl = 0;
00049                 std::vector<C_Point2D> inlPoints;
00050
00051                 for (int i = 0; i < size; i ++)
00052                 {
00053                     if (in_Model.IsInlier(M, i, in_sigma))
00054                     {
00055                         numbInl++;
00056
00057                         inlPoints.push_back(in_PointsSet[2 * i]);
00058                         inlPoints.push_back(in_PointsSet[2 * i + 1]);
00059                     }
00060                 }
00061
00062                 // if new the best appropriate model is found
00063                 if (numbInl > maxInl)
00064                 {
00065                     maxInl = numbInl;
00066                     out = M;
00067
00068                     out_Inliers.Clear();
00069                     out_Inliers.Add(inlPoints);
00070
00071                     std::cout << std::endl;
00072                     T_MatrixOperations::Scale(M, M);
00073                     T_MatrixOperations::Print(M);
00074                     std::cout << std::endl;
00075                     std::cout << std::endl << "inl = " << numbInl << "   ";
00076                 }
00077
00078                 // recompute the number of selections
00079                 double eps = 1 - (double)numbInl / in_size; // probability that any selected data
00080                                                                                                  // point is outlier
00081                 if (eps <= 0.999)
00082                 {
00083                     double newN = log10(1 - in_p) / log10(1 - pow(1 - eps, 4.0));
00084
00085                     if (N > newN)
00086                     {
00087                         N = newN;
00088                         std::cout << "N = " << N << std::endl;
00089                     }
00090                 }
00092             }
00093         }
00094
00096         std::cout << "\n\n__________________________________________________________\n" <<
00097                                  "inl = " << maxInl << "   N = " << N << "\n\n";
00098         T_MatrixOperations::Scale(out, out);
00099         T_MatrixOperations::Print(out);
00100         std::cout << "\n\n";
00101
00102         // Recalculate with all the inliers
00103         if (maxInl > Operations::SampleSize())
00104         {
00105             Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> prevResult(0, 0);
00106             int prevNumbInl = maxInl - 1;
00107             int numbInl = maxInl;
00108
00109             while ( numbInl > prevNumbInl)
00110             {
00111                 prevNumbInl = numbInl;
00112                 prevResult = out;
00113
00114                 std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> vect;
00115 /*?*/       in_Model.ComputeMatrices(vect, out_Inliers, in_sigma);
00116
00117                 std::vector<C_Point2D> newInliers;
00118
00119                 if (vect.size() > 0)
00120                 {
00121                     out = vect[0];
00122
00123                     numbInl = 0;
00124
00125                     for (int i = 0; i < size; i++)
00126                     {
00127                         if (in_Model.IsInlier(out, i, in_sigma))
00128                         {
00129                             numbInl++;
00130
00131                             newInliers.push_back(in_PointsSet[2 * i]);
00132                             newInliers.push_back(in_PointsSet[2 * i + 1]);
00133                         }
00134                     }
00135
00136                     T_MatrixOperations::Scale(out, out);
00137                     T_MatrixOperations::Print(out);
00138                     std::cout << std::endl << std::endl;
00139
00140                     std::cout << std::endl << " inl = " << out_Inliers.Size() << std::endl;
00141                 }
00142                 if (numbInl > prevNumbInl)
00143                 {
00144                     out_Inliers.Clear();
00145                     out_Inliers.Add(newInliers);
00146                 }
00147             }
00148
00149             if (prevNumbInl > numbInl)
00150             {
00151                 out = prevResult;
00152             }
00153
00154             std::cout << std::endl << "result" << std::endl;
00155             T_MatrixOperations::Print(out);
00156             std::cout << std::endl << std::endl;
00157
00158             std::cout << std::endl << " inl = " << out_Inliers.Size() << std::endl;
00159         }
00160     }
00161 }
00162
00163 #endif // RANSAC__H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл ReadMe.hxx

  • Файлы
  • Список членов всех файлов

ReadMe.hxx

См. документацию.
00001


Pipe Line Filters: Исходный файл RecompMatrix.h

  • Файлы
  • Список членов всех файлов

RecompMatrix.h

См. документацию.
00001 #ifndef RECOMP_MATR_H_
00002 #define RECOMP_MATR_H_
00003
00004 #include <vector>
00005
00006 //library includings
00007 #include "num_linalg.h"
00008
00009 // own includings
00010 #include "Points2DParamSet.h"
00011 #include "Points2DSet.h"
00012 #include "MatrixOperations.h"
00013 #include "FundamentalMatrix.h"
00014 #include "HomographyMatrix.h"
00015 #include "TransformMatrices.h"
00016 #include "Point2D.h"
00017 #include "Point2DParam.h"
00018 #include "Model.h"
00019
00020 namespace Basics3D
00021 {
00022     template <class Operations>
00023     void RecompMatrix(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00024                                         T_Points2DSet<C_Point2D> &outInliers,
00025                                         T_Model<Operations> &in_Model,
00026                                         C_Points2DParamSet &in_PointsParamSet1,
00027                                         C_Points2DParamSet &in_PointsParamSet2,
00028                                         double in_sigma,
00029                                         double in_t2)
00030     {
00031         int size1 = in_PointsParamSet1.Size();
00032         int size2 = in_PointsParamSet2.Size();
00033
00034         int pairsNumb = 1;
00035         int prevPairsNumb = 0;
00036
00037         Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> temp = out;
00038
00039         while (pairsNumb > prevPairsNumb)
00040         {
00041             T_Points2DSet<C_Point2D> inliers(2);                // found corresponding pairs of points
00042
00043             prevPairsNumb = pairsNumb;
00044
00045             // for each point from the 1st set
00046             for (int i = 0; i < size1; i++)
00047             {
00048                 const C_Point2DParam *p_Point1 = in_PointsParamSet1[i];
00049
00050                 // points, which are not to be operated on, have number -1
00051                 if (p_Point1->Numb() < 0)
00052                 {
00053                   continue;
00054                 }
00055
00056                 Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 1> PointTrM(3, 1);
00057                 in_Model.Transform
00058                     (PointTrM, temp, C_Point2D(p_Point1->X(), p_Point1->Y(), p_Point1->Numb()));
00059
00060                 C_Point2D prevPoint(-1, -1, -1);
00061                 C_Point2D bestPoint(-1, -1, -1);
00062                 double prevDist = 1;
00063                 double bestDist = 1000;
00064
00065                 // for each point of the 2nd set
00066                 for (int j = 0; j < size2; j++)
00067                 {
00068                     const C_Point2DParam *p_Point2 = in_PointsParamSet2[j];
00069
00070                     // points, which are not to be operated on, have number -1
00071                     if (p_Point2->Numb() < 0)
00072                     {
00073                         continue;
00074                     }
00075
00076                     // if PointTrM is close enought to p_Point2
00077                     if (Operations::Dist(PointTrM, *p_Point2) < Operations::DistThresh(in_sigma))
00078                     {
00079                         // distance between parameter vectors of p_Point1 and p_Point2
00080                         double dist = p_Point1->Distance(*p_Point2);
00081
00082                         if (dist < bestDist)
00083                         {
00084                             prevDist = bestDist;
00085                             prevPoint = bestPoint;
00086                             bestDist = dist;
00087                             bestPoint = *p_Point2;
00088                         }
00089                     }
00090                 }
00091
00092                 // if difference between the best corresponding point and
00093                 // the next cor. point is big enought
00094                 if (prevDist / bestDist > in_t2)
00095                 {
00096                     std::vector<C_Point2D> P;
00097                     P.push_back(C_Point2D(p_Point1->X(), p_Point1->Y(), p_Point1->Numb()));
00098                     P.push_back(C_Point2D(bestPoint.X(), bestPoint.Y(), bestPoint.Numb()));
00099                     inliers.Add(P);
00100                 }
00101             }
00102
00103             pairsNumb = inliers.Size();
00104             std::cout << std::endl << std::endl << "Pairs number = " << pairsNumb
00105                                 << std::endl << std::endl;
00106
00107             std::cout << "\n_________________________________________\n";
00108
00109             // Recalculate matrix for the new set of correspondences
00110             if (pairsNumb > prevPairsNumb)
00111             {
00112                 out = temp;
00113                 outInliers = inliers;
00114
00115                 std::vector<Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3>> Matrices;
00116                 in_Model.ComputeMatrices(Matrices, inliers, in_sigma);
00117                 temp = Matrices[0];
00118
00119                 Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> forPrint;
00120                 T_MatrixOperations::Scale(forPrint, temp);
00121                 T_MatrixOperations::Print(forPrint);
00122             }
00123         }
00124     }
00125 }
00126 #endif // RECOMP_MATR_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл RQDecomposition.h

  • Файлы
  • Список членов всех файлов

RQDecomposition.h

См. документацию.
00001 #ifndef RQ_DECOMPOSITION_H_
00002 #define RQ_DECOMPOSITION_H_
00003
00004 // library includings
00005 #include "num_linalg.h"
00006
00007 // own includings
00008 #include "MatrixOperations.h"
00009 #include "TransformMatrices.h"
00010
00011 namespace Basics3D
00012 {
00013     void RQDecomposition(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_R,
00014                              Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out_Q,
00015                              const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_M);
00016
00017 }
00018
00019 #endif //RQ_DECOMPOSITION_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл SaveImageArray.h

  • Файлы
  • Список членов всех файлов

SaveImageArray.h

См. документацию.
00001 #ifndef SAVE_IMAGE_ARRAY_H
00002 #define SAVE_IMAGE_ARRAY_H
00003
00004 // system includings
00005 #include <iomanip>
00006 #include <string>
00007
00008 // lifrary includings
00009 #include "aimage.h"
00010 #include "yfilesys.h"
00011 #include "plf_functors.h"
00012
00013
00014 namespace Tests
00015 {
00016     inline void CreateFileName(const char *fname,
00017                                             const char *postfix,
00018                                             const char *ext,
00019                                             std::string &res)
00020     {
00021         std::ostringstream os;
00022         os <<   YFileSys::getNameWithoutExt(fname) << std::setprecision(2)
00023             << std::setiosflags(std::ios::showpoint | std::ios::fixed)
00024             << postfix << ext;
00025         res = os.str();
00026     }
00027
00029
00030     inline Vtl::Plf::F11::Comb< uint8_t, Vtl::Plf::F11::GammaCorMult<float>,
00031                                              Vtl::Plf::F11::Convert2ByteBounded > GammaCorFunctor()
00032     {
00033         // Параметры гамма коррекции (функтор)
00034         const float g2_Mult = 1;
00035         Vtl::Plf::F11::GammaCorMult<float> lin_3mod(255, 2.2, 1.0 * g2_Mult);
00036
00037         // Функтор преобразования от типа float  к типу byte. Считается,
00038         // что числа float уже лежат в диапазоне 0-255 - этим надо было
00039         // озаботиться при написании функторов
00040         Vtl::Plf::F11::Convert2ByteBounded c_to_Byte;
00041
00042         // Создаем функтор, являющийся суперпозицией преобразований
00043         Vtl::Plf::F11::Comb< uint8_t, Vtl::Plf::F11::GammaCorMult<float>,
00044                         Vtl::Plf::F11::Convert2ByteBounded > adj_3mod(lin_3mod, c_to_Byte);
00045
00046         return adj_3mod;
00047     }
00048
00050
00051     template< typename T >
00052     void SaveImageArray(const T *data,
00053                                             int w,
00054                                             int h,
00055                                             const char *baseName,
00056                                             const char *postfix)
00057     {
00058         // Create destination image
00059         std::auto_ptr<AImage> _img(AImageCreate(0, AImage::IMGC_GRAYSCALE, w, h, 8));
00060         AImageMem8* img = dynamic_cast<AImageMem8*>(_img.get());
00061
00062         // Выполняем копирование с применением суммарного функтора к
00063         // каждому элементу данных (пикселю)
00064         Vtl::ImAlg::Tools::copy_1_1(data, w, h, w, (*img)[0], img->NextLineShift(),GammaCorFunctor());
00065
00066         std::string outfname;
00067         CreateFileName(baseName, postfix, ".tif", outfname);
00068
00069 		::AImageSave(img, outfname.c_str());
00070     }
00071
00073
00074     template< typename T >
00075     void SaveColourImageArray(const T *dataR,
00076                             const T *dataG,
00077                             const T *dataB,
00078                                                   int w,
00079                                                   int h,
00080                                                   const char *baseName,
00081                                                   const char *postfix)
00082     {
00083         // Create destination image
00084         std::auto_ptr<AImage> _img(AImageCreate(0, AImage::IMGC_RGB, w, h, 8));
00085         AImageMemRgb8* img = dynamic_cast<AImageMemRgb8*>(_img.get());
00086
00087     AImageMem8* r = img->GetPlane8(2);
00088         AImageMem8* g = img->GetPlane8(1);
00089         AImageMem8* b = img->GetPlane8(0);
00090
00091     int nls = r->NextLineShift();
00092
00093         // Выполняем копирование с применением суммарного функтора к
00094         // каждому элементу данных (пикселю)
00095         Vtl::ImAlg::Tools::copy_1_1(dataR, w, h, w, (*r)[0], nls, GammaCorFunctor());
00096     Vtl::ImAlg::Tools::copy_1_1(dataG, w, h, w, (*g)[0], nls, GammaCorFunctor());
00097     Vtl::ImAlg::Tools::copy_1_1(dataB, w, h, w, (*b)[0], nls, GammaCorFunctor());
00098
00099         std::string outfname;
00100         CreateFileName(baseName, postfix, ".bmp", outfname);
00101
00102 		::AImageSave(img, outfname.c_str());
00103     }
00104
00106
00107     template< typename T >
00108     void NormalizeImage(const T *src,
00109                                             T * dst,
00110                                             int w,
00111                                             int h,
00112                       T minDes = T(0),
00113                       T maxDes = T(255))
00114     {
00115         // define max and min values in the source array
00116         T max = 0;
00117         T min = 0;
00118
00119         for (int y = 0; y < h; y++)
00120         {
00121             for (int x = 0; x < w; x++)
00122             {
00123                 T val = *(src + y * w + x);
00124                 if (val > max)
00125                 {
00126                     max = val;
00127                 }
00128                 else if (val < min)
00129                 {
00130                     min = val;
00131                 }
00132             }
00133         }
00134
00135         std::cout << std::endl << "max = " << max << ",  min = " << min;
00136
00137         // shift and scale array values into range [0, 255]
00138         if (max != min)
00139         {
00140             float c = (maxDes - minDes) / (max - min);
00141
00142             for (int y = 0; y < h; y++)
00143             {
00144                 for (int x = 0; x < w; x++)
00145                 {
00146                     T val = *(src + y * w + x);
00147                     *(dst + y * w + x) = T((val - min) * c + minDes);
00148                 }
00149             }
00150         }
00151     }
00152
00154
00155     template< typename T >
00156     void SaveNormImageArray(const T *data,
00157                                                     int w,
00158                                                     int h,
00159                                                     const char *baseName,
00160                                                     const char *postfix)
00161     {
00162         // shift and scale image into the range [0, 255]
00163         std::vector<T> temp(w * h);
00164         NormalizeImage(&(data[0]), &(temp[0]), w, h);
00165
00166         // save image
00167         SaveImageArray(&(temp[0]), w, h, baseName, postfix);
00168     }
00169
00171
00172     template< typename T >
00173     void SaveAbsImageArray(const T *data,
00174                                                  int w,
00175                                                  int h,
00176                                                  const char *baseName,
00177                                                  const char *postfix)
00178     {
00179         //Выполняем копирование с применением суммарного функтора к каждому пикселю
00180         std::vector<T> temp(w * h);
00181
00182         // Calculate absolute value
00183         Vtl::Plf::F11::Abs<T> abs;
00184         Vtl::ImAlg::Tools::copy_1_1(data, w, h, w, &(temp[0]), w, abs);
00185
00186         // save image
00187         SaveImageArray(&(temp[0]), w, h, baseName, postfix);
00188     }
00189
00191   // function is used while curvature estimation, NEEDS CORRECTION
00192     template<typename T,class ConvFunctor>
00193     inline void SaveImage(AImageMem8* img,
00194                                  const T *data,
00195                                  int w,
00196                                  int h,
00197                                  int nls,
00198                                  ConvFunctor func,
00199                                  float sigma,
00200                                  const char *base_name,
00201                                  const char *postfix)
00202     {
00203         //Выполняем копирование с применением суммарного функтора к каждому элементу данных (пикселю)
00204         std::vector<T> _temp(w * h);
00205         T *temp = &(_temp[0]);
00206
00207         Vtl::Plf::F11::Abs<T> abs;
00208         Vtl::ImAlg::Tools::copy_1_1(data,w,h,w,temp,w,abs);
00209
00210         Vtl::ImAlg::Tools::copy_1_1(temp,w,h,w,(*img)[0],img->NextLineShift(),func);
00211
00212         // сохраняем результат в файл
00213         {
00214             //создаем имя файла:
00215             std::ostringstream os;
00216             os <<   YFileSys::getNameWithoutExt(base_name)
00217                 << std::setprecision(2) << std::setiosflags(std::ios::showpoint|std::ios::fixed)
00218                 << "_#_"<<postfix<<"_sigma=" ;
00219             if(sigma<10)
00220                 os << "0";
00221             os << sigma
00222                 << ".tif";//YFileSys::getExt(base_name);
00223             std::string outfname=os.str();
00224             //Сохраняем изображение
00225 			::AImageSave(img,outfname.c_str());
00226         }
00227     }
00228
00230   // function is used while curvature estimation, NEEDS CORRECTION
00231     inline void SaveImage(AImageMem8* img, float sigma, const char *base_name, const char *postfix)
00232     {
00233         //Выполняем копирование с применением суммарного функтора к каждому элементу данных (пикселю)
00234
00235         // сохраняем результат в файл
00236         {
00237             //создаем имя файла:
00238             std::ostringstream os;
00239             os <<   YFileSys::getNameWithoutExt(base_name)
00240                 << std::setprecision(2) << std::setiosflags(std::ios::showpoint|std::ios::fixed)
00241                 << "_#_"<<postfix<<"_sigma=" ;
00242             if(sigma<10)
00243                 os << "0";
00244             os << sigma
00245                 << YFileSys::getExt(base_name);
00246             std::string outfname=os.str();
00247             //Сохраняем изображение
00248 			::AImageSave(img,outfname.c_str());
00249         }
00250     }
00251 } // namespace Tests
00252
00253 #endif // SAVE_IMAGE_ARRAY_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл sfm_calibration.h

  • Файлы
  • Список членов всех файлов

sfm_calibration.h

См. документацию.
00001 #ifndef _SFM_CALIBRATION_H_
00002 #define _SFM_CALIBRATION_H_
00004 #include <iostream>
00005 #include <iomanip>
00006 #include <algorithm>
00007 #include <functional>      // For greater<int>( )
00008 #include "loki_typeManip.h"
00009 //#include "loki_Typelist.h"
00010 #include "loki_static_check.h"
00011 #include "num_linalg.h"
00012 #include "num_optimization.h"
00013 #include "alexandresku.h"
00014 #include "vtl_meta_base.h"
00015
00016 #include "sfm_types.h"
00017 #include "sfm_dbg.h"
00019 //template<typename T> struct Fmt;
00020
00021 namespace Basics3D
00022 {
00025     template<typename T>
00026     struct FmTools
00027     {
00028         typedef Vtl::NumAlg::Lin::ublas::c_matrix<T, 3, 3> Matrix;
00029         typedef Vtl::NumAlg::Lin::ublas::c_vector<T, 3> Vector3;
00030         typedef Vtl::NumAlg::Lin::ublas::c_matrix<T, 3, 4> Matrix_3x4;
00031         typedef typename Vtl::NumAlg::Lin::ublas::c_matrix<T, 3, 3>::value_type value_type;
00032
00033         // Построение калибровочной матрицы по компонентам
00034         static Matrix Build_K(T focus_x,T focus_y,T u_0=T(0), T v_0=T(0), T skew=T(0))
00035         {
00036             Matrix K;
00037             Build_K(K,focus_x,focus_y,u_0,v_0,skew);
00038             return K;
00039         }
00040         // Построение калибровочной матрицы по компонентам
00041         static void Build_K(Matrix& K,T focus_x,T focus_y,T u_0=T(0), T v_0=T(0), T skew=T(0))
00042         {
00043             K(0,0)=focus_x;  K(0,1)=skew;     K(0,2)=u_0;
00044             K(1,0)=0;        K(1,1)=focus_y;  K(1,2)=v_0;
00045             K(2,0)=0;        K(2,1)=0;        K(2,2)=1;
00046         }
00047         // Построение калибровочной матрицы по компонентам, только фокус, principal points and skew is zero, aspect ratio is 1.
00048         static Matrix Build_K(T focus)
00049         {
00050             Matrix K;
00051             Build_K(K,focus);
00052             return K;
00053         }
00054         // Построение калибровочной матрицы по компонентам, только фокус, principal points and skew is zero, aspect ratio is 1.
00055         static void Build_K(Matrix& K,T focus)
00056         {
00057             K(0,0)=focus;    K(0,1)=0;      K(0,2)=0;
00058             K(1,0)=0;        K(1,1)=focus;  K(1,2)=0;
00059             K(2,0)=0;        K(2,1)=0;      K(2,2)=1;
00060         }
00062         static Matrix fm2essential(const Matrix& K2,const Matrix& F,const Matrix& K1)
00063         {
00064             Matrix E;
00065             fm2essential(E,K2,F,K1);
00066             return E;
00067         }
00069         static void fm2essential(Matrix& E,const Matrix& K2,const Matrix& F,const Matrix& K1)
00070         {
00071             using namespace Vtl::NumAlg::Lin::ublas;
00072             E= prod(trans(K2),F);
00073             E= prod(F,K1);
00074         }
00076         static Matrix essential2fm(const Matrix& K2,const Matrix& E,const Matrix& K1)
00077         {
00078             Matrix F;
00079             fm2essential(F,K2,E,K1);
00080             return F;
00081         }
00083         static void essential2fm(Matrix& F,const Matrix& K2,const Matrix& E,const Matrix& K1)
00084         {
00085             using namespace Vtl::NumAlg::Lin::ublas;
00086             using namespace Vtl::NumAlg::Lin;
00087             Matrix Kinv;
00088             svd::inverse_save(Kinv,K2,1.0e-06);
00089             F= prod(trans(Kinv),F);
00090             svd::inverse_save(Kinv,K1,1.0e-06);
00091             F= prod(F,Kinv);
00092         }
00093         // Построение проективной матрицы P=K*(R|t)
00094         static void Build_P(Matrix_3x4& P,const Matrix& K,const Matrix& R,const Vector3& t)
00095         {
00096             using namespace Vtl::NumAlg::Lin::ublas;
00097             matrix_slice<Matrix_3x4> RP(P, slice(0, 1, 3), slice(0, 1, 3) );
00098             RP=R;
00099             matrix_column<Matrix_3x4> tP( P, 3 );
00100             tP=t;
00101             P=prod(K,P);
00102         }
00103     };
00104
00106     namespace Fm2Essential
00107     {
00108         // Предполагается работа с матрицами ublas::c_matrix<T, N, N>. Так как этот класс не
00109         // имеет полей для размеров матрицы типа enum (хотя это и неестественно, так как c_matrix - класс матриц
00110         // размера известного на момент компиляции), то для получения этих размеров используется специализация
00111         // класса DirectMinimization.
00112         template<class Matrix>
00113         class DirectMinimization;
00114         // Специализация класса DirectMinimization для работы с матрицами ublas::c_matrix<T, 3, 3>.
00115         template<typename T,int N>
00116         struct DirectMinimization<Vtl::NumAlg::Lin::ublas::c_matrix<T, N, N> >
00117         {
00118             enum {n=N};
00119             typedef Vtl::NumAlg::Lin::ublas::c_matrix<T, N, N> Matrix;
00120             typedef Vtl::NumAlg::Lin::ublas::c_vector<T, N>  Vector;
00121             typedef typename Matrix::value_type value_type;
00122             typedef typename Matrix::size_type size_type;
00123             const Matrix F;
00124             Matrix E;
00125             Matrix K1;
00126             Matrix K2;
00127         public:
00128             DirectMinimization(const Matrix& Fm)
00129                 : F(Fm)
00130             {
00131                 LOKI_STATIC_CHECK(N==3,Fundamental_matrix_should_be_3x3_in_size);
00132                 using namespace Vtl::NumAlg::Lin::ublas;
00133
00134                 std::cout << "Fm2Essential" << std::endl;
00135
00136             }
00137             void operator()()
00138             {// Some experiments can be maked here - call propere function
00139
00140                 std::cout << "========== Direct search ============" <<std::endl;
00141 // Оба варианта работают, естественно второй лучше. Первый имеет смысл только если локальный минимум не один.
00142 #if 0
00143                 value_type focus = full_search();
00144
00145                 K1=FmTools<value_type>::Build_K(focus);
00146                 K2=K1;
00147                 E=FmTools<value_type>::fm2essential(K2,F,K1);
00148                 {
00149                     std::cout << "====== Optimal E via direct search =====" <<std::endl;
00150                     std::cout << " focus= " << focus <<std::endl ;
00151                     std::cout << " E= " << std::endl ;
00152                     std::cout << Dbg::Fmt<Matrix,Dbg::Fmt<Matrix>::RowsAndCols>(E) <<std::endl;
00153                     Matrix U=E;
00154                     value_type eps = find_sing_value_dev(U);
00155                     std::cout << " |s1-s2|/(s1+s2)= " << eps << std::endl;
00156                 }
00157 #else
00158                 value_type focus = optimal_search();
00159
00160                 K1=FmTools<value_type>::Build_K(focus);
00161                 K2=K1;
00162                 E=FmTools<value_type>::fm2essential(K2,F,K1);
00163
00164                 {
00165                     std::cout << "====== Optimal E via fast direct search =====" <<std::endl;
00166                     std::cout << " focus= " << focus <<std::endl ;
00167                     std::cout << " E= " << std::endl ;
00168                     std::cout << Dbg::Fmt<Matrix,Dbg::Fmt<Matrix>::RowsAndCols>(E) <<std::endl;
00169                     Matrix U=E;
00170                     value_type eps = find_sing_value_dev(U);
00171                     std::cout << " |s1-s2|/(s1+s2)= " << eps << std::endl;
00172                 }
00173 #endif
00174             }
00175         private:
00176             value_type optimal_search()
00177             {
00178                 struct F
00179                 {
00180                     DirectMinimization& dm;
00181                     F(DirectMinimization& obj) : dm(obj) {}
00182                     value_type operator()(value_type focus) {return dm.build_E(focus);}
00183                 };
00184                 const value_type f_min=0.1;
00185                 const value_type f_max=10.0;
00186                 value_type f_opt= Vtl::NumAlg::Opt::Fmin( F(*this) , f_min , f_max );
00187                 return f_opt;
00188             }
00189             value_type full_search()
00190             {
00191                 const int count=30;
00192                 value_type f_min=0.1;
00193                 value_type f_max=10.0;
00194                 value_type f_step=(f_max-f_min)/count;
00195                 value_type f_opt=f_min;
00196                 value_type eps;
00197                 for(int i=0; i<5 ; ++i)
00198                 {
00199                     f_opt=full_search_subproc(f_min,f_max,f_step,eps);
00200                     f_min=f_opt-f_step;
00201                     f_max=f_opt+f_step;
00202                     f_step=(f_max-f_min)/count;
00203                 }
00204                 std::cout << " |s1-s2|/(s1+s2)= " << eps << std::endl;
00205                 return f_opt;
00206             }
00207             value_type full_search_subproc(value_type f_min,value_type f_max,value_type f_step,value_type& eps)
00208             {
00209                 value_type f_opt=f_min;
00210                 eps=build_E(f_min);
00211                 for(value_type f=f_min+f_step ; f<f_max; f+=f_step)
00212                 {
00213                     value_type eps2=build_E(f);
00214                     if(eps2<eps)
00215                     {
00216                         eps=eps2;
00217                         f_opt=f;
00218                         std::cout << " |s1-s2|/(s1+s2)= " << eps << std::endl;
00219                     }
00220                 }
00221                 return f_opt;
00222             }
00223             value_type build_E(value_type focus)
00224             {
00225                 using namespace Vtl::NumAlg::Lin::ublas;
00226                 K1=FmTools<value_type>::Build_K(focus);
00227                 // K1 == K2 - both cameras supposed identical
00228                 Matrix U=FmTools<value_type>::fm2essential(K1,F,K1);
00229                 return find_sing_value_dev(U);
00230             }
00232             value_type find_sing_value_dev(Matrix& E)
00233             {
00234                 using namespace Vtl::NumAlg::Lin::ublas;
00235                 Matrix V;
00236                 Vector W;
00237                 Vector rv1;
00238                 Vtl::NumAlg::Lin::svd::decomp(E,W,V,rv1,false,false);
00239
00240                 Vtl::NumAlg::Implicit::Sort<Vector,Vtl::NumAlg::Implicit::Pred::gt<Vector> > s(W);
00241                 // А можно написать так:
00242                 //Vtl::NumAlg::Implicit::Pred::gt<Vector> decrement_order(W);
00243                 //Vtl::NumAlg::Implicit::Sort<Vector> s(W,decrement_order);
00244                 value_type   sigma_1( W(s[0]) );
00245                 value_type   sigma_2( W(s[1]) );
00246                 return std::abs(sigma_1-sigma_2)/(sigma_1+sigma_2);
00247             }
00248
00249         };
00254         template<class Matrix>
00255         class KruppaEq;
00261         template<typename T,int N>
00262         class KruppaEq<Vtl::NumAlg::Lin::ublas::c_matrix<T, N, N> >
00263         {
00264             enum {n=N};
00265             typedef Vtl::NumAlg::Lin::ublas::c_matrix<T, N, N> Matrix;
00266             typedef Vtl::NumAlg::Lin::ublas::c_vector<T, N>  Vector;
00267             typedef typename Matrix::value_type value_type;
00268             typedef typename Matrix::size_type size_type;
00269             const Matrix F;
00270             Matrix E[6];
00271             Matrix K1[6];
00272             Matrix K2[6];
00273         public:
00274             // Now Kruppa equations in form:
00275             //
00276             //  (0) = (1) = (2)
00277             //
00278             // (i) = (j) form equation
00279             //
00280             //  k0 = i*2;
00281             //  k1 = k1+1;
00282             //  k2 = j*2;
00283             //  k3 = j*2+1;
00284             //
00285             //   a[k0]*y + b[k0]   a[k2]*y + b[k2]
00286             //   --------------- = ----------------
00287             //   a[k1]*x + b[k1]   a[k3]*x + b[k3]
00288             //
00289             //  (a[k0]*y + b[k0])*(a[k3]*x + b[k3])-(a[k1]*x + b[k1])*(a[k2]*y + b[k2]) =0
00290             //
00291             // Or, rewriting:
00292             //
00293             //    a[k0]*a[k3]*x*y + a[k0]*b[k3]*y + b[k0]*a[k3]*x + b[k0]*b[k3]
00294             //   -
00295             //    a[k1]*a[k2]*x*y + b[k1]*a[k2]*y + a[k1]*b[k2]*x + b[k1]*b[k2] =0
00296             //
00297             // Or, rewriting:
00298             //
00299             //           | a[k0]  a[k1] |          | a[k0]  b[k1] |          | b[k0]  a[k1] |      | b[k0]  b[k1] |
00300             //  xy * det |              | + y * det|              | + x * det|              | + det|              | = 0
00301             //           | a[k2]  a[k3] |          | a[k2]  b[k3] |          | b[k2]  a[k3] |      | b[k2]  b[k3] |
00302             //
00303             // i_coef           0                         1                         2                     3
00304             // i_col        0       1                 0       1                 0       1             0       1
00305             // i_coef(hex):    00                        01                        10                    11
00306             // desired:     0       0                 0       1                 1       0             1       1
00307             // -------------------------------------------------------------------------------------------------------
00308             class Km
00309             {
00310                 value_type a[6];
00311                 value_type b[6];
00312             public:
00313                 Km() {}
00314                 template<int i>
00315                 void build_expression(value_type  multiplier,const Vtl::NumAlg::Lin::ublas::matrix_column<Matrix>& v_1,const Vtl::NumAlg::Lin::ublas::matrix_column<Matrix>& v_2)
00316                 {
00317                     mul(a[i],b[i],multiplier, v_1, v_2 );
00318                 }
00319                 template<int ratio_1,int ratio_2>
00320                 void build_equation_coef(value_type* coef)
00321                 {
00322                     coef[0]=det<ratio_1,ratio_2,0>();
00323                     coef[1]=det<ratio_1,ratio_2,1>();
00324                     coef[2]=det<ratio_1,ratio_2,2>();
00325                     coef[3]=det<ratio_1,ratio_2,3>();
00326                 }
00327                 void print_ab()
00328                 {
00329                     std::cout << std::resetiosflags(std::ios::showpos);
00330                     Vtl::Meta::print_array<6>(a,"a",false);
00331                     Vtl::Meta::print_array<6>(b,"b",false);
00332                 }
00333                 void to_single_focus(value_type* coef)
00334                 {
00335                     coef[1]+=coef[2];
00336                     coef[2]=coef[3];
00337                     coef[1]/=coef[0];
00338                     coef[2]/=coef[0];
00339                     coef[0]/=coef[0];
00340                 }
00341                 void solve_qe(const value_type* coef,value_type& x1,value_type& x2)
00342                 {
00343                     value_type d=Vtl::sqr(coef[1])-4*coef[0]*coef[2];
00344                     std::cout << "Kruppa Discriminant = " << d <<std::endl;
00345                     if( coef[1] > 0 )
00346                     {
00347                         x1=(-coef[1]-sqrt(d))/(2*coef[0]);
00348                         x2=coef[2]/x1;
00349                     }
00350                     else
00351                     {
00352                         x2=(-coef[1]+sqrt(d))/(2*coef[0]);
00353                         x1=coef[2]/x2;
00354                     }
00355                     x1=Vtl::NumAlg::sign(sqrt(std::abs(x1)),x1);
00356                     x2=Vtl::NumAlg::sign(sqrt(std::abs(x2)),x2);
00357                 }
00358             private:
00359                 void mul(value_type& a,value_type& b,value_type coef,const Vtl::NumAlg::Lin::ublas::matrix_column<Matrix> v1,const Vtl::NumAlg::Lin::ublas::matrix_column<Matrix> v2)
00360                 {
00361                     a=coef*(v1[0]*v2[0]+v1[1]*v2[1]);
00362                     b=coef*(v1[2]*v2[2]);
00363                 }
00364                 template<int i_coef,int i_col,int k>
00365                 value_type col() const
00366                 {
00367                     return ab_selector<k>(Loki::Int2Type< ( (i_coef/(2-i_col)) & 1 ) >() );
00368                 }
00369                 template<int k>
00370                 value_type ab_selector(Loki::Int2Type<0> ) const {return a[k];}
00371                 template<int k>
00372                 value_type ab_selector(Loki::Int2Type<1> ) const {return b[k];}
00373                 template<int ratio_1,int ratio_2,int i_coef>
00374                 value_type det()
00375                 {
00376                     enum {k0=ratio_1*2};
00377                     enum {k1=k0+1};
00378                     enum {k2=ratio_2*2};
00379                     enum {k3=k2+1};
00380                     return col<i_coef,0,k0>()*col<i_coef,1,k3>()-col<i_coef,0,k2>()*col<i_coef,1,k1>();
00381                 }
00382             };
00383         public:
00384             KruppaEq(const Matrix& Fm)
00385                 : F(Fm)
00386             {
00387                 LOKI_STATIC_CHECK(N==3,Fundamental_matrix_should_be_3x3_in_size);
00388                 using namespace Vtl::NumAlg::Lin::ublas;
00389
00390                 std::cout << std::endl << "===== Kruppa equations =============" << std::endl;
00391
00392                 Matrix U=F;
00393                 Matrix V;
00394                 Vector W;
00395                 Vector rv1;
00396                 Vtl::NumAlg::Lin::svd::decomp(U,W,V,rv1);
00397
00398                 Vtl::NumAlg::Implicit::Sort<Vector,Vtl::NumAlg::Implicit::Pred::gt<Vector> > s(W);
00399
00400                 value_type        sigma_1( W[ s[0] ] );
00401                 matrix_column<Matrix> u_1( U, s[0]   );
00402                 matrix_column<Matrix> v_1( V, s[0]   );
00403                 value_type        sigma_2( W[ s[1] ] );
00404                 matrix_column<Matrix> u_2( U, s[1]   );
00405                 matrix_column<Matrix> v_2( V, s[1]   );
00406     #if 1
00407                 for(int i=0; i<3; ++i)
00408                 {
00409                     std::cout << "    W[" << i << "]=" << W[i] << std::endl;
00410                     std::cout << "    s[" << i << "].index=" << s[i] << std::endl;
00411                     std::cout << "    s[" << i << "].sigma=" << s[i] << std::endl;
00412                 }
00413                 std::cout << "U" << std::endl;
00414                 std::cout << Dbg::Fmt<Matrix,Dbg::Fmt<Matrix>::RowsAndCols>(U) <<std::endl;
00415                 std::cout << "V" << std::endl;
00416                 std::cout << Dbg::Fmt<Matrix,Dbg::Fmt<Matrix>::RowsAndCols>(V) <<std::endl;
00417
00418                 std::cout << "  sigma_1=" << sigma_1 << "  sigma_2=" << sigma_2 << std::endl;
00419                 std::cout << "u_1 :  " << u_1 << std::endl;
00420                 std::cout << "v_1 :  " << v_1 << std::endl;
00421                 std::cout << "u_2 :  " << u_2 << std::endl;
00422                 std::cout << "v_2 :  " << v_2 << std::endl;
00423     #endif
00424                 // Now Kruppa equations in form:
00425                 //
00426                 //   a[0]*y + b[0]   a[2]*y + b[2]   a[4]*y + b[4]
00427                 //   ------------- = ------------- = -------------
00428                 //   a[1]*x + b[1]   a[3]*x + b[3]   a[5]*x + b[5]
00429                 //
00430                 //  Where y = focus_2^2 and x == focus_1^2
00431                 //
00432                 //  (0) = (1) = (2)
00433                 //
00434
00435                 value_type a[4];
00436                 Km km;
00437                 km.build_expression<0>( 1                 , u_2, u_2 );
00438                 km.build_expression<1>( Vtl::sqr(sigma_1) , v_1, v_1 );
00439                 km.build_expression<2>( -1                , u_1, u_2 );
00440                 km.build_expression<3>( sigma_1*sigma_2   , v_1, v_2 );
00441                 km.build_expression<4>( 1                 , u_1, u_1 );
00442                 km.build_expression<5>( Vtl::sqr(sigma_2) , v_2, v_2 );
00443                 km.print_ab();
00444                 value_type x1;
00445                 value_type x2;
00446
00447                 std::cout << "--------------------------" <<std::endl;
00448                 km.build_equation_coef<0,1>(a);
00449                 Vtl::Meta::print_array<4>(a,"eq_0_1",false);
00450                 km.to_single_focus(a);
00451                 Vtl::Meta::print_array<3>(a,"eq_0_1",false);
00452                 km.solve_qe(a,x1,x2);
00453                 std::cout << "x1= " << x1 << "      x2= " << x2 <<std::endl;
00454                 build_E(x1,0);
00455                 build_E(x2,1);
00456
00457                 std::cout << "--------------------------" <<std::endl;
00458                 km.build_equation_coef<0,2>(a);
00459                 Vtl::Meta::print_array<4>(a,"eq_0_2",false);
00460                 km.to_single_focus(a);
00461                 Vtl::Meta::print_array<3>(a,"eq_0_2",false);
00462                 km.solve_qe(a,x1,x2);
00463                 std::cout << "x1= " << x1 << "      x2= " << x2 <<std::endl;
00464                 build_E(x1,2);
00465                 build_E(x2,3);
00466
00467                 std::cout << "--------------------------" <<std::endl;
00468                 km.build_equation_coef<1,2>(a);
00469                 Vtl::Meta::print_array<4>(a,"eq_1_2",false);
00470                 km.to_single_focus(a);
00471                 Vtl::Meta::print_array<3>(a,"eq_1_2",false);
00472                 km.solve_qe(a,x1,x2);
00473                 std::cout << "x1= " << x1 << "      x2= " << x2 <<std::endl;
00474                 build_E(x1,4);
00475                 build_E(x2,5);
00476             }
00477         private:
00478             value_type build_E(value_type focus,int hypothesis)
00479             {
00480                 using namespace Vtl::NumAlg::Lin::ublas;
00481
00482                 std::cout << std::endl << "Hypothesis[  "  << hypothesis << " ]:  focus= "<< focus << std::endl;
00483
00484                 K1[hypothesis]=FmTools<value_type>::Build_K(focus);
00485                 K2[hypothesis]=K1[hypothesis];
00486                 // K1 == K2 - both cameras supposed identical
00487                 E[hypothesis]=FmTools<value_type>::fm2essential(K2[hypothesis],F,K1[hypothesis]);
00488                 Matrix U=E[hypothesis];
00489                 value_type   eps = find_sing_value_dev(U);
00490                 std::cout << " |s1-s2|/(s1+s2)= " << eps << std::endl;
00491                 return eps;
00492             }
00494             value_type find_sing_value_dev(Matrix& E)
00495             {
00496                 using namespace Vtl::NumAlg::Lin::ublas;
00497                 Matrix V;
00498                 Vector W;
00499                 Vector rv1;
00500                 Vtl::NumAlg::Lin::svd::decomp(E,W,V,rv1,false,false);
00501
00502                 Vtl::NumAlg::Implicit::Sort<Vector,Vtl::NumAlg::Implicit::Pred::gt<Vector> > s(W);
00503                 value_type   sigma_1( W(s[0]) );
00504                 value_type   sigma_2( W(s[1]) );
00505                 std::cout << " Sigmas = " << sigma_1 << "  "<< sigma_2 << "  "<< W(s[2]) << std::endl;
00506                 return std::abs(sigma_1-sigma_2)/(sigma_1+sigma_2);
00507             }
00508         };
00511         template<typename T>
00512         class CameraPoseFromEssential
00513         {
00514             typedef T value_type;
00515             enum { N3=3};
00516             typedef Vtl::NumAlg::Lin::ublas::c_matrix<value_type, N3, N3> Matrix_3x3;
00517             typedef Vtl::NumAlg::Lin::ublas::c_vector<value_type, N3> Vector_3;
00518             enum { N4=4};
00519             typedef Vtl::NumAlg::Lin::ublas::c_matrix<value_type, N3, N4> Matrix_4x3;
00520             typedef Vtl::NumAlg::Lin::ublas::c_vector<value_type, N4> Vector_4;
00521             const Matrix_3x3& E;
00522             const Matrix_3x3  W;
00523             const Matrix_3x3  WT;
00524         public:
00525             Matrix_3x3  R0;
00526             Vector_3  t0;
00527             Matrix_3x3  R;
00528             Vector_3  t;
00529             CameraPoseFromEssential(const Matrix_3x3 E_)
00530                 : E(E_) , W(build_W()), WT(Vtl::NumAlg::Lin::ublas::trans(W))
00531             {
00532                 using namespace Vtl::NumAlg::Lin::ublas;
00533                 using namespace Vtl::NumAlg::Lin;
00534                 using namespace Vtl::NumAlg; //sign
00535
00536                 Matrix_3x3 U=E;
00537                 Matrix_3x3 V;
00538                 Vector_3 sigma;
00539                 Vector_3 rv1;
00540                 Vtl::NumAlg::Lin::svd::decomp(U,sigma,V,rv1);
00541
00542                 Vtl::NumAlg::Lin::svd::sort(U,sigma,V);
00543
00544                 matrix_column<Matrix_3x3> u( U, 2 );
00545                 Vector_3 u3(u);
00546
00547                 V=trans(V);
00548                 Matrix_3x3 R1=mult(U,W,V);
00549                 Matrix_3x3 R2=mult(U,WT,V);
00550
00551                 Vector_3 d1;
00552                 d1(0)=0; d1(1)=0; d1(2)=1;
00553                 Vector_3   d2=prod(R1,d1);
00554                 value_type d2_norm = boost::numeric::ublas::blas_1::dot(d2,d2);
00555                 value_type deg1 = boost::numeric::ublas::blas_1::dot(d1,d2)/sqrt(d2_norm);
00556                 std::cout << "Camera rotation: deg = " << acos(deg1)*180/M_PI << "      d2_norm = " << d2_norm << std::endl;;
00557                 std::cout << "with z direction: " << d2 << std::endl;;
00558                            d2=prod(R2,d1);
00559                            d2_norm = boost::numeric::ublas::blas_1::dot(d2,d2);
00560                 value_type deg2 = boost::numeric::ublas::blas_1::dot(d1,d2)/sqrt(d2_norm);
00561                 std::cout << "Camera rotation: deg = " << acos(deg2)*180/M_PI << "      d2_norm = " << d2_norm << std::endl;;
00562                 std::cout << "with z direction: " << d2 << std::endl;;
00563
00564                 if( sign(1,deg1) == sign(1,deg2))
00565                     std::cout << "BOTH CAMERAROTATION IS APPROPRIATE !!!! NOT PROCESSED! "  << std::endl;;
00566                 //Set R|t values
00567                 Vector_3 d;
00568                 if(deg1>0)
00569                 {
00570                     R=R1;
00571                     d=d1;
00572                 }
00573                 else
00574                 {
00575                     R=R2;
00576                     d=d2;
00577                 }
00578                 value_type ofs = boost::numeric::ublas::blas_1::dot(u3,d);
00579                 t;
00580                 if(ofs > 0)
00581                     t=u3;
00582                 else
00583                     t=-u3;
00584                 std::cout << "translation selected: " << t << "      ofs = " << ofs << std::endl;;
00585                 R0=ublas::identity_matrix<value_type>(N3,N3);
00586                 t0=boost::numeric::ublas::zero_vector<value_type>(N3);
00587
00588             }
00589         private:
00590             static Matrix_3x3 mult(const Matrix_3x3& a,const Matrix_3x3& b,const Matrix_3x3& c)
00591             {
00592                 using namespace Vtl::NumAlg::Lin::ublas;
00593                 Matrix_3x3 r=prod(a,b);
00594                 return prod(r,c);
00595             }
00596             static Matrix_3x3 build_W()
00597             {
00598                 Matrix_3x3 w;
00599                 build_W(w);
00600                 return w;
00601             }
00602             static void build_W(Matrix_3x3& w )
00603             {
00604                 w(0,0) = 0;    w(0,1) = -1;    w(0,2) = 0;
00605                 w(1,0) = 1;    w(1,1) =  0;    w(1,2) = 0;
00606                 w(2,0) = 0;    w(2,1) =  0;    w(2,2) = 1;
00607             }
00608         };
00609     }//namespace Fm2Essential;
00610 }//namespace Basics3D
00612 #endif //_SFM_CALIBRATION_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл sfm_dbg.h

  • Файлы
  • Список членов всех файлов

sfm_dbg.h

См. документацию.
00001 #ifndef _SFM_DBG_H_
00002 #define _SFM_DBG_H_
00004 #include <iostream>
00005 #include <iomanip>
00006 #include "loki_typeManip.h"
00007 #include "loki_static_check.h"
00008 #include "num_linalg.h"
00010
00012 namespace Dbg
00013 {
00014     namespace Format
00015     {
00016         //Эквивалент формата printf("%+12.5f",value);
00017         struct F
00018         {
00019             const int width_;
00020             const int prec_;
00021             const bool sign_;
00022             F(int width,int prec,bool sign) : width_(width),prec_(prec),sign_(sign) {}
00023             void eachtime(std::ostream& os)
00024             {
00025                 os<< std::setw(width_);
00026             }
00027         };
00028     }//namespace Format
00029     template<typename T,int format_type=0> struct Fmt
00030     {
00031         const T & value;
00032         explicit Fmt(const T& v) : value(v) {}
00033         std::ostream& write(std::ostream& os)
00034         {
00035             os << value;
00036             return os;
00037         }
00038
00039     };
00040
00041
00042
00043     template<typename T,int N,int M,int format>
00044     struct Fmt<Vtl::NumAlg::Lin::ublas::c_matrix<T,M,N>,format >
00045     {
00046         typedef Vtl::NumAlg::Lin::ublas::c_matrix<T,M,N> Matrix;
00047         const Matrix& value;
00048         enum Format
00049         {
00050             Default,
00051             RowsAndCols
00052         };
00053         //Format f;
00054         explicit Fmt(Matrix& m): value(m) {}
00055         std::ostream& write(std::ostream& os) const
00056         {
00057             write_(os,Loki::Int2Type<format>() );
00058             return os;
00059         }
00060     private:
00061         void write_(std::ostream& os,Loki::Int2Type<Default> ) const
00062         {
00063             os<< value;
00064         }
00065         void write_(std::ostream& os,Loki::Int2Type<RowsAndCols> ) const
00066         {
00067             //std::ios::iostate state=os.rdstate();
00068             Dbg::Format::F fm(5+9,5,true);
00069             os<< fm;
00070             for(Matrix::size_type i=0; i< value.size1(); ++i)
00071             {
00072                 for(Matrix::size_type j=0; j< value.size2(); ++j)
00073                 {
00074                     fm.eachtime(os);
00075                     os << value(i,j);
00076                 }
00077                 os << std::endl;
00078             }
00079             //os.setstate(state,false);
00080         }
00081
00082     };
00083 }//namespace Dbg
00085 template<typename T,int format>
00086 std::ostream& operator<<(std::ostream& os,const Dbg::Fmt<T,format>& fmt)
00087 {
00088     return fmt.write(os);
00089 }
00090 std::ostream& operator<<(std::ostream& os,const Dbg::Format::F& fmt)
00091 {
00092     if(fmt.sign_)
00093         os << std::setiosflags(std::ios::showpoint|std::ios::fixed|std::ios::showpos);
00094     else
00095         os << std::setiosflags(std::ios::showpoint|std::ios::fixed);
00096     os << std::setprecision(fmt.prec_);
00097     std::setw(fmt.width_);
00098     return os;
00099 }
00101 #endif //_SFM_DBG_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл sfm_export_3D_model.h

  • Файлы
  • Список членов всех файлов

sfm_export_3D_model.h

См. документацию.
00001 //file #include "sfm_export_3D_model.h"
00002 #ifndef _SFM_EXPORT_3D_MODEL_H_
00003 #define _SFM_EXPORT_3D_MODEL_H_
00005 #include "num_linalg.h"
00006 #include "sfm_quaternion.h"
00008 namespace Basics3D
00009 {
00010 namespace Structure
00011 {
00014     template<typename T>
00015     static typename Types<T>::Vector_3 FindTranslationToObjectCenterOfMass(const std::vector<Pt<T> >& points)
00016     {
00017         typedef typename Types<T>::Vector_3 Vector_3;
00018         typedef typename Types<T>::value_type value_type;
00019         using namespace boost::numeric::ublas;
00020         Vector_3 cm; //object center of mass
00021         cm=zero_vector<value_type>(3);
00022         {
00023             size_t count=0;
00024             for (size_t i = 0; i < points.size() ; ++i)
00025             {
00026                 if(points[i].flag == PointStatus::Ok)
00027                 {
00028                     cm+=points[i].p3D;
00029                     ++count;
00030                 }
00031             }
00032             cm/=count;
00033         }
00034         return cm;
00035     }
00038     template<typename T>
00039     static T FindCameraQuaternion(const typename Types<T>::Matrix_3x3& R,typename Types<T>::Vector_3& direction)
00040     {
00041         typedef typename Types<T>::Vector_3 Vector_3;
00042         typedef typename Types<T>::value_type value_type;
00043         typedef typename Types<value_type>::Matrix_3x3 Matrix_3x3;
00044         value_type angle=3.14;
00045         {
00046             Quaternion<value_type> qR(R);
00047             {//Temporary test - enlarge finded angle
00048                 Vector_3 v;
00049                 Quaternion<value_type> tmp(qR);
00050                 v=tmp.toRot(angle);
00051                 std::cout << "Quaternion angle=" << angle*180/M_PI <<std::endl;
00052                 //angle*=4;
00053                 //angle=-angle;
00054                 v(0)=-v(0); v(1)=-v(1); v(2)=v(2);
00055                 qR=Quaternion<value_type>(v,angle);
00056             }
00057             Vector_3 v;
00058             v(0)=1;v(1)=0;v(2)=0;
00059             Quaternion<value_type> qV(v,M_PI);
00060             //Сначала поворот камеры в 3D мире qR , затем поворот к системе координат VRML qV , Т.е. qV * qR .
00061             Quaternion<value_type> qRes(qV*qR);
00062             //Quaternion<value_type> qRes=qV*qR;
00063             direction=qRes.toRot(angle);
00064             direction=v;
00065             return angle;
00066         }
00067     }
00068
00069
00071     template<typename T>
00072     static void SaveVRML_AsPointsSet(const char* filename,const std::vector<Pt<T> >& points,const std::vector<CameraPos<T> >& cam)
00073     {
00074         typedef typename Types<T>::Vector_3 Vector_3;
00075         typedef typename Types<T>::value_type value_type;
00076         typedef typename Types<value_type>::Matrix_3x3 Matrix_3x3;
00077
00078         std::cout << "VRML:" << std::endl;
00079         for(size_t i=0; i<cam.size(); ++i)
00080         {
00081             std::cout << "cam # " << i << std::endl;
00082             std::cout << "R = " << cam[i].R << std::endl;
00083             std::cout << "t = " << cam[i].t << std::endl;
00084             std::cout << "focus= " << cam[i].focus << std::endl;
00085         }
00086
00087         //object center of mass
00088         Vector_3 cm=FindTranslationToObjectCenterOfMass<value_type>(points);
00089         std::cout << "Center of mass =" << cm << std::endl;
00090         Matrix_3x3 R2=cam[1].R;
00091         Vector_3 direction;
00092         value_type angle=FindCameraQuaternion<value_type>(R2,direction);
00093         std::cout << "angle =" << angle << std::endl;
00094         std::cout << "direction =" << direction << std::endl;
00095
00096         std::ofstream out(filename);
00097
00098         //std::string navig="EXAMINE";
00099         std::string navig="FLY";
00100         out
00101             << "#VRML V2.0 utf8" << std::endl << std::endl
00102             << "NavigationInfo {" << std::endl
00103 //          << " headlight FALSE" << std::endl
00104             << " type \"" << navig << "\"" << std::endl
00105             << "}" << std::endl
00106             << "Viewpoint" << std::endl
00107             << "{" << std::endl
00108             << "  position  " << cam[0].t(0)-cm(0) << " " << cam[0].t(1)-cm(1) << " " << cam[0].t(2)-cm(2) << " "  << std::endl
00109             << "  orientation 1 0 0 3.1415926" << std::endl
00110             << "  fieldOfView  0.985398 " << std::endl
00111             << "  description \"1\"" << std::endl
00112             << "}"  << std::endl << std::endl
00113             << "Viewpoint" << std::endl
00114             << "{" << std::endl
00115             << "  position  " << cam[1].t(0)-cm(0) << " " << cam[1].t(1)-cm(1) << " " << cam[1].t(2)-cm(2) << " "  << std::endl
00116             << "  orientation " << direction(0) << " "<< direction(1) << " "<< direction(2) << " "<< angle  << std::endl
00117             << "  fieldOfView  0.985398 " << std::endl
00118             << "  description \"2\"" << std::endl
00119             << "}"  << std::endl << std::endl
00121             << "DEF Point Shape" << std::endl
00122             << "          {" << std::endl
00123             << "            geometry Sphere {radius 0.01}" << std::endl
00124             << "            appearance Appearance" << std::endl
00125             << "            {" << std::endl
00126             << "              material Material" << std::endl
00127             << "              {" << std::endl
00128             << "                diffuseColor     0.8 0.55 0.4" << std::endl
00129             << "                shininess        0.3" << std::endl
00130             << "                specularColor    0 0 0.2" << std::endl
00131             << "                emissiveColor    0.1 0.1 0.1" << std::endl
00132             << "                ambientIntensity 0.5" << std::endl
00133             << "                transparency     0.0" << std::endl
00134             << "              }" << std::endl
00135             << "            }" << std::endl
00136             << "          }" << std::endl << std::endl;
00137
00138         for (size_t i = 0; i < points.size() ; ++i)
00139         {
00140             if(points[i].flag == PointStatus::Ok)
00141             {
00142                 out
00143                     << "Transform { translation " << -(points[i].p3D(0)-cm(0)) << " "
00144                     << -(points[i].p3D(1)-cm(0)) << " " << (points[i].p3D(2)-cm(2)) << std::endl
00145                     << "            children [ USE Point ]}" << std::endl;
00146             }
00147         }
00148
00149         out.close();
00150         out.flush();
00151     }
00152 }//namespace Structure
00153 }//namespace Basics3D
00155 #endif //_SFM_EXPORT_3D_MODEL_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл sfm_mesh_triangle.h

  • Файлы
  • Список членов всех файлов

sfm_mesh_triangle.h

См. документацию.
00001 /*****************************************************************************/
00002 /*                                                                           */
00003 /*  (triangle.h)                                                             */
00004 /*                                                                           */
00005 /*  Include file for programs that call Triangle.                            */
00006 /*                                                                           */
00007 /*  Accompanies Triangle Versions 1.3 and 1.4                                */
00008 /*  July 19, 1996                                                            */
00009 /*                                                                           */
00010 /*  Copyright 1996                                                           */
00011 /*  Jonathan Richard Shewchuk                                                */
00012 /*  2360 Woolsey #H                                                          */
00013 /*  Berkeley, California  94705-1927                                         */
00014 /*  jrs@cs.berkeley.edu                                                      */
00015 /*                                                                           */
00016 /*****************************************************************************/
00017
00018 /*****************************************************************************/
00019 /*                                                                           */
00020 /*  How to call Triangle from another program                                */
00021 /*                                                                           */
00022 /*                                                                           */
00023 /*  If you haven't read Triangle's instructions (run "triangle -h" to read   */
00024 /*  them), you won't understand what follows.                                */
00025 /*                                                                           */
00026 /*  Triangle must be compiled into an object file (triangle.o) with the      */
00027 /*  TRILIBRARY symbol defined (preferably by using the -DTRILIBRARY compiler */
00028 /*  switch).  The makefile included with Triangle will do this for you if    */
00029 /*  you run "make trilibrary".  The resulting object file can be called via  */
00030 /*  the procedure triangulate().                                             */
00031 /*                                                                           */
00032 /*  If the size of the object file is important to you, you may wish to      */
00033 /*  generate a reduced version of triangle.o.  The REDUCED symbol gets rid   */
00034 /*  of all features that are primarily of research interest.  Specifically,  */
00035 /*  the -DREDUCED switch eliminates Triangle's -i, -F, -s, and -C switches.  */
00036 /*  The CDT_ONLY symbol gets rid of all meshing algorithms above and beyond  */
00037 /*  constrained Delaunay triangulation.  Specifically, the -DCDT_ONLY switch */
00038 /*  eliminates Triangle's -r, -q, -a, -S, and -s switches.                   */
00039 /*                                                                           */
00040 /*  IMPORTANT:  These definitions (TRILIBRARY, REDUCED, CDT_ONLY) must be    */
00041 /*  made in the makefile or in triangle.c itself.  Putting these definitions */
00042 /*  in this file will not create the desired effect.                         */
00043 /*                                                                           */
00044 /*                                                                           */
00045 /*  The calling convention for triangulate() follows.                        */
00046 /*                                                                           */
00047 /*      void triangulate(triswitches, in, out, vorout)                       */
00048 /*      char *triswitches;                                                   */
00049 /*      struct triangulateio *in;                                            */
00050 /*      struct triangulateio *out;                                           */
00051 /*      struct triangulateio *vorout;                                        */
00052 /*                                                                           */
00053 /*  `triswitches' is a string containing the command line switches you wish  */
00054 /*  to invoke.  No initial dash is required.  Some suggestions:              */
00055 /*                                                                           */
00056 /*  - You'll probably find it convenient to use the `z' switch so that       */
00057 /*    points (and other items) are numbered from zero.  This simplifies      */
00058 /*    indexing, because the first item of any type always starts at index    */
00059 /*    [0] of the corresponding array, whether that item's number is zero or  */
00060 /*    one.                                                                   */
00061 /*  - You'll probably want to use the `Q' (quiet) switch in your final code, */
00062 /*    but you can take advantage of Triangle's printed output (including the */
00063 /*    `V' switch) while debugging.                                           */
00064 /*  - If you are not using the `q' or `a' switches, then the output points   */
00065 /*    will be identical to the input points, except possibly for the         */
00066 /*    boundary markers.  If you don't need the boundary markers, you should  */
00067 /*    use the `N' (no nodes output) switch to save memory.  (If you do need  */
00068 /*    boundary markers, but need to save memory, a good nasty trick is to    */
00069 /*    set out->pointlist equal to in->pointlist before calling triangulate(),*/
00070 /*    so that Triangle overwrites the input points with identical copies.)   */
00071 /*  - The `I' (no iteration numbers) and `g' (.off file output) switches     */
00072 /*    have no effect when Triangle is compiled with TRILIBRARY defined.      */
00073 /*                                                                           */
00074 /*  `in', `out', and `vorout' are descriptions of the input, the output,     */
00075 /*  and the Voronoi output.  If the `v' (Voronoi output) switch is not used, */
00076 /*  `vorout' may be NULL.  `in' and `out' may never be NULL.                 */
00077 /*                                                                           */
00078 /*  Certain fields of the input and output structures must be initialized,   */
00079 /*  as described below.                                                      */
00080 /*                                                                           */
00081 /*****************************************************************************/
00082
00083 /*****************************************************************************/
00084 /*                                                                           */
00085 /*  The `triangulateio' structure.                                           */
00086 /*                                                                           */
00087 /*  Used to pass data into and out of the triangulate() procedure.           */
00088 /*                                                                           */
00089 /*                                                                           */
00090 /*  Arrays are used to store points, triangles, markers, and so forth.  In   */
00091 /*  all cases, the first item in any array is stored starting at index [0].  */
00092 /*  However, that item is item number `1' unless the `z' switch is used, in  */
00093 /*  which case it is item number `0'.  Hence, you may find it easier to      */
00094 /*  index points (and triangles in the neighbor list) if you use the `z'     */
00095 /*  switch.  Unless, of course, you're calling Triangle from a Fortran       */
00096 /*  program.                                                                 */
00097 /*                                                                           */
00098 /*  Description of fields (except the `numberof' fields, which are obvious): */
00099 /*                                                                           */
00100 /*  `pointlist':  An array of point coordinates.  The first point's x        */
00101 /*    coordinate is at index [0] and its y coordinate at index [1], followed */
00102 /*    by the coordinates of the remaining points.  Each point occupies two   */
00103 /*    REALs.                                                                 */
00104 /*  `pointattributelist':  An array of point attributes.  Each point's       */
00105 /*    attributes occupy `numberofpointattributes' REALs.                     */
00106 /*  `pointmarkerlist':  An array of point markers; one int per point.        */
00107 /*                                                                           */
00108 /*  `trianglelist':  An array of triangle corners.  The first triangle's     */
00109 /*    first corner is at index [0], followed by its other two corners in     */
00110 /*    counterclockwise order, followed by any other nodes if the triangle    */
00111 /*    represents a nonlinear element.  Each triangle occupies                */
00112 /*    `numberofcorners' ints.                                                */
00113 /*  `triangleattributelist':  An array of triangle attributes.  Each         */
00114 /*    triangle's attributes occupy `numberoftriangleattributes' REALs.       */
00115 /*  `trianglearealist':  An array of triangle area constraints; one REAL per */
00116 /*    triangle.  Input only.                                                 */
00117 /*  `neighborlist':  An array of triangle neighbors; three ints per          */
00118 /*    triangle.  Output only.                                                */
00119 /*                                                                           */
00120 /*  `segmentlist':  An array of segment endpoints.  The first segment's      */
00121 /*    endpoints are at indices [0] and [1], followed by the remaining        */
00122 /*    segments.  Two ints per segment.                                       */
00123 /*  `segmentmarkerlist':  An array of segment markers; one int per segment.  */
00124 /*                                                                           */
00125 /*  `holelist':  An array of holes.  The first hole's x and y coordinates    */
00126 /*    are at indices [0] and [1], followed by the remaining holes.  Two      */
00127 /*    REALs per hole.  Input only, although the pointer is copied to the     */
00128 /*    output structure for your convenience.                                 */
00129 /*                                                                           */
00130 /*  `regionlist':  An array of regional attributes and area constraints.     */
00131 /*    The first constraint's x and y coordinates are at indices [0] and [1], */
00132 /*    followed by the regional attribute and index [2], followed by the      */
00133 /*    maximum area at index [3], followed by the remaining area constraints. */
00134 /*    Four REALs per area constraint.  Note that each regional attribute is  */
00135 /*    used only if you select the `A' switch, and each area constraint is    */
00136 /*    used only if you select the `a' switch (with no number following), but */
00137 /*    omitting one of these switches does not change the memory layout.      */
00138 /*    Input only, although the pointer is copied to the output structure for */
00139 /*    your convenience.                                                      */
00140 /*                                                                           */
00141 /*  `edgelist':  An array of edge endpoints.  The first edge's endpoints are */
00142 /*    at indices [0] and [1], followed by the remaining edges.  Two ints per */
00143 /*    edge.  Output only.                                                    */
00144 /*  `edgemarkerlist':  An array of edge markers; one int per edge.  Output   */
00145 /*    only.                                                                  */
00146 /*  `normlist':  An array of normal vectors, used for infinite rays in       */
00147 /*    Voronoi diagrams.  The first normal vector's x and y magnitudes are    */
00148 /*    at indices [0] and [1], followed by the remaining vectors.  For each   */
00149 /*    finite edge in a Voronoi diagram, the normal vector written is the     */
00150 /*    zero vector.  Two REALs per edge.  Output only.                        */
00151 /*                                                                           */
00152 /*                                                                           */
00153 /*  Any input fields that Triangle will examine must be initialized.         */
00154 /*  Furthermore, for each output array that Triangle will write to, you      */
00155 /*  must either provide space by setting the appropriate pointer to point    */
00156 /*  to the space you want the data written to, or you must initialize the    */
00157 /*  pointer to NULL, which tells Triangle to allocate space for the results. */
00158 /*  The latter option is preferable, because Triangle always knows exactly   */
00159 /*  how much space to allocate.  The former option is provided mainly for    */
00160 /*  people who need to call Triangle from Fortran code, though it also makes */
00161 /*  possible some nasty space-saving tricks, like writing the output to the  */
00162 /*  same arrays as the input.                                                */
00163 /*                                                                           */
00164 /*  Triangle will not free() any input or output arrays, including those it  */
00165 /*  allocates itself; that's up to you.                                      */
00166 /*                                                                           */
00167 /*  Here's a guide to help you decide which fields you must initialize       */
00168 /*  before you call triangulate().                                           */
00169 /*                                                                           */
00170 /*  `in':                                                                    */
00171 /*                                                                           */
00172 /*    - `pointlist' must always point to a list of points; `numberofpoints'  */
00173 /*      and `numberofpointattributes' must be properly set.                  */
00174 /*      `pointmarkerlist' must either be set to NULL (in which case all      */
00175 /*      markers default to zero), or must point to a list of markers.  If    */
00176 /*      `numberofpointattributes' is not zero, `pointattributelist' must     */
00177 /*      point to a list of point attributes.                                 */
00178 /*    - If the `r' switch is used, `trianglelist' must point to a list of    */
00179 /*      triangles, and `numberoftriangles', `numberofcorners', and           */
00180 /*      `numberoftriangleattributes' must be properly set.  If               */
00181 /*      `numberoftriangleattributes' is not zero, `triangleattributelist'    */
00182 /*      must point to a list of triangle attributes.  If the `a' switch is   */
00183 /*      used (with no number following), `trianglearealist' must point to a  */
00184 /*      list of triangle area constraints.  `neighborlist' may be ignored.   */
00185 /*    - If the `p' switch is used, `segmentlist' must point to a list of     */
00186 /*      segments, `numberofsegments' must be properly set, and               */
00187 /*      `segmentmarkerlist' must either be set to NULL (in which case all    */
00188 /*      markers default to zero), or must point to a list of markers.        */
00189 /*    - If the `p' switch is used without the `r' switch, then               */
00190 /*      `numberofholes' and `numberofregions' must be properly set.  If      */
00191 /*      `numberofholes' is not zero, `holelist' must point to a list of      */
00192 /*      holes.  If `numberofregions' is not zero, `regionlist' must point to */
00193 /*      a list of region constraints.                                        */
00194 /*    - If the `p' switch is used, `holelist', `numberofholes',              */
00195 /*      `regionlist', and `numberofregions' is copied to `out'.  (You can    */
00196 /*      nonetheless get away with not initializing them if the `r' switch is */
00197 /*      used.)                                                               */
00198 /*    - `edgelist', `edgemarkerlist', `normlist', and `numberofedges' may be */
00199 /*      ignored.                                                             */
00200 /*                                                                           */
00201 /*  `out':                                                                   */
00202 /*                                                                           */
00203 /*    - `pointlist' must be initialized (NULL or pointing to memory) unless  */
00204 /*      the `N' switch is used.  `pointmarkerlist' must be initialized       */
00205 /*      unless the `N' or `B' switch is used.  If `N' is not used and        */
00206 /*      `in->numberofpointattributes' is not zero, `pointattributelist' must */
00207 /*      be initialized.                                                      */
00208 /*    - `trianglelist' must be initialized unless the `E' switch is used.    */
00209 /*      `neighborlist' must be initialized if the `n' switch is used.  If    */
00210 /*      the `E' switch is not used and (`in->numberofelementattributes' is   */
00211 /*      not zero or the `A' switch is used), `elementattributelist' must be  */
00212 /*      initialized.  `trianglearealist' may be ignored.                     */
00213 /*    - `segmentlist' must be initialized if the `p' or `c' switch is used,  */
00214 /*      and the `P' switch is not used.  `segmentmarkerlist' must also be    */
00215 /*      initialized under these circumstances unless the `B' switch is used. */
00216 /*    - `edgelist' must be initialized if the `e' switch is used.            */
00217 /*      `edgemarkerlist' must be initialized if the `e' switch is used and   */
00218 /*      the `B' switch is not.                                               */
00219 /*    - `holelist', `regionlist', `normlist', and all scalars may be ignored.*/
00220 /*                                                                           */
00221 /*  `vorout' (only needed if `v' switch is used):                            */
00222 /*                                                                           */
00223 /*    - `pointlist' must be initialized.  If `in->numberofpointattributes'   */
00224 /*      is not zero, `pointattributelist' must be initialized.               */
00225 /*      `pointmarkerlist' may be ignored.                                    */
00226 /*    - `edgelist' and `normlist' must both be initialized.                  */
00227 /*      `edgemarkerlist' may be ignored.                                     */
00228 /*    - Everything else may be ignored.                                      */
00229 /*                                                                           */
00230 /*  After a call to triangulate(), the valid fields of `out' and `vorout'    */
00231 /*  will depend, in an obvious way, on the choice of switches used.  Note    */
00232 /*  that when the `p' switch is used, the pointers `holelist' and            */
00233 /*  `regionlist' are copied from `in' to `out', but no new space is          */
00234 /*  allocated; be careful that you don't free() the same array twice.  On    */
00235 /*  the other hand, Triangle will never copy the `pointlist' pointer (or any */
00236 /*  others); new space is allocated for `out->pointlist', or if the `N'      */
00237 /*  switch is used, `out->pointlist' remains uninitialized.                  */
00238 /*                                                                           */
00239 /*  All of the meaningful `numberof' fields will be properly set; for        */
00240 /*  instance, `numberofedges' will represent the number of edges in the      */
00241 /*  triangulation whether or not the edges were written.  If segments are    */
00242 /*  not used, `numberofsegments' will indicate the number of boundary edges. */
00243 /*                                                                           */
00244 /*****************************************************************************/
00245
00246 #define REAL double
00247
00248 struct triangulateio {
00249   REAL *pointlist;                                               /* In / out */
00250   REAL *pointattributelist;                                      /* In / out */
00251   int *pointmarkerlist;                                          /* In / out */
00252   int numberofpoints;                                            /* In / out */
00253   int numberofpointattributes;                                   /* In / out */
00254
00255   int *trianglelist;                                             /* In / out */
00256   REAL *triangleattributelist;                                   /* In / out */
00257   REAL *trianglearealist;                                         /* In only */
00258   int *neighborlist;                                             /* Out only */
00259   int numberoftriangles;                                         /* In / out */
00260   int numberofcorners;                                           /* In / out */
00261   int numberoftriangleattributes;                                /* In / out */
00262
00263   int *segmentlist;                                              /* In / out */
00264   int *segmentmarkerlist;                                        /* In / out */
00265   int numberofsegments;                                          /* In / out */
00266
00267   REAL *holelist;                        /* In / pointer to array copied out */
00268   int numberofholes;                                      /* In / copied out */
00269
00270   REAL *regionlist;                      /* In / pointer to array copied out */
00271   int numberofregions;                                    /* In / copied out */
00272
00273   int *edgelist;                                                 /* Out only */
00274   int *edgemarkerlist;            /* Not used with Voronoi diagram; out only */
00275   REAL *normlist;                /* Used only with Voronoi diagram; out only */
00276   int numberofedges;                                             /* Out only */
00277 };
00278
00279 void triangulate(char *, struct triangulateio *, struct triangulateio *,
00280                  struct triangulateio *);


Pipe Line Filters: Исходный файл sfm_mesh_TriResult.h

  • Файлы
  • Список членов всех файлов

sfm_mesh_TriResult.h

См. документацию.
00001 #ifndef _TRIRESULT_H
00002 #define _TRIRESULT_H
00004 #include "sfm_mesh_triangle.h"
00005 #include "num_linalg.h"
00006 //#include "YMatrix.h"
00007
00008 //using namespace F3D;
00009
00011
00016     class TriResult
00017     {
00018         typedef boost::numeric::ublas::matrix<double> Matrix;
00019         int F;                              //Количество изображений: размер матрицы | -->1..P
00020         int P;                              //Количество точек:                      V 1..F
00021         int nTri,nCorn;
00022         Matrix uv;
00023         Matrix tri;
00024         struct triangulateio in, mid, out, vorout;
00025
00026     private:
00027         void report(struct triangulateio *io);
00028         void ExeTri();
00029
00030     public:
00031         void RunTri(Matrix& W);
00032         void Build_texture(const Matrix& W,int numpic, Matrix& W_tex);   //Построение матрицы для натягивания текстуры
00033         void BuildVRML(const char *fname, const Matrix& X, const Matrix& R, const Matrix& t,
00034             const char *texfile, const Matrix& W_tex,const Matrix& g);
00035     };
00036
00038 #endif //_TRIRESULT_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл sfm_quaternion.h

  • Файлы
  • Список членов всех файлов

sfm_quaternion.h

См. документацию.
00001 // file: #include "sfm_quaternion.h"
00002 #ifndef _SFM_QUATERNION_H
00003 #define _SFM_QUATERNION_H
00005 // TEMPORARY! DO NOT USE! ONLY FOR TESTS WITH VRML
00006
00007 #include "vtl_meta_base.h"
00008 #include "num_linalg.h"
00010 template<typename T>
00011 struct Quaternion
00012 {
00013     typedef typename boost::numeric::ublas::c_matrix<T,3,3> RotationMatrix;
00014     typedef typename boost::numeric::ublas::c_vector<T,3>  Vector3;
00015     T q[4];
00016 public:
00017     Quaternion() {}
00018     Quaternion(const Quaternion & p) { (*this)=p;}
00019     explicit Quaternion(T q0,T q1,T q2,T q3) { q[0]=q0; q[1]=q1; q[2]=q2; q[3]=q3;}
00020     Quaternion& operator=(const Quaternion & p) { q[0]=p.q[0]; q[1]=p.q[1]; q[2]=p.q[2]; q[3]=p.q[3]; return *this;}
00022     explicit Quaternion(const RotationMatrix  R)
00023     {
00024         T trace4 = 1 + R(0,0) + R(1,1) + R(2,2);
00025         if(trace4 > 0.00000001 )
00026         {
00027             T s=2*sqrt(trace4);
00028             q[0]=s/4;
00029             q[1]=(R(1,2)-R(2,1))/s;
00030             q[2]=(R(2,0)-R(0,2))/s;
00031             q[3]=(R(0,1)-R(1,0))/s;
00032         }
00033         else if( R(0,0) > R(1,1) && R(0,0) > R(2,2) )
00034         {   // Column 0:
00035             T s= sqrt( 1.0 + R(0,0) - R(1,1) - R(2,2) ) * 2;
00036             q[1] = 0.25 * s;
00037             q[2] = (R(0,1) + R(1,0) ) / s;
00038             q[3] = (R(2,0) + R(0,2) ) / s;
00039             q[0] = (R(1,2) - R(2,1) ) / s;
00040         }
00041         else if( R(1,1) > R(2,2) )
00042         {           // Column 1:
00043             T s= sqrt( 1.0 + R(1,1) - R(0,0) - R(2,2) ) * 2;
00044             q[1] = (R(0,1) + R(1,0) ) / s;
00045             q[2] = 0.25 * s;
00046             q[3] = (R(1,2) + R(2,1) ) / s;
00047             q[0] = (R(2,0) - R(0,2) ) / s;
00048         }
00049         else
00050         {                       // Column 2:
00051             T s= sqrt( 1.0 + R(2,2) - R(0,0) - R(1,1) ) * 2;
00052             q[1] = (R(2,0) + R(0,2) ) / s;
00053             q[2] = (R(1,2) + R(2,1) ) / s;
00054             q[3] = 0.25 * s;
00055             q[0] = (R(0,1) - R(1,0) ) / s;
00056         }
00057
00058     }
00059     T Modul() const
00060     {
00061         return sqrt(q[0]*q[0] + q[1]*q[1] + q[2]*q[2] + q[3]*q[3]);
00062     }
00063     void Normalize()
00064     {
00065         T s= Modul();
00066         q[0]/=s;
00067         q[1]/=s;
00068         q[2]/=s;
00069         q[3]/=s;
00070     }
00072     operator RotationMatrix()
00073     {
00074         Normalize();
00075         RotationMatrix R;
00076         R(0,0)  = 1 - 2 * ( q[2]*q[2] + q[3]*q[3] );
00077         R(1,0)  =     2 * ( q[1]*q[2] - q[3]*q[0] );
00078         R(2,0)  =     2 * ( q[1]*q[3] + q[2]*q[0] );
00079         R(0,1)  =     2 * ( q[1]*q[2] + q[3]*q[0] );
00080         R(1,1)  = 1 - 2 * ( q[1]*q[1] + q[3]*q[3] );
00081         R(2,1)  =     2 * ( q[2]*q[3] - q[1]*q[0] );
00082         R(0,2)  =     2 * ( q[1]*q[3] - q[2]*q[0] );
00083         R(1,2)  =     2 * ( q[2]*q[3] + q[1]*q[0] );
00084         R(2,2)  = 1 - 2 * ( q[1]*q[1] + q[2]*q[2] );
00085         return R;
00086     }
00087     Quaternion operator*(const Quaternion& p) const
00088     {
00089         Quaternion qp;
00090         qp.q[0] = q[0]*p.q[0] - q[1]*p.q[1] - q[2]*p.q[2] - q[3]*p.q[3];
00091         qp.q[1] = q[0]*p.q[1] + q[1]*p.q[0] + q[2]*p.q[3] - q[3]*p.q[2];
00092         qp.q[2] = q[0]*p.q[2] + q[2]*p.q[0] + q[3]*p.q[1] - q[1]*p.q[3];
00093         qp.q[3] = q[0]*p.q[3] + q[3]*p.q[0] + q[1]*p.q[2] - q[2]*p.q[1];
00094         return qp;
00095     }
00096     Quaternion operator*(T cof) const
00097     {
00098         Quaternion p(*this);
00099         p.q[0] *= cof ;
00100         p.q[1] *= cof ;
00101         p.q[2] *= cof ;
00102         p.q[3] *= cof ;
00103         return p;
00104     }
00105     Quaternion operator/(T cof) const
00106     {
00107         Quaternion p(*this);
00108         return p * (1/cof) ;
00109     }
00110     Quaternion inverse() const
00111     {
00112         Quaternion qi(*this);
00113         qi/=Modul();
00114         qi.q[1]=-qi.q[1];
00115         qi.q[2]=-qi.q[2];
00116         qi.q[3]=-qi.q[3];
00117         return qi;
00118     }
00119     Vector3 toRot(T& angle)
00120     {
00121         using namespace boost::numeric::ublas;
00122         Vector3 axis;
00123         Normalize();
00124         T cos_a = q[0];
00125         angle = acos( cos_a ) * 2;
00126         T sin_a = sqrt( 1.0 - cos_a * cos_a );
00127         if ( abs( sin_a ) < 0.0005 ) sin_a = 1;
00128         axis(0) = q[1] / sin_a;
00129         axis(1) = q[2] / sin_a;
00130         axis(2) = q[3] / sin_a;
00131         return axis;
00132     }
00133     explicit Quaternion(const Vector3& axis_,T angle)
00134     {
00135         using namespace boost::numeric::ublas;
00136         Vector3 axis=axis_;
00137         axis /= sqrt(blas_1::dot(axis,axis));
00138         T sin_a = sin( angle / 2 );
00139         T cos_a = cos( angle / 2 );
00140         axis *= sin_a;
00141         q[1]  = axis(0);
00142         q[2]  = axis(1);
00143         q[3]  = axis(2);
00144         q[0]  = cos_a;
00145     }
00146 };
00148 #endif _SFM_QUATERNION_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл sfm_reconsruction.h

  • Файлы
  • Список членов всех файлов

sfm_reconsruction.h

См. документацию.
00001 // file: #include "sfm_structure_from_2_views.h"
00002 #ifndef _SFM_RECONSRUCTION_H
00003 #define _SFM_RECONSRUCTION_H
00005 #include "sfm_types.h"
00006 #include "sfm_calibration.h"
00007 #include "sfm_reconsruction_dlt.h"
00008 #include "num_optimization.h"
00009
00010 #include "Point2D.h"
00011 #include "Points2DSet.h"
00013 namespace Basics3D
00014 {
00015 namespace Structure
00016 {
00018     template<typename T>
00019     struct Pt
00020     {
00021         typename Types<T>::Vector_3 p3D;
00022         typename Types<T>::Vector_2 p1;
00023         typename Types<T>::Vector_2 p2;
00024         PointStatus::Flags flag;
00025         int id;
00026     };
00027     template<typename T>
00028     struct CameraPos
00029     {
00030         typename Types<T>::Vector_3  t;
00031         typename Types<T>::Matrix_3x3 R;
00032         typename Types<T>::value_type focus;
00033         int id;
00034     };
00036     template<typename T>
00037     class Comp3D
00038     {
00039     public:
00040         typedef typename Types<T>::value_type value_type;
00041         typedef typename Types<T>::Vector_2 Vector_2;
00042         typedef typename Types<T>::Vector_3 Vector_3;
00043         typedef typename Types<T>::Vector_4 Vector_4;
00044     private:
00045         const T_Points2DSet<C_Point2D> &points2D;
00046         Structure::Dlt<value_type>& dlt;
00047     public:
00048         std::vector<Pt<value_type> > points;
00049         Comp3D(const T_Points2DSet<C_Point2D> &in_points2D,Structure::Dlt<value_type>& dlt_)
00050             : points2D(in_points2D), dlt(dlt_)
00051         {
00052             int sz = points2D.Size();
00053             points.resize(sz);
00054             // x^ = K^-1 * x; x^' = K'^-1 * x';
00055             for (int i = 0; i < sz; i++)
00056             {
00057                 points[i].p1(0)=points2D[2*i].X();
00058                 points[i].p1(1)=points2D[2*i].Y();
00059                 points[i].p2(0)=points2D[2*i+1].X();
00060                 points[i].p2(1)=points2D[2*i+1].Y();
00061                 points[i].id=i;
00062             }
00063         }
00064         void operator()()
00065         {
00066             size_t count=0;
00067             Vector_4 X;
00068
00069             size_t rep_cnt=0;
00070             size_t rep_sum=0;
00071             const value_type rep_mult=10000;
00072
00073
00074             for (size_t i = 0; i < points.size(); i++)
00075             {
00076                 Pt<value_type> & pt=points[i];
00077                 dlt(pt.p1,pt.p2,X);
00078                 homogeneous2euclidean(X,pt.p3D);
00079
00080                 value_type dev = dlt.reProjectionStdDev(pt.p1,pt.p2,X);
00081                 if(pt.p3D(2)<0 )
00082                     pt.flag = PointStatus::Behind;
00083                 else if( pt.p3D(2) > 50)
00084                     pt.flag = PointStatus::Uncertain;
00085                 else
00086                 {
00087                     pt.flag = PointStatus::Ok;
00088                     ++count;
00089                 }
00090                 if(pt.flag==PointStatus::Ok)
00091                 {
00092                     ++rep_cnt;
00093                     rep_sum+=size_t(dev*rep_mult);
00094                 }
00095
00096                 std::cout << "3D[ " << i << " ] =  " << pt.p3D << "    flag=" << pt.flag << "  reproj_err= " << dev << std::endl;
00097             }
00098             std::cout << " OK points " << count << " from " << points.size() << "    %=" << double(count)/points.size()*100 << std::endl;
00099
00100             value_type dev_mean=(rep_sum/rep_mult)/rep_cnt;
00101             std::cout << " dev_mean " << dev_mean  << std::endl;
00102             {//Filter points with great reprojection error
00103                 value_type stddev_thresh=2*dev_mean;
00104                 rep_cnt=0;
00105                 Vector_4 X;
00106                 for (size_t i = 0; i < points.size(); i++)
00107                 {
00108                     Pt<value_type> & pt=points[i];
00109                     if(pt.flag==PointStatus::Ok)
00110                     {
00111                         euclidean2homogeneous(pt.p3D,X);
00112                         value_type dev = dlt.reProjectionStdDev(pt.p1,pt.p2,X);
00113                         if(dev > stddev_thresh)
00114                             pt.flag=PointStatus::BadReproj;
00115                         else
00116                             ++rep_cnt;
00117                     }
00118                 }
00119                 std::cout << " Filter by reproj error:  Points remains = " << rep_cnt << "    %=" << double(rep_cnt)/points.size()*100 << std::endl;
00120             }
00121
00122         }
00123         void homogeneous2euclidean(const Vector_4& v,Vector_3& result)
00124         {
00125             using namespace boost::numeric::ublas;
00126 //          result=boost::numeric::ublas::vector_slice<Vector_4>(v, slice(0,1,3));
00127             //result=vs;
00128             result(0)=v(0);
00129             result(1)=v(1);
00130             result(2)=v(2);
00131             result/=v(3);
00132         }
00133         void euclidean2homogeneous(const Vector_3& v,Vector_4& result)
00134         {
00135             using namespace boost::numeric::ublas;
00136 //          result=boost::numeric::ublas::vector_slice<Vector_4>(v, slice(0,1,3));
00137             //result=vs;
00138             result(0)=v(0);
00139             result(1)=v(1);
00140             result(2)=v(2);
00141             result(3)=1;
00142         }
00143     };
00148     template<typename T>
00149     class ProjectiveToMetric
00150     {
00151     public:
00152         typedef typename Types<T>::value_type value_type;
00153 //      typedef typename Types<T>::Vector_2 Vector_2;
00154         typedef typename Types<T>::Vector_3 Vector_3;
00155         typedef typename Types<T>::Vector_4 Vector_4;
00156         typedef typename Types<T>::Matrix_3x3 Matrix_3x3;
00157         typedef typename Types<T>::Matrix_3x4 Matrix_3x4;
00158         typedef typename Types<T>::Matrix_4x4 Matrix_4x4;
00159     private:
00160         const value_type focus_sqr;
00161         const Matrix_3x4& P1;
00162         const Matrix_3x4& P2;
00163 //      Matrix_3x3 KKT;
00164     public:
00165         ProjectiveToMetric(value_type focus, Matrix_3x4& P1_,Matrix_3x4& P2_)
00166             : focus_sqr(Vtl::sqr(focus)),P1(P1_),P2(P2_)
00167         {
00168         }
00170 #if 1
00171         void operator()(Matrix_4x4& H)
00172         {
00173             std::cout << "-------------------------"  << std::endl;
00174             std::cout << "class ProjectiveToMetric:"  << std::endl;
00175             std::cout << std::setiosflags(std::ios::scientific);
00176             //|std::ios::showpos
00177
00178             class Func
00179             {
00180                 const ProjectiveToMetric& pm;
00181                 const value_type focus_sqr;
00182             public:
00183                 Func(const ProjectiveToMetric& pm_,value_type focus): pm(pm_), focus_sqr(Vtl::sqr(focus)) {}
00184                 value_type  operator()(const Vector_3& p) const
00185                 {
00186                     return 1.0e+08*pm.build_Functional(p,focus_sqr);
00187                 }
00188                 Vector_3 operator()(const Vector_3& p,Loki::Int2Type<1> ) const
00189                 {
00190                     Vector_3 grad;
00191                     grad(0)=1.0e+08*pm.build_Functional_derivative<0>(p,focus_sqr);
00192                     grad(1)=1.0e+08*pm.build_Functional_derivative<1>(p,focus_sqr);
00193                     grad(2)=1.0e+08*pm.build_Functional_derivative<2>(p,focus_sqr);
00194                     return grad;
00195                 }
00196             };
00197
00198             // Set initial point p
00199
00200             Vector_3 p;
00201             p(0)=0;  p(1)=0;  p(2)=0;
00202             Func func(*this,sqrt(focus_sqr));
00203             Vector_3 grad;
00204
00205             {// debug print function value and gradient at
00206                 std::cout << "p= " << p << std::endl;
00207                 value_type f_value;
00208                 f_value=func(p);
00209                 std::cout << "f_value= " << f_value << std::endl;
00210                 std::cout << "focus= " << sqrt(focus_sqr) << std::endl;
00211                 grad=func(p,Loki::Int2Type<1>() );
00212                 std::cout << "grad= " << grad << std::endl;
00213             }
00214
00215
00216             value_type focus=sqrt(focus_sqr);
00217             value_type gtol=1.0e-20;
00218             int iter;
00219             value_type result = Vtl::NumAlg::Opt::nrc_dfpmin(p,gtol,iter,func);
00220
00221             {
00222                 std::cout << "After dfpmin :" << std::endl;
00223                 std::cout << "p = " << p << std::endl;
00224                 std::cout << "f_value = " << result << std::endl;
00225                 std::cout << "focus= " << focus << std::endl;
00226                 grad=func(p,Loki::Int2Type<1>() );
00227                 std::cout << "grad= " << grad << std::endl;
00228                 std::cout << "iter = " << iter << std::endl;
00229             }
00230             build_H(H,p,focus);
00231         }
00232 #else
00233         void operator()(Matrix_4x4& H)
00234         {
00235             std::cout << "-------------------------"  << std::endl;
00236             std::cout << "class ProjectiveToMetric:"  << std::endl;
00237             std::cout << std::setiosflags(std::ios::scientific);
00238             //|std::ios::showpos
00239
00240             class Func4D
00241             {
00242                 const ProjectiveToMetric& pm;
00243                 const value_type focus_sqr;
00244             public:
00245                 Func4D(const ProjectiveToMetric& pm_,value_type focus): pm(pm_), focus_sqr(Vtl::sqr(focus)) {}
00246                 value_type  operator()(const Vector_4& p_f) const
00247                 {
00248                     using namespace boost::numeric::ublas;
00249                     Vector_3 p = subrange(p_f, 0, 3);
00250                     return pm.build_Functional(p,p_f(3));
00251                 }
00252                 Vector_4 operator()(const Vector_4& p_f,Loki::Int2Type<1> ) const
00253                 {
00254                     Vector_4 grad;
00255                     Vector_3 p = subrange(p_f, 0, 3);
00256                     grad(0)=pm.build_Functional_derivative<0>(p,focus_sqr);
00257                     grad(1)=pm.build_Functional_derivative<1>(p,focus_sqr);
00258                     grad(2)=pm.build_Functional_derivative<2>(p,focus_sqr);
00259                     grad(3)=pm.build_Functional_derivative_d_focus_sqr(p,focus_sqr);
00260                     return grad;
00261                 }
00262             };
00263
00264             // Set initial point p
00265
00266
00267             Vector_4 p;
00268             p(0)=0;  p(1)=0;  p(2)=0;  p(3)=focus_sqr;
00269             Func4D func(*this,sqrt(focus_sqr));
00270             Vector_4 grad;
00271
00272             {// debug print function value and gradient at
00273                 std::cout << "p= " << p << std::endl;
00274                 value_type f_value;
00275                 f_value=func(p);
00276                 std::cout << "f_value= " << f_value << std::endl;
00277                 std::cout << "focus= " << sqrt(focus_sqr) << std::endl;
00278                 grad=func(p,Loki::Int2Type<1>() );
00279                 std::cout << "grad= " << grad << std::endl;
00280             }
00281
00282
00283             value_type focus=sqrt(focus_sqr);
00284             value_type gtol=1.0e-20;
00285             int iter;
00286             value_type result = Vtl::NumAlg::Opt::nrc_dfpmin(p,gtol,iter,func);
00287             focus=sqrt(p(3));
00288
00289             {
00290                 std::cout << "After dfpmin :" << std::endl;
00291                 std::cout << "p = " << p << std::endl;
00292                 std::cout << "f_value = " << result << std::endl;
00293                 std::cout << "focus= " << focus << std::endl;
00294                 grad=func(p,Loki::Int2Type<1>() );
00295                 std::cout << "grad= " << grad << std::endl;
00296                 std::cout << "iter = " << iter << std::endl;
00297             }
00298             Vector_3 pp = subrange(p, 0, 3);
00299             build_H(H,pp,focus);
00300         }
00301 #endif
00302     private:
00303         value_type build_Functional(const Vector_3& p,value_type focus_sqr) const
00304         {
00305             //std::cout << " build_Functional= " << std::endl ;
00306
00307             Matrix_4x4 Q = build_Qoo(p,focus_sqr);
00308
00309             Matrix_3x3 KKT;
00310             build_KKT(KKT,focus_sqr);
00311
00312             //std::cout << " Q= " << std::endl ;
00313             //std::cout << Dbg::Fmt<Matrix_4x4,Dbg::Fmt<Matrix_4x4>::RowsAndCols>(Q) <<std::endl;
00314
00315             // P1 * Qoo * P1^T - KKT
00316             Matrix_3x3 b = build_PQPT_KKT(Q,P1,KKT);
00317             value_type result = frobenius_norm_sqr(b);
00318
00319             //std::cout << " P1 * Q * P1^T - KKT = " << std::endl ;
00320             //std::cout << Dbg::Fmt<Matrix_3x3,Dbg::Fmt<Matrix_3x3>::RowsAndCols>(b) <<std::endl;
00321             //std::cout << "frob = " << result <<std::endl;
00322
00323             // P2 * Qoo * P2^T - KKT
00324             b = build_PQPT_KKT(Q,P2,KKT);
00325             result += frobenius_norm_sqr(b);
00326
00327             //std::cout << " P2 * Q * P2^T - KKT = " << std::endl ;
00328             //std::cout << Dbg::Fmt<Matrix_3x3,Dbg::Fmt<Matrix_3x3>::RowsAndCols>(b) <<std::endl;
00329             //std::cout << "frob = " << result <<std::endl;
00330
00331             return result;
00332         }
00333         // Производная функционала по p(i) компоненте вектора p. i=0..2
00334         template<int i>
00335         value_type build_Functional_derivative(const Vector_3& p,value_type focus_sqr)  const
00336         {
00337             //std::cout << " d build_Functional / d p" << i << std::endl ;
00338             Matrix_4x4 Q = build_Qoo(p,focus_sqr);
00339             Matrix_4x4 dQ = build_Qoo_d_p<i>(p,focus_sqr);
00340             Matrix_3x3 KKT;
00341             build_KKT(KKT,focus_sqr);
00342
00343             // P1 * Qoo * P1^T - KKT
00344             Matrix_3x3 a = build_PQPT_KKT(Q,P1,KKT);
00345             // d/d(p_i) { P1 * Qoo * P1^T - KKT ) = P1 * d(Qoo)/d(p_i) * P1^T
00346             Matrix_3x3 b = build_PQPT(dQ,P1);
00347             value_type result = frobenius_norm_sqr_derivative(a,b);
00348             // P2 * Qoo * P2^T - KKT
00349             a = build_PQPT_KKT(Q,P2,KKT);
00350             // d/d(p_i) { P2 * Qoo * P2^T - KKT ) = P2 * d(Qoo)/d(p_i) * P2^T
00351             b = build_PQPT(dQ,P2);
00352             result += frobenius_norm_sqr_derivative(a,b);
00353             return result;
00354         }
00355         // Производная функционала по focus_sqr .
00356         value_type build_Functional_derivative_d_focus_sqr(const Vector_3& p,value_type focus_sqr)  const
00357         {
00358             //std::cout << " d build_Functional / d p" << i << std::endl ;
00359             Matrix_4x4 Q = build_Qoo(p,focus_sqr);
00360             Matrix_4x4 dQ = build_Qoo_d_focus_sqr(p);
00361             Matrix_3x3 KKT;
00362             build_KKT(KKT,focus_sqr);
00363             Matrix_3x3 dKKT;
00364             build_KKT_d_focus_sqr(dKKT);
00365
00366             // P1 * Qoo * P1^T - KKT
00367             Matrix_3x3 a = build_PQPT_KKT(Q,P1,KKT);
00368             // d/d(f^2) { P1 * Qoo * P1^T - KKT ) = P1 * d(Qoo)/d(f^2) * P1^T  - d(KKT)/d(f^2)
00369             Matrix_3x3 b = build_PQPT_KKT(dQ,P1,dKKT);
00370             value_type result = frobenius_norm_sqr_derivative(a,b);
00371             // P2 * Qoo * P2^T - KKT
00372             a = build_PQPT_KKT(Q,P2,KKT);
00373             // d/d(f^2) { P2 * Qoo * P2^T - KKT ) = P2 * d(Qoo)/d(f^2) * P2^T  - d(KKT)/d(f^2)
00374             b = build_PQPT_KKT(dQ,P2,dKKT);
00375             result += frobenius_norm_sqr_derivative(a,b);
00376             return result;
00377         }
00378         // build P * Qoo * P^T - KKT
00379         Matrix_3x3 build_PQPT_KKT(const Matrix_4x4& Q,const Matrix_3x4& P,const Matrix_3x3& KKT) const
00380         {
00381             Matrix_3x3 b = build_PQPT(Q,P);
00382             b -= KKT;
00383             return b;
00384         }
00385         // build P * Qoo * P^T
00386         static Matrix_3x3 build_PQPT(const Matrix_4x4& Q,const Matrix_3x4& P)
00387         {
00388             Matrix_3x4 a = prod(P,Q);
00389             Matrix_3x3 b = prod(a,trans(P));
00390             return b;
00391         }
00392         static Matrix_4x4 build_Qoo(const Vector_3& p,value_type focus_sqr)
00393         {
00394             Matrix_4x4 Q;
00395             build_Qoo(Q,p,focus_sqr);
00396             return Q;
00397         }
00398         static void build_Qoo(Matrix_4x4& Q,const Vector_3& p,value_type focus_sqr)
00399         {
00400             using namespace boost::numeric::ublas;
00401             Q=identity_matrix<value_type>(4,4);
00402             Q(0,0) = Q(1,1) = focus_sqr;
00403             Q(0,3) = Q(3,0) = -focus_sqr*p(0);
00404             Q(1,3) = Q(3,1) = -focus_sqr*p(1);
00405             Q(2,3) = Q(3,2) = -p(2);
00406             Q(3,3) = focus_sqr * ( Vtl::sqr(p(0)) + Vtl::sqr(p(1)) ) + Vtl::sqr(p(2));
00407         }
00408         // Производная от матрицы Qoo по p(i) компоненте вектора p. i=0..2
00409         template<int i>
00410         static Matrix_4x4 build_Qoo_d_p(const Vector_3& p,value_type focus_sqr)
00411         {
00412             Matrix_4x4 Qd;
00413             build_Qoo_d_p<i>(Qd,p,focus_sqr);
00414             return Qd;
00415         }
00416         // Производная от матрицы Qoo по p(i) компоненте вектора p. i=0..2
00417         template<int i>
00418         static void build_Qoo_d_p(Matrix_4x4& Qd,const Vector_3& p,value_type focus_sqr)
00419         {
00420             using namespace boost::numeric::ublas;
00421             Qd=zero_matrix<value_type>(4,4);
00422             value_type t=((i<2)?focus_sqr:1);
00423             Qd(i,3)=Qd(3,i)=-t;
00424             Qd(3,3)=2*t*p(i);
00425         }
00426         // Производная от матрицы Qoo по focus_sqr
00427         static Matrix_4x4 build_Qoo_d_focus_sqr(const Vector_3& p)
00428         {
00429             Matrix_4x4 Qd;
00430             build_Qoo_d_focus_sqr(Qd,p);
00431             return Qd;
00432         }
00433         // Производная от матрицы Qoo по focus_sqr
00434         static void build_Qoo_d_focus_sqr(Matrix_4x4& Qd,const Vector_3& p)
00435         {
00436             using namespace boost::numeric::ublas;
00437             Qd=zero_matrix<value_type>(4,4);
00438             Qd(0,0) = Qd(1,1) = 1;
00439             Qd(0,3) = Qd(3,0) = -p(0);
00440             Qd(1,3) = Qd(3,1) = -p(1);
00441             Qd(3,3) = Vtl::sqr(p(0)) + Vtl::sqr(p(1));
00442         }
00443         static void build_KKT(Matrix_3x3& KKT,value_type focus_sqr)
00444         {
00445             using namespace boost::numeric::ublas;
00446             KKT = identity_matrix<value_type>(3,3);
00447             KKT(0,0)=KKT(1,1)=focus_sqr;
00448         }
00449         // Производная от матрицы KKT по focus_sqr
00450         static void build_KKT_d_focus_sqr(Matrix_3x3& KKT)
00451         {
00452             using namespace boost::numeric::ublas;
00453             KKT = identity_matrix<value_type>(3,3);
00454             KKT(2,2)=0;
00455         }
00456         static value_type frobenius_norm_sqr(const Matrix_3x3& A)
00457         {
00458             value_type r=0;
00459             for(int i=0; i<3; ++i)
00460             for(int j=0; j<3; ++j)
00461                 r+=Vtl::sqr(A(i,j));
00462             return r;
00463         }
00464         static value_type frobenius_norm_sqr_derivative(const Matrix_3x3& A,const Matrix_3x3& A_deriv)
00465         {
00466             value_type r=0;
00467             for(int i=0; i<3; ++i)
00468             for(int j=0; j<3; ++j)
00469                 r+=A(i,j)*A_deriv(i,j);
00470             return 2*r;
00471         }
00472         static void build_H(Matrix_4x4& H,const Vector_3& p,value_type focus)
00473         {
00474             using namespace boost::numeric::ublas;
00475             Matrix_3x3 K(identity_matrix<value_type>(3,3));
00476             K(0,0)=K(1,1)=focus;
00477             Vector_3 v = prod(p,K);
00478             H=identity_matrix<value_type>(4,4);
00479             H(0,0)=H(1,1)=focus;
00480             H(3,0)=-v(0);
00481             H(3,1)=-v(1);
00482             H(3,2)=-v(2);
00483         }
00484     };
00485 }//namespace Structure
00486 }//namespace Basics3D
00488 #endif //_SFM_RECONSRUCTION_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл sfm_reconsruction_dlt.h

  • Файлы
  • Список членов всех файлов

sfm_reconsruction_dlt.h

См. документацию.
00001 #ifndef _SFM_RECONSRUCTION_DLT_H
00002 #define _SFM_RECONSRUCTION_DLT_H
00004 #include <iostream>
00005 #include <iomanip>
00006 #include <algorithm>
00007 #include <functional>      // For greater<int>( )
00008 #include "loki_typeManip.h"
00009 //#include "loki_Typelist.h"
00010 #include "loki_static_check.h"
00011 #include "num_linalg.h"
00012 #include "alexandresku.h"
00013 #include "vtl_meta_base.h"
00014 #include "sfm_dbg.h"
00016 //template<typename T> struct Fmt;
00017
00018 namespace Basics3D
00019 {
00020 namespace Structure
00021 {
00022     template<typename T>
00023     struct Dlt
00024     {
00025         typedef T value_type;
00026         typedef boost::numeric::ublas::c_matrix<value_type,3,4> MatrixP;
00027         typedef boost::numeric::ublas::c_vector<value_type,4> Vector4;
00028         typedef boost::numeric::ublas::c_vector<value_type,3> Vector3;
00029         typedef boost::numeric::ublas::c_vector<value_type,2> Vector2;
00030     private:
00031         const MatrixP& P1;
00032         const MatrixP& P2;
00033         const Vector4 p1_1;
00034         const Vector4 p1_2;
00035         const Vector4 p1_3;
00036         const Vector4 p2_1;
00037         const Vector4 p2_2;
00038         const Vector4 p2_3;
00039         enum {M=4};
00040         enum {N=4};
00041         typedef boost::numeric::ublas::c_matrix<T,M,N> MatrixA;
00042         MatrixA A;
00043     public:
00044         Dlt(const MatrixP& P1_,const MatrixP& P2_)
00045             : P1(P1_)
00046              ,P2(P2_)
00047              ,p1_1(boost::numeric::ublas::row(P1_,0))
00048              ,p1_2(boost::numeric::ublas::row(P1_,1))
00049              ,p1_3(boost::numeric::ublas::row(P1_,2))
00050              ,p2_1(boost::numeric::ublas::row(P2_,0))
00051              ,p2_2(boost::numeric::ublas::row(P2_,1))
00052              ,p2_3(boost::numeric::ublas::row(P2_,2))
00053         {
00054             using namespace boost::numeric::ublas;
00055             //std::cout << "p1_1 = "<<p1_1 << std::endl;
00056             //std::cout << "p1_2 = "<<p1_2 << std::endl;
00057             //std::cout << "p1_3 = "<<p1_3 << std::endl;
00058             //std::cout << "p2_1 = "<<p2_1 << std::endl;
00059             //std::cout << "p2_2 = "<<p2_2 << std::endl;
00060             //std::cout << "p2_3 = "<<p2_3 << std::endl;
00061         }
00062         void operator()(const Vector2& p1,const Vector2& p2,Vector4& X)
00063         {
00064             using namespace boost::numeric::ublas;
00065             using namespace Vtl::NumAlg::Lin;
00066             build_A(p1(0),p1(1),p2(0),p2(1));
00067             //std::cout << "A = " << A <<std::endl;
00068             //Matrix U=FmTools<value_type>::fm2essential(K1,F,K1);
00069             c_matrix<value_type,N,N> V;
00070             Vector4 W;
00071             Vector4 rv1;
00072             svd::decomp(A,W,V,rv1,true,true);
00073
00074             Vtl::NumAlg::Implicit::Sort<Vector4,Vtl::NumAlg::Implicit::Pred::gt<Vector4> > s(W);
00075             //Vtl::NumAlg::Implicit::Pred::gt<Vector4> decrement_order(W);
00076             //Vtl::NumAlg::Implicit::Sort<Vector4> s(W,decrement_order);
00077             X=column( V, s[N-1] );
00078         }
00079         value_type  reProjectionStdDev(const Vector2& p1,const Vector2& p2,const Vector4& X) const
00080         {
00081             using namespace boost::numeric::ublas;
00082             Vector2 pt_rep;
00083             pt_rep = toEuclidean(prod(P1,X));
00084             value_type d1=distEuclidean(p1,pt_rep);
00085             pt_rep = toEuclidean(prod(P2,X));
00086             value_type d2=distEuclidean(p2,pt_rep);
00087             return std::max(d1,d2);
00088         }
00089     private:
00090         static Vector2 toEuclidean(const Vector3& pt)
00091         {
00092             Vector2 euc;
00093             euc(0)=pt(0)/pt(2);
00094             euc(1)=pt(1)/pt(2);
00095             return euc;
00096         }
00097         static value_type distEuclidean(const Vector2& pt1,const Vector2& pt2)
00098         {
00099             return std::sqrt(Vtl::sqr(pt1(0)-pt2(0))+Vtl::sqr(pt1(1)-pt2(1)));
00100         }
00101         void build_A(value_type x1,value_type y1,value_type x2,value_type y2)
00102         {
00103             using namespace boost::numeric::ublas;
00104             matrix_row<MatrixA> a0( A, 0 );
00105             a0= x1 * p1_3-p1_1;
00106             matrix_row<MatrixA> a1( A, 1 );
00107             a1= y1 * p1_3-p1_2;
00108             matrix_row<MatrixA> a2( A, 2 );
00109             a2= x2 * p2_3-p2_1;
00110             matrix_row<MatrixA> a3( A, 3 );
00111             a3= y2 * p2_3-p2_2;
00112         }
00113     };//class Dlt
00114 }//namespace Structure
00115 }//namespace Basics3D
00117 #endif //_SFM_RECONSRUCTION_DLT_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл sfm_structure_from_2_views.h

  • Файлы
  • Список членов всех файлов

sfm_structure_from_2_views.h

См. документацию.
00001 // file: #include "sfm_structure_from_2_views.h"
00002 #ifndef _SFM_STRUCTURE_FROM_2_VIEWS_H
00003 #define _SFM_STRUCTURE_FROM_2_VIEWS_H
00005 #include "num_linalg.h"
00006
00007 #include "sfm_calibration.h"
00008 #include "sfm_reconsruction.h"
00009 #include "sfm_export_3D_model.h"
00010
00011 #include "Point2D.h"
00012 #include "Points2DSet.h"
00014 namespace Basics3D
00015 {
00016 namespace Structure
00017 {
00027     template<typename value_type,int N3_>
00028     void FromFM(const T_Points2DSet<C_Point2D> &in_points2D
00029                         ,const Vtl::NumAlg::Lin::ublas::c_matrix<value_type, N3_, N3_> &F
00030                         ,const value_type in_sigma)
00031     {
00032         using namespace Vtl::NumAlg::Lin;
00033         enum { N3=N3_};
00034         enum { N4=4};
00035         typedef typename Types<value_type>::Vector_2 Vector_2;
00036         typedef typename Types<value_type>::Vector_3 Vector_3;
00037         typedef typename Types<value_type>::Vector_4 Vector_4;
00038         typedef typename Types<value_type>::Matrix_3x3 Matrix_3x3;
00039         typedef typename Types<value_type>::Matrix_3x4 Matrix_3x4;
00040         typedef typename Types<value_type>::Matrix_4x4 Matrix_4x4;
00041
00042         //typedef Vtl::NumAlg::Lin::ublas::c_matrix<value_type, N3, N3> Matrix_3x3;
00043         //typedef Vtl::NumAlg::Lin::ublas::c_vector<value_type, N3> Vector_3;
00044         //typedef ublas::c_matrix<value_type, N3, N4 > Matrix_3x4;
00045         //typedef ublas::c_vector<value_type, N4> Vector_4;
00046         //typedef Vtl::NumAlg::Lin::ublas::c_vector<value_type, 2> Vector_2;
00047
00048         std::cout << std::endl;
00049         std::cout << "#######################################################" << std::endl;
00050         std::cout << "###### YURIN Structure From FM  ----- START ###########" <<std::endl;
00051         std::cout << "#######################################################" << std::endl;
00052         // 1) Build calibration matrices K and Essential matrix
00053         std::cout << std::endl << "====== Fm2Essential ================"<<std::endl;
00054
00055         Fm2Essential::DirectMinimization<Matrix_3x3> f2e(F);
00056         f2e();
00057
00058
00059         Matrix_3x3 E=f2e.E;
00060         Matrix_3x3 K1=f2e.K1;
00061         Matrix_3x3 K2=f2e.K2;
00062         Fm2Essential::KruppaEq<Matrix_3x3> kruppa(F);
00063
00064
00065         // 2) Build camera matrices P=K(R|t), few hypothesis
00066         std::cout << std::endl << "====== CameraPoseFromEssential ================"<<std::endl;
00067         Fm2Essential::CameraPoseFromEssential<value_type> cp(E);
00068
00069         // 3) Preliminary hypothesis check
00070
00071         // 4) For each reasonable hypothesis reconstruct via DLT and calc percent of points in from of cameras
00072         std::cout << std::endl << "====== FmTools<value_type>::Build_P ================"<<std::endl;
00073         Matrix_3x4 P1;
00074         Matrix_3x4 P2;
00075         std::cout << "K1="<< K1 << std::endl;
00076         std::cout << "R1="<< cp.R0 << std::endl;
00077         std::cout << "t1="<< cp.t0 << std::endl;
00078         std::cout << "K2="<< K2 << std::endl;
00079         std::cout << "R2="<< cp.R << std::endl;
00080         std::cout << "t2="<< cp.t << std::endl;
00081         //K1(0,0)=K1(1,1)=K2(0,0)=K2(1,1)=1.5;
00082         //FmTools<value_type>::Build_P(P2,K2,cp.R ,cp.t );
00083         //FmTools<value_type>::Build_P(P1,K1,cp.R0,cp.t0);
00084         FmTools<value_type>::Build_P(P2,cp.R0,cp.R ,cp.t );
00085         FmTools<value_type>::Build_P(P1,cp.R0,cp.R0,cp.t0);
00086
00087
00088         std::cout << "P1="<< P1 << std::endl;
00089         std::cout << "P2="<< P2 << std::endl;
00090         std::cout << " ----- P1 =" << std::endl;
00091         std::cout << Dbg::Fmt<Matrix_3x4 ,Dbg::Fmt<Matrix_3x4>::RowsAndCols>(P1) <<std::endl;
00092         std::cout << " ----- P2 =" << std::endl;
00093         std::cout << Dbg::Fmt<Matrix_3x4 ,Dbg::Fmt<Matrix_3x4>::RowsAndCols>(P2) <<std::endl;
00094
00095         std::cout << std::endl << "====== Find H : Pm = P * H ================"<<std::endl;
00096 //      ProjectiveToMetric<value_type> p2m(K1(0,0),P1,P2);
00097         value_type focus=4.2;
00098         ProjectiveToMetric<value_type> p2m(focus,P1,P2);
00099         Matrix_4x4 H;
00100         p2m(H);
00101         P1=prod(P1,H);
00102         P2=prod(P2,H);
00103
00104         //ПОсле метрической реконструкции с помощью матрицы H, новая матрица P содержит другой
00105         //поворот R2_cor=K^(-1) * (R2 *K  - t2 * p^T * K )
00106         // Сдвиг t2_cor = K^(-1) * t
00107         Matrix_3x3 R2_cor;
00108         Vector_3 t2_cor;
00109         {
00110             R2_cor=ublas::subrange(P2, 0,3, 0,3);
00111             t2_cor=ublas::column(P2,3);
00112             Matrix_3x3 Kinv=ublas::identity_matrix<value_type>(3,3);
00113             Kinv(0,0)=Kinv(1,1)=1/focus;
00114             R2_cor=ublas::prod(Kinv,R2_cor);
00115             t2_cor=ublas::prod(Kinv,t2_cor);
00116         }
00117         std::vector<CameraPos<value_type> > cam;
00118         cam.resize(2);
00119         cam[0].t=cp.t0;
00120         cam[0].R=cp.R0;
00121         cam[0].focus=focus;
00122         cam[0].id=0;
00123 //      cam[1].t=cp.t;
00124 //      cam[1].R=cp.R;
00125         cam[1].t=t2_cor;
00126         cam[1].R=R2_cor;
00127         cam[1].focus=focus;
00128         cam[1].id=1;
00129
00130
00131         std::cout << std::endl << "====== Structure::Dlt ================"<<std::endl;
00132         Vector_4 X;
00133         Structure::Dlt<value_type> dlt(P1,P2);
00134         {//--call test
00135             Vector_2 v2;
00136             v2(0)=0; v2(1)=0;
00137             dlt(v2,v2,X);
00138             std::cout << "X = " << X <<std::endl;
00139         }
00140         Comp3D<value_type> c3d(in_points2D,dlt);
00141         c3d();
00142         // 5) Select best hypothesis
00143
00144         // 6) refine hypothesis
00145
00146         // 7) build mesh
00147
00148         // 8) Save VRML
00149         SaveVRML_AsPointsSet("yurin.wrl",c3d.points,cam);
00150
00151
00152         std::cout << "#######################################################" << std::endl;
00153         std::cout << "###### YURIN Structure From FM  ----- FINISHED ########" <<std::endl;
00154         std::cout << "#######################################################" << std::endl;
00155         std::cout << std::endl;
00156     }
00157 }//namespace Structure
00158 }//namespace Basics3D
00160 #endif //_SFM_STRUCTURE_FROM_2_VIEWS_H


Pipe Line Filters: Исходный файл sfm_types.h

  • Файлы
  • Список членов всех файлов

sfm_types.h

См. документацию.
00001 // file: #include "sfm_types.h"
00002 #ifndef _SFM_TYPES_H
00003 #define _SFM_TYPES_H
00005 #include "num_linalg.h"
00006
00007 #include "Point2D.h"
00008 #include "Points2DSet.h"
00010 namespace Basics3D
00011 {
00013     struct PointStatus
00014     {
00015         enum Flags
00016         {
00017             Ok,
00018             AtInfinity,
00019             Uncertain,
00020             BadReproj,
00021             Behind
00022         };
00023     };
00026     template<typename T>
00027     struct Types
00028     {
00029         typedef T value_type;
00030         typedef boost::numeric::ublas::c_vector<value_type, 2> Vector_2;
00031         typedef boost::numeric::ublas::c_vector<value_type, 3> Vector_3;
00032         typedef boost::numeric::ublas::c_vector<value_type, 4> Vector_4;
00033         typedef boost::numeric::ublas::c_matrix<value_type,3,3> Matrix_3x3;
00034         typedef boost::numeric::ublas::c_matrix<value_type,3,4> Matrix_3x4;
00035         typedef boost::numeric::ublas::c_matrix<value_type,4,4> Matrix_4x4;
00036     };
00037 /*
00038     template<int N,class Matrix>
00039     class Col
00040     {
00041         //Vtl::NumAlg::Lin::ublas::c_matrix<double, N, N> U;
00042         typedef Matrix value_type;
00043         const Matrix &m;
00044         const int i;
00045     public:
00046         Col(int i_,const Matrix& m_) : m(m_),i(i_) {}
00047         value_type operator()(int j) { return m(i,j); }
00048     };
00049 */
00050
00051 }//namespace Basics3D
00053 #endif //_SFM_TYPES_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл SolveEq.h

  • Файлы
  • Список членов всех файлов

SolveEq.h

См. документацию.
00001 #ifndef SOLVE_EQ_H_
00002 #define SOLVE_EQ_H_
00003
00004 #include <vector>
00005 #include <iostream>
00006 #include <math.h>
00007 // library includings
00008 #include "Bracketing.h"
00009 #include "Newton-Raphson.h"
00010 // own includings
00011 #include "Func.h"
00012
00013 namespace Basics3D
00014 {
00015     class SolveEq
00016     {
00017     private:
00018         static const int MAX = 1000000;
00019
00020     private:
00021         int Find(std::vector<double> &out_sol,
00022                          const IFuncWithDer *in_g,
00023                          double *io_x1,
00024                          double *io_x2,
00025                          int *io_k,
00026                          const double in_acc);
00027
00028     public:
00029         int Apply(std::vector<double> &out_sol,
00030                           const IFuncWithDer *in_g,
00031                           const double in_acc);
00032     };
00033 }
00034
00035 #endif // SOLVE_EQ_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл SolveSystem.h

  • Файлы
  • Список членов всех файлов

SolveSystem.h

См. документацию.
00001 #ifndef SOLVE_SYSTEM_H_
00002 #define SOLVE_SYSTEM_H_
00003
00004 //library includings
00005 #include "num_linalg.h"
00006
00007 namespace Basics3D
00008 {
00009     template<class SystemType, class SolutionType>
00010   void SolveSystem(SolutionType &out_Vect,
00011                      const SystemType &in_System)
00012     {
00013         const int m = in_System.size1();
00014         const int n = in_System.size2();
00015
00016         if (out_Vect.size() != n)
00017         {
00018           throw "Not appropriate size of solution";
00019             return;
00020         }
00021
00022         typedef typename SystemType::value_type Real_t;
00023         Vtl::NumAlg::Lin::ublas::matrix<Real_t> U(m, n);
00024         Vtl::NumAlg::Lin::ublas::matrix<Real_t> V(n, n);
00025         Vtl::NumAlg::Lin::ublas::vector<Real_t> W(n);
00026         Vtl::NumAlg::Lin::ublas::vector<Real_t> RV1(n);
00027
00028         U = in_System;
00029
00030         Vtl::NumAlg::Lin::svd::decomp(U, W, V, RV1);
00031
00032         double min = fabs(W(0));
00033         int k = 0;
00034
00035         for (int j = 1; j < n; j++)
00036         {
00037             if  (std::abs(W(j)) < min)
00038             {
00039                 min = std::abs(W(j));
00040                 k = j;
00041             }
00042         }
00043
00044         for (int i = 0; i < n; i++)
00045         {
00046             out_Vect(i) = V(i, k);
00047         }
00048     }
00049 }
00050
00051 #endif // SOLVE_SYSTEM_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Sort.h

  • Файлы
  • Список членов всех файлов

Sort.h

См. документацию.
00001 #ifndef SORT_H_
00002 #define SORT_H_
00003
00004 namespace Basics3D
00005 {
00006     template<class T>
00007     struct SortS
00008     {
00009         T sigma;
00010         int index;
00011         SortS() {}
00012         SortS(T sigma_,int index_)
00013             : sigma(sigma_), index(index_) {}
00014         bool operator<(const SortS& rhs) const { return sigma<rhs.sigma; }
00015     };
00016 }
00017 #endif // SORT_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл spec_functions.h

  • Файлы
  • Список членов всех файлов

spec_functions.h

См. документацию.
00001 #ifndef _SPEC_FUNCTIONS_H
00002 #define _SPEC_FUNCTIONS_H
00004 #include "numalg.h"
00006 namespace Vtl
00007 {
00008 namespace NumAlg
00009 {
00011 namespace Spf
00012 {
00014     class bess
00015     {
00017         static float bessj(float x,Loki::Int2Type<0> )
00018         {
00019             float ax,z;
00020             double y,ans1,ans2; //Accumulate polynomials in double precision.
00021             if ((ax=fabs(x)) < 8.0)
00022             { //Direct rational function fit.
00023                 y=x*x;
00024                 ans1=57568490574.0+y*(-13362590354.0+y*(651619640.7
00025                 +y*(-11214424.18+y*(77392.33017+y*(-184.9052456)))));
00026                 ans2=57568490411.0+y*(1029532985.0+y*(9494680.718
00027                 +y*(59272.64853+y*(267.8532712+y*1.0))));
00028                 return float(ans1/ans2);
00029             }
00030             else
00031             { //Fitting function (6.5.9).
00032                 z=8.0f/ax;
00033                 y=z*z;
00034                 double xx=ax-0.785398164;
00035                 ans1=1.0+y*(-0.1098628627e-2+y*(0.2734510407e-4
00036                 +y*(-0.2073370639e-5+y*0.2093887211e-6)));
00037                 ans2 = -0.1562499995e-1+y*(0.1430488765e-3
00038                 +y*(-0.6911147651e-5+y*(0.7621095161e-6
00039                 -y*0.934935152e-7)));
00040                 return float(sqrt(0.636619772/ax)*(cos(xx)*ans1-z*sin(xx)*ans2));
00041             }
00042         }
00043
00044         //Returns the Bessel function Y0(x) for positive x.
00045         static float bessy(float x,Loki::Int2Type<0> )
00046         {
00047             float z;
00048             double y,ans,ans1,ans2; //Accumulate polynomials in double precision.
00049             if (x < 8.0)
00050             { //Rational function approximation of (6.5.8).
00051                 y=x*x;
00052                 ans1 = -2957821389.0+y*(7062834065.0+y*(-512359803.6
00053                 +y*(10879881.29+y*(-86327.92757+y*228.4622733))));
00054                 ans2=40076544269.0+y*(745249964.8+y*(7189466.438
00055                 +y*(47447.26470+y*(226.1030244+y*1.0))));
00056                 ans=(ans1/ans2)+0.636619772*J<0>(x)*log(x);
00057             }
00058             else
00059             { //Fitting function (6.5.10).
00060                 z=8.0f/x;
00061                 y=z*z;
00062                 double xx=x-0.785398164;
00063                 ans1=1.0+y*(-0.1098628627e-2+y*(0.2734510407e-4
00064                 +y*(-0.2073370639e-5+y*0.2093887211e-6)));
00065                 ans2 = -0.1562499995e-1+y*(0.1430488765e-3
00066                 +y*(-0.6911147651e-5+y*(0.7621095161e-6
00067                 +y*(-0.934945152e-7))));
00068                 ans=sqrt(0.636619772/x)*(sin(xx)*ans1+z*cos(xx)*ans2);
00069             }
00070             return float(ans);
00071         }
00073         static float bessj(float x,Loki::Int2Type<1> )
00074         {
00075             float ax,z;
00076             double y,ans,ans1,ans2; //Accumulate polynomials in double precision.
00077             if ((ax=fabs(x)) < 8.0)
00078             { //Direct rational approximation.
00079                 y=x*x;
00080                 ans1=x*(72362614232.0+y*(-7895059235.0+y*(242396853.1
00081                 +y*(-2972611.439+y*(15704.48260+y*(-30.16036606))))));
00082                 ans2=144725228442.0+y*(2300535178.0+y*(18583304.74
00083                 +y*(99447.43394+y*(376.9991397+y*1.0))));
00084                 ans=ans1/ans2;
00085             }
00086             else
00087             { //Fitting function (6.5.9).
00088                 z=8.0f/ax;
00089                 y=z*z;
00090                 double xx=ax-2.356194491;
00091                 ans1=1.0+y*(0.183105e-2+y*(-0.3516396496e-4
00092                 +y*(0.2457520174e-5+y*(-0.240337019e-6))));
00093                 ans2=0.04687499995+y*(-0.2002690873e-3
00094                 +y*(0.8449199096e-5+y*(-0.88228987e-6
00095                 +y*0.105787412e-6)));
00096                 ans=sqrt(0.636619772/ax)*(cos(xx)*ans1-z*sin(xx)*ans2);
00097                 if (x < 0.0) ans = -ans;
00098             }
00099             return float(ans);
00100         }
00101
00103         static float bessy(float x,Loki::Int2Type<1> )
00104         {
00105             float z;
00106             double y,ans,ans1,ans2; //Accumulate polynomials in double precision.
00107             if (x < 8.0)
00108             { //Rational function approximation of (6.5.8).
00109                 y=x*x;
00110                 ans1=x*(-0.4900604943e13+y*(0.1275274390e13
00111                 +y*(-0.5153438139e11+y*(0.7349264551e9
00112                 +y*(-0.4237922726e7+y*0.8511937935e4)))));
00113                 ans2=0.2499580570e14+y*(0.4244419664e12
00114                 +y*(0.3733650367e10+y*(0.2245904002e8
00115                 +y*(0.1020426050e6+y*(0.3549632885e3+y)))));
00116                 ans=(ans1/ans2)+0.636619772*(J<1>(x)*log(x)-1.0/x);
00117             }
00118             else
00119             { //Fitting function (6.5.10).
00120                 z=8.0f/x;
00121                 y=z*z;
00122                 double xx=x-2.356194491;
00123                 ans1=1.0+y*(0.183105e-2+y*(-0.3516396496e-4
00124                 +y*(0.2457520174e-5+y*(-0.240337019e-6))));
00125                 ans2=0.04687499995+y*(-0.2002690873e-3
00126                 +y*(0.8449199096e-5+y*(-0.88228987e-6
00127                 +y*0.105787412e-6)));
00128                 ans=sqrt(0.636619772/x)*(sin(xx)*ans1+z*cos(xx)*ans2);
00129             }
00130             return float(ans);
00131         }
00139         template<unsigned n>
00140         static float bessy(float x,Loki::Int2Type<n> )
00141         {
00142             int j;
00143             float by,bym,byp,tox;
00144             tox=2.0f/x;
00145             by=Y<1>(x); //Starting values for the recurrence.
00146             bym=Y<0>(x);
00147             for (j=1;j<n;j++)
00148             { //Recurrence (6.5.7).
00149                 byp=j*tox*by-bym;
00150                 bym=by;
00151                 by=byp;
00152             }
00153             return by;
00154         }
00155
00157         template<unsigned n>
00158         static float bessj(float x,Loki::Int2Type<n>)
00159         {
00160             const float ACC =40.0f; //Make larger to increase accuracy.
00161             const float BIGNO=1.0e10f;
00162             const float BIGNI=1.0e-10f;
00163
00164             int j,jsum,m;
00165             float bj,bjm,bjp,sum,tox,ans;
00166             float ax=fabs(x);
00167             if (ax == 0.0)  return 0.0;
00168             else if (ax > (float) n)
00169             { //Upwards recurrence from J0 and J1.
00170                 tox=2.0f/ax;
00171                 bjm=J<0>(ax);
00172                 bj=J<1>(ax);
00173                 for (j=1;j<n;j++)
00174                 {
00175                     bjp=j*tox*bj-bjm;
00176                     bjm=bj;
00177                     bj=bjp;
00178                 }
00179                 ans=bj;
00180             }
00181             else
00182             { //Downwards recurrence from an even m here computed.
00183                 tox=2.0f/ax;
00184                 m=2*((n+(int) sqrt(ACC*n))/2);
00185                 jsum=0; //jsum will alternate between 0 and 1; when it is
00186                         //1, we accumulate in sum the even terms in (5.5.16).
00187                 bjp=ans=sum=0.0;
00188                 bj=1.0;
00189                 for (j=m;j>0;j--)
00190                 { //The downward recurrence.
00191                     bjm=j*tox*bj-bjp;
00192                     bjp=bj;
00193                     bj=bjm;
00194                     if (fabs(bj) > BIGNO)
00195                     { //Renormalize to prevent overflows.
00196                         bj *= BIGNI;
00197                         bjp *= BIGNI;
00198                         ans *= BIGNI;
00199                         sum *= BIGNI;
00200                     }
00201                     if (jsum) sum += bj; //Accumulate the sum.
00202                     jsum=!jsum; //Change 0 to 1 or vice versa.
00203                     if (j == n) ans=bjp; //Save the unnormalized answer.
00204                 }
00205                 sum=2.0f*sum-bj; //Compute (5.5.16)
00206                 ans /= sum; //and use it to normalize the answer.
00207             }
00208             return x < 0.0 && (n & 1) ? -ans : ans;
00209         }
00210
00211         // Returns the modified Bessel function I0(x) for any real x.
00212         static float bessi(float x,Loki::Int2Type<0>)
00213         {
00214             float ax;
00215             double ans;
00216             double y; //Accumulate polynomials in double precision.
00217             if ((ax=fabs(x)) < 3.75)
00218             { //Polynomial fit.
00219                 y=x/3.75;
00220                 y*=y;
00221                 ans=1.0+y*(3.5156229+y*(3.0899424+y*(1.2067492
00222                 +y*(0.2659732+y*(0.360768e-1+y*0.45813e-2)))));
00223             }
00224             else
00225             {
00226                 y=3.75/ax;
00227                 ans=(exp(ax)/sqrt(ax))*(0.39894228+y*(0.1328592e-1
00228                 +y*(0.225319e-2+y*(-0.157565e-2+y*(0.916281e-2
00229                 +y*(-0.2057706e-1+y*(0.2635537e-1+y*(-0.1647633e-1
00230                 +y*0.392377e-2))))))));
00231             }
00232             return float(ans);
00233         }
00235         static float bessk(float x,Loki::Int2Type<0>)
00236         {
00237             double y,ans; //Accumulate polynomials in double precision.
00238             if (x <= 2.0)
00239             { //Polynomial fit.
00240                 y=x*x/4.0;
00241                 ans=(-log(x/2.0)*I<0>(x))+(-0.57721566+y*(0.42278420
00242                 +y*(0.23069756+y*(0.3488590e-1+y*(0.262698e-2
00243                 +y*(0.10750e-3+y*0.74e-5))))));
00244             }
00245             else
00246             {
00247                 y=2.0/x;
00248                 ans=(exp(-x)/sqrt(x))*(1.25331414+y*(-0.7832358e-1
00249                 +y*(0.2189568e-1+y*(-0.1062446e-1+y*(0.587872e-2
00250                 +y*(-0.251540e-2+y*0.53208e-3))))));
00251             }
00252             return float(ans);
00253         }
00255         static float bessi(float x,Loki::Int2Type<1>)
00256         {
00257             float ax;
00258             double ans;
00259             double y; //Accumulate polynomials in double precision.
00260             if ((ax=fabs(x)) < 3.75)
00261             { //Polynomial fit.
00262                 y=x/3.75;
00263                 y*=y;
00264                 ans=ax*(0.5+y*(0.87890594+y*(0.51498869+y*(0.15084934
00265                 +y*(0.2658733e-1+y*(0.301532e-2+y*0.32411e-3))))));
00266             }
00267             else
00268             {
00269                 y=3.75/ax;
00270                 ans=0.2282967e-1+y*(-0.2895312e-1+y*(0.1787654e-1
00271                 -y*0.420059e-2));
00272                 ans=0.39894228+y*(-0.3988024e-1+y*(-0.362018e-2
00273                 +y*(0.163801e-2+y*(-0.1031555e-1+y*ans))));
00274                 ans *= (exp(ax)/sqrt(ax));
00275             }
00276             return float(x < 0.0 ? -ans : ans);
00277         }
00279         static float bessk(float x,Loki::Int2Type<1>)
00280         {
00281             double y,ans; //Accumulate polynomials in double precision.
00282             if (x <= 2.0)
00283             { //Polynomial fit.
00284                 y=x*x/4.0;
00285                 ans=(log(x/2.0)*I<1>(x))+(1.0/x)*(1.0+y*(0.15443144
00286                 +y*(-0.67278579+y*(-0.18156897+y*(-0.1919402e-1
00287                 +y*(-0.110404e-2+y*(-0.4686e-4)))))));
00288             }
00289             else
00290             {
00291                 y=2.0/x;
00292                 ans=(exp(-x)/sqrt(x))*(1.25331414+y*(0.23498619
00293                 +y*(-0.3655620e-1+y*(0.1504268e-1+y*(-0.780353e-2
00294                 +y*(0.325614e-2+y*(-0.68245e-3)))))));
00295             }
00296             return float(ans);
00297         }
00298
00300         template<unsigned n>
00301         static float bessk(float x,Loki::Int2Type<n>)
00302         {
00303             float tox=2.0f/x;
00304             float bkm=K<0>(x); //Upward recurrence for all x...
00305             float bk=K<1>(x);
00306             for(int j=1; j<n; j++)
00307             { //...and here it is.
00308                 float bkp=bkm+j*tox*bk;
00309                 bkm=bk;
00310                 bk=bkp;
00311             }
00312             return bk;
00313         }
00315         template<unsigned n>
00316         static float bessi(float x,Loki::Int2Type<n>)
00317         {
00318             const float ACC =40.0f; //Make larger to increase accuracy.
00319             const float BIGNO =1.0e10f;
00320             const float BIGNI =1.0e-10f;
00321
00322             if (x == 0.0f)
00323                 return 0.0f;
00324             else
00325             {
00326                 float tox=2.0f/fabs(x);
00327                 float bip=0.0f;
00328                 float ans=bip;
00329                 float bi=1.0f;
00330                 for(int j=2*( n + int(sqrt(ACC*n)) ) ; j>0 ; --j)
00331                 { //Downward recurrence from even m.
00332                     float bim=bip+j*tox*bi;
00333                     bip=bi;
00334                     bi=bim;
00335                     if (fabs(bi) > BIGNO)
00336                     { //Renormalize to prevent overflows.
00337                         ans *= BIGNI;
00338                         bi *= BIGNI;
00339                         bip *= BIGNI;
00340                     }
00341                     if (j == n) ans=bip;
00342                 }
00343                 ans *= I<0>(x)/bi; //Normalize with bessi0.
00344                 return x < 0.0 && (n & 1) ? -ans : ans;
00345             }
00346         }
00347     public:
00349         template<unsigned n> static float J(float x)
00350         {
00351             return bessj(x,Loki::Int2Type<n>());
00352         }
00354         template<unsigned n> static float Y(float x)
00355         {
00356             return bessy(x,Loki::Int2Type<n>());
00357         }
00359         template<unsigned n> static float I(float x)
00360         {
00361             return bessi(x,Loki::Int2Type<n>());
00362         }
00364         template<unsigned n> static float K(float x)
00365         {
00366             return bessk(x,Loki::Int2Type<n>());
00367         }
00374         static float Int_J0(float x)
00375         {
00376             if( std::abs(x) <= 7.0f )
00377             {
00378                 float y=x/8.0f;
00379                 float a=4*y*y-2.0f;
00380
00381                 float T[10];// Chebyshev polinoms;
00382                 T[0]=y;
00383                 T[1]=(a-1)*y;
00384                 for(int i=2; i<10; ++i)
00385                 T[i]=a*T[i-1]-T[i-2];
00386
00387                 return 1.296718e-00f*T[0]-3.652027e-01f*T[1]+5.082189e-01f*T[2]-3.018069e-01f*T[3]
00388                       +8.576039e-02f*T[4]-1.444107e-02f*T[5]+1.624556e-03f*T[6]-1.314897e-04f*T[7]
00389                       +8.052300e-06f*T[8]-3.869534e-07f*T[9];
00390             }
00391             else
00392             {
00393                 float y=10.0f/x-1;
00394                 float a=2*y;
00395
00396                 float T[9];// Chebyshev polinoms;
00397                 T[0]=1;
00398                 T[1]=y;
00399                 for(int i=2; i<9; ++i)
00400                  T[i]=a*T[i-1]-T[i-2];
00401                 float d=sin(x);
00402                 float b=cos(x);
00403                 float c=b+d;
00404                 b=b-d;
00405                 return 1.0f-((b*9.874076e-01f+c*5.776667e-02f)
00406                            - (b*1.622955e-02f-c*5.561794e-02f)*T[1]
00407                            - (b*3.274112e-03f+c*2.404041e-03f)*T[2]
00408                            + (b*3.692770e-04f-c*1.964778e-04f)*T[3]
00409                            - (b*2.083713e-06f-c*5.462158e-05f)*T[4]
00410                            - (b*6.828610e-06f+c*4.961534e-06f)*T[5]
00411                            + (b*1.411409e-06f-c*4.376239e-07f)*T[6]
00412                            - (b*1.069996e-07f-c*2.647664e-07f)*T[7]
00413                            - (b*2.685706e-08f+c*5.344510e-08f)*T[8])/sqrt(x)/1.772454f;
00414             }
00415         }
00416     };
00417
00418     class Gamma
00419     {
00420         #define ITMAX 100 //Maximum allowed number of iterations.
00421         #define EPS 3.0e-7f //Relative accuracy.
00422         #define FPMIN 1.0e-30f //Number near the smallest representable floating-point number.
00425         static void gser(float *gamser, float a, float x, float *gln)
00426         {
00427             int n;
00428             float sum,del,ap;
00429             *gln=gammln(a);
00430             if (x <= 0.0)
00431             {
00432                 if (x < 0.0) throw "x less than 0 in routine gser";
00433                 *gamser=0.0;
00434                 return;
00435             }
00436             else
00437             {
00438                 ap=a;
00439                 del=sum=1.0f/a;
00440                 for(n=1;n<=ITMAX;n++)
00441                 {
00442                     ++ap;
00443                     del *= x/ap;
00444                     sum += del;
00445                     if(fabs(del) < fabs(sum)*EPS)
00446                     {
00447                         *gamser=sum*exp(-x+a*log(x)-(*gln));
00448                         return;
00449                     }
00450                 }
00451                 throw "a too large, ITMAX too small in routine gser";
00452                 return;
00453             }
00454         }
00457         static void gcf(float *gammcf, float a, float x, float *gln)
00458         {
00459             int i;
00460             float an,b,c,d,del,h;
00461             *gln=gammln(a);
00462             b=x+1.0f-a; //Set up for evaluating continued fraction by modified Lentz's method (x5.2) with b0 = 0.
00463             c=1.0f/FPMIN;
00464             d=1.0f/b;
00465             h=d;
00466             for (i=1;i<=ITMAX;i++)
00467             { //Iterate to convergence.
00468                 an = -i*(i-a);
00469                 b += 2.0f;
00470                 d=an*d+b;
00471                 if (fabs(d) < FPMIN) d=FPMIN;
00472                 c=b+an/c;
00473                 if (fabs(c) < FPMIN) c=FPMIN;
00474                 d=1.0f/d;
00475                 del=d*c;
00476                 h *= del;
00477                 if (fabs(del-1.0f) < EPS) break;
00478             }
00479             if (i > ITMAX) throw "a too large, ITMAX too small in gcf";
00480             *gammcf=exp(-x+a*log(x)-(*gln))*h; //Put factors in front.
00481         }
00482     public:
00484         static float gammln(float xx)
00485         {
00486             //Internal arithmetic will be done in double precision, a nicety that you can omit if five-figure
00487             //accuracy is good enough.
00488             double x,y,tmp,ser;
00489             static double cof[6]={76.18009172947146,-86.50532032941677,
00490             24.01409824083091,-1.231739572450155,
00491             0.1208650973866179e-2,-0.5395239384953e-5};
00492             int j;
00493             y=x=xx;
00494             tmp=x+5.5;
00495             tmp -= (x+0.5)*log(tmp);
00496             ser=1.000000000190015;
00497             for (j=0;j<=5;j++) ser += cof[j]/++y;
00498             return float(-tmp+log(2.5066282746310005*ser/x));
00499         }
00500
00502         static float factrl(int n)
00503         {
00504             static int ntop=4;
00505             static float a[33]={1.0,1.0,2.0,6.0,24.0}; //Fill in table only as required.
00506             int j;
00507             if (n < 0) throw "Negative factorial in routine factrl";
00508             if (n > 32) return std::exp(gammln(float(n+1.0)));
00509             //Larger value than size of table is required. Actually, this big a value is going to overflow
00510             //on many computers, but no harm in trying.
00511             while (ntop<n)
00512             { //Fill in table up to desired value.
00513                 j=ntop++;
00514                 a[ntop]=a[j]*ntop;
00515             }
00516             return a[n];
00517         }
00519         static float bico(int n, int k)
00520         {
00521             return float(floor(0.5+exp(factln(n)-factln(k)-factln(n-k))));
00522             //The floor function cleans up roundoff error for smaller values of n and k.
00523         }
00525         static float factln(int n)
00526         {
00527             static float a[101]; //A static array is automatically initialized to zero.
00528             if (n < 0) throw "Negative factorial in routine factln";
00529             if (n <= 1) return 0.0;
00530             if (n <= 100) return a[n] ? a[n] : (a[n]=gammln(float(n+1.0))); //In range of table.
00531             else return gammln(float(n+1.0)); //Out of range of table.
00532         }
00534         static float beta(float z, float w)
00535         {
00536             return exp(gammln(z)+gammln(w)-gammln(z+w));
00537         }
00539         static float P(float a, float x)
00540         {
00541             float gamser,gammcf,gln;
00542             if (x < 0.0 || a <= 0.0) throw "Invalid arguments in routine gammp";
00543             if (x < (a+1.0))
00544             { //Use the series representation.
00545                 gser(&gamser,a,x,&gln);
00546                 return gamser;
00547             }
00548             else
00549             { //Use the continued fraction representation
00550                 gcf(&gammcf,a,x,&gln);
00551                 return 1.0f-gammcf; //and take its complement.
00552             }
00553         }
00555         static float Q(float a, float x)
00556         {
00557             float gamser,gammcf,gln;
00558             if (x < 0.0 || a <= 0.0) throw "Invalid arguments in routine gammq";
00559             if (x < (a+1.0))
00560             { //Use the series representation
00561                 gser(&gamser,a,x,&gln);
00562                 return 1.0f-gamser; //and take its complement.
00563             }
00564             else
00565             { //Use the continued fraction representation.
00566                 gcf(&gammcf,a,x,&gln);
00567                 return gammcf;
00568             }
00569         }
00570
00571     };
00585     inline float erf(float x)
00586     {
00587         return x < 0.0 ? -Gamma::P(0.5,x*x) : Gamma::Q(0.5,x*x);
00588     }
00602     inline float erfc(float x)
00603     {
00604         return x < 0.0f ? 1.0f+Gamma::P(0.5f,x*x) : Gamma::Q(0.5f,x*x);
00605     }
00620     inline float erfcc(float x)
00621     {
00622         double z=fabs(x);
00623         double t=1.0/(1.0+0.5*z);
00624         double ans=t*exp(-z*z-1.26551223+t*(1.00002368+t*(0.37409196+t*(0.09678418+
00625         t*(-0.18628806+t*(0.27886807+t*(-1.13520398+t*(1.48851587+
00626         t*(-0.82215223+t*0.17087277)))))))));
00627         return float(x >= 0.0f ? ans : 2.0f-ans);
00628     }
00629
00630 }//namespace Spf
00631 }//namespace NumAlg
00632 }//namespace Vtl
00634 #endif //_SPEC_FUNCTIONS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл ss_ridge_det.h

  • Файлы
  • Список членов всех файлов

ss_ridge_det.h

См. документацию.
00001 #ifndef _SS_RIDGE_DET_H
00002 #define _SS_RIDGE_DET_H
00004 #include "num_linalg.h"
00005 #include "AImage.h"
00006 #include "plf_functors.h"
00007 #include "plf_kernels_1d.h"
00008 #include "Hanina/ss_ridge_functors.h"
00010 namespace Hanina
00011 {
00018     template<typename T>
00019     class Hessian3D
00020     {
00021         private:
00022             const int w;
00023             const int h;
00024             const int sz;
00025             std::vector<T> _data;
00026             std::vector<T> _Gxx;
00027             std::vector<T> _Gxy;
00028             std::vector<T> _Gyy;
00029             std::vector<T> _Gxxx;
00030             std::vector<T> _Gyyy;
00031             std::vector<T> _Gxyy;
00032             std::vector<T> _Gyxx;
00033             std::vector<T> _Gxxxx;
00034             std::vector<T> _Gxxyy;
00035             std::vector<T> _Gyyyy;
00036
00037             T *data;
00038             T *Gxx;
00039             T *Gxy;
00040             T *Gyy;
00041             T *Gxxx;
00042             T *Gyyy;
00043             T *Gxyy;
00044             T *Gyxx;
00045             T *Gxxxx;
00046             T *Gxxyy;
00047             T *Gyyyy;
00048
00049         public:
00050             //конструктор класса, получает изображение с его размерами и текущую сигму
00051             template<typename T1>
00052             Hessian3D(const T1* img,int width,int height,int nls)
00053             : w(width), h(height), sz(width*height), _data(sz)
00054             {
00055                 //Изображения лежат в 1-мерных массивах пиксель за пикселем, строка за строкой, подряд, без дыр
00056                  _data.resize(sz);
00057                  _Gxx.resize(sz);
00058                  _Gxy.resize(sz);
00059                  _Gyy.resize(sz);
00060                  _Gxxx.resize(sz);
00061                  _Gyyy.resize(sz);
00062                  _Gxyy.resize(sz);
00063                  _Gyxx.resize(sz);
00064                  _Gxxxx.resize(sz);
00065                  _Gxxyy.resize(sz);
00066                  _Gyyyy.resize(sz);
00067
00068                 //для удобства работы получаем указатели на первые элементы массивов.
00069                 data=&(_data[0]);
00070                 Gxx=&(_Gxx[0]);
00071                 Gxy=&(_Gxy[0]);
00072                 Gyy=&(_Gyy[0]);
00073                 Gxxx=&(_Gxxx[0]);
00074                 Gyyy=&(_Gyyy[0]);
00075                 Gxyy=&(_Gxyy[0]);
00076                 Gyxx=&(_Gyxx[0]);
00077                 Gxxxx=&(_Gxxxx[0]);
00078                 Gxxyy=&(_Gxxyy[0]);
00079                 Gyyyy=&(_Gyyyy[0]);
00080
00081                 //Копируем изображение в первый массив с одновременным преобразованием типа к float
00082                 Vtl::Plf::F11::Convert<T> c_to_float;
00083                 Vtl::ImAlg::Tools::copy_1_1(img,w,h,nls,data,w,c_to_float);
00084                 //создаем массивы для промежуточных данных (изображений)
00085                 //делаем копии в остальные массивы
00086             }
00087             //выдает на выходе для каждого конкретного сигма максимальное собственное значение
00088             //и 3 компоненты двух собственных векторов, начиная с максимального
00089             template<typename T1>
00090             void operator()(float sigma, T1* max_eig,T1* vx1, T1* vy1, T1* vt1, T1* vx2, T1*vy2, T1* vt2)
00091             {
00092                 Hanina::FillingHessianMatrix3x3 Filling_Hessian_Matrix_3x3(sigma);
00093
00094                 calc_deriv_from(sigma,data);
00095                 //заполняем 3d гессиан компонентами смешанных производных по х, у и t
00096                 Vtl::ImAlg::Tools::copy_10_7(Gxx,w,h,w, Gyy, w, Gxy, w,Gxxx,w, Gyyy,w,Gxyy,w,Gyxx,w,
00097                                               Gxxxx, w, Gyyyy, w,Gxxyy, w, max_eig,w,vx1,w, vy1,w, vt1,w,
00098                                               vx2,w,vy2,w,vt2,w,Filling_Hessian_Matrix_3x3);
00099
00100 #if 0  //double eigen (hessian) approach
00101                 calc_deriv_from(sigma,max_eig);
00102                 //заполняем 3d гессиан компонентами смешанных производных по х, у и t
00103                 Vtl::ImAlg::Tools::copy_10_7(Gxx,w,h,w, Gyy, w, Gxy, w,Gxxx,w, Gyyy,w,Gxyy,w,Gyxx,w,
00104                                               Gxxxx, w, Gyyyy, w,Gxxyy, w, max_eig,w,vx1,w, vy1,w, vt1,w,
00105                                               vx2,w,vy2,w,vt2,w,Filling_Hessian_Matrix_3x3);
00106 #endif
00107
00108             }
00109             template<typename T1>
00110             void operator()(float sigma, T1* max_eig,T1* vx1, T1* vy1, T1* vt1, T1* vx2, T1*vy2, T1* vt2,T *grad_x,T *grad_y)
00111             {
00112                 this->operator ()(sigma,max_eig,vx1, vy1, vt1, vx2, vy2, vt2);
00113                 calc_grad_from(sigma,data,grad_x,grad_y);
00114             }
00115             void calc_grad_from(float sigma,const T *data,T *grad_x,T *grad_y)
00116             {
00117                 //создаем классы, выполняющие свертки с гауссом и его производными до 4 порядка
00118                 //сама функция
00119                 typedef Vtl::ImAlg::WndFun::Gauss<float,0, false> FF0;
00120                 FF0 f0(sigma,4);
00121                 typedef Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Conv,true> K0;
00122                 K0 ker0(f0);
00123                 Vtl::ImAlg::Conv::ConvInplace<float,K0> g0(ker0);
00124                 //1я производная
00125                 typedef Vtl::ImAlg::WndFun::Gauss<float,1,false> FF1;
00126                 FF1 f1(sigma,4);
00127                 typedef Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Conv,true> K1;
00128                 K1 ker1(f1);
00129                 Vtl::ImAlg::Conv::ConvInplace<float,K1> g1(ker1);
00130
00131                 memcpy(grad_x,data,sz*sizeof(float));
00132                 memcpy(grad_y,data,sz*sizeof(float));
00133                 // Gx :
00134                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(grad_x,w,h,w,g1,g0);
00135                 // Gy :
00136                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(grad_y,w,h,w,g0,g1);
00137             }
00138             void calc_deriv_from(float sigma,const T *data)
00139             {
00140                 memcpy(Gxx,data,sz*sizeof(float));
00141                 memcpy(Gxy,data,sz*sizeof(float));
00142                 memcpy(Gyy,data,sz*sizeof(float));
00143                 memcpy(Gxxx,data,sz*sizeof(float));
00144                 memcpy(Gyyy,data,sz*sizeof(float));
00145                 memcpy(Gxyy,data,sz*sizeof(float));
00146                 memcpy(Gyxx,data,sz*sizeof(float));
00147                 memcpy(Gxxxx,data,sz*sizeof(float));
00148                 memcpy(Gxxyy,data,sz*sizeof(float));
00149                 memcpy(Gyyyy,data,sz*sizeof(float));
00150                 calc_deriv(sigma);
00151             }
00152             //функция, вычисляющая свертки с гауссом и его производными для конкретного сигма
00153             void calc_deriv(float sigma)
00154             {
00155                 //создаем классы, выполняющие свертки с гауссом и его производными до 4 порядка
00156                 //сама функция
00157                 typedef Vtl::ImAlg::WndFun::Gauss<float,0, false> FF0;
00158                 FF0 f0(sigma,4);
00159                 typedef Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Conv,true> K0;
00160                 K0 ker0(f0);
00161                 Vtl::ImAlg::Conv::ConvInplace<float,K0> g0(ker0);
00162
00163                 //1я производная
00164                 typedef Vtl::ImAlg::WndFun::Gauss<float,1,false> FF1;
00165                 FF1 f1(sigma,4);
00166                 typedef Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Conv,true> K1;
00167                 K1 ker1(f1);
00168                 Vtl::ImAlg::Conv::ConvInplace<float,K1> g1(ker1);
00169
00170                 //2я производная
00171                 typedef Vtl::ImAlg::WndFun::Gauss<float,2,false> FF2;
00172                 FF2 f2(sigma,4);
00173                 typedef Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Conv,true> K2;
00174                 K2 ker2(f2);
00175                 Vtl::ImAlg::Conv::ConvInplace<float,K2> g2(ker2);
00176
00177                 //3я производная
00178                 typedef Vtl::ImAlg::WndFun::Gauss<float,3,false> FF3;
00179                 FF3 f3(sigma,4);
00180                 typedef Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Conv,true> K3;
00181                 K3 ker3(f3);
00182                 Vtl::ImAlg::Conv::ConvInplace<float,K3> g3(ker3);
00183
00184                 //4я производная
00185                 typedef Vtl::ImAlg::WndFun::Gauss<float,4,false> FF4;
00186                 FF4 f4(sigma,4);
00187                 typedef Vtl::Plf::Kernel::FKern<float,Vtl::Plf::Kernel::KT_Conv,true> K4;
00188                 K4 ker4(f4);
00189                 Vtl::ImAlg::Conv::ConvInplace<float,K4> g4(ker4);
00190
00191                 //вычисление 2х производных
00192                 // Gxx :
00193                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(Gxx,w,h,w,g2,g0);
00194                 // Gyy :
00195                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(Gyy,w,h,w,g0,g2);
00196                 // Gxy :
00197                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(Gxy,w,h,w,g1,g1);
00198
00199                 //вычисление 3х производных
00200                 // Gxxx :
00201                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(Gxxx,w,h,w,g3,g0);
00202                 // Gyyy :
00203                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(Gyyy,w,h,w,g0,g3);
00204                 // Gxyy :
00205                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(Gxyy,w,h,w,g1,g2);
00206                 // Gyxx :
00207                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(Gyxx,w,h,w,g2,g1);
00208
00209                 //вычисление 4х производных
00210                 // Gxxxx :
00211                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(Gxxxx,w,h,w,g4,g0);
00212                 // Gxxyy :
00213                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(Gxxyy,w,h,w,g2,g2);
00214                 // Gyyyy :
00215                 Vtl::ImAlg::Conv::Conv2D::conv2DInplace(Gyyyy,w,h,w,g0,g4);
00216             }
00217     };
00223     template<typename T>
00224     class Planes3
00225     {
00226         private:
00227             int w;
00228             int h;
00229             int sz;
00230             Hessian3D<T> hess3d;
00231             std::vector<T> _eig_prev;
00232             std::vector<T> _eig_curr;
00233             std::vector<T> _eig_next;
00234
00235             std::vector<T> _grad_x_curr;
00236             std::vector<T> _grad_y_curr;
00237             std::vector<T> _grad_x_next;
00238             std::vector<T> _grad_y_next;
00239
00240             std::vector<T> _h2_x_curr;
00241             std::vector<T> _h2_y_curr;
00242             std::vector<T> _h2_z_curr;
00243
00244             std::vector<T> _h3_x_curr;
00245             std::vector<T> _h3_y_curr;
00246             std::vector<T> _h3_z_curr;
00247
00248             std::vector<T> _h2_x_next;
00249             std::vector<T> _h2_y_next;
00250             std::vector<T> _h2_z_next;
00251
00252             std::vector<T> _h3_x_next;
00253             std::vector<T> _h3_y_next;
00254             std::vector<T> _h3_z_next;
00255             std::vector<T> _image;
00256
00257             T *eig_prev;
00258             T *eig_curr;
00259             T *eig_next;
00260
00261             T *grad_x_curr;
00262             T *grad_y_curr;
00263             T *grad_x_next;
00264             T *grad_y_next;
00265
00266
00267             T *h2_x_curr;
00268             T *h2_y_curr;
00269             T *h2_z_curr;
00270             T *h3_x_curr;
00271             T *h3_y_curr;
00272             T *h3_z_curr;
00273             T *h2_x_next;
00274             T *h2_y_next;
00275             T *h2_z_next;
00276             T *h3_x_next;
00277             T *h3_y_next;
00278             T *h3_z_next;
00279             T *image;
00280
00281         public:
00282             //конструктор для класса Planes3
00283             template<typename T1>
00284             Planes3(const T1* img,int width,int height,int nls)
00285             : w(width),h(height), sz(width*height), hess3d(img,width,height,nls)
00286             {
00287                 _eig_prev.resize(sz);
00288                 _eig_curr.resize(sz);
00289                 _eig_next.resize(sz);
00290
00291                 _grad_x_curr.resize(sz);
00292                 _grad_y_curr.resize(sz);
00293                 _grad_x_next.resize(sz);
00294                 _grad_y_next.resize(sz);
00295
00296                 _h2_x_curr.resize(sz);
00297                 _h2_y_curr.resize(sz);
00298                 _h2_z_curr.resize(sz);
00299                 _h3_x_curr.resize(sz);
00300                 _h3_y_curr.resize(sz);
00301                 _h3_z_curr.resize(sz);
00302                 _h2_x_next.resize(sz);
00303                 _h2_y_next.resize(sz);
00304                 _h2_z_next.resize(sz);
00305                 _h3_x_next.resize(sz);
00306                 _h3_y_next.resize(sz);
00307                 _h3_z_next.resize(sz);
00308                 _image.resize(sz);
00309
00310                 eig_prev=&(_eig_prev[0]);
00311                 eig_curr=&(_eig_curr[0]);
00312                 eig_next=&(_eig_next[0]);
00313
00314                 grad_x_curr=&(_grad_x_curr[0]);
00315                 grad_y_curr=&(_grad_y_curr[0]);
00316                 grad_x_next=&(_grad_x_next[0]);
00317                 grad_y_next=&(_grad_y_next[0]);
00318
00319                 h2_x_curr=&(_h2_x_curr[0]);
00320                 h2_y_curr=&(_h2_y_curr[0]);
00321                 h2_z_curr=&(_h2_z_curr[0]);
00322                 h3_x_curr=&(_h3_x_curr[0]);
00323                 h3_y_curr=&(_h3_y_curr[0]);
00324                 h3_z_curr=&(_h3_z_curr[0]);
00325                 h2_x_next=&(_h2_x_next[0]);
00326                 h2_y_next=&(_h2_y_next[0]);
00327                 h2_z_next=&(_h2_z_next[0]);
00328                 h3_x_next=&(_h3_x_next[0]);
00329                 h3_y_next=&(_h3_y_next[0]);
00330                 h3_z_next=&(_h3_z_next[0]);
00331                 image=&(_image[0]);
00332             }
00333             void operator()()
00334             {
00335                 std::auto_ptr<AImage> _img(::AImageCreate(0,AImage::IMGC_GRAYSCALE,w,h,8));
00336                 std::auto_ptr<AImage> _img_2(::AImageCreate(0,AImage::IMGC_GRAYSCALE,w,h,8));
00337
00338                 //Так как при тесте мы предполагаем, что изображение серое 8 бит, то получаем интерфейс
00339                 // Если это не так - то вернется нуль и программа завершится с кодом 1.
00340                 AImageMem8* img=dynamic_cast<AImageMem8*>(_img.get());
00341                 AImageMem8* img_total_ridge=dynamic_cast<AImageMem8*>(_img_2.get());
00342                 if(!img || !img_total_ridge)
00343                 {
00344                     throw "error";
00345                 }
00346                 img_total_ridge->SetTo(0);
00347
00348                 const float sigma_mult=float(pow(2.,1/4.0));
00349 //              const float sigma_start=0.5f;
00350                 const float sigma_start=0.5f*float(pow(2.,1/2.0));
00351                 const float sigma_max=0.1f*std::min(w,h);
00352                 //indicator->start("Generate set of ridge edge map for different scales",int(100*log(sigma_start)),int(100*log(sigma_max)));
00356                 float sigma=sigma_start;
00357                 float sigma_count=1;
00358 //              hess3d(sigma,eig_curr,h2_x_curr,h2_y_curr,h2_z_curr,h3_x_curr,h3_y_curr,h3_z_curr);
00359                 hess3d(sigma,eig_curr,h2_x_curr,h2_y_curr,h2_z_curr,h3_x_curr,h3_y_curr,h3_z_curr,grad_x_curr,grad_y_curr);
00360                 sigma*=sigma_mult; ++sigma_count;
00361 //              hess3d(sigma,eig_next,h2_x_next,h2_y_next,h2_z_next,h3_x_next,h3_y_next,h3_z_next);
00362                 hess3d(sigma,eig_next,h2_x_next,h2_y_next,h2_z_next,h3_x_next,h3_y_next,h3_z_next,grad_x_next,grad_y_next);
00364
00365                 Check_4_grad_sign_change<T> supress_edge(w);
00366                 ScaleScan3x3<T> func(w);
00367
00373                 //SaveImage(img,eig_curr,w,h,w,sigma,"aaa.tif","eig3Dss");
00374
00375                 using namespace Vtl::ImAlg::Tools;
00376                 for( ; sigma< sigma_max ; )
00377                 {
00378                     //считаем новые данные для sigma, но обрабатывается по окну 3х3х3 для центральной точки с sigma_prev.
00379                     //Это же сигма и печатается в имя файла и говорит о ширине линии.
00380                     float sigma_prev=sigma;
00381                     std::cout << "sigma=" << sigma <<std::endl;
00382                     sigma*=sigma_mult; ++sigma_count;
00383
00384                     xchg(eig_prev,eig_curr);
00385                     xchg(eig_curr,eig_next);
00386
00387                     xchg(h2_x_curr,h2_x_next);
00388                     xchg(h2_y_curr,h2_y_next);
00389                     xchg(h2_z_curr,h2_z_next);
00390
00391                     xchg(h3_x_curr,h3_x_next);
00392                     xchg(h3_y_curr,h3_y_next);
00393                     xchg(h3_z_curr,h3_z_next);
00394
00395                     xchg(grad_x_curr,grad_x_next);
00396                     xchg(grad_y_curr,grad_y_next);
00397
00401                     T* planes[]={eig_prev,eig_curr,eig_next};
00402
00403 //                  hess3d(sigma,eig_next,h2_x_next,h2_y_next,h2_z_next,h3_x_next,h3_y_next,h3_z_next);
00404                     hess3d(sigma,eig_next,h2_x_next,h2_y_next,h2_z_next,h3_x_next,h3_y_next,h3_z_next,grad_x_next,grad_y_next);
00405                     SaveImage(img,planes[1],w,h,w,sigma_prev,"aab.tif","eig3Dss");
00406
00407 //-неверно, работаем с текущим слоем // Vtl::ImAlg::Tools::envTransf_3D(planes, w,h,w,h2_x_next,h2_y_next,h2_z_next,h3_x_next,h3_y_next,h3_z_next, image, func);
00408                     Vtl::ImAlg::Tools::envTransf_3D(planes, w,h,w,h2_x_curr,h2_y_curr,h2_z_curr,h3_x_curr,h3_y_curr,h3_z_curr, image, func);
00409
00410                     Vtl::ImAlg::Tools::envTransf_2Ddircheck(image, w,h,w,h2_x_curr,h2_y_curr,grad_x_curr,grad_y_curr,supress_edge);
00411
00412                     Comb_ridge<T,uint8_t> crid(uint8_t(unsigned(sigma_count*10)));
00413                     Vtl::ImAlg::Tools::copy_2_1(image,w,h,w,(*img_total_ridge)[0],img_total_ridge->NextLineShift(),(*img_total_ridge)[0],img_total_ridge->NextLineShift(),crid);
00414
00415
00416                     //image save
00417                     SaveImage(img,image,w,h,w,sigma_prev,"aaa.tif","eig3Dss");
00418                     //SaveImage(img,eig_curr,w,h,w,sigma,"aaa.tif","eig3Dss");
00419                 }
00420                 AImageSave(img_total_ridge,"img_total_ridge.tif",0);
00421
00422
00423             }
00424             void SaveImage(AImageMem8* img,const T *data,int w,int h,int nls,float sigma,const char *base_name,const char *postfix)
00425             {
00426                 // Преобразуем результат к 8-бит на пиксель серому и сохраняем в файл. Гамма коррекция выполняется,
00427             // чтобы лучше было видно.
00428
00429             // Параметры гамма коррекции (функтор)
00430             Vtl::Plf::F11::GammaCorMult<float> lin_3mod(255,2.2,1.0);
00431             // Функтор преобразования от типа float  к типу byte. Считается, что числа float
00432             // уже лежат в диапазоне 0-255 - этим надо было озаботиться при написании функторов
00433             // Hess_Eig_diff или HessianDetSqrt соответственно - аналитически оценить коэффициент множителя и вставить его в код.
00434             // Для функтора Hess_Eig_diff
00435             Vtl::Plf::F11::Convert<uint8_t> c_to_Byte;
00436             // Создаем функтор, являющийся суперпозицией первого затем второго преобразований
00437             Vtl::Plf::F11::Comb<uint8_t,Vtl::Plf::F11::GammaCorMult<float>,Vtl::Plf::F11::Convert<uint8_t> > adj_3mod(lin_3mod,c_to_Byte);
00438                 //Выполняем копирование с применением суммарного функтора к каждому элементу данных (пикселю)
00439                 Vtl::ImAlg::Tools::copy_1_1(data,w,h,w,(*img)[0],img->NextLineShift(),adj_3mod);
00440                 // сохраняем результат в файл
00441                 {
00442                     //создаем имя файла:
00443                     std::ostringstream os;
00444                     os <<   YFileSys::getNameWithoutExt(base_name)
00445                         << std::setprecision(2) << std::setiosflags(std::ios::showpoint|std::ios::fixed)
00446                         << "_"<<postfix<<"_sigma=" ;
00447                     if(sigma<10)
00448                         os << "0";
00449                     os << sigma
00450                         << YFileSys::getExt(base_name);
00451                     std::string outfname=os.str();
00452                     //Сохраняем изображение
00453 					::AImageSave(img,outfname.c_str());
00454                 }
00455             }
00456     };
00457
00458
00459
00460 }//namespace Hanina
00461
00462
00464 #endif //_SS_RIDGE_DET_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл ss_ridge_functors.h

  • Файлы
  • Список членов всех файлов

ss_ridge_functors.h

См. документацию.
00001 #ifndef _SS_RIDGE_FUNCTORS_H
00002 #define _SS_RIDGE_FUNCTORS_H
00004 //#include "num_linalg.h"
00005 //#include "AImage.h"
00006 //#include "plf_functors.h"
00007 //#include "plf_kernels_1d.h"
00009 namespace Hanina
00010 {
00011     template<typename T1,typename T2>
00012     class Comb_ridge
00013     {
00014         T2 val;
00015     public:
00016         Comb_ridge(T2 value)
00017             : val(value)
00018         {
00019         }
00020         T2 operator()(T1 v1,T2 v2)
00021         {
00022             return (v1>4) ? val : v2;
00023         }
00024     };
00025     template<typename T>
00026     class Check_4_grad_sign_change
00027     {
00028         const int nls;
00029         T sprod(int ofs,T hx,T hy,const T* grad_x,const T* grad_y)
00030         {
00031             return hx*grad_x[ofs]+hy*grad_y[ofs];
00032         }
00033     public:
00034         Check_4_grad_sign_change(int next_line_shift)
00035             :nls(next_line_shift)
00036         {
00037         }
00038         T operator()(T image,T hx,T hy,const T* grad_x,const T* grad_y)
00039         {
00040             if(image!=T(0))
00041             {
00042                 T v1;
00043                 T v2;
00044                 if(ABS(hx) < ABS(hy))
00045                 {//Искать точку пересечения градиента с гор. линиями квадрата - градиент ближе к вертикали
00046                     T alpha=hx/hy;
00047                     if(alpha<0)
00048                     {// (hx< hy) && ((hx<0 hy >0 )|| (hx>0 hy < 0 ) )
00049                         // Двойными линиями отмечено где, '+' - центры пикселей,
00050                         // alpha=0 - вертикаль (|) , alpha=1 - диагональ (/)
00051                         //
00052                         //    +-+=+
00053                         //    | | |
00054                         //    +-+-+
00055                         //    | | |
00056                         //    +=+-+
00057                         //
00058                         v1=(1+alpha)*sprod(-nls,hx,hy,grad_x,grad_y)-alpha*sprod(-nls+1,hx,hy,grad_x,grad_y);
00059                         v2=(1+alpha)*sprod(+nls,hx,hy,grad_x,grad_y)-alpha*sprod(+nls-1,hx,hy,grad_x,grad_y);
00060                     }
00061                     else
00062                     {// (gx< gy) && ( (gx>=0 gy >0) || ( gx<=0 gy < 0 ) )
00063                         // Двойными линиями отмечено где, '+' - центры пикселей,
00064                         // alpha=0 - вертикаль (|) , alpha=1 - диагональ (\)
00065                         //
00066                         //    +=+-+
00067                         //    | | |
00068                         //    +-+-+
00069                         //    | | |
00070                         //    +-+=+
00071                         //
00072                         v1=(1-alpha)*sprod(-nls,hx,hy,grad_x,grad_y)+alpha*sprod(-nls-1,hx,hy,grad_x,grad_y);
00073                         v2=(1-alpha)*sprod(+nls,hx,hy,grad_x,grad_y)+alpha*sprod(+nls+1,hx,hy,grad_x,grad_y);
00074                     }
00075                 }
00076                 else
00077                 {//Искать точку пересечения градиента с верт. линиями квадрата- градиент ближе к горизонтали
00078                     T alpha=hy/hx;
00079                     if(alpha<0)
00080                     {// (gx >= gy) && ( (gx>0 , gy<=0) || ( gx <0 gy >= 0 ) )
00081                         // Двойными линиями (#) отмечено где, '+' - центры пикселей,
00082                         // alpha=0 - горизонталь (-) , alpha=1 - диагональ (/)
00083                         //
00084                         //
00085                         //    +-+-+
00086                         //    | | #
00087                         //    +-+-+
00088                         //    # | |
00089                         //    +-+-+
00090                         //
00091                         v1=(1+alpha)*sprod(-1,hx,hy,grad_x,grad_y)-alpha*sprod(-1+nls,hx,hy,grad_x,grad_y);
00092                         v2=(1+alpha)*sprod(+1,hx,hy,grad_x,grad_y)-alpha*sprod(+1-nls,hx,hy,grad_x,grad_y);
00093                     }
00094                     else
00095                     {// (gx >= gy) && ( (gx>0 , gy>=0) || ( gx <0 gy <= 0 ) )
00096                         // Двойными линиями (#) отмечено где, '+' - центры пикселей,
00097                         // alpha=0 - горизонталь (-) , alpha=1 - диагональ (\)
00098                         //
00099                         //    +-+-+
00100                         //    # | |
00101                         //    +-+-+
00102                         //    | | #
00103                         //    +-+-+
00104                         //
00105                         v1=(1-alpha)*sprod(-1,hx,hy,grad_x,grad_y)+alpha*sprod(-1-nls,hx,hy,grad_x,grad_y);
00106                         v2=(1-alpha)*sprod(+1,hx,hy,grad_x,grad_y)+alpha*sprod(+1+nls,hx,hy,grad_x,grad_y);
00107                     }
00108                 }
00109                 if( v1*v2 < 0 )
00110                     return image;
00111             }
00112             return 0;
00113         }
00114     };
00115
00116     //заполнение матрицы гессе 3х3 компонентами смешанных производных по x, y и t
00117     //на выходе - макс. с.з. и 3 компоненты двух с.в., начиная с максимального
00118     class FillingHessianMatrix3x3
00119     {
00120         private:
00121             float mult;
00122         public:
00123             Vtl::NumAlg::Lin::ublas::c_matrix<float,3,3> m33;
00124             Vtl::NumAlg::Lin::ublas::c_matrix<float,3,3> t33;
00125             Vtl::NumAlg::Lin::ublas::c_matrix<float,3,3> tmp33;
00126             Vtl::NumAlg::Lin::ublas::c_vector<float,3> work;
00127             Vtl::NumAlg::Lin::ublas::c_vector<float,3> eigen;
00128         /*
00129                        |Ixx Ixy Ixt|
00130             matr_hes = |Ixy Iyy Iyt|
00131                        |Ixt Iyt Itt|
00132         */
00133
00134         FillingHessianMatrix3x3(float sigma) : mult(sigma*sigma)
00135         {
00136         }
00137
00138         template<typename T1>
00139         void operator()(T1 Ixx, T1 Iyy, T1 Ixy, T1 Ixxx, T1 Iyyy, T1 Ixyy, T1 Iyxx,
00140                         T1 Ixxxx, T1 Iyyyy, T1 Ixxyy, T1 &max_eig,
00141                         T1 &vx1, T1 &vy1, T1 &vt1, T1 &vx2, T1 &vy2, T1 &vt2)
00142         {
00143
00144             build_3D_hess( Ixx,Iyy,Ixy, Ixxx,Iyyy,Ixyy,Iyxx, Ixxxx,Iyyyy,Ixxyy);
00145
00146             //eigen_val_vec_3D(max_eig, vx1,vy1,vt1, vx2,vy2,vt2);
00147             eigen_val_vec_2D_proj_3D(max_eig, vx1,vy1,vt1, vx2,vy2,vt2);
00148         }
00149     private:
00150         template<typename T1>
00151         void eigen_val_vec_3D(T1 &max_eig, T1 &vx1, T1 &vy1, T1 &vt1, T1 &vx2, T1 &vy2, T1 &vt2)
00152         {
00153             Vtl::NumAlg::Lin::eigen::decomp(m33,eigen,work);
00154             //максимальное собственное значение - eigen(2)
00155             max_eig = mult* (eigen(2));//-eigen(1)
00156             //в vx1 - компоненты собственного вектора соотв e1
00157             vx1 = m33(0,2);
00158             vy1 = m33(1,2);
00159             vt1 = m33(2,2);
00160             //в vx2 - компоненты собственного вектора соотв e2
00161             vx2 = m33(0,1);
00162             vy2 = m33(1,1);
00163             vt2 = m33(2,1);
00165             //vx3 = m33(0,0);
00166             //vy3 = m33(1,0);
00167             //vt3 = m33(2,0);
00168         }
00169         template<typename T1>
00170         void eigen_val_vec_2D_proj_3D(T1 &max_eig, T1 &vx1, T1 &vy1, T1 &vt1, T1 &vx2, T1 &vy2, T1 &vt2)
00171         {
00172             T1 vx;
00173             T1 vy;
00174
00175             calc_2D_eigmax(m33(0,0), m33(0,1), m33(1,1), vx1, vx, vy);
00176             vx1=vx;
00177             vt1=vy;
00178             build_3D_hess_projection(vx1, vt1);
00179             // второй с.в. ортогонален первому.
00180             vx2=vt1;
00181             vt2=-vx1;
00182             if( std::abs(vt1) > std::abs(vx1) )
00183             {
00184                 vx2=vx1;
00185                 vt2=vt1;
00186             }
00187             else
00188             {
00189                 vx2=vt1;
00190                 vt2=-vx1;
00191             }
00192             // поворот так, чтобы ось х стала вдоль вектора vx,vy;
00193             vy1=vy*vx1;
00194             vx1=vx*vx1;
00195             vy2=vy*vx2;
00196             vx2=vx*vx2;
00197
00198             //отладка, тест, просто оба в направлении 2D св
00199             vx1=vx;
00200             vy1=vy;
00201             vt1=0;
00202             //vx2=vx;
00203             //vy2=vy;
00204             //vt2=0;
00205
00206             vx2=0;
00207             vy2=0;
00208             vt2=1;
00209
00210
00211             Vtl::NumAlg::Lin::eigen::decomp(m33,eigen,work);
00212             //максимальное собственное значение - eigen(2)
00213             max_eig = mult* (sqrt(eigen(2)));//-eigen(1)
00214         }
00215         template<typename T1>
00216         void calc_2D_eigmax(T1 Ixx, T1 Ixy, T1 Iyy, T1 &maxeig, T1 &vx, T1 &vy)
00217         {
00218             using namespace Vtl;
00219             //Квадратное уравнение det(H-lambda*E)=0;, решение.
00220             T1 b = (Ixx+Iyy)/2;
00221             T1 D = b-Iyy; //(Ixx-Iyy)/2;
00222             D = sqrt(sqr(D)+sqr(Ixy)); //sqrt из дискриминанта
00223             maxeig = (b>=0) ? b+D : b-D ; //макс. по модулю решение.(отрицаьельных не должно быть для положительно опр кв. формы.
00224             //Поиск соответствующего с.в.
00225             b=Ixx-maxeig;
00226             D=sqrt(sqr(Ixy)+sqr(b));
00227             // нормировка на 1
00228             vx=Ixy/D;
00229             vy=-b/D;
00230         }
00231         template<typename T1>
00232         void build_3D_hess(T1 Ixx, T1 Iyy, T1 Ixy, T1 Ixxx, T1 Iyyy, T1 Ixyy, T1 Iyxx,T1 Ixxxx, T1 Iyyyy, T1 Ixxyy)
00233         {
00234             T1 Ixt = 1/2*(Ixxx + Ixyy);
00235             T1 Iyt = 1/2*(Iyxx + Iyyy);
00236             m33(0,0)= Ixx;  m33(1,0)= Ixy;  m33(2,0)= Ixt;
00237             m33(0,1)= Ixy;  m33(1,1)= Iyy;  m33(2,1)= Iyt;
00238             m33(0,2)= Ixt;  m33(1,2)= Iyt;
00239             m33(2,2)= 1/4*(Ixxxx + 2*Ixxyy + Iyyyy); //Itt
00241             t33=m33;
00242             tmp33=m33;
00243             m33=boost::numeric::ublas::prod(t33,tmp33);
00244         }
00245         template<typename T1>
00246         void build_3D_hess_projection(T1& vx, T1& vy)
00247         {
00248             T1 H11 = m33(0,0)*vx*vx+m33(0,1)*vx*vy+m33(1,1)*vy*vy;
00249             T1 H12 = m33(0,2)*vx+m33(1,2)*vy;
00250             T1 H22 = m33(2,2);
00251             T1 maxeig;
00252             calc_2D_eigmax(H11, H12, H22, maxeig, vx,vy);
00253         }
00254     };
00260             template<typename T,int i_alpha,int i_beta>
00261             struct p33;
00262             template<typename T>
00263             class p33<T,0,1> // X- alpha, Y- beta, Z- main
00264             {
00265                 typedef const T* Planes_t;
00266                 const Planes_t* plane;
00267                 size_t ofs_to_cur;
00268                 int nls;
00269             public:
00270                 p33(const Planes_t* plane_,size_t ofs_to_cur_,int nls_)
00271                     :plane(plane_),ofs_to_cur(ofs_to_cur_),nls(nls_)
00272                 {
00273                 }
00274                 template<int d_a,int d_b>
00275                 T f()
00276                 {
00277                     return plane[2][ofs_to_cur+d_a+d_b*nls];
00278                 }
00279                 template<int d_a,int d_b>
00280                 T b()
00281                 {
00282                     return plane[0][ofs_to_cur+d_a+d_b*nls];
00283                 }
00284             };
00285             template<typename T>
00286             class p33<T,1,2> // Y- alpha, Z- beta, X- main
00287             {
00288                 typedef const T* Planes_t;
00289                 const Planes_t* plane;
00290                 size_t ofs_to_cur;
00291                 int nls;
00292             public:
00293                 p33(const Planes_t* plane_,size_t ofs_to_cur_,int nls_)
00294                     :plane(plane_),ofs_to_cur(ofs_to_cur_),nls(nls_)
00295                 {
00296                 }
00297                 template<int d_a,int d_b>
00298                 T f()
00299                 {
00300                     return plane[d_b+1][ofs_to_cur+1+d_a*nls];
00301                 }
00302                 template<int d_a,int d_b>
00303                 T b()
00304                 {
00305                     return plane[d_b+1][ofs_to_cur-1+d_a*nls];
00306                 }
00307             };
00308             template<typename T>
00309             class p33<T,0,2> // X- alpha, Z- beta, Y- main
00310             {
00311                 typedef const T* Planes_t;
00312                 const Planes_t* plane;
00313                 size_t ofs_to_cur;
00314                 int nls;
00315             public:
00316                 p33(const Planes_t* plane_,size_t ofs_to_cur_,int nls_)
00317                     :plane(plane_),ofs_to_cur(ofs_to_cur_),nls(nls_)
00318                 {
00319                 }
00320                 template<int d_a,int d_b>
00321                 T f()
00322                 {
00323                     return plane[d_b+1][ofs_to_cur+d_a+nls];
00324                 }
00325                 template<int d_a,int d_b>
00326                 T b()
00327                 {
00328                     return plane[d_b+1][ofs_to_cur+d_a-nls];
00329                 }
00330             };
00331
00332             template<int d_a,int d_b,typename T,class F>
00333             void v12_bilin(T alpha,T beta,T& v1, T& v2,F p)
00334             {
00335                 alpha = ABS(alpha);
00336                 beta  = ABS(beta);
00337
00338                 T a1 = (1-alpha) * p.f<0,0>()     + alpha* p.f<d_a,0>();
00339                 T a2 = (1-alpha) * p.f<0,d_b>()   + alpha* p.f<d_a,d_b>();
00340                 v1 =(1-beta)*a1+beta*a2;
00341
00342                   a1 = (1-alpha) * p.b<0,0>()     + alpha* p.b<-d_a,0>();
00343                   a2 = (1-alpha) * p.b<0,-d_b>()   + alpha* p.b<-d_a,-d_b>();
00344                 v2 =(1-beta)*a1+beta*a2;
00345             }
00346             template<typename T,class F>
00347             void v12_bilinear(T alpha,T beta,T& v1, T& v2,F p)
00348             {
00349                 if(alpha >= 0)
00350                 {
00351                     if( beta >= 0 )
00352                     { // alpha > 0 && beta > 0
00353                         v12_bilin<1,1>(alpha,beta,v1,v2,p);
00354                     }
00355                     else
00356                     { // alpha > 0 && beta < 0
00357                         v12_bilin<1,-1>(alpha,beta,v1,v2,p);
00358                     }
00359                 }
00360                 else
00361                 {
00362                     if( beta >= 0 )
00363                     { // alpha < 0 && beta > 0
00364                         v12_bilin<-1,1>(alpha,beta,v1,v2,p);
00365                     }
00366                     else
00367                     { // alpha < 0 && beta < 0
00368                         v12_bilin<-1,-1>(alpha,beta,v1,v2,p);
00369                     }
00370                 }
00371             }
00372
00378     template<typename T>
00379     class ScaleScan3x3
00380     {
00381             T thr;
00382             int nls;
00383         public:
00384             int Nls() const {return nls;}
00385             typedef const T* Planes_t;
00386             ScaleScan3x3(int nls_set)
00387             {
00388                 thr = 0;
00389                 nls = nls_set;
00390             }
00391             T operator()(const Planes_t* modul, size_t ofs_to_cur,T v1x,T v1y,T v1z,T v2x,T v2y,T v2z)
00392             {
00393                 //return modul[1][ofs_to_cur];
00394
00395                 if( dir_check(modul,ofs_to_cur,v1x,v1y,v1z)  &&  dir_check(modul,ofs_to_cur,v2x,v2y,v2z) )
00396                 {
00397                     //если по двум направлениям приходит true, оно нам годится
00398                     return  modul[1][ofs_to_cur];
00399                 }
00400                 else
00401                     return 0;
00402
00403             }
00404             void dir_check_max_X(const Planes_t* plane,size_t ofs_to_cur,T vx,T vy,T vz,T& v1,T& v2)
00405             {
00406                 T alpha=vy/vx;
00407                 T beta=vz/vx;
00408                 p33<T,1,2> p(plane,ofs_to_cur,nls);// Y- alpha, Z- beta, X- main
00409
00410                 v12_bilinear(alpha,beta,v1,v2,p);
00411             }
00412             void dir_check_max_Y(const Planes_t* plane,size_t ofs_to_cur,T vx,T vy,T vz,T& v1,T& v2)
00413             {
00414                 T alpha=vx/vy;
00415                 T beta=vz/vy;
00416                 p33<T,0,2> p(plane,ofs_to_cur,nls);// X- alpha, Z- beta, Y- main
00417
00418                 v12_bilinear(alpha,beta,v1,v2,p);
00419             }
00420             void dir_check_max_Z(const Planes_t* plane,size_t ofs_to_cur,T vx,T vy,T vz,T& v1,T& v2)
00421             {
00422                 //Vtl::NumAlg::sign(1,alpha); - возврашает число со знаком как у второго аргумента и модулем как у первого
00423                 using namespace Vtl::NumAlg;
00424                 T alpha=vx/vz;
00425                 T beta=vy/vz;
00426                 p33<T,0,1> p(plane,ofs_to_cur,nls);// X- alpha, Y- beta, Z- main
00427
00428                 v12_bilinear(alpha,beta,v1,v2,p);
00429             }
00430
00431             bool dir_check(const Planes_t* plane,size_t ofs_to_cur,T vx,T vy,T vz)
00432             {
00433                 T v0=plane[1][ofs_to_cur];
00434                 if(v0 >= thr)
00435                 {
00436                     T v1;
00437                     T v2;
00438                     if(ABS(vx) < ABS(vz))
00439                     {
00440                         if(ABS(vy) < ABS(vz))
00441                         {//   X & Y  < Z
00442                             dir_check_max_Z(plane,ofs_to_cur,vx,vy,vz,v1,v2);
00443                         }
00444                         else
00445                         {//   X  < Z <= Y
00446                             dir_check_max_Y(plane,ofs_to_cur,vx,vy,vz,v1,v2);
00447                         }
00448                     }
00449                     else  // Z <= X
00450                     {
00451                         if(ABS(vy) < ABS(vx))
00452                         {//   Z & Y  < X
00453                             dir_check_max_X(plane,ofs_to_cur,vx,vy,vz,v1,v2);
00454                         }
00455                         else
00456                         {//   Z  <=  X <= Y
00457                             dir_check_max_Y(plane,ofs_to_cur,vx,vy,vz,v1,v2);
00458                         }
00459                     }
00460
00461                     if( (v0 > v1) && (v0 > v2) )
00462                     {
00463                         return true;
00464                     }
00465                 }
00466                 return false;
00467             }
00468     };
00469 }//namespace Hanina
00470
00471
00473 #endif //_SS_RIDGE_FUNCTORS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл ss_ridge_functors_2.h

  • Файлы
  • Список членов всех файлов

ss_ridge_functors_2.h

См. документацию.
00001 #ifndef _SS_RIDGE_FUNCTORS_2_H
00002 #define _SS_RIDGE_FUNCTORS_2_H
00003 //
00004 //
00005 // В НАСТОЯЩИЙ МОМЕНТ НЕ ИСПОЛЬЗУЮТСЯ
00006 //
00007 //
00009 //#include "num_linalg.h"
00010 //#include "AImage.h"
00011 //#include "plf_functors.h"
00012 //#include "plf_kernels_1d.h"
00014 namespace Hanina
00015 {
00016     //двумерный гессиан
00017     template<typename T>
00018     struct HessianDetSqrt
00019     {
00020         template<typename T1>
00021         T operator()(T1 Dxx,T1 Dxy,T1 Dyy)
00022         {
00023             T1 d=Dxx*Dyy-Dxy*Dxy;
00024             return T(d>=0?sqrt(d):-sqrt(d));
00025         }
00026     };
00027     //нахождение с.з. двумерного гессиана
00028     template<typename T>
00029     struct HessianEigenDiff
00030     {
00031         template<typename T1>
00032         T operator()(T1 Dxx,T1 Dxy,T1 Dyy)
00033         {
00037             T1 d = sqrt(Vtl::sqr(Dxx-Dyy)+4*Vtl::sqr(Dxy));
00038             // b2=Dxx+Dyy; // это ПОЛОВИНА коэффициениа при лямда в 1 степени с ОБРАТНЫМ знаком.
00039             // Lambda1 = b2 + d/2;
00040             // Lambda2 = b2 - d/2;
00041             // Lambda1 -Lambda2 = d;
00042             T1 diff = d;
00043             return diff;
00044         }
00045     };
00046     //нахождение с.в. двумерного гессиана и направлений макс. кривизны
00047     struct HessianEigenDiffAndMaxCurvatureDirection
00048     {
00049         template<typename T1>
00050         void operator()(T1 Dxx,T1 Dxy,T1 Dyy, T1 & eigen_diff, T1 & vx, T1 & vy  )
00051         {
00055              T1 d = sqrt(Vtl::sqr(Dxx-Dyy)+4*Vtl::sqr(Dxy));
00056              T1 b2 = Dxx+Dyy;  // это ПОЛОВИНА коэффициениа при лямда в 1 степени с ОБРАТНЫМ знаком.
00057 //           T1 Lambda1 = (b2 + d)/2;
00058 //           T1 Lambda2 = (b2 - d)/2;
00059 //           T1 vect1Y = 1;
00060 //           T1 vect1X = (Dxy*vect1Y)/Dxx-Lambda1;
00061 //           T1 vect2X = 1;
00062 //           T1 vect2Y = (Dxx-Lambda2*vect2X)/Dxy;
00063 // нужен только 1 с.в. - соответвующий направлению ортогональному хребту.
00064 // Это направление максимальной кривизны, т.е с.в. соответсвующий наибольшему по модулю с.з.
00065 // Т.о. если b2 > 0 то Lambda1, иначе Lambda2
00066              T1 Lambda = ( b2 >= 0 ) ? (b2 + d/2) : (b2 - d/2);
00067              vx = -Dxy;
00068              vy = Dxx-Lambda;
00069              eigen_diff=d;
00070         }
00071     };
00075     template<typename T>
00076     struct Luv_from_xy_derivatives
00077     {
00078         template<typename T1>
00079         T operator()(T1 Lx,T1 Ly,T1 Lxx,T1 Lxy,T1 Lyy)
00080         {
00081             return Lx*Ly*(Lxx-Lyy)+(Vtl::sqr(Lx)-Vtl::sqr(Ly))*Lxy;
00082         }
00083     };
00084
00085     template<typename T>
00086     class ZeroCrossVisualization
00087     {
00088         T maxval;
00089         T k;
00090     public:
00091         ZeroCrossVisualization(T max_value=255,T slope=1):maxval(T(max_value/M_PI*2)),k(slope) {}
00092         T operator()(T val) const {return maxval*atan(k*abs(val));}
00093     };
00094         template<typename T>
00095         class ZeroCross
00096         {
00097             T thr;
00098             int nls;
00099             int pos;
00100             int neg;
00101
00102         public:
00106             void set_IterNextLineShift(int modul_nls) { nls=modul_nls;}
00107             Vtl::Plf::Extent ext() const {return Vtl::Plf::Extent(1,1,1,1); }
00108             ZeroCross(T threshold=0):thr(threshold) {nls=0x5FFFFFFF;}
00109             T operator()(const T* value)
00110             {
00111                 //if(abs(value[0]) <= thr)
00112                 //  return 0;
00113                 pos=neg=0;
00114                 check(value[0],pos,neg);
00115                 check(value[-1],pos,neg);
00116                 check(value[+1],pos,neg);
00117                 check(value[nls],pos,neg);
00118                 check(value[nls-1],pos,neg);
00119                 check(value[nls+1],pos,neg);
00120                 check(value[-nls],pos,neg);
00121                 check(value[-nls-1],pos,neg);
00122                 check(value[-nls+1],pos,neg);
00123                 if(pos>2 && neg >2 )
00124                     return 0;
00125                 return 255;
00126             }
00127         private:
00128             static void check(T value,int& pos,int& neg)
00129             {
00130                 if(value>0)
00131                     ++pos;
00132                 else if(value<0)
00133                     ++neg;
00134             }
00135         };
00136
00137
00138
00139 }//namespace Hanina
00140
00141
00143 #endif //_SS_RIDGE_FUNCTORS_2_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл start_median.h

  • Файлы
  • Список членов всех файлов

start_median.h

См. документацию.
00001 /*
00002
00003 См. в файле test_plf_filters.cpp
00004
00005 template<class Img>
00006 int plf_test_Median(int r,Img* input,std::string out_name)
00007 {
00008     Plf::SrcAImage<unsigned,Img> src("src",input);
00009     Plf::DstAImage<unsigned,Img> dst("dst");
00010
00011     Plf::medianFilter<unsigned> medianf(r,input->Bits(),"medain");
00012     src.out.ConnectTo(&medianf.in);
00013     medianf.out.ConnectTo(&dst.in);
00014
00015     Plf::FiltersSystem sys(out_name+".dot");
00016 //------ Assing task------------------------
00017     sys.Assign(&src,&dst);
00018 //------ Initialize destinations -----------
00019     Plf::ImgSize is=dst.in.getImageSize();
00020     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::YImageClass::IMGC_GRAYSCALE,is.width,is.height,input->Bits()));
00021     Img *out=dynamic_cast<Img *>(_out.get());
00022     if(out==0)
00023         return 1;
00024     dst.setDstImage(out);
00025
00026     sys.Run(indicator,out_name.c_str());
00027
00028     std::string fn=out_name+".tif";
00029     ::AImageSave(out,fn.c_str(),indicator);
00030     return 0;
00031 }
00032
00033 template<class Img>
00034 int plf_test_Median2(int r,Img* input,std::string out_name)
00035 {
00036     Plf::SrcAImage<unsigned,Img> src("src",input);
00037     Plf::DstAImage<unsigned,Img> dst("dst");
00038
00039     Plf::medianFilter2<unsigned> medianf(r,input->Bits(),"medain2");
00040     src.out.ConnectTo(&medianf.in);
00041     medianf.out.ConnectTo(&dst.in);
00042
00043     Plf::FiltersSystem sys(out_name+".dot");
00044 //------ Assing task------------------------
00045     sys.Assign(&src,&dst);
00046 //------ Initialize destinations -----------
00047     Plf::ImgSize is=dst.in.getImageSize();
00048     std::auto_ptr<AImage> _out(::AImageCreate(0,AImage::YImageClass::IMGC_GRAYSCALE,is.width,is.height,input->Bits()));
00049     Img *out=dynamic_cast<Img *>(_out.get());
00050     if(out==0)
00051         return 1;
00052     dst.setDstImage(out);
00053
00054     sys.Run(indicator,out_name.c_str());
00055
00056     std::string fn=out_name+".tif";
00057     ::AImageSave(out,fn.c_str(),indicator);
00058     return 0;
00059 }
00060 */


Pipe Line Filters: Исходный файл StatDiff.h

  • Файлы
  • Список членов всех файлов

StatDiff.h

См. документацию.
00001
00002 #ifndef STAT_DIFF_H
00003 #define STAT_DIFF_H
00004
00005 // system includings
00006 #define _USE_MATH_DEFINES
00007 #include <cmath>
00008
00009 // library includings
00010 #include "convolve.h"
00011 #include "plf_kernels_1d.h"
00012
00013 template< typename T >
00014 void GetStatCharact(T* mean,
00015                     T* sq,
00016                     const T* img,
00017                     const int w,
00018                     const int h,
00019                     float sigma,
00020                     float nsigmas_env)
00021 {
00022   //делаем копии в остальные массивы
00023     memcpy(mean, img, w * h * sizeof(T));
00024     Vtl::ImAlg::Tools::copy_1_1(img, w, h, w, sq, w, Vtl::Plf::F11::sqr<T>);
00025
00026     //создаем классы, выполняющие свертки с гауссом
00027     //сама функция
00028     typedef Vtl::ImAlg::WndFun::Gauss<float, 0, false> FF0;
00029     FF0 f0(sigma, nsigmas_env);
00030     typedef Vtl::Plf::Kernel::FKern<float, Vtl::Plf::Kernel::KT_Conv, true> K0;
00031     K0 ker0(f0);
00032     Vtl::ImAlg::Conv::ConvInplace<float, K0> g0(ker0);
00033
00034     // Вычисление средних
00035     Vtl::ImAlg::Conv::Conv2D::conv2DInplace(mean, w, h, w, g0, g0);
00036     Vtl::ImAlg::Conv::Conv2D::conv2DInplace(sq, w, h, w, g0, g0);
00037
00038   //вычисляем локальную дисперсию изображения.
00039     Vtl::Plf::F21::Disp<T> dsp;
00040     Vtl::ImAlg::Tools::copy_2_1(mean, w, h, w, sq, w, sq, w, dsp);
00041 }
00042
00043 //===================================================================
00044 // Func: Vtl::Plf::F31::StatDiff<T> or Vtl::Plf::F31::StatDiffThresh<T>
00045 template< typename T, typename Func >
00046 void StatDiff(T* result,
00047               const T* img,
00048               const int w,
00049               const int h,
00050               const float sigma,
00051               const float nsigmas_env,
00052               Func stDiffFunc)
00053 {
00054   const int sz = w * h;
00055
00056   // создаем массивы для промежуточных данных (изображений).
00057   // Изображения лежат в 1-мерных массивах пиксель за пикселем, строка
00058   // за строкой, подряд, без дыр.
00059     std::vector<T> _data0(sz);
00060     std::vector<T> _data1(sz);
00061     std::vector<T> _data2(sz);
00062
00063   // получаем указатели на первые элементы массивов.
00064     T *mean = &(_data0[0]);
00065     T *sq = &(_data1[0]);
00066
00067   GetStatCharact(mean, sq, img, w, h, sigma, nsigmas_env);
00068
00069   // Вычисляем стат дифференцирование
00070   Vtl::ImAlg::Tools::copy_3_1(img, w, h, w, mean, w, sq, w, result, w, stDiffFunc);
00071 }
00072
00073 //=============================================================================
00074 namespace Vtl
00075 {
00076 namespace Plf
00077 {
00078 namespace F31
00079 {
00080   template<typename T>
00081     class StatDiffThresh
00082     {
00083         float A;
00084         float sigma_d;
00085         float m_d;
00086         float alpha;
00087         float thresh;
00088
00089     public:
00090         StatDiffThresh(float amplification = 6.0f,
00091                          float sigma_desired = 85.0f,
00092                                      float mean_desired = 128.0f,
00093                                      float phone_to_edges = 0.8f,
00094                                      float in_thresh = 5.0f)
00095         {
00096       A = amplification;
00097             sigma_d = sigma_desired;
00098             m_d = mean_desired;
00099             alpha = phone_to_edges;
00100             thresh = in_thresh;
00101         }
00102
00103         //-------------------------------------------------------------------------
00104         T operator()(T f,
00105                        T f_mean,
00106                                  T f_sigma) const
00107         {
00108             T coef = /*T(1);*/T(atan((f_mean - thresh) / 2.0) / M_PI_2 + 0.5);
00109
00110             return /*(f - f_mean) * (A * sigma_d / (A * f_sigma + sigma_d)) * coef +
00111                 + alpha * m_d + (1 - alpha) * f_mean*/
00112         f * (A * sigma_d / (A * f_sigma + sigma_d)) * coef;
00113         }
00114     };
00115 }
00116 }
00117 }
00118
00119 //=============================================================================
00120 template< typename T >
00121 void GradStatDiff(T *gradMod,
00122                   T *statDiff,
00123                   T *Lx,
00124                   T *Ly,
00125                   int w,
00126                   int h)
00127 {
00128   for (int y = 0; y < h; y++)
00129   {
00130     for (int x = 0; x < w; x++)
00131     {
00132       T coef;
00133
00134             if ((*gradMod) == 0)
00135             {
00136               coef = 1.0f;
00137             }
00138             else
00139             {
00140               coef = (*statDiff) / (*gradMod);
00141             }
00142
00143             std::cout << std::endl << coef;
00144       *Lx *= coef;
00145       *Ly *= coef;
00146
00147       statDiff++;
00148       gradMod++;
00149       Lx++;
00150       Ly++;
00151     }
00152   }
00153 }
00154
00155 #endif // STAT_DIFF_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл stdint.h

  • Файлы
  • Список членов всех файлов

stdint.h

См. документацию.
00001
00002 //  stdint.h
00003 //
00004 //    Integer types - c99 7.18
00006 #ifndef __STDINT_H
00007 #define __STDINT_H
00008 #include "wchar.h"
00009 // 7.18.1.1 Exact-width integer types
00010 typedef signed char    int8_t;
00011 typedef short          int16_t;
00012 typedef int            int32_t;
00013 typedef  __int64       int64_t;
00014 typedef unsigned char    uint8_t;
00015 typedef unsigned short   uint16_t;
00016 typedef unsigned int     uint32_t;
00017 typedef unsigned __int64 uint64_t;
00018 // 7.18.1.2 Minimum-width integer types
00019 typedef int8_t  int_least8_t;
00020 typedef int16_t int_least16_t;
00021 typedef int32_t int_least32_t;
00022 typedef int64_t int_least64_t;
00023 typedef uint8_t   uint_least8_t;
00024 typedef uint16_t  uint_least16_t;
00025 typedef uint32_t  uint_least32_t;
00026 typedef uint64_t  uint_least64_t;
00027 // 7.18.1.3 Fastest minimum-width integer types
00028 typedef int8_t  int_fast8_t;
00029 typedef int16_t int_fast16_t;
00030 typedef int32_t int_fast32_t;
00031 typedef int64_t int_fast64_t;
00032 typedef uint8_t   uint_fast8_t;
00033 typedef uint16_t  uint_fast16_t;
00034 typedef uint32_t  uint_fast32_t;
00035 typedef uint64_t  uint_fast64_t;
00036 // 7.18.1.4 Integer types capable of holding object pointers
00037 typedef int intptr_t;
00038 typedef unsigned uintptr_t;
00039 // 7.18.1.5 Greatest-width integer types */
00040 typedef int64_t intmax_t;
00041 typedef uint64_t uintmax_t;
00042
00043 /* 7.18.2  Limits of specified-width integer types */
00044 #if !defined ( __cplusplus) || defined (__STDC_LIMIT_MACROS)
00045
00046 /* 7.18.2.1  Limits of exact-width integer types */
00047 #define INT8_MIN (-128)
00048 #define INT16_MIN (-32768)
00049 #define INT32_MIN (-2147483647 - 1)
00050 #define INT64_MIN  (-9223372036854775807LL - 1)
00051
00052 #define INT8_MAX 127
00053 #define INT16_MAX 32767
00054 #define INT32_MAX 2147483647
00055 #define INT64_MAX 9223372036854775807LL
00056
00057 #define UINT8_MAX 0xff /* 255U */
00058 #define UINT16_MAX 0xffff /* 65535U */
00059 #define UINT32_MAX 0xffffffff  /* 4294967295U */
00060 #define UINT64_MAX 0xffffffffffffffffULL /* 18446744073709551615ULL */
00061
00062 /* 7.18.2.2  Limits of minimum-width integer types */
00063 #define INT_LEAST8_MIN INT8_MIN
00064 #define INT_LEAST16_MIN INT16_MIN
00065 #define INT_LEAST32_MIN INT32_MIN
00066 #define INT_LEAST64_MIN INT64_MIN
00067
00068 #define INT_LEAST8_MAX INT8_MAX
00069 #define INT_LEAST16_MAX INT16_MAX
00070 #define INT_LEAST32_MAX INT32_MAX
00071 #define INT_LEAST64_MAX INT64_MAX
00072
00073 #define UINT_LEAST8_MAX UINT8_MAX
00074 #define UINT_LEAST16_MAX UINT16_MAX
00075 #define UINT_LEAST32_MAX UINT32_MAX
00076 #define UINT_LEAST64_MAX UINT64_MAX
00077
00078 /* 7.18.2.3  Limits of fastest minimum-width integer types */
00079 #define INT_FAST8_MIN INT8_MIN
00080 #define INT_FAST16_MIN INT16_MIN
00081 #define INT_FAST32_MIN INT32_MIN
00082 #define INT_FAST64_MIN INT64_MIN
00083
00084 #define INT_FAST8_MAX INT8_MAX
00085 #define INT_FAST16_MAX INT16_MAX
00086 #define INT_FAST32_MAX INT32_MAX
00087 #define INT_FAST64_MAX INT64_MAX
00088
00089 #define UINT_FAST8_MAX UINT8_MAX
00090 #define UINT_FAST16_MAX UINT16_MAX
00091 #define UINT_FAST32_MAX UINT32_MAX
00092 #define UINT_FAST64_MAX UINT64_MAX
00093
00094 /* 7.18.2.4  Limits of integer types capable of holding
00095     object pointers */
00096 #define INTPTR_MIN INT32_MIN
00097 #define INTPTR_MAX INT32_MAX
00098 #define UINTPTR_MAX UINT32_MAX
00099
00100 /* 7.18.2.5  Limits of greatest-width integer types */
00101 #define INTMAX_MIN INT64_MIN
00102 #define INTMAX_MAX INT64_MAX
00103 #define UINTMAX_MAX UINT64_MAX
00104
00105 /* 7.18.3  Limits of other integer types */
00106 #define PTRDIFF_MIN INT32_MIN
00107 #define PTRDIFF_MAX INT32_MAX
00108
00109 #define SIG_ATOMIC_MIN INT32_MIN
00110 #define SIG_ATOMIC_MAX INT32_MAX
00111
00112 #ifndef SIZE_MAX
00113 #define SIZE_MAX UINT32_MAX
00114 #endif
00115
00116 #ifndef WCHAR_MIN  /* also in wchar.h */
00117 #define WCHAR_MIN 0
00118 #define WCHAR_MAX ((wchar_t)-1) /* UINT16_MAX */
00119 #endif
00120
00121 /*
00122  * wint_t is unsigned short for compatibility with MS runtime
00123  */
00124 #define WINT_MIN 0
00125 #define WINT_MAX ((wint_t)-1) /* UINT16_MAX */
00126
00127 #endif /* !defined ( __cplusplus) || defined __STDC_LIMIT_MACROS */
00128
00129
00130 /* 7.18.4  Macros for integer constants */
00131 #if !defined ( __cplusplus) || defined (__STDC_CONSTANT_MACROS)
00132
00133 /* 7.18.4.1  Macros for minimum-width integer constants
00134
00135     Accoding to Douglas Gwyn <gwyn@arl.mil>:
00136     "This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC
00137     9899:1999 as initially published, the expansion was required
00138     to be an integer constant of precisely matching type, which
00139     is impossible to accomplish for the shorter types on most
00140     platforms, because C99 provides no standard way to designate
00141     an integer constant with width less than that of type int.
00142     TC1 changed this to require just an integer constant
00143     *expression* with *promoted* type."
00144
00145     The trick used here is from Clive D W Feather.
00146 */
00147
00148 #define INT8_C(val) (INT_LEAST8_MAX-INT_LEAST8_MAX+(val))
00149 #define INT16_C(val) (INT_LEAST16_MAX-INT_LEAST16_MAX+(val))
00150 #define INT32_C(val) (INT_LEAST32_MAX-INT_LEAST32_MAX+(val))
00151 #define INT64_C(val) (INT_LEAST64_MAX-INT_LEAST64_MAX+(val))
00152
00153 #define UINT8_C(val) (UINT_LEAST8_MAX-UINT_LEAST8_MAX+(val))
00154 #define UINT16_C(val) (UINT_LEAST16_MAX-UINT_LEAST16_MAX+(val))
00155 #define UINT32_C(val) (UINT_LEAST32_MAX-UINT_LEAST32_MAX+(val))
00156 #define UINT64_C(val) (UINT_LEAST64_MAX-UINT_LEAST64_MAX+(val))
00157
00158 /* 7.18.4.2  Macros for greatest-width integer constants */
00159 #define INTMAX_C(val) (INTMAX_MAX-INTMAX_MAX+(val))
00160 #define UINTMAX_C(val) (UINTMAX_MAX-UINTMAX_MAX+(val))
00161
00162 #endif  /* !defined ( __cplusplus) || defined __STDC_CONSTANT_MACROS */
00163
00164
00165 #endif // __STDINT_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл storage.h

  • Файлы
  • Список членов всех файлов

storage.h

См. документацию.
00001 #ifndef _STORAGE_H
00002 #define _STORAGE_H
00004 #include <sstream>
00005 #include <vector>
00006 #include <iostream>
00008 namespace Vtl
00009 {
00010 namespace ImAlg
00011 {
00012 namespace Registration
00013 {
00015
00028 #define PROCESSOR_MEMORY_ALIGNMENT 32
00029
00050 #define PROCESSOR_MEMORY_AVOID_PTR_DIFF 64*1024
00051 //#define PROCESSOR_MEMORY_AVOID_PTR_DIFF 0
00053
00059     template<typename T,size_t ndim,size_t align=PROCESSOR_MEMORY_ALIGNMENT,size_t avoid_ptrdiff=PROCESSOR_MEMORY_AVOID_PTR_DIFF>
00060     class Storage
00061     {
00062     public:
00063         enum {N=ndim};
00064         typedef size_t Offsets_t[ndim];
00065     private:
00066         //size_t ofs[ndim];
00067         Offsets_t ofs;
00068         std::vector<T> data_;
00069         T* data;
00070     public:
00071         Storage() :data(0){}
00072         ~Storage() {}
00073         void Init(Offsets_t sz) //Заказать ndim массивов соответствующих размеров
00074         {
00075             ofs[0]=0;
00076             for(size_t i=1; i<ndim; ++i)
00077             {
00078                 size_t d=sz[i-1]*sizeof(T);
00079                 if(align>0)
00080                 {
00081                     size_t e=d % align;
00082                     if(e)
00083                     {
00084                         e=align-e;
00085                         d+=e;
00086                         //std::cout << "Block "<<i<< " aligned by "<<e<<" bytes."<<std::endl;
00087                     }
00088                 }
00089                 ofs[i]=ofs[i-1]+d/sizeof(T);
00090                 if(avoid_ptrdiff>0)
00091                 {
00092                     size_t cnt=ndim;
00093                     bool need;
00094                     do
00095                     {
00096                         need=false;
00097                         for(size_t j=0; j<i; ++j)
00098                         {
00099                             size_t d=(ofs[i]-ofs[j])*sizeof(T);
00100                             if(0==(d%avoid_ptrdiff))
00101                             {
00102                                 if(cnt--)
00103                                     need=true;
00104                                 ofs[i]+=align/sizeof(T);
00105                                 //std::cout << "Block "<<i<< " shifted to avoid 64k slowing."<<std::endl;
00106                                 break;
00107                             }
00108                         }
00109                     }while(need);
00110                 }
00111             }
00112             size_t s=ofs[ndim-1]+sz[ndim-1]+align/sizeof(T);
00113             data_.resize(s);
00114             data=&(data_[0]);
00115             ::memset(data,0,sizeof(data[0])*s);
00116
00117             size_t d=size_t(data);
00118             if(align>0)
00119             {
00120                 size_t e=d % align;
00121                 if(e)
00122                     data+=(align-e)/sizeof(T);
00123             }
00124         }
00125         template<size_t i> T* block() { return data+ofs[i];}
00126         template<size_t i> const T* block() const { return data+ofs[i];}
00127     };
00128 }//namespace Registration
00129 }//namespace ImAlg
00130 }//namespace Vtl
00132 #endif //_STORAGE_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Cписок членов класса

AImage::Bgr Cписок членов класса

Полный список членов класса AImage::Bgr, включая наследуемые из базового класса

b | AImage::Bgr
g | AImage::Bgr
r | AImage::Bgr


Pipe Line Filters: Cписок членов класса

AImage::Info Cписок членов класса

Полный список членов класса AImage::Info, включая наследуемые из базового класса

bits | AImage::Info
height | AImage::Info
iclass | AImage::Info
istore | AImage::Info
width | AImage::Info


Pipe Line Filters: Cписок членов класса

AImage::Rgb Cписок членов класса

Полный список членов класса AImage::Rgb, включая наследуемые из базового класса

b | AImage::Rgb
g | AImage::Rgb
r | AImage::Rgb


Pipe Line Filters: Cписок членов класса

Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > Cписок членов класса

Полный список членов класса Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > >, включая наследуемые из базового класса

build_E(value_type focus) | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [inline, private]
DirectMinimization(const Matrix &Fm) | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [inline]
E | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > |
F | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > |
find_sing_value_dev(Matrix &E) | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [inline, private]
full_search() | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [inline, private]
full_search_subproc(value_type f_min, value_type f_max, value_type f_step, value_type &eps) | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [inline, private]
K1 | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > |
K2 | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > |
Matrix typedef | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > |
n элементы перечисления | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > |
operator()() | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [inline]
optimal_search() | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > | [inline, private]
size_type typedef | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > |
value_type typedef | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > |
Vector typedef | Basics3D::Fm2Essential::DirectMinimization< Vtl::NumAlg::Lin::ublas::c_matrix< T, N, N > > |


Pipe Line Filters: Cписок членов класса

Basics3D::FmTools< T > Cписок членов класса

Полный список членов класса Basics3D::FmTools< T >, включая наследуемые из базового класса

Build_K(T focus_x, T focus_y, T u_0=T(0), T v_0=T(0), T skew=T(0)) | Basics3D::FmTools< T > | [inline, static]
Build_K(Matrix &K, T focus_x, T focus_y, T u_0=T(0), T v_0=T(0), T skew=T(0)) | Basics3D::FmTools< T > | [inline, static]
Build_K(T focus) | Basics3D::FmTools< T > | [inline, static]
Build_K(Matrix &K, T focus) | Basics3D::FmTools< T > | [inline, static]
Build_P(Matrix_3x4 &P, const Matrix &K, const Matrix &R, const Vector3 &t) | Basics3D::FmTools< T > | [inline, static]
essential2fm(const Matrix &K2, const Matrix &E, const Matrix &K1) | Basics3D::FmTools< T > | [inline, static]
essential2fm(Matrix &F, const Matrix &K2, const Matrix &E, const Matrix &K1) | Basics3D::FmTools< T > | [inline, static]
fm2essential(const Matrix &K2, const Matrix &F, const Matrix &K1) | Basics3D::FmTools< T > | [inline, static]
fm2essential(Matrix &E, const Matrix &K2, const Matrix &F, const Matrix &K1) | Basics3D::FmTools< T > | [inline, static]
Matrix typedef | Basics3D::FmTools< T > |
Matrix_3x4 typedef | Basics3D::FmTools< T > |
value_type typedef | Basics3D::FmTools< T > |
Vector3 typedef | Basics3D::FmTools< T > |


Pipe Line Filters: Cписок членов класса

Basics3D::PointStatus Cписок членов класса

Полный список членов класса Basics3D::PointStatus, включая наследуемые из базового класса

AtInfinity элементы перечисления | Basics3D::PointStatus
BadReproj элементы перечисления | Basics3D::PointStatus
Behind элементы перечисления | Basics3D::PointStatus
Flags перечисление | Basics3D::PointStatus
Ok элементы перечисления | Basics3D::PointStatus
Uncertain элементы перечисления | Basics3D::PointStatus


Pipe Line Filters: Cписок членов класса

Basics3D::SortS< T > Cписок членов класса

Полный список членов класса Basics3D::SortS< T >, включая наследуемые из базового класса

index | Basics3D::SortS< T > |
operator<(const SortS &rhs) const | Basics3D::SortS< T > | [inline]
sigma | Basics3D::SortS< T > |
SortS() | Basics3D::SortS< T > | [inline]
SortS(T sigma_, int index_) | Basics3D::SortS< T > | [inline]


Pipe Line Filters: Cписок членов класса

Basics3D::Structure::CameraPos< T > Cписок членов класса

Полный список членов класса Basics3D::Structure::CameraPos< T >, включая наследуемые из базового класса

focus | Basics3D::Structure::CameraPos< T >
id | Basics3D::Structure::CameraPos< T >
R | Basics3D::Structure::CameraPos< T >
t | Basics3D::Structure::CameraPos< T >


Pipe Line Filters: Cписок членов класса

Basics3D::Structure::Dlt< T > Cписок членов класса

Полный список членов класса Basics3D::Structure::Dlt< T >, включая наследуемые из базового класса

A | Basics3D::Structure::Dlt< T > | [private]
build_A(value_type x1, value_type y1, value_type x2, value_type y2) | Basics3D::Structure::Dlt< T > | [inline, private]
distEuclidean(const Vector2 &pt1, const Vector2 &pt2) | Basics3D::Structure::Dlt< T > | [inline, private, static]
Dlt(const MatrixP &P1_, const MatrixP &P2_) | Basics3D::Structure::Dlt< T > | [inline]
M элементы перечисления | Basics3D::Structure::Dlt< T > | [private]
MatrixA typedef | Basics3D::Structure::Dlt< T > | [private]
MatrixP typedef | Basics3D::Structure::Dlt< T > |
N элементы перечисления | Basics3D::Structure::Dlt< T > | [private]
operator()(const Vector2 &p1, const Vector2 &p2, Vector4 &X) | Basics3D::Structure::Dlt< T > | [inline]
P1 | Basics3D::Structure::Dlt< T > | [private]
p1_1 | Basics3D::Structure::Dlt< T > | [private]
p1_2 | Basics3D::Structure::Dlt< T > | [private]
p1_3 | Basics3D::Structure::Dlt< T > | [private]
P2 | Basics3D::Structure::Dlt< T > | [private]
p2_1 | Basics3D::Structure::Dlt< T > | [private]
p2_2 | Basics3D::Structure::Dlt< T > | [private]
p2_3 | Basics3D::Structure::Dlt< T > | [private]
reProjectionStdDev(const Vector2 &p1, const Vector2 &p2, const Vector4 &X) const | Basics3D::Structure::Dlt< T > | [inline]
toEuclidean(const Vector3 &pt) | Basics3D::Structure::Dlt< T > | [inline, private, static]
value_type typedef | Basics3D::Structure::Dlt< T > |
Vector2 typedef | Basics3D::Structure::Dlt< T > |
Vector3 typedef | Basics3D::Structure::Dlt< T > |
Vector4 typedef | Basics3D::Structure::Dlt< T > |


Pipe Line Filters: Cписок членов класса

Basics3D::Structure::Pt< T > Cписок членов класса

Полный список членов класса Basics3D::Structure::Pt< T >, включая наследуемые из базового класса

flag | Basics3D::Structure::Pt< T >
id | Basics3D::Structure::Pt< T >
p1 | Basics3D::Structure::Pt< T >
p2 | Basics3D::Structure::Pt< T >
p3D | Basics3D::Structure::Pt< T >


Pipe Line Filters: Cписок членов класса

Basics3D::Types< T > Cписок членов класса

Полный список членов класса Basics3D::Types< T >, включая наследуемые из базового класса

Matrix_3x3 typedef | Basics3D::Types< T >
Matrix_3x4 typedef | Basics3D::Types< T >
Matrix_4x4 typedef | Basics3D::Types< T >
value_type typedef | Basics3D::Types< T >
Vector_2 typedef | Basics3D::Types< T >
Vector_3 typedef | Basics3D::Types< T >
Vector_4 typedef | Basics3D::Types< T >


Pipe Line Filters: Cписок членов класса

Dbg::Fmt< T, format_type > Cписок членов класса

Полный список членов класса Dbg::Fmt< T, format_type >, включая наследуемые из базового класса

Fmt(const T &v) | Dbg::Fmt< T, format_type > | [inline, explicit]
value | Dbg::Fmt< T, format_type > |
write(std::ostream &os) | Dbg::Fmt< T, format_type > | [inline]


Pipe Line Filters: Cписок членов класса

Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > Cписок членов класса

Полный список членов класса Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format >, включая наследуемые из базового класса

Default элементы перечисления | Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > |
Fmt(Matrix &m) | Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > | [inline, explicit]
Format перечисление | Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > |
Matrix typedef | Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > |
RowsAndCols элементы перечисления | Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > |
value | Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > |
write(std::ostream &os) const | Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > | [inline]
write_(std::ostream &os, Loki::Int2Type< Default >) const | Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > | [inline, private]
write_(std::ostream &os, Loki::Int2Type< RowsAndCols >) const | Dbg::Fmt< Vtl::NumAlg::Lin::ublas::c_matrix< T, M, N >, format > | [inline, private]


Pipe Line Filters: Cписок членов класса

Dbg::Format::F Cписок членов класса

Полный список членов класса Dbg::Format::F, включая наследуемые из базового класса

eachtime(std::ostream &os) | Dbg::Format::F | [inline]
F(int width, int prec, bool sign) | Dbg::Format::F | [inline]
prec_ | Dbg::Format::F |
sign_ | Dbg::Format::F |
width_ | Dbg::Format::F |


Pipe Line Filters: Cписок членов класса

DMatrixElem Cписок членов класса

Полный список членов класса DMatrixElem, включая наследуемые из базового класса

next | DMatrixElem
p | DMatrixElem


Pipe Line Filters: Cписок членов класса

Hanina::HessianDetSqrt< T > Cписок членов класса

Полный список членов класса Hanina::HessianDetSqrt< T >, включая наследуемые из базового класса

operator()(T1 Dxx, T1 Dxy, T1 Dyy) Hanina::HessianDetSqrt< T > [inline]


Pipe Line Filters: Cписок членов класса

Hanina::HessianEigenDiff< T > Cписок членов класса

Полный список членов класса Hanina::HessianEigenDiff< T >, включая наследуемые из базового класса

operator()(T1 Dxx, T1 Dxy, T1 Dyy) Hanina::HessianEigenDiff< T > [inline]


Pipe Line Filters: Cписок членов класса

Hanina::HessianEigenDiffAndMaxCurvatureDirection Cписок членов класса

Полный список членов класса Hanina::HessianEigenDiffAndMaxCurvatureDirection, включая наследуемые из базового класса

operator()(T1 Dxx, T1 Dxy, T1 Dyy, T1 &eigen_diff, T1 &vx, T1 &vy) Hanina::HessianEigenDiffAndMaxCurvatureDirection [inline]


Pipe Line Filters: Cписок членов класса

Hanina::Luv_from_xy_derivatives< T > Cписок членов класса

Полный список членов класса Hanina::Luv_from_xy_derivatives< T >, включая наследуемые из базового класса

operator()(T1 Lx, T1 Ly, T1 Lxx, T1 Lxy, T1 Lyy) Hanina::Luv_from_xy_derivatives< T > [inline]


Pipe Line Filters: Cписок членов класса

IFF::BMP_BitMapFileHeader Cписок членов класса

Полный список членов класса IFF::BMP_BitMapFileHeader, включая наследуемые из базового класса

bfOffBits | IFF::BMP_BitMapFileHeader
bfReserved1 | IFF::BMP_BitMapFileHeader
bfReserved2 | IFF::BMP_BitMapFileHeader
bfSize | IFF::BMP_BitMapFileHeader
bfType | IFF::BMP_BitMapFileHeader


Pipe Line Filters: Cписок членов класса

IFF::BMP_BitMapInfoHeader Cписок членов класса

Полный список членов класса IFF::BMP_BitMapInfoHeader, включая наследуемые из базового класса

biBitCount | IFF::BMP_BitMapInfoHeader
biClrImportant | IFF::BMP_BitMapInfoHeader
biClrUsed | IFF::BMP_BitMapInfoHeader
biCompression | IFF::BMP_BitMapInfoHeader
biHeight | IFF::BMP_BitMapInfoHeader
biPlanes | IFF::BMP_BitMapInfoHeader
biSize | IFF::BMP_BitMapInfoHeader
biSizeImage | IFF::BMP_BitMapInfoHeader
biWidth | IFF::BMP_BitMapInfoHeader
biXPelsPerMeter | IFF::BMP_BitMapInfoHeader
biYPelsPerMeter | IFF::BMP_BitMapInfoHeader


Pipe Line Filters: Cписок членов класса

IFF::FloatImageFile::Header Cписок членов класса

Полный список членов класса IFF::FloatImageFile::Header, включая наследуемые из базового класса

hdrsize | IFF::FloatImageFile::Header
height | IFF::FloatImageFile::Header
id | IFF::FloatImageFile::Header
reserved | IFF::FloatImageFile::Header
width | IFF::FloatImageFile::Header


Pipe Line Filters: Cписок членов класса

IFF::OzFile::Header Cписок членов класса

Полный список членов класса IFF::OzFile::Header, включая наследуемые из базового класса

begHour | IFF::OzFile::Header
begMinutes | IFF::OzFile::Header
begSecond1000 | IFF::OzFile::Header
Bits | IFF::OzFile::Header
Chan | IFF::OzFile::Header
day | IFF::OzFile::Header
endHour | IFF::OzFile::Header
endMinutes | IFF::OzFile::Header
endSecond1000 | IFF::OzFile::Header
Length | IFF::OzFile::Header
month | IFF::OzFile::Header
reserved | IFF::OzFile::Header
Trajectory | IFF::OzFile::Header
Width | IFF::OzFile::Header
year | IFF::OzFile::Header


Pipe Line Filters: Cписок членов класса

IFF::RgbQuad Cписок членов класса

Полный список членов класса IFF::RgbQuad, включая наследуемые из базового класса

b | IFF::RgbQuad
g | IFF::RgbQuad
r | IFF::RgbQuad
reserved | IFF::RgbQuad


Pipe Line Filters: Cписок членов класса

IFF::TIFF_Header Cписок членов класса

Полный список членов класса IFF::TIFF_Header, включая наследуемые из базового класса

byte_order | IFF::TIFF_Header
IFD0_offset | IFF::TIFF_Header
version | IFF::TIFF_Header


Pipe Line Filters: Cписок членов класса

IFF::TIFF_IFD Cписок членов класса

Полный список членов класса IFF::TIFF_IFD, включая наследуемые из базового класса

Entry0 | IFF::TIFF_IFD
entry_count | IFF::TIFF_IFD
next_IFD_offset | IFF::TIFF_IFD


Pipe Line Filters: Cписок членов класса

IFF::TIFF_IFDentry Cписок членов класса

Полный список членов класса IFF::TIFF_IFDentry, включая наследуемые из базового класса

length | IFF::TIFF_IFDentry
tag | IFF::TIFF_IFDentry
type | IFF::TIFF_IFDentry
value_or_offset | IFF::TIFF_IFDentry


Pipe Line Filters: Cписок членов класса

IFF::TIFF_ImageParms Cписок членов класса

Полный список членов класса IFF::TIFF_ImageParms, включая наследуемые из базового класса

length | IFF::TIFF_ImageParms
StripLengthOffset | IFF::TIFF_ImageParms
StripOffset | IFF::TIFF_ImageParms
StripsPerImage | IFF::TIFF_ImageParms
width | IFF::TIFF_ImageParms


Pipe Line Filters: Cписок членов класса

IFF::TiffTag Cписок членов класса

Полный список членов класса IFF::TiffTag, включая наследуемые из базового класса

length | IFF::TiffTag
tag | IFF::TiffTag
type | IFF::TiffTag
value_or_offset | IFF::TiffTag


Pipe Line Filters: Cписок членов класса

ImageResample::ImageResampleParams Cписок членов класса

Полный список членов класса ImageResample::ImageResampleParams, включая наследуемые из базового класса

fill | ImageResample::ImageResampleParams
fill_int | ImageResample::ImageResampleParams
from | ImageResample::ImageResampleParams
imeth | ImageResample::ImageResampleParams
indicator | ImageResample::ImageResampleParams
is_valid | ImageResample::ImageResampleParams
mtype | ImageResample::ImageResampleParams
new_height | ImageResample::ImageResampleParams
new_width | ImageResample::ImageResampleParams
radians | ImageResample::ImageResampleParams
shiftx | ImageResample::ImageResampleParams
shifty | ImageResample::ImageResampleParams
to_bits | ImageResample::ImageResampleParams
to_class | ImageResample::ImageResampleParams
to_height | ImageResample::ImageResampleParams
to_width | ImageResample::ImageResampleParams


Pipe Line Filters: Cписок членов класса

Loki::Bool2Type< v > Cписок членов класса

Полный список членов класса Loki::Bool2Type< v >, включая наследуемые из базового класса

value элементы перечисления Loki::Bool2Type< v >


Pipe Line Filters: Cписок членов класса

Quaternion< T > Cписок членов класса

Полный список членов класса Quaternion< T >, включая наследуемые из базового класса

inverse() const | Quaternion< T > | [inline]
Modul() const | Quaternion< T > | [inline]
Normalize() | Quaternion< T > | [inline]
operator *(const Quaternion &p) const | Quaternion< T > | [inline]
operator *(T cof) const | Quaternion< T > | [inline]
operator RotationMatrix() | Quaternion< T > | [inline]
operator/(T cof) const | Quaternion< T > | [inline]
operator=(const Quaternion &p) | Quaternion< T > | [inline]
q | Quaternion< T > |
Quaternion() | Quaternion< T > | [inline]
Quaternion(const Quaternion &p) | Quaternion< T > | [inline]
Quaternion(T q0, T q1, T q2, T q3) | Quaternion< T > | [inline, explicit]
Quaternion(const RotationMatrix R) | Quaternion< T > | [inline, explicit]
Quaternion(const Vector3 &axis_, T angle) | Quaternion< T > | [inline, explicit]
RotationMatrix typedef | Quaternion< T > |
toRot(T &angle) | Quaternion< T > | [inline]
Vector3 typedef | Quaternion< T > |


Pipe Line Filters: Cписок членов класса

triangulateio Cписок членов класса

Полный список членов класса triangulateio, включая наследуемые из базового класса

edgelist | triangulateio
edgemarkerlist | triangulateio
holelist | triangulateio
neighborlist | triangulateio
normlist | triangulateio
numberofcorners | triangulateio
numberofedges | triangulateio
numberofholes | triangulateio
numberofpointattributes | triangulateio
numberofpoints | triangulateio
numberofregions | triangulateio
numberofsegments | triangulateio
numberoftriangleattributes | triangulateio
numberoftriangles | triangulateio
pointattributelist | triangulateio
pointlist | triangulateio
pointmarkerlist | triangulateio
regionlist | triangulateio
segmentlist | triangulateio
segmentmarkerlist | triangulateio
trianglearealist | triangulateio
triangleattributelist | triangulateio
trianglelist | triangulateio


Pipe Line Filters: Исходный файл StructureComputation.h

  • Файлы
  • Список членов всех файлов

StructureComputation.h

См. документацию.
00001 #ifndef STRUCTURE_COMPUTATION_H_
00002 #define STRUCTURE_COMPUTATION_H_
00003
00004 #include <fstream>
00005 #include <math.h>
00006
00007 //library includings
00008 #include "num_linalg.h"
00009 //own includings
00010 #include "Point2D.h"
00011 #include "Points2DSet.h"
00012 #include "Epipole.h"
00013 #include "ProjectiveMatrix.h"
00014 #include "Triangulation.h"
00015 #include "TransformMatrices.h"
00016 #include "Func.h"
00017 #include "SolveEq.h"
00018 #include "FundamentalMatrix.h"
00019 #include "Model.h"
00020 #include "AutoCalibration.h"
00021
00022 namespace Basics3D
00023 {
00024     class C_StructureComputation
00025     {
00026     private:
00027       Vtl::NumAlg::Lin::ublas::matrix<double> m_points3D;
00028         T_Points2DSet<C_Point2D> m_normPoints2D;
00029         T_Points2DSet<C_Point2D> m_texCoord;
00030         Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> m_fundM;
00031         double m_maxX;
00032         double m_minX;
00033         double m_maxY;
00034         double m_minY;
00035         double m_maxZ;
00036         double m_minZ;
00037
00038     private:
00039         void OptimalSolution();
00040
00041         double CostFunction(const double a,
00042                               const double b,
00043                                                 const double c,
00044                                                 const double d,
00045                                                 const double f,
00046                                                 const double f1,
00047                                                 const double t);
00048
00049         double AsimptValue(const double a,
00050                            const double c,
00051                                            const double f,
00052                                            const double f1);
00053
00054         void ClosestToOriginPoint(Vtl::NumAlg::Lin::ublas::c_vector<double, 3> out_p,
00055                                     const Vtl::NumAlg::Lin::ublas::c_vector<double, 3> in_line);
00056
00057         void BuildModelPoints(const char* in_filename);
00058
00059         void BuildModelFaces(const char* in_filename,
00060                              const char* in_triang);
00061
00062         void Correct(const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4> in_P,
00063                                  const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4> in_P1,
00064                                  const Vtl::NumAlg::Lin::ublas::matrix<double> in_points,
00065                        const Vtl::NumAlg::Lin::ublas::c_matrix<double, 4, 4> &in_H);
00066
00067     public:
00068         C_StructureComputation(const T_Points2DSet<C_Point2D> &in_points2D,
00069                                const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_F,
00070                                                      const int in_width,
00071                                                      const int in_height,
00072                                                      const double in_sigma);
00073
00074         void Reconstruction(const double in_g);
00075     };
00076 }
00077
00078 #endif // STRUCTURE_COMPUTATION_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Cписок членов класса

VirtDib::Inf Cписок членов класса

Полный список членов класса VirtDib::Inf, включая наследуемые из базового класса

bits | VirtDib::Inf
bytes_per_row | VirtDib::Inf
height | VirtDib::Inf
pal_entries | VirtDib::Inf
width | VirtDib::Inf


Pipe Line Filters: Cписок членов класса

Vtl::Alg::Factorial< N > Cписок членов класса

Полный список членов класса Vtl::Alg::Factorial< N >, включая наследуемые из базового класса

value элементы перечисления Vtl::Alg::Factorial< N >


Pipe Line Filters: Cписок членов класса

Vtl::Alg::Factorial< 0 > Cписок членов класса

Полный список членов класса Vtl::Alg::Factorial< 0 >, включая наследуемые из базового класса

value элементы перечисления Vtl::Alg::Factorial< 0 >


Pipe Line Filters: Cписок членов класса

Vtl::Alg::isOdd< N > Cписок членов класса

Полный список членов класса Vtl::Alg::isOdd< N >, включая наследуемые из базового класса

value элементы перечисления Vtl::Alg::isOdd< N >


Pipe Line Filters: Cписок членов класса

Vtl::Alg::x_to_N< N > Cписок членов класса

Полный список членов класса Vtl::Alg::x_to_N< N >, включая наследуемые из базового класса

value(T x) Vtl::Alg::x_to_N< N > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 > Cписок членов класса

Полный список членов класса Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 >, включая наследуемые из базового класса

sqr(T x) | Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 > | [inline, static]
v(T x) | Vtl::Alg::x_to_N< N >::x_to_N__< K, 0 > | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 > Cписок членов класса

Полный список членов класса Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 >, включая наследуемые из базового класса

sqr(T x) | Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 > | [inline, static]
v(T x) | Vtl::Alg::x_to_N< N >::x_to_N__< K, 1 > | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Alg::x_to_N< N >::x_to_N__< 0, 0 > Cписок членов класса

Полный список членов класса Vtl::Alg::x_to_N< N >::x_to_N__< 0, 0 >, включая наследуемые из базового класса

v(T x) Vtl::Alg::x_to_N< N >::x_to_N__< 0, 0 > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Alg::x_to_N< N >::x_to_N__< 1, 1 > Cписок членов класса

Полный список членов класса Vtl::Alg::x_to_N< N >::x_to_N__< 1, 1 >, включая наследуемые из базового класса

v(T x) Vtl::Alg::x_to_N< N >::x_to_N__< 1, 1 > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::EElEll Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::EElEll, включая наследуемые из базового класса

B_f(T e, T el, T ell) | Vtl::ImAlg::C::EElEll | [inline, static]
E_f(T r, T g, T b) | Vtl::ImAlg::C::EElEll | [inline, static]
El_f(T r, T g, T b) | Vtl::ImAlg::C::EElEll | [inline, static]
El_f_toPositive(T el, unsigned bits=8) | Vtl::ImAlg::C::EElEll | [inline, static]
Ell_f(T r, T g, T b) | Vtl::ImAlg::C::EElEll | [inline, static]
Ell_f_toPositive(T ell, unsigned bits=8) | Vtl::ImAlg::C::EElEll | [inline, static]
G_f(T e, T el, T ell) | Vtl::ImAlg::C::EElEll | [inline, static]
is_metric элементы перечисления | Vtl::ImAlg::C::EElEll |
is_sample_cyclic_var() | Vtl::ImAlg::C::EElEll | [inline, static]
is_sample_sign_alternating() | Vtl::ImAlg::C::EElEll | [inline, static]
is_system элементы перечисления | Vtl::ImAlg::C::EElEll |
n_components элементы перечисления | Vtl::ImAlg::C::EElEll |
name() | Vtl::ImAlg::C::EElEll | [inline, static]
R_f(T e, T el, T ell) | Vtl::ImAlg::C::EElEll | [inline, static]
rgb(T e, T el, T ell, Loki::Int2Type< 0 >) | Vtl::ImAlg::C::EElEll | [inline, static]
rgb(T e, T el, T ell, Loki::Int2Type< 1 >) | Vtl::ImAlg::C::EElEll | [inline, static]
rgb(T e, T el, T ell, Loki::Int2Type< 2 >) | Vtl::ImAlg::C::EElEll | [inline, static]
rgb(T e, T el, T ell) | Vtl::ImAlg::C::EElEll | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 0 >) | Vtl::ImAlg::C::EElEll | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 1 >) | Vtl::ImAlg::C::EElEll | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 2 >) | Vtl::ImAlg::C::EElEll | [inline, static]
sample(T r, T g, T b) | Vtl::ImAlg::C::EElEll | [inline, static]
sample_max(T MaxColor) | Vtl::ImAlg::C::EElEll | [inline, static]
sample_max_saturation(T MaxColor) | Vtl::ImAlg::C::EElEll | [inline, static]
sample_maxabs(T MaxColor) | Vtl::ImAlg::C::EElEll | [inline, static]
sample_min(T MaxColor) | Vtl::ImAlg::C::EElEll | [inline, static]
sample_name() | Vtl::ImAlg::C::EElEll | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::EElEll::B< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::EElEll::B< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::EElEll::B< T > |
operator()(T e, T el, T ell) const | Vtl::ImAlg::C::EElEll::B< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::EElEll::E< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::EElEll::E< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::EElEll::E< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::EElEll::E< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::EElEll::El< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::EElEll::El< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::EElEll::El< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::EElEll::El< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::EElEll::Ell< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::EElEll::Ell< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::EElEll::Ell< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::EElEll::Ell< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::EElEll::G< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::EElEll::G< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::EElEll::G< T > |
operator()(T e, T el, T ell) const | Vtl::ImAlg::C::EElEll::G< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::EElEll::R< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::EElEll::R< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::EElEll::R< T > |
operator()(T e, T el, T ell) const | Vtl::ImAlg::C::EElEll::R< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::HSI< LinSys > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::HSI< LinSys >, включая наследуемые из базового класса

is_metric элементы перечисления | Vtl::ImAlg::C::HSI< LinSys > |
is_sample_cyclic_var() | Vtl::ImAlg::C::HSI< LinSys > | [inline, static]
is_sample_sign_alternating() | Vtl::ImAlg::C::HSI< LinSys > | [inline, static]
is_system элементы перечисления | Vtl::ImAlg::C::HSI< LinSys > |
n_components элементы перечисления | Vtl::ImAlg::C::HSI< LinSys > |
name() | Vtl::ImAlg::C::HSI< LinSys > | [inline, static]
sample_max(T MaxColor) | Vtl::ImAlg::C::HSI< LinSys > | [inline, static]
sample_maxabs(T MaxColor) | Vtl::ImAlg::C::HSI< LinSys > | [inline, static]
sample_min(T MaxColor) | Vtl::ImAlg::C::HSI< LinSys > | [inline, static]
sample_name() | Vtl::ImAlg::C::HSI< LinSys > | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter > |
operator()(T r, T g, T b, Iter h, Iter s, Iter i) const | Vtl::ImAlg::C::HSI< LinSys >::fromRGB< T, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter > |
operator()(T h, T s, T i, Iter r, Iter g, Iter b) const | Vtl::ImAlg::C::HSI< LinSys >::toRGB< T, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::HSL Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::HSL, включая наследуемые из базового класса

is_metric элементы перечисления | Vtl::ImAlg::C::HSL |
is_sample_cyclic_var() | Vtl::ImAlg::C::HSL | [inline, static]
is_sample_sign_alternating() | Vtl::ImAlg::C::HSL | [inline, static]
is_system элементы перечисления | Vtl::ImAlg::C::HSL |
n_components элементы перечисления | Vtl::ImAlg::C::HSL |
name() | Vtl::ImAlg::C::HSL | [inline, static]
sample_max(T MaxColor) | Vtl::ImAlg::C::HSL | [inline, static]
sample_maxabs(T MaxColor) | Vtl::ImAlg::C::HSL | [inline, static]
sample_min(T MaxColor) | Vtl::ImAlg::C::HSL | [inline, static]
sample_name() | Vtl::ImAlg::C::HSL | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter > |
fromRGB(NormType normalizer=Normalizer< T, HSL, nDefault >()) | Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter > | [inline]
norm | Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter > |
operator()(T r, T g, T b, Iter h, Iter s, Iter l) const | Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter > | [inline]
T_temp typedef | Vtl::ImAlg::C::HSL::fromRGB< T, NormType, Iter > |


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorC(double p, double q, double t) | Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter > | [inline, private]
ColorSystem typedef | Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter > |
norm | Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter > |
operator()(T h, T s, T l, Iter r, Iter g, Iter b) const | Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter > | [inline]
toRGB(const NormType &normalizer=Normalizer< T, HSL, nDefault >()) | Vtl::ImAlg::C::HSL::toRGB< T, NormType, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::HSV Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::HSV, включая наследуемые из базового класса

is_metric элементы перечисления | Vtl::ImAlg::C::HSV |
is_system элементы перечисления | Vtl::ImAlg::C::HSV |
n_components элементы перечисления | Vtl::ImAlg::C::HSV |
name() | Vtl::ImAlg::C::HSV | [inline, static]
sample_name() | Vtl::ImAlg::C::HSV | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::HSV::fromRGB< T, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::HSV::fromRGB< T, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::HSV::fromRGB< T, Iter > |
operator()(T r, T g, T b, Iter h, Iter s, Iter v) const | Vtl::ImAlg::C::HSV::fromRGB< T, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::HSV::toRGB< T, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::HSV::toRGB< T, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::HSV::toRGB< T, Iter > |
operator()(T h, T s, T v, Iter r, Iter g, Iter b) const | Vtl::ImAlg::C::HSV::toRGB< T, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::IV1V2 Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::IV1V2, включая наследуемые из базового класса

B_f(T i, T v1, T v2) | Vtl::ImAlg::C::IV1V2 | [inline, static]
G_f(T i, T v1, T v2) | Vtl::ImAlg::C::IV1V2 | [inline, static]
I_f(T r, T g, T b) | Vtl::ImAlg::C::IV1V2 | [inline, static]
is_metric элементы перечисления | Vtl::ImAlg::C::IV1V2 |
is_sample_cyclic_var() | Vtl::ImAlg::C::IV1V2 | [inline, static]
is_sample_sign_alternating() | Vtl::ImAlg::C::IV1V2 | [inline, static]
is_system элементы перечисления | Vtl::ImAlg::C::IV1V2 |
n_components элементы перечисления | Vtl::ImAlg::C::IV1V2 |
name() | Vtl::ImAlg::C::IV1V2 | [inline, static]
R_f(T i, T v1, T v2) | Vtl::ImAlg::C::IV1V2 | [inline, static]
rgb(T i, T v1, T v2, Loki::Int2Type< 0 >) | Vtl::ImAlg::C::IV1V2 | [inline, static]
rgb(T i, T v1, T v2, Loki::Int2Type< 1 >) | Vtl::ImAlg::C::IV1V2 | [inline, static]
rgb(T i, T v1, T v2, Loki::Int2Type< 2 >) | Vtl::ImAlg::C::IV1V2 | [inline, static]
rgb(T i, T v1, T v2) | Vtl::ImAlg::C::IV1V2 | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 0 >) | Vtl::ImAlg::C::IV1V2 | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 1 >) | Vtl::ImAlg::C::IV1V2 | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 2 >) | Vtl::ImAlg::C::IV1V2 | [inline, static]
sample(T r, T g, T b) | Vtl::ImAlg::C::IV1V2 | [inline, static]
sample_max(T MaxColor) | Vtl::ImAlg::C::IV1V2 | [inline, static]
sample_max_saturation(T MaxColor) | Vtl::ImAlg::C::IV1V2 | [inline, static]
sample_maxabs(T MaxColor) | Vtl::ImAlg::C::IV1V2 | [inline, static]
sample_min(T MaxColor) | Vtl::ImAlg::C::IV1V2 | [inline, static]
sample_name() | Vtl::ImAlg::C::IV1V2 | [inline, static]
V1_f(T r, T g, T b) | Vtl::ImAlg::C::IV1V2 | [inline, static]
V2_f(T r, T g, T b) | Vtl::ImAlg::C::IV1V2 | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::IV1V2::B< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::IV1V2::B< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::IV1V2::B< T > |
operator()(T i, T v1, T v2) const | Vtl::ImAlg::C::IV1V2::B< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter > |
fromRGB(NormType normalizer=Normalizer< T, IV1V2, nDefault >(255, 0, 128)) | Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter > | [inline]
norm | Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter > |
operator()(T r, T g, T b, Iter i, Iter v1, Iter v2) const | Vtl::ImAlg::C::IV1V2::fromRGB< T, NormType, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::IV1V2::G< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::IV1V2::G< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::IV1V2::G< T > |
operator()(T i, T v1, T v2) const | Vtl::ImAlg::C::IV1V2::G< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::IV1V2::I< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::IV1V2::I< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::IV1V2::I< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::IV1V2::I< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::IV1V2::R< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::IV1V2::R< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::IV1V2::R< T > |
operator()(T i, T v1, T v2) const | Vtl::ImAlg::C::IV1V2::R< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter > |
norm | Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter > |
operator()(T i, T v1, T v2, Iter r, Iter g, Iter b) const | Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter > | [inline]
toRGB(NormType normalizer=Normalizer< T, IV1V2, nDefault >(255, 0, 128)) | Vtl::ImAlg::C::IV1V2::toRGB< T, NormType, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::IV1V2::V1< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::IV1V2::V1< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::IV1V2::V1< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::IV1V2::V1< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::IV1V2::V2< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::IV1V2::V2< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::IV1V2::V2< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::IV1V2::V2< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::Lab Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::Lab, включая наследуемые из базового класса

is_metric элементы перечисления | Vtl::ImAlg::C::Lab |
is_sample_cyclic_var() | Vtl::ImAlg::C::Lab | [inline, static]
is_sample_sign_alternating() | Vtl::ImAlg::C::Lab | [inline, static]
is_system элементы перечисления | Vtl::ImAlg::C::Lab |
n_components элементы перечисления | Vtl::ImAlg::C::Lab |
name() | Vtl::ImAlg::C::Lab | [inline, static]
sample_max(T MaxColor) | Vtl::ImAlg::C::Lab | [inline, static]
sample_max_saturation(T MaxColor) | Vtl::ImAlg::C::Lab | [inline, static]
sample_maxabs(T MaxColor) | Vtl::ImAlg::C::Lab | [inline, static]
sample_min(T MaxColor) | Vtl::ImAlg::C::Lab | [inline, static]
sample_name() | Vtl::ImAlg::C::Lab | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< n, TT > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< n, TT >, включая наследуемые из базового класса

build(TT &a, T1 MaxColor) Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< n, TT > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< 0, TT > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< 0, TT >, включая наследуемые из базового класса

build(TT &a) Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Cof< 0, TT > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< n, TT > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< n, TT >, включая наследуемые из базового класса

build(TT a, TT *b) Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< n, TT > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< 0, TT > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< 0, TT >, включая наследуемые из базового класса

build(TT a, TT *b) Vtl::ImAlg::C::Normalizer< T, ColorSystem, nSaveRatio >::Ofs< 0, TT > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< n, TT > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< n, TT >, включая наследуемые из базового класса

build(TT *a, TT *b, T1 MaxColor, T1 MinColor) Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< n, TT > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< 0, TT > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< 0, TT >, включая наследуемые из базового класса

build(TT *a, TT *b, T1 MaxColor, T1 MinColor) Vtl::ImAlg::C::Normalizer< T, ColorSystem, nStretch >::Cof< 0, TT > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::XYZ Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::XYZ, включая наследуемые из базового класса

B_f(T x, T y, T z) | Vtl::ImAlg::C::XYZ | [inline, static]
G_f(T x, T y, T z) | Vtl::ImAlg::C::XYZ | [inline, static]
is_metric элементы перечисления | Vtl::ImAlg::C::XYZ |
is_sample_cyclic_var() | Vtl::ImAlg::C::XYZ | [inline, static]
is_sample_sign_alternating() | Vtl::ImAlg::C::XYZ | [inline, static]
is_system элементы перечисления | Vtl::ImAlg::C::XYZ |
n_components элементы перечисления | Vtl::ImAlg::C::XYZ |
name() | Vtl::ImAlg::C::XYZ | [inline, static]
R_f(T x, T y, T z) | Vtl::ImAlg::C::XYZ | [inline, static]
rgb(T x, T y, T z, Loki::Int2Type< 0 >) | Vtl::ImAlg::C::XYZ | [inline, static]
rgb(T x, T y, T z, Loki::Int2Type< 1 >) | Vtl::ImAlg::C::XYZ | [inline, static]
rgb(T x, T y, T z, Loki::Int2Type< 2 >) | Vtl::ImAlg::C::XYZ | [inline, static]
rgb(T x, T y, T z) | Vtl::ImAlg::C::XYZ | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 0 >) | Vtl::ImAlg::C::XYZ | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 1 >) | Vtl::ImAlg::C::XYZ | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 2 >) | Vtl::ImAlg::C::XYZ | [inline, static]
sample(T r, T g, T b) | Vtl::ImAlg::C::XYZ | [inline, static]
sample_max(T MaxColor) | Vtl::ImAlg::C::XYZ | [inline, static]
sample_maxabs(T MaxColor) | Vtl::ImAlg::C::XYZ | [inline, static]
sample_min(T MaxColor) | Vtl::ImAlg::C::XYZ | [inline, static]
sample_name() | Vtl::ImAlg::C::XYZ | [inline, static]
X_f(T r, T g, T b) | Vtl::ImAlg::C::XYZ | [inline, static]
Y_f(T r, T g, T b) | Vtl::ImAlg::C::XYZ | [inline, static]
Z_f(T r, T g, T b) | Vtl::ImAlg::C::XYZ | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::XYZ::B< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::XYZ::B< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::XYZ::B< T > |
operator()(T x, T y, T z) const | Vtl::ImAlg::C::XYZ::B< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter > |
fromRGB(NormType normalizer=Normalizer< T, XYZ, nDefault >(255, 0, 128)) | Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter > | [inline]
norm | Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter > |
operator()(T r, T g, T b, Iter x, Iter y, Iter z) const | Vtl::ImAlg::C::XYZ::fromRGB< T, NormType, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::XYZ::G< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::XYZ::G< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::XYZ::G< T > |
operator()(T x, T y, T z) const | Vtl::ImAlg::C::XYZ::G< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::XYZ::R< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::XYZ::R< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::XYZ::R< T > |
operator()(T x, T y, T z) const | Vtl::ImAlg::C::XYZ::R< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter > |
norm | Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter > |
operator()(T x, T y, T z, Iter r, Iter g, Iter b) const | Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter > | [inline]
toRGB(NormType normalizer=Normalizer< T, XYZ, nDefault >(255, 0, 128)) | Vtl::ImAlg::C::XYZ::toRGB< T, NormType, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::XYZ::X< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::XYZ::X< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::XYZ::X< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::XYZ::X< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::XYZ::Y< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::XYZ::Y< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::XYZ::Y< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::XYZ::Y< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::XYZ::Z< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::XYZ::Z< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::XYZ::Z< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::XYZ::Z< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YCbCr Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YCbCr, включая наследуемые из базового класса

B_f(T y, T cb, T cr) | Vtl::ImAlg::C::YCbCr | [inline, static]
Cb_f(T r, T g, T b) | Vtl::ImAlg::C::YCbCr | [inline, static]
Cr_f(T r, T g, T b) | Vtl::ImAlg::C::YCbCr | [inline, static]
G_f(T y, T cb, T cr) | Vtl::ImAlg::C::YCbCr | [inline, static]
is_metric элементы перечисления | Vtl::ImAlg::C::YCbCr |
is_sample_cyclic_var() | Vtl::ImAlg::C::YCbCr | [inline, static]
is_sample_sign_alternating() | Vtl::ImAlg::C::YCbCr | [inline, static]
is_system элементы перечисления | Vtl::ImAlg::C::YCbCr |
n_components элементы перечисления | Vtl::ImAlg::C::YCbCr |
name() | Vtl::ImAlg::C::YCbCr | [inline, static]
R_f(T y, T cb, T cr) | Vtl::ImAlg::C::YCbCr | [inline, static]
rgb(T y, T cb, T cr, Loki::Int2Type< 0 >) | Vtl::ImAlg::C::YCbCr | [inline, static]
rgb(T y, T cb, T cr, Loki::Int2Type< 1 >) | Vtl::ImAlg::C::YCbCr | [inline, static]
rgb(T y, T cb, T cr, Loki::Int2Type< 2 >) | Vtl::ImAlg::C::YCbCr | [inline, static]
rgb(T y, T cb, T cr) | Vtl::ImAlg::C::YCbCr | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 0 >) | Vtl::ImAlg::C::YCbCr | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 1 >) | Vtl::ImAlg::C::YCbCr | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 2 >) | Vtl::ImAlg::C::YCbCr | [inline, static]
sample(T r, T g, T b) | Vtl::ImAlg::C::YCbCr | [inline, static]
sample_max(T MaxColor) | Vtl::ImAlg::C::YCbCr | [inline, static]
sample_max_saturation() | Vtl::ImAlg::C::YCbCr | [inline, static]
sample_maxabs(T MaxColor) | Vtl::ImAlg::C::YCbCr | [inline, static]
sample_min(T MaxColor) | Vtl::ImAlg::C::YCbCr | [inline, static]
sample_name() | Vtl::ImAlg::C::YCbCr | [inline, static]
Y_f(T r, T g, T b) | Vtl::ImAlg::C::YCbCr | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YCbCr::B< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YCbCr::B< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YCbCr::B< T > |
operator()(T y, T cb, T cr) const | Vtl::ImAlg::C::YCbCr::B< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YCbCr::Cb< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YCbCr::Cb< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YCbCr::Cb< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::YCbCr::Cb< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YCbCr::Cr< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YCbCr::Cr< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YCbCr::Cr< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::YCbCr::Cr< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter > |
fromRGB(NormType normalizer=Normalizer< T, YCbCr, nDefault >(255, 0, 128)) | Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter > | [inline]
norm | Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter > |
operator()(T r, T g, T b, Iter y, Iter cb, Iter cr) const | Vtl::ImAlg::C::YCbCr::fromRGB< T, NormType, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YCbCr::G< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YCbCr::G< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YCbCr::G< T > |
operator()(T y, T cb, T cr) const | Vtl::ImAlg::C::YCbCr::G< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YCbCr::R< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YCbCr::R< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YCbCr::R< T > |
operator()(T y, T cb, T cr) const | Vtl::ImAlg::C::YCbCr::R< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter > |
norm | Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter > |
operator()(T y, T cb, T cr, Iter r, Iter g, Iter b) const | Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter > | [inline]
toRGB(NormType normalizer=Normalizer< T, YCbCr, nDefault >()) | Vtl::ImAlg::C::YCbCr::toRGB< T, NormType, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YCbCr::Y< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YCbCr::Y< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YCbCr::Y< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::YCbCr::Y< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YIQ Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YIQ, включая наследуемые из базового класса

B_f(T y, T i, T q) | Vtl::ImAlg::C::YIQ | [inline, static]
G_f(T y, T i, T q) | Vtl::ImAlg::C::YIQ | [inline, static]
I_f(T r, T g, T b) | Vtl::ImAlg::C::YIQ | [inline, static]
is_metric элементы перечисления | Vtl::ImAlg::C::YIQ |
is_sample_cyclic_var() | Vtl::ImAlg::C::YIQ | [inline, static]
is_sample_sign_alternating() | Vtl::ImAlg::C::YIQ | [inline, static]
is_system элементы перечисления | Vtl::ImAlg::C::YIQ |
n_components элементы перечисления | Vtl::ImAlg::C::YIQ |
name() | Vtl::ImAlg::C::YIQ | [inline, static]
Q_f(T r, T g, T b) | Vtl::ImAlg::C::YIQ | [inline, static]
R_f(T y, T i, T q) | Vtl::ImAlg::C::YIQ | [inline, static]
rgb(T y, T i, T q, Loki::Int2Type< 0 >) | Vtl::ImAlg::C::YIQ | [inline, static]
rgb(T y, T i, T q, Loki::Int2Type< 1 >) | Vtl::ImAlg::C::YIQ | [inline, static]
rgb(T y, T i, T q, Loki::Int2Type< 2 >) | Vtl::ImAlg::C::YIQ | [inline, static]
rgb(T y, T i, T q) | Vtl::ImAlg::C::YIQ | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 0 >) | Vtl::ImAlg::C::YIQ | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 1 >) | Vtl::ImAlg::C::YIQ | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 2 >) | Vtl::ImAlg::C::YIQ | [inline, static]
sample(T r, T g, T b) | Vtl::ImAlg::C::YIQ | [inline, static]
sample_max(T MaxColor) | Vtl::ImAlg::C::YIQ | [inline, static]
sample_max_saturation(T MaxColor) | Vtl::ImAlg::C::YIQ | [inline, static]
sample_maxabs(T MaxColor) | Vtl::ImAlg::C::YIQ | [inline, static]
sample_min(T MaxColor) | Vtl::ImAlg::C::YIQ | [inline, static]
sample_name() | Vtl::ImAlg::C::YIQ | [inline, static]
Y_f(T r, T g, T b) | Vtl::ImAlg::C::YIQ | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YIQ::B< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YIQ::B< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YIQ::B< T > |
operator()(T y, T i, T q) const | Vtl::ImAlg::C::YIQ::B< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter > |
fromRGB(NormType normalizer=Normalizer< T, YIQ, nDefault >(255, 0, 128)) | Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter > | [inline]
norm | Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter > |
operator()(T r, T g, T b, Iter y, Iter i, Iter q) const | Vtl::ImAlg::C::YIQ::fromRGB< T, NormType, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YIQ::G< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YIQ::G< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YIQ::G< T > |
operator()(T y, T i, T q) const | Vtl::ImAlg::C::YIQ::G< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YIQ::I< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YIQ::I< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YIQ::I< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::YIQ::I< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YIQ::Q< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YIQ::Q< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YIQ::Q< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::YIQ::Q< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YIQ::R< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YIQ::R< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YIQ::R< T > |
operator()(T y, T i, T q) const | Vtl::ImAlg::C::YIQ::R< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter > |
norm | Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter > |
operator()(T y, T i, T q, Iter r, Iter g, Iter b) const | Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter > | [inline]
toRGB(NormType normalizer=Normalizer< T, YIQ, nDefault >(255, 0, 128)) | Vtl::ImAlg::C::YIQ::toRGB< T, NormType, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YIQ::Y< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YIQ::Y< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YIQ::Y< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::YIQ::Y< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YUV Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YUV, включая наследуемые из базового класса

B_f(T y, T u, T v) | Vtl::ImAlg::C::YUV | [inline, static]
G_f(T y, T u, T v) | Vtl::ImAlg::C::YUV | [inline, static]
is_metric элементы перечисления | Vtl::ImAlg::C::YUV |
is_sample_cyclic_var() | Vtl::ImAlg::C::YUV | [inline, static]
is_sample_sign_alternating() | Vtl::ImAlg::C::YUV | [inline, static]
is_system элементы перечисления | Vtl::ImAlg::C::YUV |
n_components элементы перечисления | Vtl::ImAlg::C::YUV |
name() | Vtl::ImAlg::C::YUV | [inline, static]
R_f(T y, T u, T v) | Vtl::ImAlg::C::YUV | [inline, static]
rgb(T y, T u, T v, Loki::Int2Type< 0 >) | Vtl::ImAlg::C::YUV | [inline, static]
rgb(T y, T u, T v, Loki::Int2Type< 1 >) | Vtl::ImAlg::C::YUV | [inline, static]
rgb(T y, T u, T v, Loki::Int2Type< 2 >) | Vtl::ImAlg::C::YUV | [inline, static]
rgb(T y, T u, T v) | Vtl::ImAlg::C::YUV | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 0 >) | Vtl::ImAlg::C::YUV | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 1 >) | Vtl::ImAlg::C::YUV | [inline, static]
sample(T r, T g, T b, Loki::Int2Type< 2 >) | Vtl::ImAlg::C::YUV | [inline, static]
sample(T r, T g, T b) | Vtl::ImAlg::C::YUV | [inline, static]
sample_max(T MaxColor) | Vtl::ImAlg::C::YUV | [inline, static]
sample_max_saturation(T MaxColor) | Vtl::ImAlg::C::YUV | [inline, static]
sample_maxabs(T MaxColor) | Vtl::ImAlg::C::YUV | [inline, static]
sample_min(T MaxColor) | Vtl::ImAlg::C::YUV | [inline, static]
sample_name() | Vtl::ImAlg::C::YUV | [inline, static]
U_f(T r, T g, T b) | Vtl::ImAlg::C::YUV | [inline, static]
V_f(T r, T g, T b) | Vtl::ImAlg::C::YUV | [inline, static]
Y_f(T r, T g, T b) | Vtl::ImAlg::C::YUV | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YUV::B< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YUV::B< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YUV::B< T > |
operator()(T y, T u, T v) const | Vtl::ImAlg::C::YUV::B< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter > |
fromRGB(NormType normalizer=Normalizer< T, YUV, nDefault >(255, 0, 128)) | Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter > | [inline]
norm | Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter > |
operator()(T r, T g, T b, Iter y, Iter u, Iter v) const | Vtl::ImAlg::C::YUV::fromRGB< T, NormType, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YUV::G< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YUV::G< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YUV::G< T > |
operator()(T y, T u, T v) const | Vtl::ImAlg::C::YUV::G< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YUV::R< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YUV::R< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YUV::R< T > |
operator()(T y, T u, T v) const | Vtl::ImAlg::C::YUV::R< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter > |
norm | Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter > |
operator()(T y, T u, T v, Iter r, Iter g, Iter b) const | Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter > | [inline]
toRGB(NormType normalizer=Normalizer< T, YUV, nDefault >(255, 0, 128)) | Vtl::ImAlg::C::YUV::toRGB< T, NormType, Iter > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YUV::U< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YUV::U< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YUV::U< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::YUV::U< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YUV::V< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YUV::V< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YUV::V< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::YUV::V< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::C::YUV::Y< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::C::YUV::Y< T >, включая наследуемые из базового класса

ColorSystem typedef | Vtl::ImAlg::C::YUV::Y< T > |
operator()(T r, T g, T b) const | Vtl::ImAlg::C::YUV::Y< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Edt::isEdge< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Edt::isEdge< T >, включая наследуемые из базового класса

isEdge(T threshold=T(0)) | Vtl::ImAlg::Edt::isEdge< T > | [inline]
operator()(T value) | Vtl::ImAlg::Edt::isEdge< T > | [inline]
thresh | Vtl::ImAlg::Edt::isEdge< T > |


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::Container< Real_t >::Point Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::Container< Real_t >::Point, включая наследуемые из базового класса

operator<(const Point &p) | Vtl::ImAlg::Registration::Container< Real_t >::Point | [inline]
Point(int x_, int y_, Real_t value_) | Vtl::ImAlg::Registration::Container< Real_t >::Point | [inline]
value | Vtl::ImAlg::Registration::Container< Real_t >::Point |
x | Vtl::ImAlg::Registration::Container< Real_t >::Point |
y | Vtl::ImAlg::Registration::Container< Real_t >::Point |


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::Impl::OFlow::BuildG< n > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::Impl::OFlow::BuildG< n >, включая наследуемые из базового класса

vec(VectorG &GG, const M &model, T x, T y, T gx, T gy) Vtl::ImAlg::Registration::Impl::OFlow::BuildG< n > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::Impl::OFlow::BuildG< 0 > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::Impl::OFlow::BuildG< 0 >, включая наследуемые из базового класса

vec(VectorG &GG, const M &model, T x, T y, T gx, T gy) Vtl::ImAlg::Registration::Impl::OFlow::BuildG< 0 > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size Cписок членов класса

Полный список членов класса Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size, включая наследуемые из базового класса

h | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size
ofs | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size
w | Vtl::ImAlg::Registration::OFlowAllocStrategy< T, ColorPlanes_, UseMask_ >::Size


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::Tools::findMax::is_center_max_in3x3< num_equal_neihbours > Cписок членов класса

Полный список членов класса Vtl::ImAlg::Tools::findMax::is_center_max_in3x3< num_equal_neihbours >, включая наследуемые из базового класса

operator()(const T1 *src, int left, int right, int up, int down, F functor, T2 x, T2 y) Vtl::ImAlg::Tools::findMax::is_center_max_in3x3< num_equal_neihbours > [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, m > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, m >, включая наследуемые из базового класса

n элементы перечисления | Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, m >
v элементы перечисления | Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, m >


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n,-1 > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n,-1 >, включая наследуемые из базового класса

v элементы перечисления Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n,-1 >


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, n > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, n >, включая наследуемые из базового класса

v элементы перечисления Vtl::ImAlg::WndFun::Impl::Gauss::c_mod< n, n >


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, m > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, m >, включая наследуемые из базового класса

v(T x2) Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, m > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, n > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, n >, включая наследуемые из базового класса

v(T x2) Vtl::ImAlg::WndFun::Impl::Gauss::P< T, n, n > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Laws5< T > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Laws5< T >, включая наследуемые из базового класса

Edge() | Vtl::ImAlg::WndFun::Laws5< T > | [inline, static]
Level() | Vtl::ImAlg::WndFun::Laws5< T > | [inline, static]
Ripple() | Vtl::ImAlg::WndFun::Laws5< T > | [inline, static]
Spot() | Vtl::ImAlg::WndFun::Laws5< T > | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Laws5< T >::E5 Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Laws5< T >::E5, включая наследуемые из базового класса

arg_type typedef | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 1, 1 > |
center() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 1, 1 > | [inline]
Direct_Ref(int size_, int center_, const int *values) | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 1, 1 > | [inline]
E5() | Vtl::ImAlg::WndFun::Laws5< T >::E5 | [inline]
left() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 1, 1 > | [inline]
Name() | Vtl::ImAlg::WndFun::Laws5< T >::E5 | [inline, static]
operator()(intx) const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 1, 1 > | [inline]
right() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 1, 1 > | [inline]
size() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 1, 1 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Laws5< T >::L5 Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Laws5< T >::L5, включая наследуемые из базового класса

arg_type typedef | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 0, 0 > |
center() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 0, 0 > | [inline]
Direct_Ref(int size_, int center_, const int *values) | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 0, 0 > | [inline]
L5() | Vtl::ImAlg::WndFun::Laws5< T >::L5 | [inline]
left() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 0, 0 > | [inline]
Name() | Vtl::ImAlg::WndFun::Laws5< T >::L5 | [inline, static]
operator()(intx) const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 0, 0 > | [inline]
right() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 0, 0 > | [inline]
size() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 0, 0 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Laws5< T >::R5 Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Laws5< T >::R5, включая наследуемые из базового класса

arg_type typedef | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 > |
center() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 > | [inline]
Direct_Ref(int size_, int center_, const int *values) | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 > | [inline]
left() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 > | [inline]
Name() | Vtl::ImAlg::WndFun::Laws5< T >::R5 | [inline, static]
operator()(intx) const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 > | [inline]
R5() | Vtl::ImAlg::WndFun::Laws5< T >::R5 | [inline]
right() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 > | [inline]
size() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Laws5< T >::S5 Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Laws5< T >::S5, включая наследуемые из базового класса

arg_type typedef | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 > |
center() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 > | [inline]
Direct_Ref(int size_, int center_, const int *values) | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 > | [inline]
left() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 > | [inline]
Name() | Vtl::ImAlg::WndFun::Laws5< T >::S5 | [inline, static]
operator()(intx) const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 > | [inline]
right() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 > | [inline]
S5() | Vtl::ImAlg::WndFun::Laws5< T >::S5 | [inline]
size() const | Vtl::ImAlg::WndFun::Direct_Ref< T, int, 2, 2 > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D >, включая наследуемые из базового класса

conv_norm_alg элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, false, false, NAC, D > |
Deriv элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, false, false, NAC, D > |
finit_support элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, false, false, NAC, D > |
finit_support_left элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, false, false, NAC, D > |
finit_support_right элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, false, false, NAC, D > |
FullName() | Vtl::ImAlg::WndFun::Traits_common< T, false, false, NAC, D > | [inline, static]
Properties() | Vtl::ImAlg::WndFun::Traits_common< T, false, false, NAC, D > | [inline, static]
Traits(T half_size_, T n_half_width_, T center_at) | Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D > | [inline]
Traits() | Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D > | [private]
value_type typedef | Vtl::ImAlg::WndFun::Traits_common< T, false, false, NAC, D > |
~Traits() | Vtl::ImAlg::WndFun::Traits< T, false, false, NAC, D > | [inline, protected]
~Traits_common() | Vtl::ImAlg::WndFun::Traits_common< T, false, false, NAC, D > | [inline, protected]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D >, включая наследуемые из базового класса

conv_norm_alg элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
Deriv элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
finit_support элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
finit_support_left элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
finit_support_right элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
FullName() | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > | [inline, static]
Properties() | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > | [inline, static]
Traits(T size_, T center_) | Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D > | [inline]
Traits() | Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D > | [private]
value_type typedef | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > |
~Traits() | Vtl::ImAlg::WndFun::Traits< T, true, true, NAC, D > | [inline, protected]
~Traits_common() | Vtl::ImAlg::WndFun::Traits_common< T, true, true, NAC, D > | [inline, protected]


Pipe Line Filters: Cписок членов класса

Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > Cписок членов класса

Полный список членов класса Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D >, включая наследуемые из базового класса

conv_norm_alg элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > |
Deriv элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > |
finit_support элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > |
finit_support_left элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > |
finit_support_right элементы перечисления | Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > |
FullName() | Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > | [inline, static]
Properties() | Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > | [inline, static]
Properties(std::ostringstream &os, Loki::Int2Type< 0 >) | Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > | [inline, private, static]
Properties(std::ostringstream &os, Loki::Int2Type< 1 >) | Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > | [inline, private, static]
value_type typedef | Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > |
~Traits_common() | Vtl::ImAlg::WndFun::Traits_common< T, FSL, FSR, NAC, D > | [inline, protected]


Pipe Line Filters: Cписок членов класса

Vtl::Img::BuildIter1DList< T_Layout >::build< i > Cписок членов класса

Полный список членов класса Vtl::Img::BuildIter1DList< T_Layout >::build< i >, включая наследуемые из базового класса

Result typedef Vtl::Img::BuildIter1DList< T_Layout >::build< i >


Pipe Line Filters: Cписок членов класса

Vtl::Img::BuildIter1DList< T_Layout >::build< ND > Cписок членов класса

Полный список членов класса Vtl::Img::BuildIter1DList< T_Layout >::build< ND >, включая наследуемые из базового класса

Result typedef Vtl::Img::BuildIter1DList< T_Layout >::build< ND >


Pipe Line Filters: Cписок членов класса

Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, i > Cписок членов класса

Полный список членов класса Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, i >, включая наследуемые из базового класса

Result typedef Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, i >


Pipe Line Filters: Cписок членов класса

Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, 1 > Cписок членов класса

Полный список членов класса Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, 1 >, включая наследуемые из базового класса

Result typedef Vtl::Img::BuildIter1DList< T_Layout >::Iterator_1D_selector< T, 1 >


Pipe Line Filters: Cписок членов класса

Vtl::Img::complex_type< double > Cписок членов класса

Полный список членов класса Vtl::Img::complex_type< double >, включая наследуемые из базового класса

imag | Vtl::Img::complex_type< double >
real | Vtl::Img::complex_type< double >


Pipe Line Filters: Cписок членов класса

Vtl::Img::complex_type< float > Cписок членов класса

Полный список членов класса Vtl::Img::complex_type< float >, включая наследуемые из базового класса

imag | Vtl::Img::complex_type< float >
real | Vtl::Img::complex_type< float >


Pipe Line Filters: Cписок членов класса

Vtl::Img::DataTypeId< T > Cписок членов класса

Полный список членов класса Vtl::Img::DataTypeId< T >, включая наследуемые из базового класса

typ typedef | Vtl::Img::DataTypeId< T > | [private]
value элементы перечисления | Vtl::Img::DataTypeId< T > |
xx_lst typedef | Vtl::Img::DataTypeId< T > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Img::DataTypeId< T >::Comp< T1, T2 > Cписок членов класса

Полный список членов класса Vtl::Img::DataTypeId< T >::Comp< T1, T2 >, включая наследуемые из базового класса

value элементы перечисления Vtl::Img::DataTypeId< T >::Comp< T1, T2 >


Pipe Line Filters: Cписок членов класса

Vtl::Img::DataTypeList2TypeList< T > Cписок членов класса

Полный список членов класса Vtl::Img::DataTypeList2TypeList< T >, включая наследуемые из базового класса

Result typedef Vtl::Img::DataTypeList2TypeList< T >


Pipe Line Filters: Cписок членов класса

Vtl::Img::DataTypeList2TypeList< Types::Typelist< T1, T2 > > Cписок членов класса

Полный список членов класса Vtl::Img::DataTypeList2TypeList< Types::Typelist< T1, T2 > >, включая наследуемые из базового класса

Result typedef Vtl::Img::DataTypeList2TypeList< Types::Typelist< T1, T2 > >


Pipe Line Filters: Cписок членов класса

Vtl::Img::ImageDataLayout Cписок членов класса

Полный список членов класса Vtl::Img::ImageDataLayout, включая наследуемые из базового класса

info | Vtl::Img::ImageDataLayout
pal | Vtl::Img::ImageDataLayout
ptr_sizeof | Vtl::Img::ImageDataLayout
reserv | Vtl::Img::ImageDataLayout
sample | Vtl::Img::ImageDataLayout
struct_sz | Vtl::Img::ImageDataLayout
version | Vtl::Img::ImageDataLayout


Pipe Line Filters: Cписок членов класса

Vtl::Img::ImageInfo Cписок членов класса

Полный список членов класса Vtl::Img::ImageInfo, включая наследуемые из базового класса

bitsPerSample | Vtl::Img::ImageInfo
height | Vtl::Img::ImageInfo
iclass | Vtl::Img::ImageInfo
interleave | Vtl::Img::ImageInfo
planes | Vtl::Img::ImageInfo
sample_type_id | Vtl::Img::ImageInfo
width | Vtl::Img::ImageInfo


Pipe Line Filters: Cписок членов класса

Vtl::Img::ImageNDref< T_SList, T_Layout >::Iter1D< i > Cписок членов класса

Полный список членов класса Vtl::Img::ImageNDref< T_SList, T_Layout >::Iter1D< i >, включая наследуемые из базового класса

Type typedef Vtl::Img::ImageNDref< T_SList, T_Layout >::Iter1D< i >


Pipe Line Filters: Cписок членов класса

Vtl::Img::ImageNDref< T_SList, T_Layout >::IterBands Cписок членов класса

Полный список членов класса Vtl::Img::ImageNDref< T_SList, T_Layout >::IterBands, включая наследуемые из базового класса

Type typedef Vtl::Img::ImageNDref< T_SList, T_Layout >::IterBands


Pipe Line Filters: Cписок членов класса

Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct > Cписок членов класса

Полный список членов класса Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >, включая наследуемые из базового класса

is_float элементы перечисления | Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
is_signed элементы перечисления | Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
is_struct элементы перечисления | Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
sample_size элементы перечисления | Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
sample_type typedef | Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >
type_id элементы перечисления | Vtl::Img::Impl::DataType< P, data_type, _signed, _float, _struct >


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< i > Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< i >, включая наследуемые из базового класса

Result typedef Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< i >


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< ND > Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< ND >, включая наследуемые из базового класса

Result typedef Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::build< ND >


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::MoveX_selector< i > Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::MoveX_selector< i >, включая наследуемые из базового класса

Result typedef Vtl::Img::Iterator_ND_base< T_Layout, isGray_ >::BuildMoveXList::MoveX_selector< i >


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::IterBands Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::IterBands, включая наследуемые из базового класса

Type typedef Vtl::Img::Iterator_ND_spec< T_Layout, false, false >::IterBands


Pipe Line Filters: Cписок членов класса

Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::IterBands Cписок членов класса

Полный список членов класса Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::IterBands, включая наследуемые из базового класса

Type typedef Vtl::Img::Iterator_ND_spec< T_Layout, false, true >::IterBands


Pipe Line Filters: Cписок членов класса

Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > Cписок членов класса

Полный список членов класса Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave >, включая наследуемые из базового класса

const_band_stride элементы перечисления | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > |
Interleave элементы перечисления | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > |
Layout(offset_type *known_strides) | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > | [inline]
Layout(const int *sizes, int align_to, int nbands=Nbands) | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > | [inline]
N элементы перечисления | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > |
Nbands элементы перечисления | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > |
NbandsIsConst элементы перечисления | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > |
Stride() const | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > | [inline]
Stride(Loki::Int2Type< false >, Loki::Int2Type< i >) const | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > | [inline]
Stride(Loki::Int2Type< true >, Loki::Int2Type< 0 >) | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > | [inline, static]
Stride(Loki::Int2Type< true >, Loki::Int2Type< i >) const | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > | [inline]
stride_0 элементы перечисления | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > |
StrideIsEnum() | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > | [inline, static]
strides | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > |
strides_array_len элементы перечисления | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > |
value_type typedef | Vtl::Img::Layout< T, T_Ndim, T_Nbands, T_Interleave > |


Pipe Line Filters: Cписок членов класса

Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > Cписок членов класса

Полный список членов класса Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave >, включая наследуемые из базового класса

const_band_stride элементы перечисления | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > |
Interleave элементы перечисления | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > |
Layout(int nbands, offset_type *known_strides) | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > | [inline]
Layout(const int *sizes, int align_to, int nbands) | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > | [inline]
N элементы перечисления | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > |
Nbands | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > |
NbandsIsConst элементы перечисления | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > |
Stride() const | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > | [inline]
Stride(Loki::Int2Type< false >, Loki::Int2Type< i >) const | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > | [inline]
Stride(Loki::Int2Type< true >, Loki::Int2Type< 0 >) | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > | [inline, static]
Stride(Loki::Int2Type< true >, Loki::Int2Type< i >) const | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > | [inline]
stride_0 элементы перечисления | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > |
StrideIsEnum() | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > | [inline, static]
strides | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > |
strides_array_len элементы перечисления | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > |
value_type typedef | Vtl::Img::Layout< T, T_Ndim, 0, T_Interleave > |


Pipe Line Filters: Cписок членов класса

Vtl::Img::PaletteAccess Cписок членов класса

Полный список членов класса Vtl::Img::PaletteAccess, включая наследуемые из базового класса

palette_entries | Vtl::Img::PaletteAccess
palette_ptr | Vtl::Img::PaletteAccess
palette_type | Vtl::Img::PaletteAccess
reserv | Vtl::Img::PaletteAccess


Pipe Line Filters: Cписок членов класса

Vtl::Img::Rgb< T > Cписок членов класса

Полный список членов класса Vtl::Img::Rgb< T >, включая наследуемые из базового класса

b | Vtl::Img::Rgb< T >
g | Vtl::Img::Rgb< T >
r | Vtl::Img::Rgb< T >


Pipe Line Filters: Cписок членов класса

Vtl::Img::SampleAccess Cписок членов класса

Полный список членов класса Vtl::Img::SampleAccess, включая наследуемые из базового класса

reserv | Vtl::Img::SampleAccess
sample_nextLineShift | Vtl::Img::SampleAccess
sample_ptr | Vtl::Img::SampleAccess
sample_step | Vtl::Img::SampleAccess


Pipe Line Filters: Cписок членов класса

Vtl::Img::T2DataType< T > Cписок членов класса

Полный список членов класса Vtl::Img::T2DataType< T >, включая наследуемые из базового класса

Result typedef Vtl::Img::T2DataType< T >

Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Cписок членов класса

Vtl::Meta::Align< T, sz, align_to >::Align_< next, size > Cписок членов класса

Полный список членов класса Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >, включая наследуемые из базового класса

is_next элементы перечисления | Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >
sz2 элементы перечисления | Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >
value элементы перечисления | Vtl::Meta::Align< T, sz, align_to >::Align_< next, size >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::Align< T, sz, align_to >::Align_< 0, size > Cписок членов класса

Полный список членов класса Vtl::Meta::Align< T, sz, align_to >::Align_< 0, size >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::Align< T, sz, align_to >::Align_< 0, size >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::BitsIn< n > Cписок членов класса

Полный список членов класса Vtl::Meta::BitsIn< n >, включая наследуемые из базового класса

temp элементы перечисления | Vtl::Meta::BitsIn< n >
value элементы перечисления | Vtl::Meta::BitsIn< n >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::BitsIn< 0 > Cписок членов класса

Полный список членов класса Vtl::Meta::BitsIn< 0 >, включая наследуемые из базового класса

temp элементы перечисления | Vtl::Meta::BitsIn< 0 >
value элементы перечисления | Vtl::Meta::BitsIn< 0 >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I > Cписок членов класса

Полный список членов класса Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >, включая наследуемые из базового класса

bands_stride элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >
i элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >
Result typedef | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >
stride элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >
value элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, I >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i > Cписок членов класса

Полный список членов класса Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >, включая наследуемые из базового класса

bands_stride элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >
i элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >
Result typedef | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >
stride элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >
value элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< i, i >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I > Cписок членов класса

Полный список членов класса Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I >, включая наследуемые из базового класса

bands_stride элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I >
Result typedef | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I >
stride элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, I >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 > Cписок членов класса

Полный список членов класса Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 >, включая наследуемые из базового класса

bands_stride элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 >
Result typedef | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 >
stride элементы перечисления | Vtl::Meta::BuildDefaultLayout< T, IList, NBands, Interleave, Granulation, align_to >::S< 0, 0 >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::EnumTraits::Bits< mask > Cписок членов класса

Полный список членов класса Vtl::Meta::EnumTraits::Bits< mask >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::EnumTraits::Bits< mask >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::EnumTraits::Bits< 0 > Cписок членов класса

Полный список членов класса Vtl::Meta::EnumTraits::Bits< 0 >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::EnumTraits::Bits< 0 >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::EnumTraits::IsEnum Cписок членов класса

Полный список членов класса Vtl::Meta::EnumTraits::IsEnum, включая наследуемые из базового класса

a элементы перечисления | Vtl::Meta::EnumTraits::IsEnum
b элементы перечисления | Vtl::Meta::EnumTraits::IsEnum
Signed элементы перечисления | Vtl::Meta::EnumTraits::IsEnum


Pipe Line Filters: Cписок членов класса

Vtl::Meta::EnumTraits::MaxEnum< false, i > Cписок членов класса

Полный список членов класса Vtl::Meta::EnumTraits::MaxEnum< false, i >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::EnumTraits::MaxEnum< false, i >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::EnumTraits::MaxEnum< true, i > Cписок членов класса

Полный список членов класса Vtl::Meta::EnumTraits::MaxEnum< true, i >, включая наследуемые из базового класса

cur элементы перечисления | Vtl::Meta::EnumTraits::MaxEnum< true, i > | [private]
next элементы перечисления | Vtl::Meta::EnumTraits::MaxEnum< true, i > | [private]
value элементы перечисления | Vtl::Meta::EnumTraits::MaxEnum< true, i > |


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::ConCat< Head, IndexList< i, Tail > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::ConCat< Head, IndexList< i, Tail > >, включая наследуемые из базового класса

Result typedef Vtl::Meta::IL::ConCat< Head, IndexList< i, Tail > >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::ConCat< Head, Loki::NullType > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::ConCat< Head, Loki::NullType >, включая наследуемые из базового класса

Result typedef Vtl::Meta::IL::ConCat< Head, Loki::NullType >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Count< v, IndexList< i, Tail > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Count< v, IndexList< i, Tail > >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::IL::Count< v, IndexList< i, Tail > >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Count< v, Loki::NullType > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Count< v, Loki::NullType >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::IL::Count< v, Loki::NullType >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Debug< IndexList< i, Loki::NullType > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Debug< IndexList< i, Loki::NullType > >, включая наследуемые из базового класса

print(std::ostream &os) Vtl::Meta::IL::Debug< IndexList< i, Loki::NullType > > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Debug< IndexList< i, Tail > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Debug< IndexList< i, Tail > >, включая наследуемые из базового класса

print(std::ostream &os) Vtl::Meta::IL::Debug< IndexList< i, Tail > > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Debug< Loki::NullType > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Debug< Loki::NullType >, включая наследуемые из базового класса

print(std::ostream &os) Vtl::Meta::IL::Debug< Loki::NullType > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Elem< i, IndexList< j, T > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Elem< i, IndexList< j, T > >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::IL::Elem< i, IndexList< j, T > >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Elem< i, Loki::NullType > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Elem< i, Loki::NullType >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::IL::Elem< i, Loki::NullType >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Elem< 0, IndexList< j, T > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Elem< 0, IndexList< j, T > >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::IL::Elem< 0, IndexList< j, T > >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Erase< i, IndexList< i, T > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Erase< i, IndexList< i, T > >, включая наследуемые из базового класса

Result typedef Vtl::Meta::IL::Erase< i, IndexList< i, T > >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Erase< i, IndexList< j, T > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Erase< i, IndexList< j, T > >, включая наследуемые из базового класса

Result typedef Vtl::Meta::IL::Erase< i, IndexList< j, T > >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Erase< i, Loki::NullType > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Erase< i, Loki::NullType >, включая наследуемые из базового класса

Result typedef | Vtl::Meta::IL::Erase< i, Loki::NullType >
value элементы перечисления | Vtl::Meta::IL::Erase< i, Loki::NullType >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::EraseAt< i, IndexList< j, T > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::EraseAt< i, IndexList< j, T > >, включая наследуемые из базового класса

Result typedef Vtl::Meta::IL::EraseAt< i, IndexList< j, T > >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::EraseAt< i, Loki::NullType > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::EraseAt< i, Loki::NullType >, включая наследуемые из базового класса

Result typedef | Vtl::Meta::IL::EraseAt< i, Loki::NullType >
value элементы перечисления | Vtl::Meta::IL::EraseAt< i, Loki::NullType >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::EraseAt< 0, IndexList< j, T > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::EraseAt< 0, IndexList< j, T > >, включая наследуемые из базового класса

Result typedef Vtl::Meta::IL::EraseAt< 0, IndexList< j, T > >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::ERROR__Index_out_of_IndexList_range< j > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::ERROR__Index_out_of_IndexList_range< j >, включая наследуемые из базового класса

index typedef Vtl::Meta::IL::ERROR__Index_out_of_IndexList_range< j >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::ICount< v, i, IndexList< j, T > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::ICount< v, i, IndexList< j, T > >, включая наследуемые из базового класса

i элементы перечисления | Vtl::Meta::IL::ICount< v, i, IndexList< j, T > >
value элементы перечисления | Vtl::Meta::IL::ICount< v, i, IndexList< j, T > >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::ICount< v, i, Loki::NullType > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::ICount< v, i, Loki::NullType >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::IL::ICount< v, i, Loki::NullType >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::ICount< v, 0, IndexList< j, T > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::ICount< v, 0, IndexList< j, T > >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::IL::ICount< v, 0, IndexList< j, T > >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::IndexOf< i, IndexList< i, T > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::IndexOf< i, IndexList< i, T > >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::IL::IndexOf< i, IndexList< i, T > >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::IndexOf< i, IndexList< j, T > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::IndexOf< i, IndexList< j, T > >, включая наследуемые из базового класса

temp элементы перечисления | Vtl::Meta::IL::IndexOf< i, IndexList< j, T > > | [private]
value элементы перечисления | Vtl::Meta::IL::IndexOf< i, IndexList< j, T > > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::IndexOf< i, Loki::NullType > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::IndexOf< i, Loki::NullType >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::IL::IndexOf< i, Loki::NullType >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Length< IndexList< i, T > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Length< IndexList< i, T > >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::IL::Length< IndexList< i, T > >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Length< Loki::NullType > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Length< Loki::NullType >, включая наследуемые из базового класса

value элементы перечисления Vtl::Meta::IL::Length< Loki::NullType >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >, включая наследуемые из базового класса

Result typedef Vtl::Meta::IL::Make< i_0, i_1, i_2, i_3, i_4, i_5, i_6, i_7, i_8, i_9, i_10, i_11, i_12, i_13, i_14, i_15, i_16, i_17, i_18, i_19 >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >, включая наследуемые из базового класса

Result typedef Vtl::Meta::IL::Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1 >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::MakeInRange< i, n > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::MakeInRange< i, n >, включая наследуемые из базового класса

Result typedef Vtl::Meta::IL::MakeInRange< i, n >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::MakeInRange< n, n > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::MakeInRange< n, n >, включая наследуемые из базового класса

Result typedef Vtl::Meta::IL::MakeInRange< n, n >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::PushBack< i, IndexList< j, Tail > > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::PushBack< i, IndexList< j, Tail > >, включая наследуемые из базового класса

Result typedef Vtl::Meta::IL::PushBack< i, IndexList< j, Tail > >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::PushBack< i, Loki::NullType > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::PushBack< i, Loki::NullType >, включая наследуемые из базового класса

Result typedef Vtl::Meta::IL::PushBack< i, Loki::NullType >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IL::PushFront< i, IList > Cписок членов класса

Полный список членов класса Vtl::Meta::IL::PushFront< i, IList >, включая наследуемые из базового класса

Result typedef Vtl::Meta::IL::PushFront< i, IList >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::Impl::determinant< N, Il1, Il2, j > Cписок членов класса

Полный список членов класса Vtl::Meta::Impl::determinant< N, Il1, Il2, j >, включая наследуемые из базового класса

IndexInCol typedef | Vtl::Meta::Impl::determinant< N, Il1, Il2, j > |
IndexInRow typedef | Vtl::Meta::Impl::determinant< N, Il1, Il2, j > |
inRow(const Matrix &mat) | Vtl::Meta::Impl::determinant< N, Il1, Il2, j > | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::Impl::determinant< N, Il1, Il2, N > Cписок членов класса

Полный список членов класса Vtl::Meta::Impl::determinant< N, Il1, Il2, N >, включая наследуемые из базового класса

inRow(const Matrix &mat) Vtl::Meta::Impl::determinant< N, Il1, Il2, N > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::Impl::determinant< 1, Il1, Il2, 0 > Cписок членов класса

Полный список членов класса Vtl::Meta::Impl::determinant< 1, Il1, Il2, 0 >, включая наследуемые из базового класса

inRow(const Matrix &mat) Vtl::Meta::Impl::determinant< 1, Il1, Il2, 0 > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i > Cписок членов класса

Полный список членов класса Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i >, включая наследуемые из базового класса

forEach(Func &f) | Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i > | [inline, static]
Head typedef | Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i > |
is_Odd элементы перечисления | Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i > |
Tail typedef | Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i > |
value элементы перечисления | Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, i > |


Pipe Line Filters: Cписок членов класса

Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, k > Cписок членов класса

Полный список членов класса Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, k >, включая наследуемые из базового класса

forEach(Func &f) Vtl::Meta::Impl::permut< IList1, IList2, isOdd, k, k > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::Impl::permut< IList1, Loki::NullType, isOdd, 0, 0 > Cписок членов класса

Полный список членов класса Vtl::Meta::Impl::permut< IList1, Loki::NullType, isOdd, 0, 0 >, включая наследуемые из базового класса

forEach(Func &f) Vtl::Meta::Impl::permut< IList1, Loki::NullType, isOdd, 0, 0 > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::Impl::SizeList_base_0< IList, sz > Cписок членов класса

Полный список членов класса Vtl::Meta::Impl::SizeList_base_0< IList, sz >, включая наследуемые из базового класса

hasInts элементы перечисления | Vtl::Meta::Impl::SizeList_base_0< IList, sz >
non_enums | Vtl::Meta::Impl::SizeList_base_0< IList, sz >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::Impl::SizeList_base_0< IList, 0 > Cписок членов класса

Полный список членов класса Vtl::Meta::Impl::SizeList_base_0< IList, 0 >, включая наследуемые из базового класса

hasInts элементы перечисления Vtl::Meta::Impl::SizeList_base_0< IList, 0 >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::IndexList< i, T > Cписок членов класса

Полный список членов класса Vtl::Meta::IndexList< i, T >, включая наследуемые из базового класса

Next typedef | Vtl::Meta::IndexList< i, T >
value элементы перечисления | Vtl::Meta::IndexList< i, T >


Pipe Line Filters: Cписок членов класса

Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 > Cписок членов класса

Полный список членов класса Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 >, включая наследуемые из базового класса

IList typedef | Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 > |
LayoutListDirect(int nbands, int s_0, int s_1=-1, int s_2=-1, int s_3=-1, int s_4=-1, int s_5=-1, int s_6=-1, int s_7=-1, int s_8=-1, int s_9=-1, int s_10=-1, int s_11=-1, int s_12=-1, int s_13=-1, int s_14=-1, int s_15=-1, int s_16=-1, int s_17=-1, int s_18=-1, int s_19=-1) | Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 > | [inline]
ndim элементы перечисления | Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 > |
strides | Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 > |
strides_size элементы перечисления | Vtl::Meta::LayoutListDirect< NBands, s_0, s_1, s_2, s_3, s_4, s_5, s_6, s_7, s_8, s_9, s_10, s_11, s_12, s_13, s_14, s_15, s_16, s_17, s_18, s_19 > |


Pipe Line Filters: Cписок членов класса

Vtl::Meta::printPermutations Cписок членов класса

Полный список членов класса Vtl::Meta::printPermutations, включая наследуемые из базового класса

f() Vtl::Meta::printPermutations [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Meta::SizeList_base< T_IList > Cписок членов класса

Полный список членов класса Vtl::Meta::SizeList_base< T_IList >, включая наследуемые из базового класса

get_x(Loki::Bool2Type< true >) const | Vtl::Meta::SizeList_base< T_IList > | [inline, private]
get_x(Loki::Bool2Type< false >) const | Vtl::Meta::SizeList_base< T_IList > | [inline, private]
hasInts элементы перечисления | Vtl::Meta::Impl::SizeList_base_0< T_IList, IL::Count< 0, T_IList >::value > | [protected]
IList typedef | Vtl::Meta::SizeList_base< T_IList > |
isEnum() const | Vtl::Meta::SizeList_base< T_IList > | [inline]
non_enums | Vtl::Meta::Impl::SizeList_base_0< T_IList, IL::Count< 0, T_IList >::value > | [protected]
set(int value) | Vtl::Meta::SizeList_base< T_IList > | [inline]
set_all(int i_0, int i_1=-1, int i_2=-1, int i_3=-1, int i_4=-1, int i_5=-1, int i_6=-1, int i_7=-1, int i_8=-1, int i_9=-1, int i_10=-1, int i_11=-1, int i_12=-1, int i_13=-1, int i_14=-1, int i_15=-1, int i_16=-1, int i_17=-1, int i_18=-1, int i_19=-1) | Vtl::Meta::SizeList_base< T_IList > | [inline]
set_all_(Loki::Bool2Type< true >, int i_0, int i_1=-1, int i_2=-1, int i_3=-1, int i_4=-1, int i_5=-1, int i_6=-1, int i_7=-1, int i_8=-1, int i_9=-1, int i_10=-1, int i_11=-1, int i_12=-1, int i_13=-1, int i_14=-1, int i_15=-1, int i_16=-1, int i_17=-1, int i_18=-1, int i_19=-1) | Vtl::Meta::SizeList_base< T_IList > | [inline, private]
set_all_(Loki::Bool2Type< false >, int i_0, int i_1=-1, int i_2=-1, int i_3=-1, int i_4=-1, int i_5=-1, int i_6=-1, int i_7=-1, int i_8=-1, int i_9=-1, int i_10=-1, int i_11=-1, int i_12=-1, int i_13=-1, int i_14=-1, int i_15=-1, int i_16=-1, int i_17=-1, int i_18=-1, int i_19=-1) | Vtl::Meta::SizeList_base< T_IList > | [inline, private]
set_x(int value, Loki::Bool2Type< true >) const | Vtl::Meta::SizeList_base< T_IList > | [inline, private]
set_x(int value, Loki::Bool2Type< false >) | Vtl::Meta::SizeList_base< T_IList > | [inline, private]
size элементы перечисления | Vtl::Meta::SizeList_base< T_IList > |
x() const | Vtl::Meta::SizeList_base< T_IList > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > Cписок членов класса

Полный список членов класса Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >, включая наследуемые из базового класса

gt(const Vector &vec) | Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > | [inline]
N элементы перечисления | Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > |
operator()(int elem1, int elem2) const | Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > | [inline]
v | Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > |
value_type typedef | Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > |
Vector typedef | Vtl::NumAlg::Implicit::Pred::gt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > |


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > Cписок членов класса

Полный список членов класса Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > >, включая наследуемые из базового класса

lt(const Vector &vec) | Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > | [inline]
N элементы перечисления | Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > |
operator()(int elem1, int elem2) const | Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > | [inline]
v | Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > |
value_type typedef | Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > |
Vector typedef | Vtl::NumAlg::Implicit::Pred::lt< Vtl::NumAlg::Lin::ublas::c_vector< T_, N_ > > |


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, ndim > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, ndim >, включая наследуемые из базового класса

value(I n[]) Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, ndim > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, 0 > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, 0 >, включая наследуемые из базового класса

value(I n[]) Vtl::NumAlg::IntTransf::Utils::Impl::ArrayElemProduct< I, 0 > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half >, включая наследуемые из базового класса

job_c(I n[], I x1, I x2, ProcPair pp) | Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half > | [inline, static]
job_nc(I n[], I &x1, I &x2, ProcPair pp) | Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half > | [inline, static]
job_single_left(I n[], I &x1, ProcPair pp) | Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half > | [inline, static]
job_single_right(I n[], I &x2, ProcPair pp) | Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< ndim, upper_half > | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half >, включая наследуемые из базового класса

job_c(I n[], I &x1, I &x2, ProcPair pp) | Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half > | [inline, static]
job_nc(I n[], I &x1, I &x2, ProcPair pp) | Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half > | [inline, static]
job_single_left(I n[], I &x1, ProcPair pp) | Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half > | [inline, static]
job_single_right(I n[], I &x2, ProcPair pp) | Vtl::NumAlg::IntTransf::Utils::Impl::proc_pos_neg_freq_< 0, upper_half > | [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, nd > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, nd >, включая наследуемые из базового класса

sw(T *data_1, T *data_2, I n[], I ntot) Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, nd > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, 1 > Cписок членов класса

Полный список членов класса Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, 1 >, включая наследуемые из базового класса

sw(T *data_1, T *data_2, I n[], I ntot) Vtl::NumAlg::IntTransf::Utils::Impl::SwapQuadrants< is_complex_pairs, 1 > [inline, static]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Extent Cписок членов класса

Полный список членов класса Vtl::Plf::Extent, включая наследуемые из базового класса

before | Vtl::Plf::Extent |
check(int ex_param, int im_param, const char *ex_name, const char *im_name) | Vtl::Plf::Extent | [inline, private, static]
checkCompatible(const ImgSize &is) const | Vtl::Plf::Extent | [inline]
Extent(int _left, int _right, int _before, int _forward) | Vtl::Plf::Extent | [inline]
Extent(int radius=0) | Vtl::Plf::Extent | [inline, explicit]
forward | Vtl::Plf::Extent |
left | Vtl::Plf::Extent |
max(const Extent &e) | Vtl::Plf::Extent | [inline]
right | Vtl::Plf::Extent |


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::Abs< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::Abs< T >, включая наследуемые из базового класса

operator()(T1 val) Vtl::Plf::F11::Abs< T > [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::Comb< T, F1, F2 > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::Comb< T, F1, F2 >, включая наследуемые из базового класса

Comb() | Vtl::Plf::F11::Comb< T, F1, F2 > | [inline]
Comb(F1 first, F2 second) | Vtl::Plf::F11::Comb< T, F1, F2 > | [inline]
first_ | Vtl::Plf::F11::Comb< T, F1, F2 > |
operator()(T1 val) | Vtl::Plf::F11::Comb< T, F1, F2 > | [inline]
second_ | Vtl::Plf::F11::Comb< T, F1, F2 > |


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::Convert2ByteBounded Cписок членов класса

Полный список членов класса Vtl::Plf::F11::Convert2ByteBounded, включая наследуемые из базового класса

operator()(T1 val) Vtl::Plf::F11::Convert2ByteBounded [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::Convert< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::Convert< T >, включая наследуемые из базового класса

operator()(T1 val) Vtl::Plf::F11::Convert< T > [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::ConvertMult< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::ConvertMult< T >, включая наследуемые из базового класса

ConvertMult(T mult_) | Vtl::Plf::F11::ConvertMult< T > | [inline]
mult | Vtl::Plf::F11::ConvertMult< T > | [private]
operator()(T1 val) | Vtl::Plf::F11::ConvertMult< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::DoNothing< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::DoNothing< T >, включая наследуемые из базового класса

operator()(T val) Vtl::Plf::F11::DoNothing< T > [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::Sqr< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::Sqr< T >, включая наследуемые из базового класса

operator()(T1 val) Vtl::Plf::F11::Sqr< T > [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F11::Sqrt< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F11::Sqrt< T >, включая наследуемые из базового класса

operator()(T val) Vtl::Plf::F11::Sqrt< T > [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F21::AbsDif< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F21::AbsDif< T >, включая наследуемые из базового класса

operator()(T1 val1, T1 val2) | Vtl::Plf::F21::AbsDif< T > | [inline]
operator()(uint8_t val1, uint8_t val2) | Vtl::Plf::F21::AbsDif< T > | [inline]
operator()(uint16_t val1, uint16_t val2) | Vtl::Plf::F21::AbsDif< T > | [inline]
operator()(uint32_t val1, uint32_t val2) | Vtl::Plf::F21::AbsDif< T > | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F21::Dif< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F21::Dif< T >, включая наследуемые из базового класса

operator()(T1 val1, T1 val2) Vtl::Plf::F21::Dif< T > [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F21::Prod< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F21::Prod< T >, включая наследуемые из базового класса

operator()(T1 val1, T1 val2) Vtl::Plf::F21::Prod< T > [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F21::Sum< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F21::Sum< T >, включая наследуемые из базового класса

operator()(T1 val1, T1 val2) Vtl::Plf::F21::Sum< T > [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F31::HessianDet< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F31::HessianDet< T >, включая наследуемые из базового класса

operator()(T1 Dxx, T1 Dxy, T1 Dyy) Vtl::Plf::F31::HessianDet< T > [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::F31::HessianDetSqrt< T > Cписок членов класса

Полный список членов класса Vtl::Plf::F31::HessianDetSqrt< T >, включая наследуемые из базового класса

operator()(T1 Dxx, T1 Dxy, T1 Dyy) Vtl::Plf::F31::HessianDetSqrt< T > [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::FiltersSystem::EdgeLabel_Unknown Cписок членов класса

Полный список членов класса Vtl::Plf::FiltersSystem::EdgeLabel_Unknown, включая наследуемые из базового класса

EdgeLabel_Unknown() | Vtl::Plf::FiltersSystem::EdgeLabel_Unknown | [inline]
operator()(const Impl::Edge &e) | Vtl::Plf::FiltersSystem::EdgeLabel_Unknown | [inline]


Pipe Line Filters: Cписок членов класса

Vtl::Plf::ImgSize Cписок членов класса

Полный список членов класса Vtl::Plf::ImgSize, включая наследуемые из базового класса

height | Vtl::Plf::ImgSize |
ImgSize() | Vtl::Plf::ImgSize | [inline]
ImgSize(int w, int h) | Vtl::Plf::ImgSize | [inline]
operator!=(const ImgSize &is) | Vtl::Plf::ImgSize | [inline]
operator<<(std::ostream &out, const ImgSize &is) | Vtl::Plf::ImgSize | [friend]
operator==(const ImgSize &is) | Vtl::Plf::ImgSize | [inline]
width | Vtl::Plf::ImgSize |


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Impl::Edge Cписок членов класса

Полный список членов класса Vtl::Plf::Impl::Edge, включая наследуемые из базового класса

id_edge | Vtl::Plf::Impl::Edge
id_if | Vtl::Plf::Impl::Edge
id_inp | Vtl::Plf::Impl::Edge
id_of | Vtl::Plf::Impl::Edge
id_outp | Vtl::Plf::Impl::Edge


Pipe Line Filters: Cписок членов класса

Vtl::Plf::Impl::Node Cписок членов класса

Полный список членов класса Vtl::Plf::Impl::Node, включая наследуемые из базового класса

Adj | Vtl::Plf::Impl::Node |
Adj_Next | Vtl::Plf::Impl::Node |
Adj_Prev | Vtl::Plf::Impl::Node |
AdjPrev | Vtl::Plf::Impl::Node |
buildAdj(const std::vector< Node > &graph, std::vector< Edge > &edges) | Vtl::Plf::Impl::Node | [inline]
extra_delay | Vtl::Plf::Impl::Node |
fil | Vtl::Plf::Impl::Node |
id | Vtl::Plf::Impl::Node |
n_in | Vtl::Plf::Impl::Node |
n_oto | Vtl::Plf::Impl::Node |
n_out | Vtl::Plf::Impl::Node |
Node() | Vtl::Plf::Impl::Node | [inline]
Node(FilterElementary *filter, int id) | Vtl::Plf::Impl::Node | [inline]
rank | Vtl::Plf::Impl::Node |
Role перечисление | Vtl::Plf::Impl::Node |
role | Vtl::Plf::Impl::Node |
Source элементы перечисления | Vtl::Plf::Impl::Node |
Target элементы перечисления | Vtl::Plf::Impl::Node |
Transformer элементы перечисления | Vtl::Plf::Impl::Node |


Pipe Line Filters: Cписок членов класса

Vtl::Plf::OutPortBase::Connection Cписок членов класса

Полный список членов класса Vtl::Plf::OutPortBase::Connection, включая наследуемые из базового класса

Connection(FilterBase *filter_, int i_in_) | Vtl::Plf::OutPortBase::Connection | [inline]
filter | Vtl::Plf::OutPortBase::Connection |
i_in | Vtl::Plf::OutPortBase::Connection |


Pipe Line Filters: Cписок членов класса

Vtl::Types::Int2Type< v > Cписок членов класса

Полный список членов класса Vtl::Types::Int2Type< v >, включая наследуемые из базового класса

value элементы перечисления Vtl::Types::Int2Type< v >


Pipe Line Filters: Cписок членов класса

Vtl::Types::IntOrReal Cписок членов класса

Полный список членов класса Vtl::Types::IntOrReal, включая наследуемые из базового класса

Int элементы перечисления | Vtl::Types::IntOrReal
Real элементы перечисления | Vtl::Types::IntOrReal
Types перечисление | Vtl::Types::IntOrReal
Unknown элементы перечисления | Vtl::Types::IntOrReal


Pipe Line Filters: Cписок членов класса

Vtl::Types::isIntOrReal< T > Cписок членов класса

Полный список членов класса Vtl::Types::isIntOrReal< T >, включая наследуемые из базового класса

Result элементы перечисления Vtl::Types::isIntOrReal< T >


Pipe Line Filters: Cписок членов класса

Vtl::Types::isSUIntOrReal< T > Cписок членов класса

Полный список членов класса Vtl::Types::isSUIntOrReal< T >, включая наследуемые из базового класса

Result элементы перечисления Vtl::Types::isSUIntOrReal< T >


Pipe Line Filters: Cписок членов класса

Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::Real > Cписок членов класса

Полный список членов класса Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::Real >, включая наследуемые из базового класса

TypesGroup typedef Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::Real >


Pipe Line Filters: Cписок членов класса

Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::SInt > Cписок членов класса

Полный список членов класса Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::SInt >, включая наследуемые из базового класса

TypesGroup typedef Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::SInt >


Pipe Line Filters: Cписок членов класса

Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::UInt > Cписок членов класса

Полный список членов класса Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::UInt >, включая наследуемые из базового класса

TypesGroup typedef Vtl::Types::PixelTraits< T >::LargerTypeSelector< P, SUIntOrReal::UInt >


Pipe Line Filters: Cписок членов класса

Vtl::Types::SUIntOrReal Cписок членов класса

Полный список членов класса Vtl::Types::SUIntOrReal, включая наследуемые из базового класса

Real элементы перечисления | Vtl::Types::SUIntOrReal
SInt элементы перечисления | Vtl::Types::SUIntOrReal
Types перечисление | Vtl::Types::SUIntOrReal
UInt элементы перечисления | Vtl::Types::SUIntOrReal
Unknown элементы перечисления | Vtl::Types::SUIntOrReal


Pipe Line Filters: Cписок членов класса

Vtl::Types::TL::AppendIf< TList, U, append > Cписок членов класса

Полный список членов класса Vtl::Types::TL::AppendIf< TList, U, append >, включая наследуемые из базового класса

Result typedef Vtl::Types::TL::AppendIf< TList, U, append >


Pipe Line Filters: Cписок членов класса

Vtl::Types::TL::EQ< s1, s2 > Cписок членов класса

Полный список членов класса Vtl::Types::TL::EQ< s1, s2 >, включая наследуемые из базового класса

value элементы перечисления Vtl::Types::TL::EQ< s1, s2 >


Pipe Line Filters: Cписок членов класса

Vtl::Types::TL::GE< s1, s2 > Cписок членов класса

Полный список членов класса Vtl::Types::TL::GE< s1, s2 >, включая наследуемые из базового класса

value элементы перечисления Vtl::Types::TL::GE< s1, s2 >


Pipe Line Filters: Cписок членов класса

Vtl::Types::TL::GT< s1, s2 > Cписок членов класса

Полный список членов класса Vtl::Types::TL::GT< s1, s2 >, включая наследуемые из базового класса

value элементы перечисления Vtl::Types::TL::GT< s1, s2 >


Pipe Line Filters: Cписок членов класса

Vtl::Types::TL::isIn< TList, T > Cписок членов класса

Полный список членов класса Vtl::Types::TL::isIn< TList, T >, включая наследуемые из базового класса

Result элементы перечисления Vtl::Types::TL::isIn< TList, T >


Pipe Line Filters: Cписок членов класса

Vtl::Types::TL::LE< s1, s2 > Cписок членов класса

Полный список членов класса Vtl::Types::TL::LE< s1, s2 >, включая наследуемые из базового класса

value элементы перечисления Vtl::Types::TL::LE< s1, s2 >


Pipe Line Filters: Cписок членов класса

Vtl::Types::TL::LT< s1, s2 > Cписок членов класса

Полный список членов класса Vtl::Types::TL::LT< s1, s2 >, включая наследуемые из базового класса

value элементы перечисления Vtl::Types::TL::LT< s1, s2 >


Pipe Line Filters: Cписок членов класса

Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 > Cписок членов класса

Полный список членов класса Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >, включая наследуемые из базового класса

Result typedef | Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 > |
TailResult typedef | Vtl::Types::TL::MakeTypelist< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 > | [private]


Pipe Line Filters: Cписок членов класса

Vtl::Types::TL::MakeTypelist<> Cписок членов класса

Полный список членов класса Vtl::Types::TL::MakeTypelist<>, включая наследуемые из базового класса

Result typedef Vtl::Types::TL::MakeTypelist<>


Pipe Line Filters: Cписок членов класса

Vtl::Types::TL::NE< s1, s2 > Cписок членов класса

Полный список членов класса Vtl::Types::TL::NE< s1, s2 >, включая наследуемые из базового класса

value элементы перечисления Vtl::Types::TL::NE< s1, s2 >


Pipe Line Filters: Cписок членов класса

Vtl::Types::Type2Type< T > Cписок членов класса

Полный список членов класса Vtl::Types::Type2Type< T >, включая наследуемые из базового класса

OriginalType typedef Vtl::Types::Type2Type< T >


Pipe Line Filters: Cписок членов класса

YXML::IsAttr< T, Cmp > Cписок членов класса

Полный список членов класса YXML::IsAttr< T, Cmp >, включая наследуемые из базового класса

a | YXML::IsAttr< T, Cmp > | [private]
clone() const | YXML::IsAttr< T, Cmp > | [inline, virtual]
IsAttr(std::string at, T value) | YXML::IsAttr< T, Cmp > | [inline]
operator &&(const Is &rhs) const | YXML::DNode::Is | [inline]
operator()(const DNode n) const | YXML::IsAttr< T, Cmp > | [inline, virtual]
operator||(const Is &rhs) const | YXML::DNode::Is | [inline]
v | YXML::IsAttr< T, Cmp > | [private]
~Is() | YXML::DNode::Is | [inline, virtual]


Pipe Line Filters: Cписок членов класса

YXML::IsAttrIn< T > Cписок членов класса

Полный список членов класса YXML::IsAttrIn< T >, включая наследуемые из базового класса

a | YXML::IsAttrIn< T > | [private]
clone() const | YXML::IsAttrIn< T > | [inline, virtual]
IsAttrIn(std::string at, T value1, T value2) | YXML::IsAttrIn< T > | [inline]
operator &&(const Is &rhs) const | YXML::DNode::Is | [inline]
operator()(const DNode n) const | YXML::IsAttrIn< T > | [inline, virtual]
operator||(const Is &rhs) const | YXML::DNode::Is | [inline]
v1 | YXML::IsAttrIn< T > | [private]
v2 | YXML::IsAttrIn< T > | [private]
~Is() | YXML::DNode::Is | [inline, virtual]


Pipe Line Filters: Cписок членов класса

YXML::IsElem Cписок членов класса

Полный список членов класса YXML::IsElem, включая наследуемые из базового класса

clone() const | YXML::IsElem | [inline, private, virtual]
operator &&(const Is &rhs) const | YXML::DNode::Is | [inline]
operator()(const DNode n) const | YXML::IsElem | [inline, virtual]
operator||(const Is &rhs) const | YXML::DNode::Is | [inline]
~Is() | YXML::DNode::Is | [inline, virtual]


Pipe Line Filters: Cписок членов класса

YXML::IsName< Cmp > Cписок членов класса

Полный список членов класса YXML::IsName< Cmp >, включая наследуемые из базового класса

_name | YXML::IsName< Cmp > | [private]
clone() const | YXML::IsName< Cmp > | [inline, virtual]
IsName(std::string name) | YXML::IsName< Cmp > | [inline]
operator &&(const Is &rhs) const | YXML::DNode::Is | [inline]
operator()(const DNode n) const | YXML::IsName< Cmp > | [inline, virtual]
operator||(const Is &rhs) const | YXML::DNode::Is | [inline]
~Is() | YXML::DNode::Is | [inline, virtual]


Pipe Line Filters: Исходный файл tiff.h

  • Файлы
  • Список членов всех файлов

tiff.h

См. документацию.
00001 #ifndef _TIFF_H
00002 #define _TIFF_H
00004 #include "yfile.h"
00006 namespace IFF
00007 {
00008 #define LSB                 0x4949
00009 #define MSB                 0x4d4d
00010 #define NEW_SUBFILE_TYPE_TAG            254
00011 #define SUBFILE_TYPE_TAG            255
00012 #define IMAGE_WIDTH_TAG             256
00013 #define IMAGE_LENGTH_TAG            257
00014 #define BITS_PER_SAMPLE_TAG         258
00015 #define TAG_COMPRESSION             259
00016 #define PHOTOMETRIC_INTERPRETATION_TAG      262
00017 #define STRIPS_OFFSET_TAG               273
00018 #define SAMPLES_PER_PIXEL_TAG           277
00019 #define ROWS_PER_STRIP_TAG              278
00020 #define STRIPS_BYTE_COUNTS_TAG          279
00021 #define TAG_PLANAR_CONFIGURATION        284
00022 #define PALETTE_TAG                     320
00024 #define TTYP_BYTE                     1
00025 #define TTYP_ASCII                        2
00026 #define TTYP_SHORT                        3
00027 #define TTYP_LONG                     4
00028 #define TTYP_RATIONAL                     5
00030 #pragma pack(push,1)
00031 struct TIFF_IFDentry
00032 {
00033     uint16_t tag;
00034     uint16_t type;
00035     uint32_t length;
00036     uint32_t value_or_offset;
00037 };
00038 #pragma pack(pop)
00040 #pragma pack(push,1)
00041 struct TIFF_IFD
00042 {
00043     uint16_t entry_count;
00044     struct TIFF_IFDentry *Entry0;
00045     uint32_t next_IFD_offset;
00046 };
00047 #pragma pack(pop)
00049 #pragma pack(push,1)
00050 struct TIFF_Header
00051 {
00052     uint16_t byte_order;
00053     uint16_t version;
00054     uint32_t IFD0_offset;
00055 };
00056 #pragma pack(pop)
00058 #pragma pack(push,1)
00059 struct TIFF_ImageParms
00060 {
00061     uint32_t StripLengthOffset;
00062     uint32_t StripOffset;
00063     uint16_t StripsPerImage; //strips per image
00064     uint16_t width;
00065     uint16_t length;
00066 };
00067 #pragma pack(pop)
00069 #pragma pack(push,1)
00070 struct TiffTag
00071 {
00072     uint16_t tag;
00073     uint16_t type;
00074     uint32_t length;
00075     uint32_t value_or_offset;
00076 };
00077 #pragma pack(pop)
00079
00080
00081 class TiffWriteIFD
00082 : public YFileWrite
00083 {
00084     uint16_t entries;
00085     TiffTag ifd[40];
00086     //------------------
00087     uint16_t width;
00088     uint16_t length;
00089     uint16_t bits;
00090     uint16_t spi; //strips per image
00091     uint16_t rowsPS; // RowsPerStrip
00092     //------------------
00093 protected:
00094     uint32_t str_offset;
00095     uint32_t str_length;
00096     uint32_t pal_offset;
00097     uint16_t pal_length;
00098 private:
00099     void writeIFD(void);
00100     uint16_t fillIFD(void);
00101 public:
00102     TiffWriteIFD(const char* filename,int wid,int len,int bits_ps,uint32_t *palette=0);
00103     virtual ~TiffWriteIFD(void) {;}
00104     int Width(void) { return width; }
00105     int Length(void) { return length; }
00106     int StripsPerImage(void) { return spi; }
00107     int RowsPerStrip(void)   { return rowsPS; }
00108     int PutPalette(uint32_t *palette=0);
00109 };
00111
00112 class Tiff8Write
00113 : public TiffWriteIFD
00114 {
00115 private:
00116     Tiff8Write(const Tiff8Write&);
00117 public:
00118     Tiff8Write(const char* filename,int wid,int len,int bits_ps,uint32_t *paletta);
00119     virtual ~Tiff8Write(void) {;}
00120     int writeStrip(int nStrip,Byte* buf); //returns number bytes readed
00121     int writeImage(Byte* buf);
00122 };
00123
00125
00126 class TiffReadIFD
00127 : public YFileRead
00128 {
00129     uint16_t entries;
00130     TiffTag ifd[40];
00131     //------------------
00132     uint16_t width;
00133     uint16_t length;
00134     uint16_t bits;
00135     uint16_t spi; //strips per image
00136     uint16_t rowsPS; // RowsPerStrip
00137     //------------------
00138 protected:
00139     uint32_t str_offset;
00140     uint32_t str_length;
00141     uint32_t pal_offset;
00142     uint16_t pal_length;
00143 private:
00144     void readIFD();
00145 public:
00146     TiffReadIFD(const char* filename);
00147     virtual ~TiffReadIFD(void) {;}
00148     int Width(void) { return width; }
00149     int Length(void) { return length; }
00150     int Bits(void) { return bits; }
00151     int StripsPerImage(void) { return spi; }
00152     int RowsPerStrip(void)   { return rowsPS; }
00153     int GetPalette(uint32_t *palette);
00154     int GetPaletteLength() const { return pal_length;}
00155 };
00157
00158 class Tiff8Read
00159 : public TiffReadIFD
00160 {
00161     uint32_t *buf_alloc;
00162     uint32_t *StripLength;
00163     uint32_t *StripOffset;
00164 private:
00165     Tiff8Read(const Tiff8Read&);
00166 public:
00167     Tiff8Read(const char* filename);
00168     virtual ~Tiff8Read(void);
00169     int readStrip(int nStrip,Byte* buf); //returns number bytes readed
00170     int readImage(Byte* buf);
00171 };
00172 } //namespace IFF
00174 #endif //_TIFF_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Transform.h

  • Файлы
  • Список членов всех файлов

Transform.h

См. документацию.
00001 #ifndef TRANSFORM_H_
00002 #define TRANSFORM_H_
00003
00004 // library includings
00005 #include "consolap.h"
00006 #include "aimage.h"
00007 #include "imalg_tools.h"
00008 #include "imalg_resampling.h"
00009 #include "num_linalg.h"
00010
00011 // own includings
00012 #include "MatrixOperations.h"
00013
00014 namespace Basics3D
00015 {
00016     class C_Transform
00017     {
00018     private:
00019         const AImageMem8* m_src;
00020         AImageMem8* m_dst;
00021
00022     public:
00023         //C_Transform();
00024
00025         C_Transform(const AImageMem8* in_src);
00026
00027         AImageMem8* Apply(const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &in_M);
00028
00029         void Save(char* in_filename);
00030
00031         //~C_Transform();
00032     };
00033 }
00034 #endif // TRANSFORM_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл TransformMatrices.h

  • Файлы
  • Список членов всех файлов

TransformMatrices.h

См. документацию.
00001 #ifndef NORMALIZATION_MATRIX_H_
00002 #define NORMALIZATION_MATRIX_H_
00003
00004 #include <math.h>
00005
00006 // library includings
00007 #include "num_linalg.h"
00008
00009 // own includings
00010 #include "MatrixOperations.h"
00011
00012 namespace Basics3D
00013 {
00014     // Creates matrix normalizing points MeanX -> 0, Mean -> 0, MeanDev -> sqrt(2)
00015     class C_TransformMatrices
00016     {
00017     public:
00018         static double Normalization(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00019                                                           const double in_MeanX,
00020                                                           const double in_MeanY,
00021                                                           const double in_MeanDev,
00022                                                           const double in_pointErr);
00023
00024         static double NormalizationInverse(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00025                                                                  const double in_MeanX,
00026                                                                  const double in_MeanY,
00027                                                                  const double in_MeanDev,
00028                                                                  const double in_pointErr);
00029
00030         static void Scaling(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00031                               const double in_coef);
00032
00033     static void Translational(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00034                                                         const double in_X,
00035                                                         const double in_Y);
00036
00037         static void TranslationalInverse(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00038                                                                const double in_X,
00039                                                                const double in_Y);
00040
00041         static void Rotation(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00042                                  Vtl::NumAlg::Lin::ublas::c_vector<double, 3> &in_e);
00043
00044         static void RotationX(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00045                                 const double in_cos,
00046                                                     const double in_sin);
00047
00048         static void RotationY(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00049                                 const double in_cos,
00050                                                     const double in_sin);
00051
00052         static void RotationZ(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00053                                 const double in_cos,
00054                                                     const double in_sin);
00055
00056         static void SkewSymmetric(Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 3> &out,
00057                                     const Vtl::NumAlg::Lin::ublas::c_vector<double, 3> &in_v);
00058
00059         template <class MatrixType>
00060         static void Identity(MatrixType &out)
00061         {
00062             for (size_t i = 0; i < out.size1(); i++)
00063             {
00064                 for (size_t j = 0; j < out.size2(); j++)
00065                 {
00066                     out(i, j) = 0.0;
00067                 }
00068                 out(i, i) = 1.0;
00069             }
00070         }
00071     };
00072 }
00073 #endif // NORMALIZATION_MATRIX_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл Triangulation.h

  • Файлы
  • Список членов всех файлов

Triangulation.h

См. документацию.
00001 #ifndef TRIANGULATION_H_
00002 #define TRIANGULATION_H_
00003
00004 //library includings
00005 #include "num_linalg.h"
00006
00007 //own includings
00008 #include "SolveSystem.h"
00009 #include "Point2D.h"
00010 #include "MatrixOperations.h"
00011
00012 namespace Basics3D
00013 {
00014   class C_Triangulation
00015     {
00016     private:
00017         Vtl::NumAlg::Lin::ublas::c_vector<double, 4> m_p1;
00018     Vtl::NumAlg::Lin::ublas::c_vector<double, 4> m_p2;
00019         Vtl::NumAlg::Lin::ublas::c_vector<double, 4> m_p3;
00020         Vtl::NumAlg::Lin::ublas::c_vector<double, 4> m_p1_1;
00021         Vtl::NumAlg::Lin::ublas::c_vector<double, 4> m_p2_1;
00022         Vtl::NumAlg::Lin::ublas::c_vector<double, 4> m_p3_1;
00023
00024     private:
00025         void CreateSystem(Vtl::NumAlg::Lin::ublas::c_matrix<double, 4, 4> &out_System,
00026                           const C_Point2D &in_p1,
00027                           const C_Point2D &in_p2);
00028
00029     public:
00030         C_Triangulation(const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4> &in_P,
00031                             const Vtl::NumAlg::Lin::ublas::c_matrix<double, 3, 4> &in_P1);
00032
00033       void Get3DPoint(Vtl::NumAlg::Lin::ublas::c_vector<double, 3> &out,
00034                         const C_Point2D &in_p1,
00035                         const C_Point2D &in_p2);
00036     };
00037 }
00038
00039 #endif //TRIANGULATION_H_
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл virtdib.h

  • Файлы
  • Список членов всех файлов

virtdib.h

См. документацию.
00001 #ifndef _VIRTDIB_H
00002 #define _VIRTDIB_H
00004 #include "zoomfact.h" //->this file includes <windows.h>
00005 #include "aimage.h"
00007 class VirtDib
00008 {
00009     enum Type
00010     {
00011         BMT_GRAY8,
00012         BMT_PAL8,
00013         BMT_RGB8
00014     };
00015     struct Inf
00016     {
00017         short width;
00018         short height;
00019         short bits;
00020         short pal_entries;
00021         int bytes_per_row;
00022     };
00023     BYTE *data;
00024     BITMAPINFO * info;
00025   short pal_entries;
00026     int   bytes_per_row;
00027   long * line_buffer;
00028     unsigned data_sz;
00029     unsigned line_buffer_sz;
00030     Inf inf8pal;
00031     Inf inf8rgb;
00032     Type  last_type;
00033 private:
00034     long BytesPerRow(short width,short bits);
00035 //  void bmiHeaderInit(int width,int height,int bits,int bytes_per_row);
00036     void bmiHeaderInit(const Inf& param);
00037 public:
00038 //SetDIBitsToDevice() correctly works ONLY when (width % 4) = 0 !!!
00039 //  VirtDib(short width=512,short height=64,short bits=8);
00040     VirtDib();
00041     ~VirtDib();
00042     short Width()  { return (info)? short(info->bmiHeader.biWidth) : short(0); }
00043     short Height() { return (info)? short(info->bmiHeader.biHeight) : short(0); }
00044 //  void Load(const char *fname);
00045 //  void Save(const char *fname);
00046     BYTE* operator[](int y) { return (info)? data+long(bytes_per_row)*(info->bmiHeader.biHeight-1-y) : 0;}
00047     int GetPaletteEntries() const { return pal_entries; }
00048     RGBQUAD* GetPalette() { return (info)? info->bmiColors : (RGBQUAD*)(0);}
00049     void SetGrayPalette();
00050     void SetImagePalette(const AImageMem8* img8);
00051 //  void OptimizeSize(short width,short height);
00052 //  void OptimizeSize(TRect rect);
00053 //  void Build(AImageMem16& img,TRect& portion,BYTE *map_table);
00054     void Build(const AImageMem8& img,const RECT& portion,const ZoomFactor2D zoom,const BYTE *map_table);
00055     void BuildViaDecimation(const AImageMem8& img,const RECT& portion,const ZoomFactor2D zoom,const BYTE *map_table);
00056     void Build(const AImageMem16& img,const RECT& portion,const ZoomFactor2D zoom,const BYTE *map_table);
00057     void Build(const AImageMemRgb8& img,const RECT& portion,const ZoomFactor2D zoom,const BYTE *map_table);
00058     void Paint(HDC hdc,const RECT& rect);
00059     void DefaultPaint(HWND hWnd,HDC hdc,HBRUSH hBrush,const AImage *img,const ZoomFactor2D& zoom,const BYTE *map_table=0);
00060 };
00061
00063 #endif// _VIRTDIB_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл vtl_image.h

  • Файлы
  • Список членов всех файлов

vtl_image.h

См. документацию.
00001 #ifndef _VTL_IMAGE_H
00002 #define _VTL_IMAGE_H
00004 #include "loki_typeManip.h"
00005 #include "loki_Typelist.h"
00006 #include "loki_static_check.h"
00008 #include "alexandresku.h"
00009 #include "vtl_meta_base.h"
00010 #include "vtl_image_types.h"
00012
00013 namespace Vtl
00014 {
00015 namespace Img
00016 {
00017     typedef int offset_type;
00018
00019     template<class T,int T_stride>
00020     class Iterator_1D
00021     {
00022         T *data;
00023     public:
00024         typedef T value_type;
00025         enum {stride=T_stride};
00026
00027         Iterator_1D() :data(0){}
00028         Iterator_1D(T *data_) :data(data_) {}
00029         Iterator_1D& operator++() {data+=stride; return *this;}
00030         Iterator_1D& operator--() {data-=stride; return *this;}
00031         Iterator_1D& operator+=(offset_type i) {data+=stride*i; return *this;}
00032         Iterator_1D& operator-=(offset_type i) {data-=stride*i; return *this;}
00033         T& operator[](offset_type i) {return data[stride*i]; }
00034         T operator[](offset_type i) const {return data[stride*i]; }
00035         T& operator*() {return *data;}
00036         T operator*() const {return *data;}
00037     };
00038     template<class T>
00039     class Iterator_1D<T,0>
00040     {
00041         T *data;
00042     public:
00043         typedef T value_type;
00044         const offset_type stride;
00045
00046         Iterator_1D() :data(0),stride(0) {}
00047         Iterator_1D(T *data_,offset_type stride_) :data(data_),stride(stride_) {}
00048         Iterator_1D& operator++() {data+=stride; return *this;}
00049         Iterator_1D& operator--() {data-=stride; return *this;}
00050         Iterator_1D& operator+=(offset_type i) {data+=stride*i; return *this;}
00051         Iterator_1D& operator-=(offset_type i) {data-=stride*i; return *this;}
00052         T& operator[](offset_type i) {return data[stride*i]; }
00053         T operator[](offset_type i) const {return data[stride*i]; }
00054         T& operator*() {return *data;}
00055         T operator*() const {return *data;}
00056     };
00057     // В списке NDimension+1 типов 1D итераторов, по 0,1, и.т.д размерностям. Последний итератор - по плоскостям (каналам, bands).
00058     template<class T_Layout>
00059     class BuildIter1DList
00060     {
00061         typedef typename T_Layout::value_type value_type;
00062         typedef typename T_Layout::SList::IList IList;
00063         enum {ND=Vtl::Meta::IL::Length<IList>::value-2 };
00064         //-----------------
00065         template<typename T,int i>
00066         struct Iterator_1D_selector
00067         {
00068             typedef Iterator_1D<T,i> Result;
00069         };
00070         template<typename T>
00071         struct Iterator_1D_selector<T,1>
00072         {
00073             typedef T* Result;
00074         };
00075     public:
00076         typedef typename Iterator_1D_selector<value_type,Vtl::Meta::IL::Elem<ND+1,IList>::value>::Result BandsIterator;
00077     private:
00078         //-----------------
00079         template<int i>
00080         struct build
00081         {
00082             typedef Loki::Typelist<typename Iterator_1D_selector<value_type,Vtl::Meta::IL::Elem<i,IList>::value >::Result,typename build<i+1>::Result > Result;
00083         };
00084         template<>
00085         struct build<ND>
00086         {
00087             typedef Loki::Typelist< BandsIterator ,Loki::NullType > Result;
00088         };
00089         //-----------------
00090     public:
00091         typedef typename build<0>::Result Result;
00092     };
00093
00097     template<class T_Layout,bool isGray_>
00098     class Iterator_ND_base
00099         : private T_Layout
00100     {
00101     public:
00102         typedef typename T_Layout::value_type value_type;
00103         typedef typename T_Layout::SList::IList IList;
00104         typedef typename T_Layout::SList SList;
00105         enum {Ndim=T_Layout::Ndim};
00106         enum {isGray=isGray_};
00107         //enum {isGray=Vtl::Meta::IL::Elem<Ndim,IList>::value==1};
00108     public:
00109         Iterator_ND_base(T_Layout strides_)
00110             :T_Layout(strides_)
00111         {
00112             Meta::set<T_Layout::Ndim>(offset,0);
00113         }
00114         void print()
00115         {
00116             Meta::print_array<Ndim>(offset,"offset");
00117         }
00118         template<int I,int stride>
00119         class MoveX
00120         {
00121             Iterator_ND_base& base;
00122         private:
00123             offset_type& ofs() {return base.offset[I-1]; }
00124         public:
00125             MoveX(Iterator_ND_base& base_,offset_type /*stride_*/) : base(base_) {}
00126             Iterator_ND_base& operator++() {ofs()+=stride; return base;}
00127             Iterator_ND_base& operator--() {ofs()_-=stride; }
00128             Iterator_ND_base& operator+=(offset_type move_by) {ofs()+=stride*move_by; }
00129             Iterator_ND_base& operator-=(offset_type i)       {ofs()-=stride*move_by; }
00130     //      T& operator[](offset_type i) {return data[stride*i]; }
00131     //      T operator[](offset_type i) const {return data[stride*i]; }
00132             bool operator==(const MoveX& rhs) const { return ofs() == rhs.ofs();}
00133             bool operator!=(const MoveX& rhs) const { return ofs() != rhs.ofs();}
00134         };
00135         template<int I>
00136         class MoveX<I,0>
00137         {
00138             Iterator_ND_base& base;
00139             const int stride;
00140         private:
00141             offset_type& ofs() {return base.offset[I-1]; }
00142         public:
00143             MoveX(Iterator_ND_base& base_,offset_type stride_) : base(base_),stride(stride_) {}
00144             Iterator_ND_base& operator++() {ofs()+=stride; return base;}
00145             Iterator_ND_base& operator--() {ofs()_-=stride; }
00146             Iterator_ND_base& operator+=(offset_type move_by) {ofs()+=stride*move_by; }
00147             Iterator_ND_base& operator-=(offset_type i)       {ofs()-=stride*move_by; }
00148     //      T& operator[](offset_type i) {return data[stride*i]; }
00149     //      T operator[](offset_type i) const {return data[stride*i]; }
00150             bool operator==(const MoveX& rhs) const { return ofs() == rhs.ofs();}
00151             bool operator!=(const MoveX& rhs) const { return ofs() != rhs.ofs();}
00152         };
00153     private:
00154         class BuildMoveXList
00155         {
00156             typedef typename T_Layout::value_type value_type;
00157             typedef typename T_Layout::SList::IList IList;
00158             enum {ND=Vtl::Meta::IL::Length<IList>::value-2 };
00159             //-----------------
00160             template<int i>
00161             struct MoveX_selector
00162             {
00163                 typedef MoveX<i,Vtl::Meta::IL::Elem<i,IList>::value> Result;
00164             };
00165             //template<>
00166             //struct MoveX_selector<0,1>
00167             //{
00168             //  typedef T* Result;
00169             //};
00170             //-----------------
00171             template<int i>
00172             struct build
00173             {
00174                 typedef Loki::Typelist<typename MoveX_selector<i>::Result,typename build<i+1>::Result > Result;
00175             };
00176             template<>
00177             struct build<ND>
00178             {
00179                 typedef Loki::Typelist<typename MoveX_selector<ND>::Result,Loki::NullType > Result;
00180             };
00181             //-----------------
00182         public:
00183             typedef typename build<0>::Result Result;
00184         };
00185     protected:
00187         offset_type offset[Ndim];
00188         value_type *data;
00189         typedef typename BuildMoveXList::Result MoveXList;
00190     public:
00191         template<int i>
00192         typename Loki::TL::TypeAt<MoveXList,i>::Result x()
00193         {
00194             return Loki::TL::TypeAt<MoveXList,i>::Result(*this,T_Layout::stride<i>());
00195         }
00196         //template<>
00197         //class It
00198         //{
00199         //  int i;
00200
00201         //};
00202         //template<int i>
00203         //x()
00204         //{
00205         //}
00206     };
00207     //template<class T_Layout,bool isGray,bool isSubSpace>
00208     //class Iterator_ND_spec;
00209     template<class T_Layout,bool isGray,bool isSubSpace>
00210     class Iterator_ND_spec
00211         :public Iterator_ND_base<T_Layout,isGray>
00212     {
00213     //public:
00214     //  Iterator_ND_spec(SList strides_)
00215     //      :Iterator_ND_base(strides_)
00216     //  {
00217     //  }
00218     };
00222     template<class T_Layout>
00223     class Iterator_ND_spec<T_Layout,false,false>
00224         :public Iterator_ND_base<T_Layout,false>
00225     {
00226     public:
00227         typedef typename BuildIter1DList<T_Layout>::BandsIterator BandsIterator;
00228         typedef typename BuildIter1DList<T_Layout>::Result Iter1DList;
00229     public:
00230         //template<int i>
00231         //struct Iter1D
00232         //{
00233         //  typedef typename Loki::TL::TypeAt<Iter1DList,i>::Result Type;
00234         //};
00235         struct IterBands
00236         {
00237             typedef typename Loki::TL::TypeAt<Iter1DList,Ndim>::Result Type;
00238         };
00239     private:
00240         offset_type ofs() const { return Vtl::Meta::sum<Ndim-1,offset_type>(offset); }
00241     public:
00242         Iterator_ND_spec(T_Layout strides_)
00243             :Iterator_ND_base(strides_)
00244         {
00245         }
00246         BandsIterator operator*() { return BandsIterator(data+ofs(),strides.x<Ndim>()); }
00247     };
00251     template<class T_Layout>
00252     class Iterator_ND_spec<T_Layout,false,true>
00253         :public Iterator_ND_base<T_Layout,false>
00254     {
00255     public:
00256         typedef typename BuildIter1DList<T_Layout>::BandsIterator BandsIterator;
00257         typedef typename BuildIter1DList<T_Layout>::Result Iter1DList;
00258     public:
00259         //template<int i>
00260         //struct Iter1D
00261         //{
00262         //  typedef typename Loki::TL::TypeAt<Iter1DList,i>::Result Type;
00263         //};
00264         struct IterBands
00265         {
00266             typedef typename Loki::TL::TypeAt<Iter1DList,Ndim>::Result Type;
00267         };
00268     private:
00269         offset_type ofs() const { return Vtl::Meta::sum<Ndim-1,offset_type>(offset); }
00270     public:
00271         Iterator_ND_spec(T_Layout strides_)
00272             :Iterator_ND_base(strides_)
00273         {
00274         }
00275         BandsIterator operator*() { return BandsIterator(data+ofs(),strides.x<Ndim>()); }
00276     };
00280     template<class T_Layout>
00281     class Iterator_ND_spec<T_Layout,true,false>
00282         :public Iterator_ND_base<T_Layout,true>
00283     {
00284     private:
00285         offset_type ofs() const { return Vtl::Meta::sum<Ndim-1,offset_type>(offset); }
00286     public:
00287         Iterator_ND_spec(T_Layout strides_)
00288             :Iterator_ND_base(strides_)
00289         {
00290         }
00291         value_type& operator*() { return data[ofs()]; }
00292     };
00296     template<class T_Layout>
00297     class Iterator_ND_spec<T_Layout,true,true>
00298         :public Iterator_ND_base<T_Layout,true>
00299     {
00300     private:
00301         offset_type ofs() const { return Vtl::Meta::sum<Ndim-1,offset_type>(offset); }
00302     public:
00303         Iterator_ND_spec(T_Layout strides_)
00304             :Iterator_ND_base(strides_)
00305         {
00306         }
00307         value_type& operator*() { return data[ofs()]; }
00308     };
00312     template<class T_Layout>
00313     class Iterator_ND
00314         :public Iterator_ND_spec<T_Layout,bool(T_Layout::isGray!=0),false>
00315     {
00316     public:
00317         Iterator_ND(T_Layout strides_)
00318             :Iterator_ND_spec(strides_)
00319         {
00320         }
00321     };
00325     template<class T_SList,class T_Layout>
00326     class ImageNDref
00327     {
00328     public:
00329         enum {Ndim=Vtl::Meta::IL::Length<T_SList::IList>::value };
00330         typedef Iterator_ND<T_Layout> IterND;
00331     private:
00332         T_SList sizes;
00333         T_Layout layout;
00334
00335         typedef typename T_Layout::value_type value_type;
00336         value_type* data;
00337         //typedef Loki::Typelist<Iterator_1D<value_type,1>,Loki::Typelist<Iterator_1D<value_type,2>,Loki::Typelist<Iterator_1D<value_type,0>,Loki::NullType> > > I1D;
00338         typedef typename BuildIter1DList<T_Layout>::Result Iter1DList;
00339     public:
00340         template<int i>
00341         struct Iter1D
00342         {
00343             typedef typename Loki::TL::TypeAt<Iter1DList,i>::Result Type;
00344         };
00345         struct IterBands
00346         {
00347             typedef typename Loki::TL::TypeAt<Iter1DList,Ndim>::Result Type;
00348         };
00349         virtual ~ImageNDref() {}
00350         ImageNDref(value_type* data_,const T_SList& size_list,const T_Layout& layout_)
00351             :sizes(size_list),layout(layout_),data(data_)
00352         {
00353
00354         }
00355         IterND NIter() const
00356         {
00357             return IterND(layout);
00358         }
00359     };
00360 }//namespace Img
00361 }//namespace Vtl
00363 #endif //_VTL_IMAGE_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл vtl_image_old.h

  • Файлы
  • Список членов всех файлов

vtl_image_old.h

См. документацию.
00001 #ifndef _VTL_IMAGE_H
00002 #define _VTL_IMAGE_H
00004 #include "loki_typeManip.h"
00005 #include "loki_Typelist.h"
00006 #include "loki_static_check.h"
00008 #include "alexandresku.h"
00009 #include "vtl_meta_base.h"
00010 #include "vtl_image_types.h"
00012
00013 namespace Vtl
00014 {
00015 namespace Img
00016 {
00017     typedef int offset_type;
00018
00019     namespace Impl
00020     {
00021     namespace Layout
00022     {
00023         template<typename T>
00024         static int align(int sz,int align_to)
00025         {
00026             return (sz*sizeof(T)+align_to-1)/sizeof(T);
00027         }
00028         template<typename T,int N,int Interleave,int stride_0>
00029         offset_type build_strides(offset_type* strides,const int* sizes,int align_to,int nbands)
00030         {
00031             int prev=(0==Interleave)?nbands:1;
00032             if(stride_0==0)
00033             {
00034                 *strides++=prev;
00035             }
00036             for(int i=1; i<N ; ++i)
00037             {
00038                 prev=align<T>(*sizes++,align_to) * prev * ((i==Interleave)?nbands:1);
00039                 *strides++=prev;
00040             }
00041             return prev;
00042         }
00043     }//namespace Layout
00044     }//namespace Impl
00045
00050     template<typename T,int T_Ndim,int T_Nbands=1,int T_Interleave=0>
00051     struct Layout;
00053     template<typename T,int T_Ndim,int T_Nbands,int T_Interleave>
00054     struct Layout
00055     {
00056         typedef T value_type;
00057         enum {N=T_Ndim};
00058         enum {Interleave=(T_Nbands==1)?0:T_Interleave};
00059         enum {NbandsIsConst=T_Nbands};
00060         enum {Nbands=T_Nbands};
00061         enum {stride_0=(Interleave==0)?Nbands:1};
00062         enum {const_band_stride=(Interleave==0 && Nbands>0)?Nbands:0};
00064         enum {strides_array_len=(stride_0)?(N-1):N};
00065         offset_type strides[strides_array_len];
00066     public:
00067         //Access to stride in i dimension. You should optimize the access by cheking if this stride is compile time constant!
00068         template<int i> int Stride() const {return Stride(Loki::Int2Type<stride_0!=0>(),Loki::Int2Type<i>());}
00069         template<int i> int Stride(Loki::Int2Type<false> ,Loki::Int2Type<i> )  const { return strides[i];}
00070         template<int i> static int Stride(Loki::Int2Type<true> ,Loki::Int2Type<0> )  { return  stride_0;}
00071         template<int i> int Stride(Loki::Int2Type<true> ,Loki::Int2Type<i> ) const { return strides[i-1];}
00072         template<int i> static bool StrideIsEnum() { return (i==0 && stride_0!=0);}
00073         //Adjust layout to some external image
00074         Layout(offset_type* known_strides)
00075         {
00076             Vtl::Meta::copy<strides_array_len>(strides,known_strides);
00077         }
00078         // Create default layout for set of parameters assigned
00079         Layout(const int* sizes,int align_to,int nbands=Nbands)
00080         {
00081             nbands=(Nbands)?Nbands:nbands;
00082             offset_type sz=Impl::Layout::build_strides<value_type,N,Interleave,stride_0>(strides,sizes,align_to,nbands);
00083             std::cout << "MemBlockSize=" << sz <<std::endl;
00084         }
00085     };
00087     template<typename T,int T_Ndim,int T_Interleave>
00088     struct Layout<T,T_Ndim,0,T_Interleave>
00089     {
00090         typedef T value_type;
00091         enum {N=T_Ndim};
00092         enum {Interleave=T_Interleave};
00093         enum {NbandsIsConst=0};
00094         const int Nbands;
00095         enum {stride_0=(Interleave==0)?0:1};
00096         enum {const_band_stride=0};
00098         enum {strides_array_len=(stride_0)?(N-1):N};
00099         offset_type strides[strides_array_len];
00100     public:
00101         //Access to stride in i dimension. You should optimize the access by cheking if this stride is compile time constant!
00102         template<int i> int Stride() const {return Stride(Loki::Int2Type<stride_0!=0>(),Loki::Int2Type<i>());}
00103         template<int i> int Stride(Loki::Int2Type<false> ,Loki::Int2Type<i> )  const { return strides[i];}
00104         template<int i> static int Stride(Loki::Int2Type<true> ,Loki::Int2Type<0> )  { return  stride_0;}
00105         template<int i> int Stride(Loki::Int2Type<true> ,Loki::Int2Type<i> ) const { return strides[i-1];}
00106
00107         template<int i> static bool StrideIsEnum() { return (i==0 && stride_0!=0);}
00108         //Adjust layout to some external image
00109         Layout(int nbands,offset_type* known_strides)
00110             : Nbands(nbands)
00111         {
00112             Vtl::Img::Meta::copy<strides_array_len>(strides,known_strides);
00113         }
00114         // Create default layout for set of parameters assigned
00115         Layout(const int* sizes,int align_to,int nbands)
00116             : Nbands(nbands)
00117         {
00118             nbands=(Nbands)?Nbands:nbands;
00119             offset_type sz=Impl::Layout::build_strides<value_type,N,Interleave,stride_0>(strides,sizes,align_to,nbands);
00120             std::cout << "MemBlockSize=" << sz <<std::endl;
00121         }
00122     };
00123
00124     template<typename T,int T_Ndim,int T_Nbands,int T_Layout,int T_Align>
00125     class ImageNDref
00126     {
00127         typedef T value_type;
00128     public:
00129         virtual ~ImageNDref() {}
00130         ImageNDref()
00131         {
00132
00133         }
00134
00135     };
00136 }//namespace Img
00137 }//namespace Vtl
00139 #endif //_VTL_IMAGE_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл vtl_image_types.h

  • Файлы
  • Список членов всех файлов

vtl_image_types.h

См. документацию.
00001 #ifndef _VTL_IMAGE_TYPES_H
00002 #define _VTL_IMAGE_TYPES_H
00004 #include <vector>
00005 #include "alexandresku.h"
00007 namespace Vtl
00008 {
00009     namespace Img
00010     {
00011 //------------- General image info --------------------
00013         enum ImageClass
00014         {
00015             Mask,
00016             Palette,
00017             Grayscale,
00018             //Complex,
00019             TrueColor,
00020             Multichan
00021         };
00023         enum Interleave
00024         {
00025             SEP=-1,
00026             BIP=0,
00027             BIL=1,
00028             BSQ=2
00029         };
00032         enum SampleType
00033         {
00034             ST_Unknown=255,
00035             ST_u8   =1,
00036             ST_s8   =254,
00037             ST_s16  =2,
00038             ST_s32  =3,
00039             ST_f32  =4,
00040             ST_f64  =5,
00041             ST_c32f =6,
00042             ST_c64f =9 ,
00043             ST_u16  =12,
00044             ST_u32  =13,
00045             ST_s64  =14,
00046             ST_u64  =15
00047         };
00048         template<typename T>    struct complex_type;
00049         //      {
00050         //          T real;
00051         //          T imag;
00052         //      };
00053 //-------------- Complex type
00054         template<>  struct complex_type<float>
00055         {
00056             float real;
00057             float imag;
00058         };
00059         template<>  struct complex_type<double>
00060         {
00061             double real;
00062             double imag;
00063         };
00064         template<int data_type> struct DataType;
00065         namespace Impl
00066         {
00067             template<class P,SampleType data_type,bool _signed,bool _float,bool _struct>
00068             struct DataType
00069             {
00070                 typedef P sample_type;
00071                 enum { type_id=data_type };
00072                 enum { sample_size=sizeof(P) };
00073                 enum { is_signed=_signed };
00074                 enum { is_float=_float   };
00075                 enum { is_struct=_struct };
00076             };
00077         }
00078         template<>  struct DataType<ST_u8>   : Impl::DataType<uint8_t ,ST_u8 ,false,false,false> {};
00079         template<>  struct DataType<ST_s8>   : Impl::DataType< int8_t ,ST_s8 ,true ,false,false> {};
00080         template<>  struct DataType<ST_s16>  : Impl::DataType< int16_t,ST_s16,true ,false,false> {};
00081         template<>  struct DataType<ST_s32>  : Impl::DataType< int32_t,ST_s32,true ,false,false> {};
00082         template<>  struct DataType<ST_f32>  : Impl::DataType<  float ,ST_f32,true ,true,false> {};
00083         template<>  struct DataType<ST_f64>  : Impl::DataType< double ,ST_f64,true ,true,false> {};
00084         template<>  struct DataType<ST_c32f> : Impl::DataType<complex_type<float>,ST_c32f,true,true,true> {};
00085         template<>  struct DataType<ST_c64f> : Impl::DataType<complex_type<double>,ST_c64f,true,true,true> {};
00086         template<>  struct DataType<ST_u16>  : Impl::DataType<uint16_t,ST_u16,false,false,false> {};
00087         template<>  struct DataType<ST_u32>  : Impl::DataType<uint32_t,ST_u32,false,false,false> {};
00088         template<>  struct DataType<ST_s64>  : Impl::DataType< int64_t,ST_s64,true,false,false> {};
00089         template<>  struct DataType<ST_u64>  : Impl::DataType<uint64_t,ST_u64,false,false,false> {};
00098         typedef Vtl::Types::TL::NoDuplicates<TYPELIST_12(DataType<ST_u8>,DataType<ST_s8>,DataType<ST_s16>,DataType<ST_s32>
00099            ,DataType<ST_f32>,DataType<ST_f64>,DataType<ST_c32f>,DataType<ST_c64f>
00100            ,DataType<ST_u16>,DataType<ST_u32>,DataType<ST_s64>,DataType<ST_u64>) >::Result EnviSample_DataTypesList;
00101
00102
00104         template<typename T> struct DataTypeId
00105         {
00106         private:
00107             template<class T1,class T2> struct Comp
00108             {
00109                 enum { value=Vtl::Types::isSameType<typename T1::sample_type,T2>::value};
00110             };
00111             typedef typename Vtl::Types::TL::FindIf<Vtl::Img::EnviSample_DataTypesList,T,Comp>::Result xx_lst;
00112             typedef typename Vtl::Types::TL::TypeAt<xx_lst,0>::Result typ;
00113         public:
00114             enum { value=typ::type_id };
00115         };
00116
00118         template<typename T> struct T2DataType
00119         {
00120             typedef DataType<DataTypeId<T>::value> Result;
00121         };
00123         template<class TList> struct DataTypeList2TypeList;
00124         template<class T1,class T2> struct DataTypeList2TypeList<Types::Typelist<T1,T2> >
00125         {
00126             typedef Types::Typelist<typename T1::sample_type,typename DataTypeList2TypeList<T2>::Result > Result;
00127         };
00128         template<class T> struct DataTypeList2TypeList
00129         {
00130             typedef T Result;
00131         };
00132         typedef DataTypeList2TypeList<EnviSample_DataTypesList>::Result EnviSampleTypesList;
00133
00134
00136 #pragma pack(push,1)
00137         struct ImageInfo
00138         {
00139             uint32_t width;
00140             uint32_t height;
00141             uint32_t planes;
00142             uint32_t bitsPerSample;
00143             ImageClass iclass;
00144             SampleType sample_type_id;
00145             Interleave interleave;
00146         };
00147 #pragma pack(pop)
00148 #pragma pack(push,1)
00149         template<typename T> struct Rgb
00150         {
00151             T r;
00152             T g;
00153             T b;
00154         };
00155 #pragma pack(pop)
00156
00157 //------------ image layout in memory/file --------------
00158 #pragma pack(push,1)
00159         struct SampleAccess
00160         {
00161             void* sample_ptr;
00162             uint32_t reserv;
00163             uint32_t sample_step;
00164             uint32_t sample_nextLineShift;
00165         };
00166 #pragma pack(pop)
00167 #pragma pack(push,1)
00168         struct PaletteAccess
00169         {
00170             void* palette_ptr;
00171             uint32_t reserv;
00172             uint32_t palette_type;
00173             uint32_t palette_entries;
00174         };
00175 #pragma pack(pop)
00176
00177 #define IMAGE_DATA_LAYOUT_VERSION 100
00178 #pragma pack(push,1)
00179         struct ImageDataLayout
00180         {
00181         //- stuct definition
00182             uint32_t ptr_sizeof;
00183             uint32_t struct_sz;
00184             uint32_t version;
00185             uint32_t reserv;
00186         //- general image container definition
00187             ImageInfo info;
00188         //- data access
00189             PaletteAccess pal;
00190             SampleAccess sample[1]; //sample[planes]
00191         };
00192 #pragma pack(pop)
00193         class ImageDataLayoutHolder
00194         {
00195             std::vector<uint8_t> buf;
00196             ImageDataLayout* idl;
00197         public:
00198             ImageDataLayoutHolder(const ImageInfo& inf)
00199             {
00200                 int sz=sizeof(ImageDataLayout)+(inf.planes-1)*sizeof(SampleAccess);
00201                 buf.resize(sz);
00202                 idl=(ImageDataLayout*)(&(buf[0]));
00203                 idl->ptr_sizeof=sizeof(void*);
00204                 idl->struct_sz=sz;
00205                 idl->version=IMAGE_DATA_LAYOUT_VERSION;
00206                 idl->reserv=0;
00207                 idl->info=inf;
00208                 if(inf.iclass==Img::Palette)
00209                 {
00210                 }
00211                 else
00212                 {
00213                     idl->pal.palette_ptr=0;
00214                     idl->pal.reserv=0;
00215                     idl->pal.palette_type=Img::T2DataType<uint8_t>::Result.type_id;
00216                     idl->pal.palette_entries=0;
00217                 }
00218                 for(uint32_t i=0; i<inf.planes; ++i)
00219                 {
00220                     idl->sample[i].sample_ptr=0;
00221                     idl->sample[i].reserv=0;
00222                     idl->sample[i].sample_step=1;
00223                     idl->sample[i].sample_nextLineShift=inf.width;
00224                 }
00225             }
00226             ImageDataLayout* Layout() {return idl; }
00227             void set_Palette()
00228             {
00229             }
00230             template <typename T> void set_BIP_data(T *data,int samples_per_row)
00231             {
00232
00233                 idl->info.sample_type=Img::T2DataType<T>::Result;
00234                 for(int i=0; i<idl->info.planes; i++)
00235                 {
00236                     idl->sample[i].reserv=0;
00237                     idl->sample[i].sample_ptr=data+i;
00238                     idl->sample[i].sample_nextLineShift=samples_per_row;
00239                     idl->sample[i].sample_step=idl->info.planes;
00240                 }
00241             }
00242             template <typename T> void set_BIL_data(T *data,int samples_per_row)
00243             {
00244
00245                 idl->info.sample_type_id=Img::SampleType(Img::DataTypeId<T>::value);
00246                 for(size_t i=0; i<idl->info.planes; i++)
00247                 {
00248                     idl->sample[i].reserv=0;
00249                     idl->sample[i].sample_ptr=data+i*samples_per_row;
00250                     idl->sample[i].sample_nextLineShift=samples_per_row*idl->info.planes;
00251                     idl->sample[i].sample_step=1;
00252                 }
00253             }
00254             template <typename T> void set_BSQ_data(T *data,int samples_per_row,int next_band_shift=0)
00255             {
00256
00257                 idl->info.sample_type=Img::T2DataType<T>::Result;
00258                 if(next_band_shift==0)
00259                     next_band_shift=samples_per_row*idl->info.height;
00260                 for(int i=0; i<idl->info.planes; i++)
00261                 {
00262                     idl->sample[i].reserv=0;
00263                     idl->sample[i].sample_ptr=data+i*next_band_shift;
00264                     idl->sample[i].sample_nextLineShift=samples_per_row;
00265                     idl->sample[i].sample_step=1;
00266                 }
00267             }
00268             template <typename T> void set_SEP_data(int plane,T *data,int samples_per_row)
00269             {
00270                 assign( (0<=plane) && (plane <idl->info.planes) );
00271                 idl->info.sample_type=Img::T2DataType<T>::Result;
00272                 int i=plane;
00273                 idl->sample[i].reserv=0;
00274                 idl->sample[i].sample_ptr=data;
00275                 idl->sample[i].sample_nextLineShift=samples_per_row;
00276                 idl->sample[i].sample_step=1;
00277             }
00278         };
00279
00284         template<typename T> class ImageStorageStrategyNew
00285         {
00286         public:
00287             T* Create(int size)
00288             {
00289                 return new T[size];
00290             }
00291             void Destroy(T* data)
00292             {
00293                 delete[] data;
00294             }
00295         };
00300         template<typename P,int planes=1,int interleave=BIL,class AllocStrategy=ImageStorageStrategyNew<P> >
00301         class ImageHolder
00302         {
00303             std::auto_ptr<ImageDataLayout> idl;
00304         public:
00305             virtual ~ImageHolder()
00306             {
00307             }
00308             ImageHolder(int width,int height,int bits,ImageClass iclass)
00309             {
00310             }
00311             ImageHolder()
00312             {
00313             }
00314         };
00319         template<typename pel, unsigned stride>
00320         class pic_plane
00321         {
00322         public:
00323             pic_plane(pel* p) : ptr(p) {}
00324             operator pel*()          { return ptr; }
00325             void operator += (int i) { ptr += i*stride; }
00326             void operator -= (int i) { ptr -= i*stride; }
00327             void operator ++ ()      { ptr += stride;   }
00328             void operator -- ()      { ptr -= stride;   }
00329             pic_plane plane(int p) const { return pic_plane<pel,stride>(ptr+p); }
00330         //    friend pic_plane operator+(const pic_plane a, uint32_t s)       { return pic_plane(a.ptr+s*a.stride); }
00331         //    friend bool operator == (const pic_plane a, const pic_plane b)  { return a.ptr == b.ptr; }
00332         //    friend bool operator != (const pic_plane a, const pic_plane b)  { return a.ptr != b.ptr; }
00333         private:
00334             pel *ptr;
00335         };
00336
00341         template<typename P,int planes,int interleave >
00342         class ImageBase
00343         {
00344         protected:
00345             const ImageDataLayout* idl;
00346             //ImageDataLayout* idl;
00347             Vtl::Img::Interleave check_img_interleave(ImageDataLayout* idl_)
00348             {
00349 /*
00350         struct ImageDataLayout
00351         {
00352         //- stuct definition
00353             uint32_t ptr_sizeof;
00354             uint32_t struct_sz;
00355             uint32_t version;
00356             uint32_t reserv;
00357         //- general image container definition
00358             ImageInfo info;
00359         //- data access
00360             PaletteAccess pal;
00361             SampleAccess sample[1]; //sample[planes]
00362         };
00363 */
00364
00365
00366
00367                 SampleAccess& sa=idl_->sample[0];
00368                 sa.sample_ptr;
00369                 return Vtl::Img::SEP;
00370             }
00371             void check_img_info_propere(const ImageInfo& info)
00372             {
00373                 if(DataTypeId<P>::value != info.sample_type_id)
00374                 {
00375                     std::ostringstream os;
00376
00377                     throw os.str();
00378                 }
00379                 if(planes != info.planes)
00380                 {
00381                     std::ostringstream os;
00382
00383                     throw os.str();
00384                 }
00385             }
00386             ImageDataLayout* check_idl_propere(ImageDataLayout* idl_)
00387             {
00388                 assert(idl_!=0);
00389                 check_img_info_propere(idl_->info);
00390                 if(planes!=1)
00391                 { // Если planes==1 - при любом interleave структура хранения изображения идентична
00392                     check_img_interleave(idl_);
00393                 }
00394                 return idl_;
00395             }
00396         public:
00397             virtual ~ImageBase() {}
00398             ImageBase(ImageDataLayout* idl_)
00399                 : idl(check_idl_propere(idl_))
00400             {
00401             }
00402             int Width() const {return idl->info.width;}
00403             int Height() const {return idl->info.height;}
00404             int Planes() const {return idl->info.planes;}
00405             int Bits() const {return idl->info.bitsPerSample;}
00406             ImageClass iClass() const {return idl->info.iclass;}
00407         };
00408         //Обобщенный вариант, для случаев BSQ и BIL,
00409         //верна также при "planes=1" для любого "interleave"
00410         template<typename P,int planes=1,int interleave=BSQ >
00411         class Image
00412             : public ImageBase<P,planes,interleave>
00413         {
00414             P* raw_data;
00415             int nls;
00416             //ImageDataLayout* idl;
00417             void check_img_info_propere()
00418             {
00419                 if(DataTypeId<P>::value != idl_->info.sample_type)
00420                 {
00421                     std::ostringstream os;
00422
00423                     throw os.str();
00424                 }
00425             }
00426         public:
00427             virtual ~Image() {}
00428             Image(ImageDataLayout* idl_)
00429                 : ImageBase<P,planes,interleave>(idl_)
00430             {
00431                 raw_data=(P*)(idl->sample[0].sample_ptr);
00432                 nls=idl->sample[0].sample_nextLineShift;
00433             }
00434             P* operator[](int y) {return raw_data+nls*y;}
00435             Image<P,1,BSQ> GetPlane(int plane)
00436             {
00437             }
00438         };
00439         // частичная специализация для BIP
00440         template<typename P,int planes >
00441         class Image<P,planes,BIP >
00442             : public ImageBase<P,planes,BIP>
00443         {
00444         public:
00445             virtual ~Image() {}
00446             Image(ImageDataLayout* idl_)
00447                 : ImageBase(idl_)
00448             {
00449             }
00450         };
00451         // частичная специализация для SEP
00452         template<typename P,int planes >
00453         class Image<P,planes,SEP >
00454             : public ImageBase<P,planes,SEP>
00455         {
00456         public:
00457             virtual ~Image() {}
00458             Image(ImageDataLayout* idl_)
00459                 : ImageBase(idl_)
00460             {
00461             }
00462         };
00463     };
00464 };//namespace Vtl
00466 #endif //_VTL_IMAGE_TYPES_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл vtl_meta_base.h

  • Файлы
  • Список членов всех файлов

vtl_meta_base.h

См. документацию.
00001 #ifndef _VTL_META_BASE_H
00002 #define _VTL_META_BASE_H
00004 #include <iostream>
00005 #include "vtl_meta_tools.h"
00006 #include "vtl_meta_IndexList.h"
00007 #include "vtl_meta_permutations.h"
00010 #endif //_VTL_META_BASE_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл vtl_meta_IndexList.h

  • Файлы
  • Список членов всех файлов

vtl_meta_IndexList.h

См. документацию.
00001 #ifndef _VTL_META_INDEXLIST_H
00002 #define _VTL_META_INDEXLIST_H
00004 #include <iostream>
00005 #include "loki_typeManip.h"
00006 #include "loki_NullType.h"
00008
00009 namespace Vtl
00010 {
00011 namespace Meta
00012 {
00013     //------------------------------ IndexList -----------------------------------------------
00016     template<int i,class T=Loki::NullType>
00017     struct IndexList
00018     {
00019         enum {value=i};
00020         typedef T Next;
00021     };
00023     namespace IL
00024     {
00026         template<int j> struct ERROR__Index_out_of_IndexList_range {typedef int index;};
00028         template<int i_0,int i_1=-1,int i_2=-1,int i_3=-1,int i_4=-1,int i_5=-1,int i_6=-1,int i_7=-1,int i_8=-1,int i_9=-1,int i_10=-1,int i_11=-1,int i_12=-1,int i_13=-1,int i_14=-1,int i_15=-1,int i_16=-1,int i_17=-1,int i_18=-1,int i_19=-1>
00029         struct Make
00030         {
00031             typedef IndexList<i_0,typename Make<i_1,i_2,i_3,i_4,i_5,i_6,i_7,i_8,i_9,i_10,i_11,i_12,i_13,i_14,i_15,i_16,i_17,i_18,i_19,-1>::Result > Result;
00032         };
00033         template<>
00034         struct Make<-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1>
00035         {
00036             typedef Loki::NullType Result;
00037         };
00039         template<int i,int n>
00040         struct MakeInRange
00041         {
00042             typedef IndexList<i,typename MakeInRange<i+1,n>::Result > Result;
00043         };
00044         template<int n>
00045         struct MakeInRange<n,n>
00046         {
00047             typedef Loki::NullType Result;
00048         };
00050         template<int i,class IList>
00051         struct PushFront
00052         {
00053             typedef IndexList<i,IList> Result;
00054         };
00056         template<int i,class IList=Loki::NullType>
00057         struct PushBack;
00058         template<int i>
00059         struct PushBack<i,Loki::NullType >
00060         {
00061             typedef IndexList<i,Loki::NullType> Result;
00062         };
00063         template<int i,int j,class Tail>
00064         struct PushBack<i,IndexList<j,Tail> >
00065         {
00066             typedef IndexList<j,typename PushBack<i,Tail>::Result > Result;
00067         };
00069         template<class Head,class Tail>
00070         struct ConCat;
00071         template<class Head,int i,class Tail>
00072         struct ConCat<Head,IndexList<i,Tail> >
00073         {
00074             typedef typename ConCat<typename PushBack<i,Head>::Result,Tail>::Result Result;
00075         };
00076         template<class Head> struct ConCat<Head,Loki::NullType >
00077         {
00078             typedef Head Result;
00079         };
00081         template<class IList> struct Length;
00082         template<> struct Length<Loki::NullType>
00083         {
00084             enum {value=0};
00085         };
00086         template<int i,class T>
00087         struct Length<IndexList<i,T> >
00088         {
00089             enum { value=1+Length<T>::value };
00090         };
00092         template<int i,class IList> struct IndexOf;
00093         template<int i> struct IndexOf<i,Loki::NullType>
00094         {
00095             enum { value = -1};
00096         };
00097         template<int i,class T> struct IndexOf<i,IndexList<i,T> >
00098         {
00099             enum { value = 0 };
00100         };
00101         template<int i,int j,class T> struct IndexOf<i,IndexList<j,T> >
00102         {
00103         private:
00104             enum { temp = IndexOf<i,T>::value};
00105         public:
00106             enum { value = (temp==-1) ? -1 : 1+temp };
00107         };
00109         template<int i,class IList> struct Elem;
00110         template<int j,class T>
00111         struct Elem<0,IndexList<j,T> >
00112         {
00113             enum { value=j };
00114         };
00115         template<int i,int j,class T>
00116         struct Elem<i,IndexList<j,T> >
00117         {
00118             enum { value=Elem<i-1,T>::value };
00119         };
00120         template<int i> struct Elem<i,Loki::NullType >
00121         {
00122             enum { value = ERROR__Index_out_of_IndexList_range<i>::index };
00123         };
00125         template<int i,class IList> struct Erase;
00126         template<int i> struct Erase<i,Loki::NullType >
00127         {
00128             enum { value=ERROR__Index_out_of_IndexList_range<i>::index };
00129             typedef typename Loki::NullType Result;
00130         };
00131         template<int i,class T> struct Erase<i,IndexList<i,T> >
00132         {
00133             typedef T Result;
00134         };
00135         template<int i,int j,class T> struct Erase<i,IndexList<j,T> >
00136         {
00137             typedef IndexList<j,typename Erase<i,T>::Result> Result;
00138         };
00140         template<int i,class IList>
00141         struct EraseAt;
00142
00143         template<int i>
00144         struct EraseAt<i,Loki::NullType >
00145         {
00146             enum { value = ERROR__Index_out_of_IndexList_range<i>::index };
00147             typedef typename Loki::NullType Result;
00148         };
00149         template<int j,class T>
00150         struct EraseAt<0,IndexList<j,T> >
00151         {
00152             typedef T Result;
00153         };
00154         template<int i,int j,class T>
00155         struct EraseAt<i,IndexList<j,T> >
00156         {
00157             typedef IndexList<j,typename EraseAt<i-1,T>::Result> Result;
00158         };
00160         template<int v,class IList> struct Count;
00161         template<int v> struct Count<v,Loki::NullType>
00162         {
00163             enum { value=0};
00164         };
00165         template<int v,int i,class Tail> struct Count<v,IndexList<i,Tail> >
00166         {
00167             enum { value=((i==v)?1:0)+Count<v,Tail>::value };
00168         };
00170         template<int v,int i,class IList> struct ICount;
00171         template<int v,int j,class T> struct ICount<v,0,IndexList<j,T> >
00172         {
00173             enum { value=0 };
00174         };
00175         template<int v,int i,int j,class T> struct ICount<v,i,IndexList<j,T> >
00176         {
00177             enum { value=((v==j)?1:0)+ICount<v,i-1,T>::value };
00178         };
00179         template<int v,int i> struct ICount<v,i,Loki::NullType >
00180         {
00181             enum { value=ERROR__Index_out_of_IndexList_range<i>::index };
00182         };
00183
00184
00185
00186         template<class IList>
00187         struct Debug;
00188         template<int i,class Tail>
00189         struct Debug<IndexList<i,Tail> >
00190         {
00191             static void print(std::ostream& os)
00192             {
00193                 os<< i << ", ";
00194                 Debug<Tail>::print(os);
00195             }
00196         };
00197         template<int i>
00198         struct Debug<IndexList<i,Loki::NullType> >
00199         {
00200             static void print(std::ostream& os)
00201             {
00202                 os<< i ;
00203             }
00204         };
00205         template<>
00206         struct Debug<Loki::NullType >
00207         {
00208             static void print(std::ostream& os)
00209             {
00210             }
00211         };
00212         template<class T> T type2ostream() {T t; return t;}
00213     }//namespace IL
00214 }//namespace Meta
00215 }//namespace Vtl
00219 template<int i,class Tail>
00220 std::ostream& operator<<(std::ostream& os, typename Vtl::Meta::IndexList<i,Tail> )
00221 {
00222     os<< "type IndexList: Length=" << Vtl::Meta::IL::Length<Vtl::Meta::IndexList<i,Tail> >::value << ",  Elems = { ";
00223     Vtl::Meta::IL::Debug<Vtl::Meta::IndexList<i,Tail> >::print(os);
00224     os<< " }" ;
00225     return os;
00226 }
00227
00228 #endif //_VTL_META_INDEXLIST_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл vtl_meta_permutations.h

  • Файлы
  • Список членов всех файлов

vtl_meta_permutations.h

См. документацию.
00001 #ifndef _VTL_META_PERMUTATIONS_H
00002 #define _VTL_META_PERMUTATIONS_H
00004 #include <iostream>
00005 #include "vtl_meta_Tools.h"
00006 #include "vtl_meta_IndexList.h"
00008 namespace Vtl
00009 {
00010 namespace Meta
00011 {
00013     template<unsigned n>
00014     struct BitsIn
00015     {
00016         enum { temp=(n/2)+BitsIn<(n/2)>::temp };
00017         enum { value=n-unsigned(temp) };
00018     };
00019     template<>
00020     struct BitsIn<0>
00021     {
00022         enum { temp=0 };
00023         enum { value=0 };
00024     };
00025
00026
00027
00028     namespace Impl
00029     {
00030         template<int N,class Il1,class Il2,int j>
00031         struct determinant
00032         {
00033             typedef typename IL::EraseAt<0,Il1>::Result IndexInCol;
00034             typedef typename IL::EraseAt<j,Il2>::Result IndexInRow;
00035             template<class Matrix>
00036             static typename Matrix::value_type inRow(const Matrix& mat)
00037             {
00038                 return MultMinusOnePowerTo<j>(
00039                       mat(IL::Elem<0,Il1>::value,IL::Elem<j,Il2>::value)
00040                     * determinant<N-1,IndexInCol,IndexInRow,0>::inRow(mat) )
00041                     + determinant<N,Il1,Il2,j+1>::inRow(mat) ;
00042             }
00043         };
00044         template<int N,class Il1,class Il2>
00045         struct determinant<N,Il1,Il2,N >
00046         {
00047             template<class Matrix>
00048             static typename Matrix::value_type  inRow(const Matrix& mat)
00049             {
00050                 return 0;
00051             }
00052         };
00053         template<class Il1,class Il2>
00054         struct determinant<1,Il1,Il2,0>
00055         {
00056             template<class Matrix>
00057             static typename Matrix::value_type inRow(const Matrix& mat)
00058             {
00059                 return mat(IL::Elem<0,Il1>::value,IL::Elem<0,Il2>::value);
00060             }
00061         };
00062
00063     }//namespace Impl
00077     template<int N,class Matrix>
00078     typename Matrix::value_type determinant(const Matrix & matrix)
00079     {
00080         typedef IL::MakeInRange<0,N>::Result Il;
00081         return Impl::determinant<N,Il,Il,0>::inRow(matrix);
00082
00083     };
00085     namespace Impl
00086     {
00093         template<class IList1,class IList2,int isOdd,int k,int i>
00094         struct permut
00095         {
00096             enum { value=IL::Elem<i,IList2>::value };
00097             typedef typename IL::EraseAt<i,IList2>::Result Tail;
00098             typedef typename IL::PushBack<value,IList1>::Result Head;
00099             enum { is_Odd = (1&(isOdd+i)) };
00100
00101             template<class Func>
00102             static void forEach(Func& f)
00103             {
00104                 permut<IList1,IList2,isOdd,IL::Length<IList2>::value,i+1>::forEach(f);
00105                 permut<Head,Tail,is_Odd,IL::Length<Tail>::value,0>::forEach(f);
00106             }
00107         };
00108         template<class IList1,class IList2,int isOdd,int k>
00109         struct permut<IList1,IList2,isOdd,k,k >
00110         {
00111             template<class Func>
00112             static void forEach(Func& f) {}
00113         };
00114         template<class IList1,int isOdd>
00115         struct permut<IList1,Loki::NullType,isOdd,0,0>
00116         {
00117             template<class Func>
00118             static void forEach(Func& f)
00119             {
00120                 f.f<isOdd,IList1>();
00121             }
00122         };
00123     }//namespace Impl
00124
00145     template<class IList,class Func>
00146     void ForEachPermutationOfIndexList(Func& f)
00147     {
00148         Impl::permut<Loki::NullType,IList,0,IL::Length<IList>::value,0>::forEach(f);
00149     }
00167     template<int N,class Func>
00168     void ForEachPermutation(Func& f)
00169     {
00170         typedef IL::MakeInRange<0,N>::Result IList;
00171         //ForEachPermutationOfIndexList<IList>(f); //Next line is another way to say the same except at this line compiler calculates N as Length of IList
00172         Impl::permut<Loki::NullType,IList,0,N,0>::forEach(f);
00173     }
00176     struct printPermutations
00177     {
00178         template<int isOdd,class IList>
00179         void f()
00180         {
00181             std::cout << (isOdd?"- ":"+ ") << IL::type2ostream<IList>() << std::endl;
00182         }
00183     };
00197     template<class Matrix>
00198     class det
00199     {
00200         typedef typename Matrix::value_type value_type;
00201         const Matrix& A;
00202
00203         template<class Il,int i>
00204         value_type a()
00205         {
00206             return A(i,IL::Elem<i,Il>::value);
00207         }
00208         template<class Il,int i>
00209         value_type mul(Loki::Int2Type<i>  )
00210         {
00211             return a<Il,i>()*mul<Il,i-1>(Loki::Int2Type<i-1>());
00212         }
00213         template<class Il,int i>
00214         value_type mul(Loki::Int2Type<0> )
00215         {
00216             return a<Il,i>();
00217         }
00218     public:
00219         value_type result;
00220         det(const Matrix& mat) : A(mat) , result(0) {}
00221         template<int isOdd,class IList>
00222         void f()
00223         {
00224             enum {last=IL::Length<IList>::value-1};
00225             AddOrSub<isOdd>(result,mul<IList,last>(Loki::Int2Type<last>()) );
00226         }
00227     };
00231     template<class Matrix,int N>
00232     class det_poly_coef
00233     {
00234         typedef typename Matrix::value_type T;
00235         const Matrix& A;
00236         const Matrix& B;
00237         enum { mask = (1<<N)-1 };
00238
00239         template<class Il,int i>
00240         T ab(Loki::Int2Type<0> )
00241         {
00242             return A(i,IL::Elem<i,Il>::value);
00243         }
00244         template<class Il,int i>
00245         T ab(Loki::Int2Type<1> )
00246         {
00247             return B(i,IL::Elem<i,Il>::value);
00248         }
00249         template<class Il,int i,int is_b>
00250         T ab()
00251         {
00252             return ab<Il,i>(Loki::Int2Type<is_b>());
00253         }
00254
00255         template<class Il,int i,int m>
00256         T mul(Loki::Int2Type<i> )
00257         {
00258             enum { m2 = m/2 };
00259             return ab<Il,i,m&1>() * mul<Il,(i-1),m2>( Loki::Int2Type<(i-1)>() );
00260         }
00261         template<class Il,int i,int m>
00262         T mul(Loki::Int2Type<0> )
00263         {
00264             return ab<Il,i,m&1>();
00265         }
00266         template<int m,int isOdd,class IList>
00267         void one_comp()
00268         {
00269             enum {last=IL::Length<IList>::value-1};
00270             AddOrSub<isOdd>(coef[BitsIn<m>::value] ,mul<IList,last,m>(Loki::Int2Type<last>()) );
00271         }
00272         template<int m,int isOdd,class IList>
00273         void comp(Loki::Int2Type<1> )
00274         {
00275             one_comp<m,isOdd,IList>();
00276             comp<m-1,isOdd,IList>(Loki::Int2Type<((m-1)?1:0)>());
00277         }
00278         template<int m,int isOdd,class IList>
00279         void comp(Loki::Int2Type<0> )
00280         {
00281             one_comp<m,isOdd,IList>();
00282         }
00283     public:
00284         T coef[N+1];
00285         det_poly_coef(const Matrix& A_,const Matrix& B_): A(A_), B(B_)
00286         {
00287             set<N+1>(coef,0);
00288         }
00289         template<int isOdd,class IList>
00290         void f()
00291         {
00292             comp<mask,isOdd,IList>(Loki::Int2Type<1>());
00293         }
00294     };
00295 }//namespace Meta
00296 }//namespace Vtl
00298 #endif //_VTL_META_PERMUTATIONS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл vtl_meta_SizeList.h

  • Файлы
  • Список членов всех файлов

vtl_meta_SizeList.h

См. документацию.
00001 #ifndef _VTL_META_SIZELIST_H
00002 #define _VTL_META_SIZELIST_H
00004 #include <iostream>
00005 #include "vtl_meta_tools.h"
00006 #include "vtl_meta_IndexList.h"
00008 namespace Vtl
00009 {
00010 namespace Meta
00011 {
00012     namespace Impl
00013     {
00014         template<class IList,int sz>
00015         struct SizeList_base_0
00016         {
00017             enum { hasInts=sz};
00018             int non_enums[sz];
00019         };
00020         template<class IList>
00021         struct SizeList_base_0<IList,0>
00022         {
00023             enum { hasInts=0};
00024         };
00025     }//namespace Impl
00029     template<class T_IList>
00030     struct SizeList_base
00031         : protected Impl::SizeList_base_0<T_IList,IL::Count<0,T_IList>::value>
00032     {
00033         SizeList_base_0::hasInts;
00034         typedef T_IList IList;
00035         enum { size=IL::Length<IList>::value};
00036     protected:
00037         //~SizeList_base() {}
00038         //SizeList_base() {}
00039         //SizeList_base(const SizeList_base&) {}
00040     public:
00041         template<int i>
00042         bool isEnum() const
00043         {
00044             return (IL::Elem<i,IList>::value != 0);
00045         }
00046         template<int i>
00047         int x() const
00048         {
00049             return get_x<i>( Loki::Bool2Type< IL::Elem<i,IList>::value != 0 >() );
00050         }
00051     //protected:
00053         template<int i>
00054         void set(int value)
00055         {
00056             return set_x<i>(value, Loki::Bool2Type< IL::Elem<i,IList>::value != 0 >() );
00057         }
00058         void set_all(int i_0,int i_1=-1,int i_2=-1,int i_3=-1,int i_4=-1,int i_5=-1,int i_6=-1,int i_7=-1,int i_8=-1,int i_9=-1,int i_10=-1,int i_11=-1,int i_12=-1,int i_13=-1,int i_14=-1,int i_15=-1,int i_16=-1,int i_17=-1,int i_18=-1,int i_19=-1)
00059         {
00060             enum {n=IL::Length<IList>::value};
00061             set_all_<0,n>(Loki::Bool2Type<(0<n)>(),i_0,i_1,i_2,i_3,i_4,i_5,i_6,i_7,i_8,i_9,i_10,i_11,i_12,i_13,i_14,i_15,i_16,i_17,i_18,i_19);
00062         }
00063     private:
00065         template<int i>
00066         int get_x(Loki::Bool2Type<true> ) const
00067         {
00068             return IL::Elem<i,IList>::value;
00069         }
00071         template<int i>
00072         int get_x(Loki::Bool2Type<false> ) const
00073         {
00074             return non_enums[IL::ICount<0,i,IList>::value];
00075         }
00077         template<int i>
00078         void set_x(int value,Loki::Bool2Type<true> ) const
00079         {
00080         }
00082         template<int i>
00083         void set_x(int value,Loki::Bool2Type<false> )
00084         {
00085             non_enums[IL::ICount<0,i,IList>::value]=value;
00086         }
00087         template<int i,int n>
00088         void set_all_(Loki::Bool2Type<true> ,int i_0,int i_1=-1,int i_2=-1,int i_3=-1,int i_4=-1,int i_5=-1,int i_6=-1,int i_7=-1,int i_8=-1,int i_9=-1,int i_10=-1,int i_11=-1,int i_12=-1,int i_13=-1,int i_14=-1,int i_15=-1,int i_16=-1,int i_17=-1,int i_18=-1,int i_19=-1 )
00089         {
00090             set<i>(i_0);
00091             set_all_<i+1,n>(Loki::Bool2Type<((i+1)<n)>(),i_1,i_2,i_3,i_4,i_5,i_6,i_7,i_8,i_9,i_10,i_11,i_12,i_13,i_14,i_15,i_16,i_17,i_18,i_19);
00092         }
00093         template<int i,int n>
00094         void set_all_(Loki::Bool2Type<false> ,int i_0,int i_1=-1,int i_2=-1,int i_3=-1,int i_4=-1,int i_5=-1,int i_6=-1,int i_7=-1,int i_8=-1,int i_9=-1,int i_10=-1,int i_11=-1,int i_12=-1,int i_13=-1,int i_14=-1,int i_15=-1,int i_16=-1,int i_17=-1,int i_18=-1,int i_19=-1 )
00095         {
00096         }
00097     };
00098
00102     template<int i,class IList>
00103     void print(std::ostream& os,const SizeList_base<IList>& sl,Loki::Int2Type<i>)
00104     {
00105         print(os,sl,Loki::Int2Type<i-1>());
00106         os << (sl.isEnum<i>()?" enum:":" int:") << sl.x<i>();
00107     }
00111     template<class IList>
00112     void print(std::ostream& os,const SizeList_base<IList>& sl,Loki::Int2Type<-1>)
00113     {
00114     }
00118     template<class IList>
00119     void print(std::ostream& os,const SizeList_base<IList>& sl)
00120     {
00121         os << "{";
00122         print(os,sl,Loki::Int2Type<SizeList_base<IList>::size-1>());
00123         os << " }" << std::endl;
00124     }
00125
00129     template<int i_0,int i_1=-1,int i_2=-1,int i_3=-1,int i_4=-1,int i_5=-1,int i_6=-1,int i_7=-1,int i_8=-1,int i_9=-1,int i_10=-1,int i_11=-1,int i_12=-1,int i_13=-1,int i_14=-1,int i_15=-1,int i_16=-1,int i_17=-1,int i_18=-1,int i_19=-1>
00130     class SizeList
00131         : public SizeList_base<
00132                 typename IL::Make<i_0,i_1,i_2,i_3,i_4,i_5,i_6,i_7,i_8,i_9,i_10,i_11,i_12,i_13,i_14,i_15,i_16,i_17,i_18,i_19>::Result
00133                 >
00134     {
00135     public:
00136         SizeList(int i_0,int i_1=-1,int i_2=-1,int i_3=-1,int i_4=-1,int i_5=-1,int i_6=-1,int i_7=-1,int i_8=-1,int i_9=-1,int i_10=-1,int i_11=-1,int i_12=-1,int i_13=-1,int i_14=-1,int i_15=-1,int i_16=-1,int i_17=-1,int i_18=-1,int i_19=-1)
00137         {
00138             set_all(i_0,i_1,i_2,i_3,i_4,i_5,i_6,i_7,i_8,i_9,i_10,i_11,i_12,i_13,i_14,i_15,i_16,i_17,i_18,i_19);
00139         }
00140     };
00141
00147     template<typename T,class IList>
00148     class Layout
00149         : private SizeList_base<IList>
00150     {
00151     public:
00152         typedef T value_type;
00153         typedef SizeList_base<IList> SList;
00154         enum { Ndim   = IL::Length<IList>::value-2};
00155         enum { isGray = IL::Elem<Ndim,SList::IList>::value};
00156     private:
00157         typedef SList Base;
00158     public:
00159         //SList lay;
00160         template<typename T,class SZList,int NBands,int Interleave,int Granulation,int align_to> friend class LayoutListDefault;
00161         //friend class LayoutListDirect;
00162     public:
00163         Layout()
00164             : Base()
00165         {
00166             //set_all(i_0,i_1,i_2,i_3,i_4,i_5,i_6,i_7,i_8,i_9,i_10,i_11,i_12,i_13,i_14,i_15,i_16,i_17,i_18,i_19);
00167         }
00168         template<int i>
00169         int stride() const
00170         {
00171             return x<i>();
00172         }
00173         int stride_band() const
00174         {
00175             return x<Ndim+1>();
00176         }
00177         int Bands() const
00178         {
00179             return x<Ndim>();
00180         }
00181         template<typename T,class IList>
00182         friend void print(std::ostream& os,const Layout<T,IList>& lay);
00183     };
00187     template<typename T,class IList>
00188     void print(std::ostream& os,const Layout<T,IList>& lay)
00189     {
00190         os << "{";
00191         print(os,lay,Loki::Int2Type<Layout<T,IList>::SList::size-1>());
00192         os << " }" << std::endl;
00193     }
00194     template<typename T,class IList,int NBands,int Interleave,int Granulation,int align_to>
00195     class BuildDefaultLayout
00196     {
00197         enum {sz=IL::Length<IList>::value};
00200         template<int i,int I>
00201         struct S
00202         {
00203             enum { bands_stride= S<i-1,I>::bands_stride };
00204             enum { stride= (i==Granulation)? 1 : Align< T, S<i-1,I>::stride * IL::Elem<i-1,IList>::value ,align_to>::value  };
00205             typedef typename IL::PushBack<stride,typename S<i-1,I>::Result>::Result Result;
00206         };
00207         template<>
00208         struct S<0,0>
00209         {
00210             enum { bands_stride = 1 };
00211             enum { stride = NBands };
00212             typedef IndexList<stride,Loki::NullType> Result;
00213         };
00214         template<int I>
00215         struct S<0,I>
00216         {
00217             enum { bands_stride = 0 };
00218             enum { stride = 1 };
00219             typedef IndexList<stride,Loki::NullType> Result;
00220         };
00221         template<int i>
00222         struct S<i,i>
00223         {
00224             enum { bands_stride= (i==Granulation)? 1 : Align< T, S<i-1,i>::stride * IL::Elem<i-1,IList>::value ,align_to>::value  };;
00225             enum { stride= bands_stride * NBands };
00226             typedef typename IL::PushBack<stride,typename S<i-1,i>::Result>::Result Result;
00227         };
00240         typedef typename S<sz-1,Interleave> SS;
00241         enum { bbstride = S<sz,Interleave>::bands_stride };
00242         typedef typename IL::PushBack<bbstride,typename SS::Result>::Result Temp;
00243     public:
00244         typedef typename IL::PushBack<NBands,Temp>::Result Result;
00246 /*
00248         template<int i>
00249         struct BuildDefaultLayout_
00250         {
00251             typedef BuildDefaultLayout_<i-1> Base;
00252             enum {ss = Align<T,Base::ss * IL::Elem<i-1,IList>::value *((i==Interleave)?NBands:1),align_to>::value };
00253             typedef typename IL::PushBack<ss,typename Base::Result>::Result Result;
00254         };
00256         template<>
00257         struct BuildDefaultLayout_<0>
00258         {
00259             enum {ss=((0==Interleave)?NBands:1)};
00260             typedef IndexList<ss,Loki::NullType> Result;
00261         };
00265         template<>
00266         struct BuildDefaultLayout_<sz>
00267         {
00268             typedef BuildDefaultLayout_<sz-1> Base;
00269             enum {ss = NBands };
00270             typedef typename IL::PushBack<ss,typename Base::Result>::Result Result;
00271         };
00274         typedef typename BuildDefaultLayout_<sz>::Result Temp;
00277         template<class Lst,int I>
00278         struct Add_band_stride
00279         {
00283             enum { value = Align<T, IL::Elem<I-1,Lst>::value * IL::Elem<I-1,IList>::value ,align_to>::value };
00284         };
00285         template<class Lst>
00286         struct Add_band_stride<Lst,0>
00287         {
00288             // Interleave=0 - вариант BIP, stride по каналам равен 1.
00289             enum { value = 1 };
00290         };
00291         enum { band_stride = Add_band_stride<Temp,Interleave>::value };
00292     public:
00298         typedef typename IL::PushBack<band_stride,Temp>::Result  Result;
00299 */
00300     };
00301
00302     template<typename T,class SZList,int NBands,int Interleave=SZList::size ,int Granulation=SZList::size ,int align_to =1>
00303     class LayoutListDefault
00304     {
00305     public:
00306         typedef typename BuildDefaultLayout<T,typename SZList::IList,NBands,Interleave,Granulation,align_to>::Result IList;
00307         //SizeList_base<IList> strides;
00308         typedef Layout<T,IList> LayoutType;
00309         LayoutType strides;
00310         enum { strides_size=IL::Length<IList>::value};
00311         enum { ndim=SZList::size };
00312         operator LayoutType() const {return strides;}
00313         //typedef IList;
00314         LayoutListDefault(SZList sl,int nbands)
00315         {
00316             if(NBands==0)
00317                 nbands=NBands;
00318             build(sl,nbands,Loki::Int2Type<0>());
00319             std::cout << "LayoutList: sl:" <<std::endl;
00320             print(std::cout,sl);
00321             std::cout << "LayoutList: strides:" <<std::endl;
00322             print(std::cout,strides);
00323             std::cout << "LayoutList: builded:" <<std::endl;
00324         }
00325     private:
00326         template<int i>
00327         void build(const SZList& sl,int nbands,Loki::Int2Type<i> )
00328         {
00329             if(!strides.isEnum<i>())
00330             {
00331                 int value=  align<T>(strides.x<i-1>() * sl.x<i-1>() * ((i==Interleave)?nbands:1),align_to) ;
00332                 //int value=137;
00333                 strides.set<i>(value);
00334             }
00335             //std::cout << "build() " <<i << std::endl;
00336             build(sl,nbands,Loki::Int2Type<i+1>() );
00337         }
00338         void build(const SZList& sl,int nbands,Loki::Int2Type<0> )
00339         {// Do nothing, end of static recursion
00340             if(!strides.isEnum<0>())
00341             {
00342                 strides.set<0>((0==Interleave)?nbands:1);
00343             }
00344             //std::cout << "build() " << 0 << std::endl;
00345             build(sl,nbands,Loki::Int2Type<1>() );
00346         }
00347         void build(const SZList& sl,int nbands,Loki::Int2Type<strides_size-1> )
00348         {// Do nothing, end of static recursion
00349             //std::cout << "build() " << strides_size << "  end" << std::endl;
00350             if(!strides.isEnum<strides_size-1>())
00351             {
00352                 strides.set<strides_size-1>(nbands);
00353             }
00354         }
00355     };
00356
00357
00358     template<int NBands,int s_0,int s_1=-1,int s_2=-1,int s_3=-1,int s_4=-1,int s_5=-1,int s_6=-1,int s_7=-1,int s_8=-1,int s_9=-1,int s_10=-1,int s_11=-1,int s_12=-1,int s_13=-1,int s_14=-1,int s_15=-1,int s_16=-1,int s_17=-1,int s_18=-1,int s_19=-1>
00359     struct LayoutListDirect
00360     {
00361         typedef typename IL::PushBack<NBands,typename IL::Make<s_0,s_1,s_2,s_3,s_4,s_5,s_6,s_7,s_8,s_9,s_10,s_11,s_12,s_13,s_14,s_15,s_16,s_17,s_18,s_19>::Result>::Result IList;
00362         SizeList_base<IList> strides;
00363         enum { strides_size=IL::Length<IList>::value};
00364         enum { ndim=SZList::size };
00365
00366         LayoutListDirect(int nbands,int s_0,int s_1=-1,int s_2=-1,int s_3=-1,int s_4=-1,int s_5=-1,int s_6=-1,int s_7=-1,int s_8=-1,int s_9=-1,int s_10=-1,int s_11=-1,int s_12=-1,int s_13=-1,int s_14=-1,int s_15=-1,int s_16=-1,int s_17=-1,int s_18=-1,int s_19=-1)
00367         {
00368             strides.set_all(s_0,s_1,s_2,s_3,s_4,s_5,s_6,s_7,s_8,s_9,s_10,s_11,s_12,s_13,s_14,s_15,s_16,s_17,s_18,s_19);
00369             if(NBands==0)
00370                 nbands=NBands;
00371         //  build(sl,nbands,Loki::Int2Type<0>());
00372             std::cout << "LayoutList: sl:" <<std::endl;
00373             print(std::cout,sl);
00374             std::cout << "LayoutList: strides:" <<std::endl;
00375             print(std::cout,strides);
00376             std::cout << "LayoutList: builded:" <<std::endl;
00377         }
00378     private:
00379         /*
00380         template<int i>
00381         void build(const SZList& sl,int nbands,Loki::Int2Type<i> )
00382         {
00383             if(!strides.isEnum<i>())
00384             {
00385                 int value=  align<T>(strides.x<i-1>() * sl.x<i-1>() * ((i==Interleave)?nbands:1),align_to) ;
00386                 //int value=137;
00387                 strides.set<i>(value);
00388             }
00389             //std::cout << "build() " <<i << std::endl;
00390             build(sl,nbands,Loki::Int2Type<i+1>() );
00391         }
00392         void build(const SZList& sl,int nbands,Loki::Int2Type<0> )
00393         {// Do nothing, end of static recursion
00394             if(!strides.isEnum<0>())
00395             {
00396                 strides.set<0>((0==Interleave)?nbands:1);
00397             }
00398             //std::cout << "build() " << 0 << std::endl;
00399             build(sl,nbands,Loki::Int2Type<1>() );
00400         }
00401         void build(const SZList& sl,int nbands,Loki::Int2Type<strides_size-1> )
00402         {// Do nothing, end of static recursion
00403             //std::cout << "build() " << strides_size << "  end" << std::endl;
00404             if(!strides.isEnum<strides_size-1>())
00405             {
00406                 strides.set<strides_size-1>(nbands);
00407             }
00408         }
00409         */
00410     };
00411
00412
00413 }//namespace Meta
00414 }//namespace Vtl
00416 #endif //_VTL_META_SIZELIST_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл vtl_meta_tools.h

  • Файлы
  • Список членов всех файлов

vtl_meta_tools.h

См. документацию.
00001 #ifndef _VTL_META_TOOLS_H
00002 #define _VTL_META_TOOLS_H
00004 #include <iostream>
00005 #include "loki_EmptyType.h"
00006 #include "loki_NullType.h"
00007 #include "loki_typeManip.h"
00008 #include "loki_Typelist.h" //currently not used but included for potential user usage
00009 #include "loki_static_check.h"
00011 namespace Loki
00012 {
00014     template <bool v>
00015     struct Bool2Type
00016     {
00017         enum { value = v };
00018     };
00019 };
00020 namespace Vtl
00021 {
00022 namespace Meta
00023 {
00025     class EnumTraits
00026     {
00027         template<bool next=true,unsigned i=1>
00028         struct MaxEnum;
00029         template<unsigned i>
00030         struct MaxEnum<false,i>
00031         {
00032         public:
00033             enum { value = i };
00034         };
00035         template<unsigned i>
00036         struct MaxEnum<true,i>
00037         {
00038         private:
00039             enum { cur=i};
00040             enum { next = ((cur<<1)|cur) };
00041         public:
00042             enum { value = MaxEnum<(next>cur),((next>cur)?next:cur)>::value};
00043         };
00044         struct IsEnum
00045         {
00046             enum {a=-1};
00047             enum {b=0};
00048             enum {Signed=(a<b)? 1:0};
00049         };
00050         template<unsigned mask=1>
00051         struct Bits
00052         {
00053             enum { value = 1+Bits<(mask<<1)>::value};
00054         };
00055         template<>
00056         struct Bits<0>
00057         {
00058             enum { value = 0 };
00059         };
00060     public:
00061         enum { max=MaxEnum<>::value};
00062         enum { isSigned=IsEnum::Signed};
00063         enum { min=isSigned? (((max<<1)|1)^max) : 0};
00064         enum { bits=Bits<>::value};
00065     };
00073     template<typename T>
00074     static int align(int sz,int align_to)
00075     {
00076         while((sz*sizeof(T))%align_to)
00077             ++sz;
00078         return sz;
00079     }
00089     template<typename T,int sz,int align_to>
00090     class Align
00091     {
00092         template<int next,int size>
00093         struct Align_
00094         {
00095             enum { sz2=size+1};
00096             enum { is_next = ((sz2*sizeof(T))%align_to)  };
00097             enum { value = Align_<is_next,sz2>::value  };
00098         };
00099         template<int size>
00100         struct Align_<0,size>
00101         {
00102             enum { value = size };
00103         };
00104         enum { is_next = ((sz*sizeof(T))%align_to)  };
00105     public:
00106         enum { value = Align_<is_next,sz>::value  };
00107     };
00109     template<int isSubtract,typename T>
00110     void AddOrSub(T& result,T value)
00111     {
00112         AddOrSub(result,value,Loki::Int2Type<(isSubtract?1:0)>() );
00113     }
00114     template<typename T>
00115     void AddOrSub(T& result,T value,Loki::Int2Type<1> )
00116     {
00117         result-=value;
00118     }
00119     template<typename T>
00120     void AddOrSub(T& result,T value,Loki::Int2Type<0> )
00121     {
00122         result+=value;
00123     }
00126     template<int N,typename T>
00127     T MultMinusOnePowerTo(T value)
00128     {
00129         return MultMinusOnePowerTo(value,Loki::Int2Type<(N&1)>());
00130     }
00131     template<typename T>
00132     T MultMinusOnePowerTo(T value,Loki::Int2Type<0> )
00133     {
00134         return value;
00135     }
00136     template<typename T>
00137     T MultMinusOnePowerTo(T value,Loki::Int2Type<1> )
00138     {
00139         return -value;
00140     }
00142     template<int N,typename T>
00143     void copy(T* dst,const T* src)
00144     {
00145         copy(dst,src,Loki::Int2Type<N>());
00146     }
00147     template<int N,typename T>
00148     void copy(T* dst,const T* src,Loki::Int2Type<N>)
00149     {
00150         *dst=*src;
00151         copy(dst+1,src+1,Loki::Int2Type<N-1>());
00152     }
00153     template<typename T>
00154     void copy(T* dst,const T* src,Loki::Int2Type<1>)
00155     {
00156         *dst=*src;
00157     }
00158     template<typename T>
00159     void copy(T* dst,const T* src,Loki::Int2Type<0>)
00160     {
00161     }
00163     template<int N,typename T,typename TT>
00164     void set(T* dst,TT value)
00165     {
00166         set(dst,T(value),Loki::Int2Type<N>());
00167     }
00168     template<typename T,int N>
00169     void set(T* dst,T value,Loki::Int2Type<N>)
00170     {
00171         *dst=value;
00172         set(dst+1,value,Loki::Int2Type<N-1>());
00173     }
00175     template<typename T>
00176     void set(T* dst,T value,Loki::Int2Type<1>)
00177     {
00178         *dst=value;
00179     }
00184     template<typename T>
00185     void set(T* dst,T value,Loki::Int2Type<0>)
00186     {
00187     }
00191     template<int N,typename T,typename TT>
00192     void set_seq(T* dst,TT value_first=0,TT value_step=1)
00193     {
00194         set_seq(dst,T(value_first),T(value_step),Loki::Int2Type<N>());
00195     }
00196     template<typename T,int N>
00197     void set_seq(T* dst,T value,T step,Loki::Int2Type<N>)
00198     {
00199         *dst=value;
00200         set_seq(dst+1,value+step,step,Loki::Int2Type<N-1>());
00201     }
00202     template<typename T>
00203     void set_seq(T* dst,T value,T step,Loki::Int2Type<1>)
00204     {
00205         *dst=value;
00206     }
00207     template<typename T>
00208     void set_seq(T* dst,T value,T step,Loki::Int2Type<0>)
00209     {
00210     }
00212     template<int N,typename TT,typename T>
00213     TT sum(T* dst)
00214     {
00215         return sum(dst,Loki::Int2Type<N>());
00216     }
00217     template<typename TT,int N,typename T>
00218     TT sum(T* dst,Loki::Int2Type<N>)
00219     {
00220         return *dst+sum<TT>(dst+1,Loki::Int2Type<N-1>());
00221     }
00223     template<typename TT,typename T>
00224     TT sum(T* dst,Loki::Int2Type<1>)
00225     {
00226         return *dst;
00227     }
00232     template<typename TT,typename T>
00233     TT sum(T* dst,Loki::Int2Type<0>)
00234     {
00235         return TT(0);
00236     }
00259
00260     template<int N,typename T>
00261     void print_array(const T* src,const char *name,bool inColumn=true)
00262     {
00263         std::cout << name <<" ["<<N<<"] : {" ;
00264         if(inColumn)
00265         {
00266             std::cout << std::endl;
00267             for(int i=0; i<N; ++i)
00268                 std::cout << i << ":  " << src[i] << std::endl;
00269             std::cout << "}" <<std::endl;
00270         }
00271         else
00272         {
00273             for(int i=0; i<N; ++i)
00274                 std::cout << "  " << src[i] ;
00275             std::cout << " }" <<std::endl;
00276         }
00277     }
00278 }//namespace Meta
00279 }//namespace Vtl
00280 #endif //_VTL_META_TOOLS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл windowing_fun.h

  • Файлы
  • Список членов всех файлов

windowing_fun.h

См. документацию.
00001 #ifndef _WINDOWING_FUN_H
00002 #define _WINDOWING_FUN_H
00004 #include <vector>
00005 #include <algorithm>
00006 #define _USE_MATH_DEFINES
00007 #include <cmath>
00008 #include <assert.h>
00009 #include "loki_static_check.h"
00010 #include "loki_TypeManip.h"
00011 #include "alexandresku.h"
00012 #include "spec_functions.h"
00013 namespace Vtl
00014 {
00015 namespace ImAlg
00016 {
00133     namespace WndFun
00134     {
00144         template<typename T,bool FSL,bool FSR,unsigned NAC,unsigned D> struct Traits_common
00145         {
00146             typedef T value_type;
00147             enum { finit_support=FSL };
00148             enum { finit_support_left=FSL };
00149             enum { finit_support_right=FSR };
00150             enum { conv_norm_alg=NAC };
00151             enum { Deriv=D };
00152         public:
00153             template<class Functor>
00154             static std::string FullName()
00155             {
00156                 std::ostringstream os;
00157                 if(Functor::Deriv>0)
00158                     os << (d/dx)^<<Functor::Deriv << ' ';
00159                 os << Functor::Name();
00160                 return os.str();
00161             }
00162             template<class Functor>
00163             static std::string Properties()
00164             {
00165                 std::ostringstream os;
00166                 os << Functor::finit_support? "Finite" : "Infinite" << " support, "
00167                    << "normalization algorithm for convolution="<<Functor::conv_norm_alg;
00168                 Properties(os,Loki::Int2Type<Functor::finit_support>() );
00169                 return os.str();
00170             }
00171         private:
00172             template<class Functor>
00173             static void Properties(std::ostringstream &os,Loki::Int2Type<0> ){}
00174             template<class Functor>
00175             static void Properties(std::ostringstream &os,Loki::Int2Type<1> )
00176             {
00177                 std::ostringstream os;
00178                 os << Functor::spec_center? "\"Center\" is NOT in window center" : "\"Center\" is in window center, standard";
00179
00180                 return os.str();
00181             }
00182         protected:
00183             ~Traits_common() {}
00184         };
00193 //      template<typename T,unsigned FS,unsigned NAC,unsigned D,unsigned SpecCentr> struct Traits;
00194         template<typename T,unsigned FSL,unsigned FSR,unsigned NAC,unsigned D> struct Traits;
00195         template<typename T,unsigned NAC,unsigned D> struct Traits<T,false,false,NAC,D>
00196         : public Traits_common<T,false,false,NAC,D>
00197
00198         {
00199 /*
00200 //      private:
00201             const T half_size;
00202             const T n_half_width;
00203             const T size;
00204             const T center;
00205             const T left;
00206             const T right;
00207 //
00208         public:
00209             Traits(T half_size_,T n_half_width_,T center_at)
00210                 : half_size(half_size_),n_half_width(n_half_width_),center(center_at)
00211                 , size(half_size_*n_half_width_+1),left(center-size/2),right(size-1) {}
00212 */
00213         public:
00214             Traits(T half_size_,T n_half_width_,T center_at) {}
00215         protected:
00216             ~Traits() {}
00217         private:
00218             Traits();
00219         };
00220         template<typename T,unsigned NAC,unsigned D> struct Traits<T,true,true,NAC,D>
00221         : public Traits_common<T,true,true,NAC,D>
00222         {
00223 /*      private:
00224             const T _size;
00225             const T _center;
00226             const T _left;
00227             const T _right;
00228         public:
00229 */
00230             Traits(T size_,T center_) /*: _size(size_) ,_center(center_), _left(center_-size_/2),_right(size_-1)*/ {}
00231         protected:
00232             ~Traits() {}
00233         private:
00234             Traits();
00235         };
00236
00243         template<typename T,typename TT,unsigned D=0,unsigned NAC=0> class Direct_Ref
00244             : public Traits<T,true,true,NAC,D>
00245         {
00246         public:
00247             typedef int arg_type;
00248         private:
00249             const arg_type _size_;
00250             const TT* vals;
00251         public:
00252             static const char * Name() { return "HannDirect_Ref"; }
00253             Direct_Ref(int size_,int center_,const TT* values) : Traits<T,true,true,NAC,D>(T(size_),T(center_)),_size_(size_), vals(values) {}
00254             template<class TT> T operator()(TT x) const
00255             {
00256                 assert( int(x)>=0 && int(x)< _size_ );
00257                 return T(vals[ int(x) ]);
00258             }
00259             arg_type size() const {return _size_;}
00260             arg_type center() const {return arg_type((_size_-1)/2.0f);}
00261             arg_type left() const {return 0;}
00262             arg_type right() const {return _size_-1;}
00263         };
00268         template<typename T> struct Laws5
00269         {
00270             static const int  * Level()
00271             {
00272                 static int d[]={ 1, 4,6, 4, 1};
00273                 return d;
00274             }
00275             static const int  *Edge()
00276             {
00277                 static int d[]={-1,-2,0, 2, 1};
00278                 return d;
00279             }
00280             static const int  *Spot()
00281             {
00282                 static int d[]={-1, 0,2, 0,-1};
00283                 return d;
00284             }
00285             static const int  *Ripple()
00286             {
00287                 static int d[]={ 1,-4,6,-4, 1};
00288                 return d;
00289             }
00290             struct L5 //Level
00291                 : public Direct_Ref<T,int,0,0>
00292             {
00293                 static const char * Name() { return "Laws.L5"; }
00294                 L5() : Direct_Ref(5,2,Level()) {}
00295             };
00296             struct E5 //Level
00297                 : public Direct_Ref<T,int,1,1>
00298             {
00299                 static const char * Name() { return "Laws.E5"; }
00300                 E5() : Direct_Ref(5,2,Edge()) {}
00301             };
00302             struct S5 //Level
00303                 : public Direct_Ref<T,int,2,2>
00304             {
00305                 static const char * Name() { return "Laws.S5"; }
00306                 S5() : Direct_Ref(5,2,Spot()) {}
00307             };
00308             struct R5 //Level
00309                 : public Direct_Ref<T,int,2,2>
00310             {
00311                 static const char * Name() { return "Laws.R5"; }
00312                 R5() : Direct_Ref(5,2,Ripple()) {}
00313             };
00314         };
00315
00320         template<typename T,typename TT,unsigned D=0,unsigned NAC=0> class Direct
00321             : public Traits<T,true,true,NAC,D>
00322         {
00323             std::vector<TT> vals;
00324         public:
00325             static const char * Name() { return "Direct"; }
00326             Direct(int size_,int center_,const TT* values) : Traits(T(size_),T(center_))
00327             {
00328                 vals.assign(values,values+size_);
00329             }
00330             template<class TT> T operator()(TT x) const
00331             {
00332                 assert( int(x)>=0 && int(x)< size );
00333                 return T(vals[ int(x) ]);
00334             }
00335         };
00349         template<typename T,unsigned D> class Rect
00350             : public Traits<T,true,true,D,D>
00351         {
00352         public:
00353             static const char * Name() { return "Rect"; }
00354             template<class TT>
00355             Rect(TT size_) : Traits(T(size_),T(size_/2.0f)) {}
00356 //          template<class TT>
00357 //          Rect(TT size_, const Rect& ) : Traits(T(size_),T(size_/2.0f)) {}
00358             template<class TT> T operator()(TT x) const
00359             {
00360                 return result( T(x), Loki::Int2Type<D>() );
00361             }
00362         private:
00363             T result(T x,Loki::Int2Type<0>) const
00364             {
00365                 return T(1);
00366             }
00367         };
00387         template<typename T,unsigned D> class Bartlett
00388             : public Traits<T,true,true,D,D>
00389         {
00390         public:
00391             typedef T arg_type;
00392         private:
00393             const T c;
00394             const arg_type _size_;
00395         public:
00396             static const char * Name() { return "Bartlett"; }
00397             template<class TT>
00398             Bartlett(TT size_) : Traits(T(size_),T(size_/2.0f)),_size_(arg_type(size_)), c(T(2./(size_-1))) {}
00399 //          template<class TT>
00400 //          Bartlett(TT size_, const Bartlett& ) : Traits(T(size_),T(size_/2.0f)), c(T(2./(size_-1))) {}
00401             template<class TT> T operator()(TT x) const
00402             {
00403                 return result( T(x), Loki::Int2Type<D>() );
00404             }
00405             arg_type size() const {return _size_;}
00406             arg_type center() const {return arg_type((_size_-1)/2.0f);}
00407             arg_type left() const {return 0;}
00408             arg_type right() const {return _size_-1;}
00409         private:
00410             T result(T x,Loki::Int2Type<0>) const
00411             {
00412                 T v=x*c;
00413                 return T((v<1 ? v : 2-v));
00414             }
00415             T result(T x,Loki::Int2Type<1>) const
00416             {
00417                 T v=x*c;
00418                 return T( v < 1 ? c : (v>1 ? -c :0 ) );
00419             }
00420         };
00421         namespace Impl
00422         {
00423             namespace Gauss
00424             {
00425                     template<unsigned n,unsigned m> struct c_mod
00426                     {
00427                         enum {v=c_mod<n-1,m-1>::v+(m+1)*c_mod<n-1,m+1>::v };
00428                     };
00429                     template<unsigned n> struct c_mod<n,-1>
00430                     {
00431                         enum {v=0 };
00432                     };
00433                     template<unsigned n> struct c_mod<n,n>
00434                     {
00435                         enum {v=1 };
00436                     };
00437                 template<unsigned n,unsigned m> int c()
00438                 {
00439                     return Vtl::Alg::minus_if_odd<((n-m)/2)&1>(int(c_mod<n,m>::v));
00440                 }
00441
00442                 template<typename T,unsigned n,unsigned m> struct P
00443                 {
00444                     static T v(T x2) { return P<T,n,m+2>::v(x2)*x2+c<n,m>(); }
00445                 };
00446                 template<typename T,unsigned n> struct P<T,n,n>
00447                 {
00448                     static T v(T x2) { return T(c<n,n>()); }
00449                 };
00450                 template<unsigned n,typename T> T Q(T x2,T x)
00451                 {
00452                     return Vtl::Alg::mult_if_odd<n>(P<T,n,(n&1)>::v(x2),-x);
00453                 }
00454             }
00455         }
00588         template<typename T,unsigned D,bool norm_deriv=false> class Gauss
00589             : public Traits<T,false,false,D,D>
00590         {
00591         public:
00592             typedef T arg_type;
00593         private:
00594             const T mult;
00595             const T sigma;
00596             const T half_width;
00597         public:
00598             static const char * Name() { return "Gauss"; }
00599             template<class TT,class TTT>
00600             Gauss(TT sigma_,TTT N_sigmas_)
00601                 : Traits<T,false,false,D,D>(T(sigma_),T(N_sigmas_),T(0)) , sigma(T(sigma_)), half_width(T(sigma_*N_sigmas_)) , mult(T(1.0f/Vtl::Alg::x_to_N<D>::value(sigma_))) {}
00602 //          template<class TT>
00603 //          Gauss(TT new_wnd_size,const Gauss& obj)
00604 //              : Traits(T(new_wnd_size)/2/obj.n_half_width,obj.n_half_width) , mult(T(1./Vtl::Alg::x_to_N<D>::value(half_size))), wnd(new_wnd_size,obj.wnd) {}
00605
00606             template<class TT> T operator()(TT x) const
00607             {
00608                 T t=Vtl::sqr(T(x)/sigma);
00609                 return T(Vtl::Alg::mult_if<norm_deriv>(Impl::Gauss::Q<D,double>(t,double(x))*exp(-t/2.),mult));
00610             }
00611             arg_type size() const {return right()-left();}
00612             arg_type center() const {return arg_type(0);}
00613             arg_type left() const {return -arg_type(half_width);}
00614             arg_type right() const {return arg_type(half_width);}
00615         };
00632         template<typename T,unsigned D> class DoG
00633             : public Traits<T,false,false,D,D>
00634         {
00635         public:
00636             typedef T arg_type;
00637         private:
00638             double large2small;
00639             const T sigma;
00640             const T half_width;
00641         public:
00642             static const char * Name() { return "DoG"; }
00643             template<typename T1,typename T2,typename T3>
00644             DoG(T1 sigma_small,T2 sigma_large,T3 N_sigmas_large)
00645                 : Traits(T(sigma_large),T(N_sigmas_large),T(0)), sigma(T(sigma_large)),half_width(T(sigma_large*N_sigmas_large)), large2small(double(sigma_large)/double(sigma_small)) {}
00646             template<class TT> T operator()(TT x) const
00647             {
00648                 return result( T(x), Loki::Int2Type<D>() );
00649             }
00650             arg_type size() const {return right()-left();}
00651             arg_type center() const {return arg_type(0);}
00652             arg_type left() const {return -arg_type(half_width);}
00653             arg_type right() const {return arg_type(half_width);}
00654         private:
00655             T result(T x,Loki::Int2Type<0>) const
00656             {
00657                 T t2=T(x)/sigma;
00658                 T t1=T(Vtl::sqr(t2*large2small));
00659                 t2=Vtl::sqr(t2);
00660                 return T(exp(-t2/2.)-exp(-t1/2.));
00661             }
00662         };
00663         //---------------------------------------------
00664         template<typename T,unsigned D> class Sinc;
00688         template<typename T> class Sinc<T,0>
00689             : public Traits<T,false,false,0,0>
00690         {
00691         public:
00692             typedef T arg_type;
00693         private:
00694             const T half_cent;
00695             const T half_width;
00696             const T c;
00697             static T sinc(T x) { return sin(x)/x; }
00698         public:
00699             static const char * Name() { return "Sinc"; }
00700             template<typename TT,typename TTT>
00701             Sinc(TT half_central_size,TTT N_lobes) : Traits(T(half_central_size),T(N_lobes+1),T(0)), half_cent(T(half_central_size)),half_width(T(half_central_size*(N_lobes+1))), c(T(M_PI/half_central_size)) {}
00702             template<class TT> T operator()(TT x) const
00703             {
00704                 T y=std::abs(T(c*x));
00705                 return ((y<T(1.0e-20)) ? T(1) : sinc(y)) ;
00706             }
00707             arg_type size() const {return right()-left();}
00708             arg_type center() const {return arg_type(0);}
00709             arg_type left() const {return -arg_type(half_width);}
00710             arg_type right() const {return arg_type(half_width);}
00711         };
00712
00728         template<typename T,unsigned D> class Kaiser
00729             : public Traits<T,true,true,D,D>
00730         {
00731         public:
00732             typedef T arg_type;
00733         private:
00734             const T c;
00735             const T alpha;
00736             const arg_type _size_;
00737         public:
00738             static const char * Name() { return "Kaiser"; }
00739             template<class TT>
00740             Kaiser(TT size_,T alpha_) : Traits(T(size_),T(size_/2.0f)),_size_(arg_type(size_)), c(T(2./(size_-1))), alpha(alpha_) {}
00741 //          template<class TT>
00742 //          Kaiser(TT size_, const Kaiser& k) : Traits(T(size_),T(size_/2.0f)), c(T(2./(size_-1))), alpha(k.alpha) {}
00743             template<class TT> T operator()(TT x) const
00744             {
00745                 return result( T(x), Loki::Int2Type<D>() );
00746             }
00747             arg_type size() const {return _size_;}
00748             arg_type center() const {return arg_type((_size_-1)/2.0f);}
00749             arg_type left() const {return 0;}
00750             arg_type right() const {return _size_-1;}
00751         private:
00752             T result(T x,Loki::Int2Type<0>) const
00753             {
00754                 T v=x*c-T(1);
00755                 return T( Vtl::NumAlg::Spf::bess::I<0>(alpha*sqrt(1-v*v)) / Vtl::NumAlg::Spf::bess::I<0>(alpha) );
00756             }
00757         };
00758         //-----------------------------------------------------------------
00759         namespace Impl
00760         {
00761             namespace common_Trig
00762             {
00763                 template<typename T,unsigned D,unsigned K,unsigned I>  class cos_Member_base
00764                 {
00765                     const T b;
00766                 public:
00767                     template<typename TTT>
00768                     cos_Member_base(T c,TTT* a) : b(T(*a)*Vtl::Alg::x_to_N<D>::value(c*I)){}
00769 //                  cos_Member_base(const cos_Member_base& cm) : b(cm.b) {}
00770                     T operator()(T ckx) const
00771                     {
00772         //              std::cout << "base:    K=" << K << "  I=" << I << "  b=" << b << "  ckx="<< ckx << std::endl;
00773                         return b * Vtl::Alg::sincos<D+1>(ckx);
00774                     }
00775                 };
00776                 template<typename T,unsigned D,unsigned K,unsigned I>  class cos_Member
00777                     : public cos_Member_base<T,D,K,I>
00778                 {
00779                     cos_Member<T,D,K,I+1> cm;
00780                 public:
00781                     template<typename TTT>
00782                     cos_Member(T c,TTT* a) : cos_Member_base(c,a), cm(c,a+1) {}
00783 //                  cos_Member(const cos_Member<T,D,K,I>& cm_) : cos_Member_base<T,D,K,I>(cm_), cm(cm_.cm) {}
00784                     T operator()(T ckx,T cx) const
00785                     {
00786         //              std::cout << "cm:  K=" << K << "  I=" << I << "  ckx="<< ckx << "   cx=" << cx << std::endl;
00787                         return cos_Member_base::operator()(ckx)+cm(ckx+cx,cx);
00788                     }
00789                 };
00790                 template<typename T,unsigned D,unsigned K>  class cos_Member<T,D,K,K>
00791                     : public cos_Member_base<T,D,K,K>
00792                 {
00793                 public:
00794                     template<typename TTT>
00795                     cos_Member(T c,TTT* a) : cos_Member_base<T,D,K,K>(c,a) {}
00796 //                  cos_Member(const cos_Member<T,D,K,K>& cm_) : cos_Member_base<T,D,K,K>(cm_) {}
00797                     T operator()(T ckx,T cx) const
00798                     {
00799         //              std::cout << "cmKK:  K=" << K << "  ckx="<< ckx << "   cx=" << cx << std::endl;
00800                         return cos_Member_base::operator()(ckx);
00801                     }
00802                 };
00803             }
00804         }
00908         template<typename T,unsigned D,unsigned K>  class common_Trig
00909             : public Traits<T,true,true,D,D>
00910         {
00911         public:
00912             typedef T arg_type;
00913         private:
00914             const T c;
00915             const T a0;
00916             const Impl::common_Trig::cos_Member<T,D,K,1> cm;
00917             const arg_type _size_;
00918         public:
00919             template<typename TT,typename TTT>
00920             common_Trig(TT size_,TTT* a) : Traits(T(size_),T(size_/2.0f)),_size_(arg_type(size_)), c(T(2*M_PI/(size_-1))) , a0(T(a[0])), cm(c,a+1) {}
00921 //          template<typename TT>
00922 //          common_Trig(TT size_,const common_Trig<T,D,K>& cm_) : c(T(2*M_PI/(size_-1))) , a0(cm_.a0), cm(cm_.cm) {}
00923             template<typename TT>
00924             T operator()(TT x) const
00925             {
00926                 return result(T(x),Loki::Int2Type<D==0>());
00927             }
00928             arg_type size() const {return _size_;}
00929             arg_type center() const {return arg_type((_size_-1)/2.0f);}
00930             arg_type left() const {return 0;}
00931             arg_type right() const {return _size_-1;}
00932         private:
00933             T result(T x,Loki::Int2Type<true>) const
00934             {
00935                 T cx=c*x;
00936                 return a0+cm(cx,cx);
00937             }
00938             T result(T x,Loki::Int2Type<false>) const
00939             {
00940                 T cx=c*x;
00941                 return Vtl::Alg::minus_if_odd<(D+1)/2>(cm(cx,cx));
00942             }
00943         };
00951         template<typename T,unsigned D>  class Hann
00952             : public common_Trig<T,D,1>
00953         {
00954         public:
00955             static const char * Name() { return "Hann"; }
00956             template<typename TT>
00957             Hann(TT size_) : common_Trig<T,D,1>(size_,cof()) {}
00958 //          template<typename TT>
00959 //          Hann(TT size_,const Hann& ) :common_Trig(size_,cof()) {}
00960         private:
00961             static double *cof()
00962             {
00963                 static double a[2]={0.5,-0.5};
00964                 return a;
00965             }
00966         };
00967
00975         template<typename T,unsigned D>  class Hamming
00976             : public common_Trig<T,D,1>
00977         {
00978         public:
00979             static const char * Name() { return "Hamming"; }
00980             template<typename TT>
00981             Hamming(TT size_) : common_Trig(size_,cof()) {}
00982 //          template<typename TT>
00983 //          Hamming(TT size_,const Hamming& ) :common_Trig(size_,cof()) {}
00984         private:
00985             static double *cof()
00986             {
00987                 static double a[2]={0.53836,-0.46164};
00988                 return a;
00989             }
00990         };
00995         template<typename T,unsigned D>  class Blackman
00996             : public common_Trig<T,D,2>
00997         {
00998         public:
00999             static const char * Name() { return "Blackman"; }
01000             template<typename TT>
01001             Blackman(TT size_) : common_Trig(size_,cof()) {}
01002 //          template<typename TT>
01003 //          Blackman(TT size_,const Blackman& ) :common_Trig(size_,cof()) {}
01004         private:
01005             static double *cof()
01006             {
01007                 static double a[3]={0.42,-0.5,0.08};
01008                 return a;
01009             }
01010         };
01015         template<typename T,unsigned D>  class BlackmanNuttall
01016             : public common_Trig<T,D,3>
01017         {
01018         public:
01019             static const char * Name() { return "BlackmanNuttall"; }
01020             template<typename TT>
01021             BlackmanNuttall(TT size_) : common_Trig(size_,cof()) {}
01022 //          template<typename TT>
01023 //          BlackmanNuttall(TT size_,const BlackmanNuttall& ) :common_Trig(size_,cof()) {}
01024         private:
01025             static double *cof()
01026             {
01027                 static double a[4]={0.3635819,-0.4891775,0.1365995,-0.0106411};
01028                 return a;
01029             }
01030         };
01035         template<typename T,unsigned D>  class BlackmanHarris
01036             : public common_Trig<T,D,3>
01037         {
01038         public:
01039             static const char * Name() { return "BlackmanHarris"; }
01040             template<typename TT>
01041             BlackmanHarris(TT size_) : common_Trig(size_,cof()) {}
01042 //          template<typename TT>
01043 //          BlackmanHarris(TT size_,const BlackmanHarris& ) :common_Trig(size_,cof()) {}
01044         private:
01045             static double *cof()
01046             {
01047                 static double a[4]={0.35875,-0.48829,0.14128,-0.01168};
01048                 return a;
01049             }
01050         };
01055         template<typename T,unsigned D>  class Nuttall
01056             : public common_Trig<T,D,3>
01057         {
01058         public:
01059             static const char * Name() { return "Nuttall"; }
01060             template<typename TT>
01061             Nuttall(TT size_) : common_Trig(size_,cof()) {}
01062 //          template<typename TT>
01063 //          Nuttall(TT size_,const Nuttall& ) :common_Trig(size_,cof()) {}
01064         private:
01065             static double *cof()
01066             {
01067                 static double a[4]={0.355768,-0.487396,0.144232,-0.012604};
01068                 return a;
01069             }
01070         };
01075         template<typename T,unsigned D>  class FlatTop
01076             : public common_Trig<T,D,4>
01077         {
01078         public:
01079             static const char * Name() { return "FlatTop"; }
01080             template<typename TT>
01081             FlatTop(TT size_) : common_Trig(size_,cof()) {}
01082 //          template<typename TT>
01083 //          FlatTop(TT size_,const FlatTop& ) :common_Trig(size_,cof()) {}
01084         private:
01085             static double *cof()
01086             {
01087                 static double a[5]={0.215517,-0.415948,0.278017,-0.083621,0.006897};
01088                 return a;
01089             }
01090         };
01091 #if 0
01092
01098         template <typename T> class Reddy
01099         {
01100             const T a;
01101             const T b;
01102         public:
01103             typedef T value_type;
01104             static const char * Name() { return "Reddy"; }
01105             template<class TT>
01106             Reddy(TT width,TT height) : a(T(M_PI/width)),b(T(M_PI/height)) {}
01107             template<class TT>
01108             Reddy(TT width,TT height, const Reddy& ) : a(T(M_PI/width)),b(T(M_PI/height)) {}
01109             T operator()(int x,int y) const
01110             {
01111                 T v=cos(a*x)*cos(b*y);
01112                 return (1-v)*(2-v);
01113             }
01114         };
01120         template <typename T> class Reddy_2
01121         {
01122             const T a;
01123             const T b;
01124         public:
01125             typedef T value_type;
01126             static const char * Name() { return "Reddy_2"; }
01127             template<class TT>
01128             Reddy_2(TT width,TT height) : a(T(M_PI/width)),b(T(M_PI/height)) {}
01129             template<class TT>
01130             Reddy_2(TT width,TT height, const Reddy_2& ) : a(T(M_PI/width)),b(T(M_PI/height)) {}
01131             T operator()(int x,int y) const
01132             {
01133                 T v=cos(a*x)*cos(b*y);
01134                 return (1-v)*(1-v)*(2-v);
01135             }
01136         };
01137 #endif
01138
01139
01140     /*
01141     See MathLab Help for more windows:
01142             Bartlett-Hann                 windowbarthannwin
01143         +++ Bartlett                      windowbartlett
01144         +++ Blackman                      windowblackman
01145         +   Blackman-Harris               windowblackmanharris
01146             Bohman                        windowbohmanwin
01147             Chebyshev                     windowchebwinFlat
01148         +   Top                           windowflattopwin
01149         +++ Hann                          windowhann
01150         +   Kaiser                        windowkaiser
01151         +   Nuttall's Blackman-Harris     windownuttallwin
01152             Parzen (de la Valle-Poussin)  windowparzenwin
01153             Rectangular                   windowrectwin
01154             Tapered cosine                windowtukeywin
01155             Triangular                    windowtriang
01156     */
01157     }//namespace WndFun // end of ConvolutionKernelsDoxGroup
01159 }//namespace ImAlg
01160 }//namespace Vtl
01162 #endif //_WINDOWING_FUN_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл xml_interface.h

  • Файлы
  • Список членов всех файлов

xml_interface.h

См. документацию.
00001 #ifndef _XML_INTERFACE_H
00002 #define _XML_INTERFACE_H
00004 //file #include "xml_interface.h"
00005 //
00007 #include <vector>
00008 #include <string>
00009 #include <functional> //less<>,equal_to<>, etc.
00010 #include "datastring.h"
00011 #include "xml_interface_imp.h"
00012
00050 namespace YXML
00051 {
00055     class XMLdoc;
00056     class DNode;
00058
00063     class Xercesc
00064     {
00065         static int reference_counter;
00066     public:
00067         Xercesc();
00068         virtual ~Xercesc();
00069     };
00071     class XMLdoc
00072         :private Xercesc
00073     {
00074     private:
00075         YXML_DRV_DocHandle handle;
00076         mutable std::string filename;
00077         bool _autosave;
00078     public:
00079         XMLdoc();
00080         XMLdoc(const char *fname,const char* docname,bool autosave);
00081         ~XMLdoc();
00082         static bool IsFileExist(const char *fname);
00083         std::string FName() const { return filename;}
00084         void Create(const char *fname,const char *docname);
00085         void Load(const char *fname,bool condenseWS=true);
00086         void Save(const char *fname,bool formatted=false) const;
00087         DNode Root();
00088     };
00090
00097     class DNode
00098     {
00099     private:
00100         YXML_DRV_NodeHandle node;
00101         class IsOR;
00102         class IsAND;
00103     public:
00104         enum Type
00105         {
00106             ELEMENT       =YXML_DRV_NODETYPE_ELEMENT,
00107             ATTRIBUTE     =YXML_DRV_NODETYPE_ATTRIBUTE,
00108             TEXT          =YXML_DRV_NODETYPE_TEXT,
00109             COMMENT       =YXML_DRV_NODETYPE_COMMENT,
00110             UNSUPPORTED   =YXML_DRV_NODETYPE_UNSUPPORTED
00111         };
00112         class AttrRef;
00123         struct Is
00124         {
00125             virtual ~Is() {}
00126             virtual bool operator()(const DNode n) const=0;
00127             virtual Is* clone() const =0; //Must return new this object
00128
00129             IsOR operator||(const Is& rhs) const;
00130             IsAND operator&&(const Is& rhs) const;
00131         };
00132         class IsCond
00133             : public Is
00134         {
00135             Is* cond;
00136             void clear() {if(cond) {delete cond;cond=0;}  }
00137         public:
00138             IsCond() : cond(0) {}
00139             IsCond(const Is& is) : cond(is.clone()) {}
00140             virtual ~IsCond() { clear(); }
00141             IsCond& operator=(const IsCond& is) { if(cond) clear(); cond=is.clone(); return *this;}
00142             virtual bool operator()(const DNode n) const { return (cond) ? (*cond)(n) : true;}
00143             virtual Is* clone() const { return new IsCond(*this); }
00144         };
00145     public:
00146         explicit DNode(YXML_DRV_NodeHandle h) : node(h) {}
00147         DNode(const DNode& n) : node(n.node) {}
00148         DNode& operator=(const DNode& n) { node=n.node; return *this;}
00149         ~DNode() {}
00150         YXML_DRV_NodeHandle _GetYXML_NodeHandle() const {return node;}//>For special use ONLY
00156         Type getType() const;
00157         std::string getName() const;
00158         bool IsNode() const { return node!=0;}
00159         //Work only at ELEMENT node
00164         DNode AppendChild(Type type,const DataString data);
00165         DNode InsertAfter(Type type,const DataString data);
00166         DNode InsertBefore(Type type,const DataString data);
00167         void Delete();
00168         void setValue(const DataString data);
00169         DataString getValue() const;
00170  // end of InsertRemove
00175         DNode Parent() const;
00176         DNode FirstChild() const;
00177         DNode LastChild() const;
00178         DNode Next() const;
00179         DNode Prev() const;
00181
00197         DNode FirstChild(const Is& cond) const;
00198         DNode Next(const Is& cond) const;
00199         DNode LastChild(const Is& cond) const;
00200         DNode Prev(const Is& cond) const;
00202         DNode FirstChild(std::string name) const;
00203         DNode Next(std::string name) const;
00204         DNode LastChild(std::string name) const;
00205         DNode Prev(std::string name) const;
00206         template<typename T>
00207         DNode FirstChild(std::string name,std::string attr,const T& attr_val) const
00208         { return FirstChild(IsNameEq(name)&&IsAttrEq(attr,attr_val));}
00209         template<typename T>
00210         DNode Next(std::string name,std::string attr,const T& attr_val) const
00211         { return Next(IsNameEq(name)&&IsAttrEq(attr,attr_val));}
00212         template<typename T>
00213         DNode LastChild(std::string name,std::string attr,const T& attr_val) const
00214         { return LastChild(IsNameEq(name)&&IsAttrEq(attr,attr_val));}
00215         template<typename T>
00216         DNode Prev(std::string name,std::string attr,const T& attr_val) const
00217         { return Prev(IsNameEq(name)&&IsAttrEq(attr,attr_val));} // end of SearchTree // end of SpecificXML
00238         DNode GetNode(const std::string node_name);
00239         void SetValue(const DataString data);
00240         DataString GetValue() const;
00241         void SetAttr(const std::string attr_name,const DataString attr_value);
00242         DataString GetAttr(const std::string attr_name) const;
00243
00248         DNode  operator()(const std::string node_name) {return GetNode(node_name);}
00249         AttrRef operator[](const std::string& attr);
00250         const AttrRef operator[](const std::string& attr) const;
00251         DNode& operator=(const DataString data) { SetValue(data); return *this; }
00252         operator DataString() const { return GetValue();} // end of Common_XML_INI
00255         friend std::ostream& operator<<(std::ostream& s,DNode& in) { return s<<in.operator DataString();}
00256     };
00257     //------------------Implementation, used indirectly via WiNode operator[] ------
00258     class DNode::AttrRef
00259     {
00260         friend class DNode;
00261         DNode n;
00262         std::string attrib;
00263     private:
00264         AttrRef();
00265         AttrRef(const AttrRef&);
00266         AttrRef operator=(const AttrRef&);
00267         AttrRef(const DNode& node,const std::string& attr)
00268             :n(node),attrib(attr) {}
00269     public:
00270         operator DataString() const { return n.GetAttr(attrib.c_str());}
00271         void operator=(const DataString& s) { n.SetAttr(attrib.c_str(),s.c_str());}
00272         friend std::ostream& operator<<(std::ostream& s,DNode::AttrRef& ir) { return s<<ir.operator DataString();}
00273     };
00274     //---------------------------------------------------------------------------------
00275     inline DNode::AttrRef DNode::operator[](const std::string& attr) { return DNode::AttrRef(*this,attr); }
00276     inline const DNode::AttrRef DNode::operator[](const std::string& attr) const { return DNode::AttrRef(*this,attr); }
00277     //------------- implementation of private classes used for logical search
00287         class DNode::IsOR
00288             : public Is
00289         {
00290             Is* l;
00291             Is* r;
00292             void clear() {if(l) {delete l;l=0;} if(r) {delete r;r=0;} }
00293         public:
00294             IsOR(Is* lhs,Is* rhs) : l(lhs), r(rhs) {}
00295             IsOR(const IsOR& obj) : l(obj.l->clone()), r(obj.r->clone()) {}
00296             virtual ~IsOR() { clear(); }
00297             IsOR& operator=(const IsOR& obj) { clear(); l=obj.l->clone(); r=obj.r->clone(); return *this;}
00298             virtual bool operator()(const DNode n) const { return (*l)(n) || (*r)(n); }
00299             virtual Is* clone() const { return new IsOR(*this); }
00300         };
00301     //---------------------------------------------------------------------------------
00311         class DNode::IsAND
00312             : public Is
00313         {
00314             Is* l;
00315             Is* r;
00316             void clear() {if(l) {delete l;l=0;} if(r) {delete r;r=0;} }
00317         public:
00318             IsAND(Is* lhs,Is* rhs) : l(lhs), r(rhs) {}
00319             IsAND(const IsAND& obj) : l(obj.l->clone()), r(obj.r->clone()) {}
00320             virtual ~IsAND() { clear(); }
00321             IsAND& operator=(const IsAND& obj) { clear(); l=obj.l->clone(); r=obj.r->clone(); return *this;}
00322             virtual bool operator()(const DNode n) const { return (*l)(n) && (*r)(n); }
00323             virtual Is* clone() const { return new IsAND(*this); }
00324         };
00325     //---------------------------------------------------------------------------------
00326     inline DNode::IsOR DNode::Is::operator||(const Is& rhs) const { return IsOR(this->clone(),rhs.clone()); }
00327     inline DNode::IsAND DNode::Is::operator&&(const Is& rhs) const { return IsAND(this->clone(),rhs.clone()); }
00328     //----------classes for logical search tags in XML --------------------------------
00339         struct IsElem
00340             : public DNode::Is
00341         {
00342             virtual bool operator()(const DNode n) const { return (DNode::ELEMENT==n.getType());}
00343         private:
00344             virtual DNode::Is* clone() const { return new IsElem(*this); }
00345         };
00346     //---------------------------------------------------------------------------------
00367         template<class Cmp/*=std::equal_to<std::string>*/ >
00368         class IsName
00369             : public IsElem
00370         {
00371             std::string _name;
00372         public:
00373             IsName(std::string name) : _name(name) {}
00374             virtual bool operator()(const DNode n) const { return IsElem::operator()(n) && Cmp()(n.getName(),_name);}
00375             virtual DNode::Is* clone() const { return new IsName(*this); }
00376         };
00377     //---------------------------------------------------------------------------------
00378         typedef IsName<std::equal_to<std::string> > IsNameEq;
00379     //---------------------------------------------------------------------------------
00390     template<typename T,class Cmp>
00391     class IsAttr
00392         : public DNode::Is
00393     {
00394         std::string a;
00395         T v;
00396     public:
00397         IsAttr(std::string at,T value) : a(at), v(value) {}
00398         virtual bool operator()(const DNode n) const
00399         { DataString ds=n.GetAttr(a); return (ds.empty())? false : Cmp()(ds,v); }
00400         virtual DNode::Is* clone() const { return new IsAttr(*this); }
00401     };
00402     //---------------------------------------------------------------------------------
00403     typedef IsAttr<std::string,std::equal_to<std::string> > IsAttrEq;
00404     //---------------------------------------------------------------------------------
00413     template<typename T>
00414     class IsAttrIn
00415         : public DNode::Is
00416     {
00417         std::string a;
00418         T v1,v2;
00419     public:
00420         IsAttrIn(std::string at,T value1,T value2) : a(at), v1(value1), v2(value2) {}
00421         virtual bool operator()(const DNode n) const
00422         { DataString ds=n.GetAttr(a); return (ds.empty())? false : ( std::greater_equal<T>()(ds,v1) && std::less_equal<T>()(ds,v2) );   }
00423         virtual DNode::Is* clone() const { return new IsAttrIn(*this); }
00424     };
00425
00426 //Inline functions implementation
00427     inline DNode DNode::FirstChild(std::string name) const { return FirstChild(IsNameEq(name));}
00428     inline DNode DNode::Next(std::string name) const       { return Next(IsNameEq(name));}
00429     inline DNode DNode::LastChild(std::string name) const  { return LastChild(IsNameEq(name));}
00430     inline DNode DNode::Prev(std::string name) const       { return Prev(IsNameEq(name));} // end of XMLandINI_DoxGroup
00432 }
00434 #endif //_XML_INTERFACE_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл xml_interface_imp.h

  • Файлы
  • Список членов всех файлов

xml_interface_imp.h

См. документацию.
00001 #ifndef _XML_INTERFACE_IMP_H
00002 #define _XML_INTERFACE_IMP_H
00004 //file #include "xml_interface_imp.h"
00005 //
00007 #define YXML_USE_DLL
00008
00009
00010 typedef void* YXML_DRV_DocHandle;
00011 typedef void* YXML_DRV_NodeHandle;
00012
00013 #define YXML_DRV_NODETYPE_ELEMENT 1
00014 #define YXML_DRV_NODETYPE_TEXT 2
00015 #define YXML_DRV_NODETYPE_COMMENT 3
00016 #define YXML_DRV_NODETYPE_ATTRIBUTE 4
00017 #define YXML_DRV_NODETYPE_UNSUPPORTED unsigned(-1)
00018
00019
00020 #if defined(YXML_DRIVER) | defined(YXML_DRIVER_USING)
00021
00022     #define YXMLDRVFUN __cdecl
00023     #if defined(YXML_DRIVER)
00024         #ifdef YXML_USE_DLL
00025             #define YXMLEXPORT __declspec(dllexport)
00026         #else
00027             #define YXMLEXPORT
00028         #endif
00029     #elif defined(YXML_DRIVER_USING)
00030         #ifdef YXML_USE_DLL
00031             #define YXMLEXPORT __declspec(dllimport)
00032         #else
00033             #define YXMLEXPORT
00034         #endif
00035     #endif
00036
00037
00038     typedef char* YXML_DRV_DomCString;
00039
00040
00041     #define YXML_DOC_DO_CREATE 1
00042     #define YXML_DOC_DO_LOAD   2
00043     #define YXML_DOC_DO_SAVE   3
00044     #define YXML_DOC_DO_FREE   4
00045     #define YXML_DOC_DO_MASK   0xFFFF
00046     #define YXML_DOC_OPT_EAT_WS   (0x0001<<16)
00047     #define YXML_DOC_OPT_FORMATTED_OUTPUT (0x0002<<16)
00048
00049     #define YXML_DRV_WALK_PARENT 1
00050     #define YXML_DRV_WALK_CHILD_FIRST 2
00051     #define YXML_DRV_WALK_CHILD_LAST  3
00052     #define YXML_DRV_WALK_SIBLING_NEXT 4
00053     #define YXML_DRV_WALK_SIBLING_PREV 5
00054
00055     #define YXML_DRV_INSERT_APPEND_CHILD 1
00056     #define YXML_DRV_INSERT_AFTER 2
00057     #define YXML_DRV_INSERT_BEFORE 3
00058     #define YXML_DRV_INSERT_DELETE 4
00059
00060     //#define YXML_DRV_NODE_SET_NAME  1
00061     #define YXML_DRV_NODE_SET_ATTR  2
00062     #define YXML_DRV_NODE_SET_VALUE 3
00063     #define YXML_DRV_NODE_GET_NAME  4
00064     #define YXML_DRV_NODE_GET_ATTR  5
00065     #define YXML_DRV_NODE_GET_VALUE 6
00066
00067     #ifdef __cplusplus
00068     extern "C" {
00069     #endif
00070
00071     #if defined(YXML_USE_DLL) & defined(YXML_DRIVER_USING)
00072
00073         typedef YXMLEXPORT void (YXMLDRVFUN *_YXML_DRV_ReleaseCString)(YXML_DRV_DomCString *cstr);
00074         typedef YXMLEXPORT int  (YXMLDRVFUN *_YXML_DRV_InitializeXercesc)(int true_false,const char *encoding_system,YXML_DRV_DomCString *exception_message);
00076         typedef YXMLEXPORT int  (YXMLDRVFUN *_YXML_DRV_OpenClose)(YXML_DRV_DocHandle* handle,unsigned op_opt,const char *fname,const char *docname,const char *encoding,YXML_DRV_DomCString *exception_message);
00077         typedef YXMLEXPORT YXML_DRV_NodeHandle (YXMLDRVFUN *_YXML_DRV_GetRootNode)(YXML_DRV_DocHandle dom_doc,YXML_DRV_DomCString *exception_message);
00079         typedef YXMLEXPORT YXML_DRV_NodeHandle (YXMLDRVFUN *_YXML_DRV_TreeWalk)(YXML_DRV_NodeHandle current,unsigned walk,YXML_DRV_DomCString *exception_message);
00080         typedef YXMLEXPORT unsigned (YXMLDRVFUN *_YXML_DRV_NodeType)(YXML_DRV_NodeHandle current,YXML_DRV_DomCString *exception_message);
00081
00082         typedef YXMLEXPORT YXML_DRV_NodeHandle (YXMLDRVFUN *_YXML_DRV_Insert)(YXML_DRV_NodeHandle current,unsigned where,unsigned type,const char *data,YXML_DRV_DomCString *exception_message);
00084         typedef YXMLEXPORT YXML_DRV_DomCString (YXMLDRVFUN *_YXML_DRV_NodeGetSet)(YXML_DRV_NodeHandle current,unsigned what,const char *attr_name,const char *data,YXML_DRV_DomCString *exception_message);
00085     #else
00086         YXMLEXPORT void YXMLDRVFUN YXML_DRV_ReleaseCString(YXML_DRV_DomCString *cstr);
00087         YXMLEXPORT int  YXMLDRVFUN YXML_DRV_InitializeXercesc(int true_false,const char *encoding_system,YXML_DRV_DomCString *exception_message);
00089         YXMLEXPORT int  YXMLDRVFUN YXML_DRV_OpenClose(YXML_DRV_DocHandle* handle,unsigned op_opt,const char *fname,const char *docname,const char *encoding,YXML_DRV_DomCString *exception_message);
00090         YXMLEXPORT YXML_DRV_NodeHandle YXMLDRVFUN YXML_DRV_GetRootNode(YXML_DRV_DocHandle dom_doc,YXML_DRV_DomCString *exception_message);
00092         YXMLEXPORT YXML_DRV_NodeHandle YXMLDRVFUN YXML_DRV_TreeWalk(YXML_DRV_NodeHandle current,unsigned walk,YXML_DRV_DomCString *exception_message);
00093         YXMLEXPORT unsigned YXMLDRVFUN YXML_DRV_NodeType(YXML_DRV_NodeHandle current,YXML_DRV_DomCString *exception_message);
00094
00095         YXMLEXPORT YXML_DRV_NodeHandle YXMLDRVFUN YXML_DRV_Insert(YXML_DRV_NodeHandle current,unsigned where,unsigned type,const char *data,YXML_DRV_DomCString *exception_message);
00097         YXMLEXPORT YXML_DRV_DomCString YXMLDRVFUN YXML_DRV_NodeGetSet(YXML_DRV_NodeHandle current,unsigned what,const char *attr_name,const char *data,YXML_DRV_DomCString *exception_message);
00098     #endif
00099
00100     #ifdef __cplusplus
00101      }
00102     #endif
00103
00104 #endif //defined(YXML_DRIVER) | defined(YXML_DRIVER_USING)
00106 #endif //_XML_INTERFACE_IMP_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл yfile.h

  • Файлы
  • Список членов всех файлов

yfile.h

См. документацию.
00001 #ifndef _YFILE_H
00002 #define _YFILE_H
00004 #include <string>
00005 #include "ytypes.h"
00006 #include "ytime.h"
00011 //>-----------------------------------------------------------------------------
00020 class YFile
00021 {
00022 public:
00023     enum OpenMode
00024     {
00025         UIO_CREATE,
00026         UIO_CREATE_OVERWRITE,
00027         UIO_RDONLY,
00028         UIO_MODIFY,
00029         UIO_UNKNOWN
00030     };
00031 private:
00032     char handle[16];
00033     OpenMode mode;
00034 public:
00035     YFile();
00036     virtual ~YFile();
00037     int _open(std::string filename,OpenMode access) {return _open(filename.c_str(),access);}
00038     int _open(const char * filename,OpenMode access);
00039     int _close();
00040     int _read(int64_t pos,void *data,int32_t len);
00041     int _write(int64_t pos,const void *data,int32_t len);
00042     OpenMode GetMode() const {return mode;}
00043     virtual bool IsOk() const;
00044 };
00045 //>-----------------------------------------------------------------------------
00054 class YFileRead
00055 {
00056     char handle[16];
00057 private:
00058     YFileRead(const YFileRead&);
00059     void constructor(const char * filename);
00060 public:
00061     YFileRead(std::string filename) {constructor(filename.c_str());}
00062     YFileRead(const char *filename) {constructor(filename);}
00063     virtual ~YFileRead();
00064     void _close();
00065     void SetPosition(int64_t offset);
00066     int read(void* data,int len);
00067     int read(int64_t offset,void* data,int len);
00068     int64_t GetFileSize() const;
00069     YDataTime GetTime() const;
00070 };
00071 //>-----------------------------------------------------------------------------
00080 class YFileWrite
00081 {
00082     char handle[16];
00083 private:
00084     YFileWrite(const YFileWrite&);
00085     void constructor(const char * filename);
00086 public:
00087     YFileWrite(std::string filename) {constructor(filename.c_str());}
00088     YFileWrite(const char *filename) {constructor(filename);}
00089     virtual ~YFileWrite();
00090     void _close();
00091     void SetPosition(int64_t offset);
00092     int64_t GetPosition();
00093     int write(const void* data,int len);
00094     int write(int64_t offset,const void* data,int len);
00095 };
00096 //>-----------------------------------------------------------------------------
00102 class DebugBase
00103 {
00104 public:
00105     DebugBase() {}
00106     virtual ~DebugBase() {}
00107     virtual void Close()=0;
00108     virtual int printf(const char *format,...) const=0;
00109 };
00110 //-----------------------------------------------------------------------
00117 class DebugToFile
00118 : public DebugBase
00119 {
00120     std::string debug_fname;
00121     void *fp_debug;//(FILE*)
00122 public:
00123     DebugToFile();
00124     virtual ~DebugToFile();
00125     std::string DebugFileName() const { return debug_fname; }
00126     void Init(const char* fname);
00127     virtual void Close();
00128     virtual int printf(const char *format,...) const;
00129 };
00130 //----------------------------------------------------------------------- // end of FileGroup
00133 #endif //_YFILE_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл yfilesys.h

  • Файлы
  • Список членов всех файлов

yfilesys.h

См. документацию.
00001 #ifndef _YFILESYS_H
00002 #define _YFILESYS_H
00003
00004 #include <string>
00005 #include <sstream>
00006 #include <list>
00007 #include "ytypes.h"
00008 #include "ytime.h"
00009
00012 namespace YFileSys
00013 {
00018     int StrCmpI(const std::string& s1,const std::string& s2);
00019     std::string getEnv(const char* var_name);
00020     inline std::string getEnv(std::string var_name) {return YFileSys::getEnv(var_name.c_str());}
00021
00022     bool isFullName( std::string path);//>Returns true if path contains absolute path
00023     bool isExists( std::string path);//>Check if file or directory exists
00024     bool isFileExist(std::string path);//>Check if file exists
00025     bool isDirExist(std::string path);//>Check if directory exists
00026     bool isPathExist(std::string path);//>Remove from path filename and check if directory exists
00027     size_t getFileSize(std::string path);
00028     YDataTime getTime(std::string path);
00029     bool rm(std::string path);//>remove file from disk (delete), returns true if file successfuly deleted
00030     bool CreateDir(std::string path);//>returns false if Already exist, true - if success, exception typeof std::string if not created
00031
00032     std::string remExt(std::string path);
00033     std::string getExt(std::string path);
00034     std::string getDir(std::string path);//>Включая букву диска для Windows
00035     std::string getName(std::string path);//>Удаляет директорию, сохраняет расширение.
00036     inline std::string getNameWithoutExt(std::string path){return YFileSys::remExt(getName(path));}
00041     std::string changeExt(std::string path,std::string ext);
00049     std::string changeExtIf(std::string path,std::string extToChange,std::string ext);
00050     std::string cwd();
00051     void cwd(std::string path);
00052     #ifdef WIN32
00054         std::list<std::string> FilesInDir(const char* dir,const char* mask);
00055         std::string getDriveLetter(std::string path);
00056         std::string remDrive(std::string path);
00057         inline std::string getDirWithoutDrive(std::string path) {return YFileSys::getDir(remDrive(path));}
00059         std::string GetCygwinRoot();
00060         std::string GetCygwinBin();
00061         std::string WinPathToPosix(std::string path,bool is_list=false);
00062         std::string PosixPathToWin(std::string path,bool is_list=false);
00063     #endif
00064  // end of FileSysGroup
00065 };
00066 #endif //_YFILESYS_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл ygeometr.h

  • Файлы
  • Список членов всех файлов

ygeometr.h

См. документацию.
00001 #ifndef _YGEOMETR_H
00002 #define _YGEOMETR_H
00004 #include <math.h>
00005 #include "YTypes.h"
00006
00007 const double NM_PI = ::atan2(0.,-1.);
00008 const double NM_2PI=NM_PI*2.;
00009 const double NM_4PI=NM_PI*4.;
00010 const double NM_PI2=NM_PI/2.;
00011 const double NM_PI4=NM_PI/4.;
00012 const double NM_DEG2RAD=NM_PI/180.;
00013 const double NM_RAD2DEG=180./NM_PI;
00014
00015 #define rad(deg) (NM_DEG2RAD*(deg))
00016 #define deg(rad) (NM_RAD2DEG*(rad))
00017
00018 #include <ostream>
00019
00020 // Points
00021
00022 template <class T>
00023 class YPoint
00024 {
00025 public:
00026     T x;
00027     T y;
00028
00029     YPoint( T _x = T(0), T _y = T(0)) { x = _x; y = _y; }
00030     bool operator==(const YPoint& p) const { return ( (x==p.x) && (y==p.y) ); }
00031     bool operator!=(const YPoint& p) const { return ( (x!=p.x) || (y!=p.y) ); }
00032     void operator=( const YPoint& p) { x = p.x; y = p.y; }
00033     double distance( const YPoint& to) const
00034     {
00035         return ::sqrt((x-to.x)*(x-to.x)+(y-to.y)*(y-to.y));
00036     }
00037     YPoint nearest( const YPoint& first, const YPoint& second) const
00038     {
00039         return (distance(first)<distance(second))?first:second;
00040     }
00041 };
00042
00043 template<class T>
00044 std::ostream& operator<<( std::ostream& os, const YPoint<T>& p)
00045 {
00046     os << "( " << p.x << ", " << p.y << " )";
00047     return os;
00048 }
00049
00050 typedef YPoint<int>    YPointInt;
00051 typedef YPoint<double> YPointDbl;
00052
00053 inline bool pointsEqual(
00054     const YPoint<double>& lhs,
00055     const YPoint<double>& rhs,
00056     double e = 0.0001)
00057 {
00058     return ABS(lhs.x-rhs.x) < e
00059         && ABS(lhs.y-rhs.y) < e;
00060 }
00061
00062
00063 template <class T>
00064 class YRect
00065 {
00066 public: //TopLeft & BottomRight -ALL INCLUDES IN RECTANGLE AREA
00067     YPoint<T> TopLeft;
00068     YPoint<T> BottomRight;
00069
00070     YRect( T l = T(0), T t=T(0), T r=T(0), T b=T(0))
00071     { init(l,t,r,b); }
00072     YRect( YPoint<T> top_left, YPoint<T> bottom_right)
00073     { init(top_left.x,top_left.y,bottom_right.x,bottom_right.y); }
00074     bool operator==( const YRect<T>& r) const
00075     {
00076         return (TopLeft == r.TopLeft) && (BottomRight == r.BottomRight);
00077     }
00078     bool operator!=( const YRect<T>& r) const
00079     {
00080         return !(*this == r);
00081     }
00082     bool isIn( const YPoint<T>& p) const
00083     {
00084         return(p.x>=TopLeft.x && p.x<=BottomRight.x && p.y>=TopLeft.y && p.y<=BottomRight.y);
00085     }
00086     T& top() { return TopLeft.y; }
00087     T& bottom() { return BottomRight.y; }
00088     T& left() { return TopLeft.x; }
00089     T& right() { return BottomRight.x; }
00090     const T& top() const { return TopLeft.y; }
00091     const T& bottom() const { return BottomRight.y; }
00092     const T& left() const { return TopLeft.x; }
00093     const T& right() const { return BottomRight.x; }
00094     T width() const { return BottomRight.x - TopLeft.x; }
00095     T height() const { return BottomRight.y - TopLeft.y; }
00096
00097     bool intersects( const YRect<T>& rect) const
00098     {
00099         T _left = MAX(left(),rect.left());
00100         T _right = MIN(right(),rect.right());
00101         T _top = MAX(top(),rect.top());
00102         T _bottom = MIN(bottom(),rect.bottom());
00103
00104         // <= because bottom/right point is included in rect
00105         if ( _left <= _right && _top <= _bottom )
00106         {
00107             return true;
00108         }
00109         return false;
00110     }
00111
00112     YRect<T> intersection( const YRect<T>& rect) const
00113     {
00114         T _left = MAX(left(),rect.left());
00115         T _right = MIN(right(),rect.right());
00116         T _top = MAX(top(),rect.top());
00117         T _bottom = MIN(bottom(),rect.bottom());
00118
00119         YRect<T> result;
00120         // <= because bottom/right point is included in rect
00121         if ( _left <= _right && _top <= _bottom )
00122             result = YRect<T>(_left,_top,_right,_bottom);
00123         else
00124             result = YRect<T>(T(0),T(0),T(0),T(0));
00125         return result;
00126     }
00127
00128     void expand( const YPoint<T>& p)
00129     {
00130         TopLeft.x = MIN(TopLeft.x,p.x);
00131         TopLeft.y = MIN(TopLeft.y,p.y);
00132         BottomRight.x = MAX(BottomRight.x,p.x);
00133         BottomRight.y = MAX(BottomRight.y,p.y);
00134     }
00135     void expand( const YRect<T>& rect)
00136     {
00137         TopLeft.x = MIN(TopLeft.x,rect.left());
00138         TopLeft.y = MIN(TopLeft.y,rect.top());
00139         BottomRight.x = MAX(BottomRight.x,rect.right());
00140         BottomRight.y = MAX(BottomRight.y,rect.bottom());
00141     }
00142     void init( T l, T t, T r, T b)
00143     {
00144         TopLeft.x = MIN(l,r);
00145         TopLeft.y = MIN(t,b);
00146         BottomRight.x = MAX(r,l);
00147         BottomRight.y = MAX(b,t);
00148     }
00149     bool empty()
00150     {
00151         return (0 == width()*height());
00152     }
00153 };
00154
00155 template<class T>
00156 std::ostream& operator<<( std::ostream& os, const YRect<T>& r)
00157 {
00158     os << "( " << r.TopLeft << ", " << r.BottomRight << " )";
00159     return os;
00160 }
00161
00162 typedef YRect<int>    YRectInt;
00163 typedef YRect<double> YRectDbl;
00164
00165 class LineFun
00166 {
00167 public:
00168     static bool  isInLine( const YPointInt& begin, const YPointInt& end, const YPointInt& what, bool strict=false);
00169     static bool  isInLineBres4( const YPointInt& begin, const YPointInt& end, const YPointInt& p, bool strict=false);
00170     static bool  areIntersecting( const YPointInt& begin1, const YPointInt& end1, const YPointInt& begin2, const YPointInt& end2, bool strict=false);
00171     static bool  areIntersecting( const YPoint<double>& begin1, const YPoint<double>& end1, const YPoint<double>& begin2, const YPoint<double>& end2);
00172     //strict==true - NOT include edge points
00173     //strict==false - include edge points
00174     static YPointInt getIntersectionPoint( const YPointInt& begin1, const YPointInt& end1, const YPointInt& begin2, const YPointInt& end2);
00175     static YPointInt getIntersectionPointBres4( const YPointInt& begin1, const YPointInt& end1, const YPointInt& begin2, const YPointInt& end2);
00176     static bool  onSameSide( const YPointInt& from, const YPointInt& to, const YPointInt& p1, const YPointInt& p2);
00177     static int   getIntersectionPointBres4Y( const YPointInt& begin, const YPointInt& end, int X);
00178     static int   getIntersectionPointBres4X( const YPointInt& begin, const YPointInt& end, int Y);
00179 };
00180 class PolyFun
00181 {
00182 public:
00183     static bool isPointInPolygon(
00184         const YPoint<double>& point,
00185         const YPoint<double>* polygon, int polygon_points_number);
00186 };
00187
00188 double distance(
00189     const double x1, const double y1,
00190     const double x2, const double y2);
00191
00192 double PointOnAxisProjectionLength(
00193     const double axis_begin_x, const double axis_begin_y,
00194     const double axis_end_x, const double axis_end_y,
00195     const double point_x, const double point_y);
00196
00197 double TriangleArea(
00198     const YPoint<double>& a,
00199     const YPoint<double>& b,
00200     const YPoint<double>& c);
00201
00202 double QuadrangleArea(
00203     const YPoint<double>& a,
00204     const YPoint<double>& b,
00205     const YPoint<double>& c,
00206     const YPoint<double>& d);
00207
00209 #endif //_YGEOMETR_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл ymem.h

  • Файлы
  • Список членов всех файлов

ymem.h

См. документацию.
00001 #ifndef _YMEM_H
00002 #define _YMEM_H
00004 #include <assert.h>
00005 #include "ytypes.h"
00010 //------------------------------------------------------------------------------
00011 // This class used to guarantee dynamically created object will destroyed when
00012 // program leaves current block {}.
00013 //------------------------------------------------------------------------------
00014 template<class T>
00015 class PtrDelete
00016 {
00017     T* ptr;
00018     int len;
00019 public:
00020     PtrDelete() { ptr=0;len=0;}
00021     PtrDelete(T* p,int n=1) { ptr=p;len=n;}
00022     virtual ~PtrDelete() { clear();}
00023     void clear() {if(ptr) if(len>1) delete[] ptr; else delete ptr; ptr=0;}
00024     void Set(T*p,int n=1) {clear();ptr=p;len=n;}
00025     T* Make(int n) { if(n!=len ) {clear(); if(n>0) { ptr=(n==1)?(new T):(new T[n]); len=n;} } return ptr; }
00026     T* Get() const {return ptr;}
00027     int Size() const {  return len; }
00028 };
00029
00030 template <class T>
00031 class PtrArrayDel
00032 {
00033     T** ptr;
00034     int size;
00035 public:
00036     PtrArrayDel() { ptr = 0; size = 0; };
00037     virtual ~PtrArrayDel()  {clear();}
00038     void clear()
00039     {   if(ptr)
00040         {
00041             for ( int i = 0 ; i< size; i++)
00042                 if (ptr[i]) { delete ptr[i]; }
00043             delete[] ptr; ptr=0;
00044         }
00045     }
00046     T** Get()  {    return ptr; };
00047     const T** Get() const { return ptr; };
00048 //  T** Set(T** p, int n=1) { clear();ptr=p;size=n; return ptr;}// External pointers array will delete by destructor????
00049     int Size() const {  return size;    }
00050     void Make(int n)
00051     {
00052         assert(n >0 );
00053         clear();
00054         try
00055         {
00056             ptr = new T* [n];
00057             if (ptr == 0) throw 1;
00058         }
00059         catch(...)
00060         {
00061             throw "Bad Memory Allocation in PtrArrayDel::Init()";
00062         };
00063         size = n;
00064         for (int i = 0; i< size; i++) ptr[i]= 0;
00065     }
00066
00067     T*& operator[](int i)   { assert( i == IN_BOUNDS(i, 0, size) ); return ( ptr[i] );}
00068     T* const operator[](int i) const { assert( i == IN_BOUNDS(i, 0, size) ); return ( ptr[i] );}
00069 };
00070
00071 //------------------------------------------------------------------------------
00072 // This class used when need allocate a lot number of small objects,
00073 // maximal number of object is known in advance. It is fast and use a minimum
00074 // of spare memory if sizeof(object)>=sizeof(Byte*).
00075 //------------------------------------------------------------------------------
00076 class YSmallAllocLtd
00077 {
00078     typedef uint8_t * BytePtr;
00079     uint8_t *data;
00080     uint8_t *f;
00081     unsigned objsz;
00082     unsigned num;
00083     unsigned count;
00084     unsigned memsz;
00085 private:
00086     void nullify();
00087 public:
00088     YSmallAllocLtd();
00089     YSmallAllocLtd(unsigned size_of_object,unsigned maximal_number_of_objects,unsigned max_tail=0);
00090     virtual ~YSmallAllocLtd();
00091     void Init(unsigned size_of_object,unsigned maximal_number_of_objects,unsigned max_tail=0);
00092     void DeInit();
00093     void * malloc();
00094     void free(void *ptr);
00095     void erase_all();
00096     unsigned NumberUsed() const { return count;}
00097     unsigned NumberFree() const { return num-count;}
00098     unsigned NumberMax() const { return num;}
00099     unsigned SizeOfObject() const { return objsz;}
00100     bool IsOk() const { return data!=0; }
00101 };
00102 template<class T>
00103 class YTArray
00104 {
00105     int block_size;
00106     int step;
00107     int size;
00108 protected:
00109     T* data;
00110 private:
00111     int calc_blk_size(int sz) const { return sz<=0?0:((MAX(sz,1)+step-1)/step)*step;}
00112     //minimal block size is T[grow_step]
00113 public:
00114     YTArray(int grow_step=128) {SetGrowStep(grow_step); data=0;block_size=0; size=0;}
00115     // cycle in reverse order to prevent realloc;
00116     YTArray(const YTArray& ar) {SetGrowStep(ar.step); data=0;block_size=0; size=0; SetSize(ar.size); for(int i=ar.size-1;i>=0; i--) (*this)[i]=ar[i]; }
00117     YTArray& operator=(const YTArray& ar) {SetGrowStep(ar.step);  SetSize(ar.size); for(int i=0; i<ar.size;i++) (*this)[i]=ar[i]; return *this;}
00118     virtual ~YTArray() { if(data) delete[] data; }
00119     void SetGrowStep(int grow_step=128) {step=MAX(1,grow_step);}
00120     int  GetGrowStep() const {return step;}
00121     int  GetBlockSize() const {return block_size;}
00122     void SetSize(int sz)
00123         { int bs=calc_blk_size(sz);
00124             if(bs!=block_size)
00125             {
00126                 T* d=0;
00127                 if(bs>0)
00128                 {
00129                     d=new T[bs];
00130                     if(!d)
00131                         throw "err";
00132                     if(data)
00133                     {
00134                         int k=MIN(sz,size);
00135                         while(k--) d[k]=data[k];
00136                     }
00137                 }
00138                 if(data)
00139                     delete[] data;
00140                 data=d;
00141                 block_size=bs;
00142             }
00143             size=sz;
00144         }
00145     int Size() const { return size;}
00146     T* Get_Ptr() { return data;}
00147     const T* Get_Ptr() const { return data;}
00148     virtual T& operator[](int i) { return data[i]; }
00149     virtual const T& operator[](int i) const { return data[i]; }
00150     virtual T& Insert(const T& elem,int pos)
00151         { for(int i=size-1; i>pos; i--) data[i]=data[i-1]; data[pos]=elem; return data[pos];}
00152     virtual void Remove(int pos) {for(int i=pos+1; i<size; i++) data[i-1]=data[i]; }
00153     virtual void SetAll(const T * values,int num)
00154     {
00155         SetSize(num);
00156         for(int i=0; i<num; i++)
00157             data[i]=values[i];
00158     }
00159 };
00160 template<class T>
00161 class YTDynArray
00162 : public YTArray<T>
00163 {
00164 public:
00165     YTDynArray(int grow_step=100) :YTArray<T>(grow_step) {}
00166     YTDynArray(const YTDynArray& ar) :YTArray<T>(ar) {}
00167     virtual ~YTDynArray() {}
00168     YTDynArray& operator=(const YTArray<T>& ar) {SetGrowStep(ar.step); SetSize(ar.size); for(int i=0; i<ar.size;i++) (*this)[i]=ar[i]; return *this; }
00169     virtual T& operator[](int i) {if(i<0) throw "err"; if(i>=YTArray<T>::Size()) YTArray<T>::SetSize(i+1); return YTArray<T>::data[i]; }
00170     virtual const T& operator[](int i) const {if(i<0||i>=YTArray<T>::Size()) throw "err";  return YTArray<T>::data[i]; }
00171     virtual T& Append(const T& elem)
00172         {
00173             (*this)[YTArray<T>::Size()]=elem;
00174             return (*this)[YTArray<T>::Size()-1];
00175         }
00176     virtual T& Insert(const T& elem,int pos)
00177     {   YTArray<T>::SetSize(YTArray<T>::Size()+1);  return YTArray<T>::Insert(elem,pos);    }
00178     virtual void Remove(int pos) {YTArray<T>::Remove(pos); YTArray<T>::SetSize(YTArray<T>::Size()-1);}
00179 };
00180
00182 // class YTHistList
00183 // This class used for 1-D histogram build and store.
00184 // No space reserved for data values which not happened.
00185 //
00187 template <class T>
00188 class YTHistListTag
00189 {
00190 public:
00191     //ATTANTION, function YTHistList<T>::Sort()
00192     //   (via static int __cdecl compare_HstTag(elem1,elem2) )
00193     // suppose, that 'count' is FIRST MEMBER VARIABLE in class YTHistList<T>
00194     unsigned count;
00195     T value;
00196 public:
00197     YTHistListTag() { count=0; }
00198     virtual ~YTHistListTag() {count=0;}
00199     bool operator==(const YTHistListTag& t2) const{ return count==t2.count;}
00200     bool operator<(const YTHistListTag& t2) const { return count>=t2.count;}//sort in descendant
00201 };
00202
00203 template <class T>
00204 class YTHistList
00205 {
00206 public:
00207     typedef YTHistListTag<T> Tag;
00208     YTDynArray<Tag> array;
00209 public:
00210     void Add(const T& val);
00211     int Count() const {return array.Size();}
00212     void Sort() {}
00213     Tag& operator[](int i) { return array[i]; }
00214 };
00215
00216 template <class T>
00217 void YTHistList<T>::Add(const T& val)
00218 {
00219     const int sz=array.Size();
00220     for(int i=0; i<sz; i++)
00221     {
00222         Tag t=array[i];
00223         if(t.value==val)
00224         {
00225             array[i].count++;
00226             t.count++;
00227             // find position;
00228             int j=i-1;
00229             if(j>=0 && array[j].count< t.count)
00230             { //previous historgamm entry has smaller count, move to top
00231                 //test if a lot of previous
00232                 int k=j;
00233                 while(j)
00234                 {
00235                     j--;
00236                     if(t.count<array[j].count)
00237                     {
00238                         k=j+1;
00239                         break;
00240                     }
00241                 }
00242                 array[i]=array[k];
00243                 array[k]=t;
00244             }
00245             return;
00246         }
00247     }
00248     Tag x;
00249     x.count=1;
00250     x.value=val;
00251     array[sz]=x;
00252 }
00253
00254 /*
00255 static int __cdecl compare_HstTag(const void *elem1, const void *elem2 )
00256 {
00257     //ATTANTION, this functions suppose, that count is FIRST MEMBER VARIABLE in class YTHistList<T>
00258     typedef YTHistList<unsigned>::Tag TT;
00259     return ((TT*)(elem2))->count-((TT*)(elem1))->count;
00260 }
00261 template <class T>
00262 void YTHistList<T>::Sort()
00263 {
00264     ::qsort(array.Get_Ptr(),array.Size(),sizeof(Tag),compare_HstTag);
00265 }
00266 */ // end of MemoryGroup
00269 #endif //_YMEM_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл ytime.h

  • Файлы
  • Список членов всех файлов

ytime.h

См. документацию.
00001 #ifndef _YTIME_H
00002 #define _YTIME_H
00004 #include "ytypes.h"
00005
00009
00010
00013 class YDtTm
00014 {
00015 public:
00016     static int MonthInYear();
00017     static bool IsLeapYear(int _year);
00018     static int  DaysInYear(int _year);
00019     static int32_t SecondsInYear(int _year);
00020     static int64_t MicroSecondsInYear(int _year);
00021     static int  DaysInMonth(int _year,int _month);
00022     static int  YearDay(int _year,int _month,int _day);
00023     static int  YearDayMonth(int _year_day,int _year);
00024     static int  YearDayDay(int _year_day,int _year);
00025     static void BCDdate2date(int _bcd,int& _year,int& _month,int& _day);// bcd like 19991231
00026     static int  BCDdate2date(int _bcd,int& _year_day);// returns year. bcd like 19991231
00027     static int  date2BCDdate(int _year,int _month,int _day);// returns bcd date like 19991231
00028     static int  date2BCDdate(int _year,int _year_day);// returns bcd date like 19991231
00029 };
00031 class YTimeInterval
00032 {
00033     friend class YDataTime;
00034     int64_t microsec;
00035 public:
00036     YTimeInterval() { microsec=0; }
00037     YTimeInterval(int32_t mks) { microsec=mks; }
00038     YTimeInterval(int64_t mks) { microsec=mks; }
00039     YTimeInterval(int days,int hour,int minutes,double seconds) {Set(days,hour,minutes,seconds);}
00040     YTimeInterval& Set(int32_t mks) { microsec=mks; return *this;}
00041     YTimeInterval& Set(int64_t mks) { microsec=mks; return *this;}
00042     YTimeInterval& Set(int days,int hour,int minutes,double seconds);
00043     const YTimeInterval& Get(int& days,int& hour,int& minutes,double& seconds) const;
00044     void Get(double& seconds) const;
00045 //  Next functions may use int as argument, because type cast to YTimeInterval occured due to constructor
00046     YTimeInterval  operator-() const { return YTimeInterval(-microsec); }
00047     YTimeInterval& operator=(const YTimeInterval& val) { microsec=val.microsec; return *this;}
00048     YTimeInterval& operator+=(const YTimeInterval& val) { microsec+=val.microsec; return *this;}
00049     YTimeInterval& operator-=(const YTimeInterval& val) { microsec-=val.microsec; return *this;}
00050     YTimeInterval& operator*=(const YTimeInterval& val) { microsec*=val.microsec; return *this;}
00051     YTimeInterval& operator/=(const YTimeInterval& val) { microsec/=val.microsec; return *this;}
00052     YTimeInterval  operator+(const YTimeInterval& val) const { YTimeInterval ti=*this; ti+=val; return ti; }
00053     YTimeInterval  operator-(const YTimeInterval& val) const { YTimeInterval ti=*this; ti-=val; return ti; }
00054     YTimeInterval  operator*(const YTimeInterval& val) const { YTimeInterval ti=*this; ti*=val; return ti; }
00055     YTimeInterval  operator/(const YTimeInterval& val) const { YTimeInterval ti=*this; ti/=val; return ti; }
00056     bool operator<(const YTimeInterval& ti)  const { return (microsec<ti.microsec); }
00057     bool operator>(const YTimeInterval& ti)  const { return (microsec>ti.microsec); }
00058     bool operator<=(const YTimeInterval& ti) const { return (microsec<=ti.microsec); }
00059     bool operator>=(const YTimeInterval& ti) const { return (microsec>=ti.microsec); }
00060     bool operator==(const YTimeInterval& ti) const { return (microsec==ti.microsec); }
00061     bool operator!=(const YTimeInterval& ti) const { return (microsec!=ti.microsec); }
00062 };
00064 class YDataTime
00065 {
00066     int16_t year;     //sign value, negative is before Crist, 0-year is forbidden,nessesary for leap year monitoring.
00067     int64_t microsec; // time in microseconds from NewYear
00068 public:
00069     YDataTime() { year=0; microsec=0; }
00070     YDataTime(int _year,int _month,int _day,int _hour,int _minutes,double _seconds) { Set(_year,_month,_day,_hour,_minutes,_seconds); }
00071     void Set(int _year,int _month,int _day,int _hour,int _minutes,double _seconds);
00072     void Get(int& _year,int& _month,int& _day,int& _hour,int& _minutes,double& _seconds) const;
00073     bool IsOk() const { return year!=0; }
00074     YTimeInterval  operator-(const YDataTime& dt) const;
00075     YDataTime&  operator+=(const YTimeInterval& ti);
00076     YDataTime&  operator-=(const YTimeInterval& ti) {(*this)+=(-ti); return (*this);}
00077     YDataTime   operator+(const YTimeInterval& ti) const {YDataTime d=*this; d+=ti; return d; }
00078     bool operator<(const YDataTime& dt2)  const;
00079     bool operator<=(const YDataTime& dt2) const;
00080     bool operator>(const YDataTime& dt2)  const {   return dt2 <(*this);}
00081     bool operator>=(const YDataTime& dt2) const { return dt2<=(*this);}
00082     bool operator==(const YDataTime& dt2) const;
00083     bool operator!=(const YDataTime& dt2) const {return !(dt2==(*this));}
00084     void Between(const YDataTime& dt1,const YDataTime& dt2,int cnt1,int cnt2,int cnt);
00085     bool IsLeapYear() const;
00086     static int MonthInYear();
00087     int  DaysInMonth() const;
00088     int  DaysInYear() const;
00089     int32_t SecondsInYear() const;
00090     int64_t MicroSecondsInYear() const;
00091     int  Year() const;
00092     int  Month() const;
00093     int  Day() const;
00094     int  Hour() const;
00095     int  Minutes() const;
00096     double  Seconds() const;
00097     int  YearDay() const;
00098     double  YearDaySec() const; //returns yearday with fractional accuracy up to microseconds
00099     int  date2BCDdate() const;// returns bcd date like 19991231
00100 };
00101 class YDataTimeZone
00102 {
00103     YDataTime dt;
00104     YTimeInterval zone;
00105 public:
00106     YDataTimeZone(){}
00107     YDataTimeZone(const YDataTime& dt_,const YTimeInterval& zone_):dt(dt_),zone(zone_) {}
00108     YDataTimeZone(const YDataTimeZone& val) { Set(val.DataTime(),val.Zone()); }
00109     void Set(const YDataTimeZone& val) { Set(val.DataTime(),val.Zone()); }
00110     void Set(const YDataTime& dt_,const YTimeInterval& zone_)
00111     {
00112         dt=dt_;
00113         zone=zone_;
00114     }
00115     YDataTime DataTime() const { return dt; }
00116     YTimeInterval Zone() const {return zone;}
00117     YDataTime Grinvich() const {YDataTime t=dt; t-=zone; return t;}
00118 };
00119  // end of TimeGroup
00123 #endif //_YTIME_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл ytypes.h

  • Файлы
  • Список членов всех файлов

ytypes.h

См. документацию.
00001 #ifndef _YTYPES_H
00002 #define _YTYPES_H
00004
00007 #ifdef __BORLANDC__
00008     #include <system.hpp>
00009     #include <stdint.h>
00010 #elif _MSC_VER
00011     #ifndef __STDC_LIMIT_MACROS
00012         #define __STDC_LIMIT_MACROS
00013     #endif //__STDC_LIMIT_MACROS
00014     #if _MSC_VER >= 1400
00015         #include <limits.h>
00016     #endif
00017     typedef unsigned char        Byte;
00018     #include "stdint.h"
00019 #elif __GNUC__
00020     typedef unsigned char        Byte;
00021     #include <stdint.h>
00022 #else
00023     #error "Unknown compiler"
00024 #endif
00025 #ifdef __DEPRECATED__
00026 typedef   signed char         int1;   // 1-byte ,   signed integer
00027 typedef unsigned short int   uint2;  // 2-byte , unsigned integer
00028 typedef   signed short int    int2;  // 2-byte ,   signed integer
00029 typedef unsigned       int   uint4;  // 4-byte , unsigned integer
00030 typedef   signed       int    int4;  // 4-byte ,   signed integer
00031 typedef unsigned     __int64 uint8;  // 8-byte , unsigned integer
00032 typedef   signed     __int64  int8;  // 8-byte ,   signed integer
00033 #endif //__DEPRECATED__
00034 //--------General macros:
00035 #ifndef MAX
00036     #define MAX(a,b) ( ((a)>(b)) ? (a) : (b) )
00037 #endif
00038 #ifndef MIN
00039     #define MIN(a,b) ( ((a)<(b)) ? (a) : (b) )
00040 #endif
00041 #ifndef MAX3
00042     #define MAX3(a,b,c) MAX(MAX(a,b),c)
00043 #endif
00044 #ifndef MAX4
00045     #define MAX4(a,b,c,d) MAX(MAX(a,b),MAX(c,d))
00046 #endif
00047 #ifndef MIN3
00048     #define MIN3(a,b,c) MIN(MIN(a,b),c)
00049 #endif
00050 #ifndef MIN4
00051     #define MIN4(a,b,c,d) MIN(MIN(a,b),MIN(c,d))
00052 #endif
00053 #ifndef ABS
00054     #define ABS(a) (((a)<0)?-(a):(a))
00055 #endif
00056 #ifndef IN_BOUNDS
00057     #define IN_BOUNDS(var,min,max)  (((var)<(min))?(min):(((var)>(max))?(max):(var)))
00058 #endif
00059 //------FORTRAN definitions:
00060 #ifndef SIGN
00061     #define SIGN(X1,X2) ((X2 >= 0) ? ABS(X1) : -ABS(X1))
00062 #endif
00063  // end of GeneralGroup
00065 #endif //_YTYPES_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл ywin.h

  • Файлы
  • Список членов всех файлов

ywin.h

См. документацию.
00001 #ifndef _YWIN_H
00002 #define _YWIN_H
00004 #include <windows.h>
00005 #define DLL_FUN _cdecl
00007 class DllModule
00008 {
00009     HINSTANCE dll;
00010 public:
00011     DllModule() { dll=NULL; }
00012     virtual ~DllModule() { FreeLibrary(); }
00013     bool IsOk() const { return (dll!=NULL); }
00014     bool LoadLibrary(const char *dll_full_name);
00015     bool LoadLibrary(const char *dll_name,const char *dll_path);//if dll_path==NULL load from app root dir
00016     void FreeLibrary();
00017     FARPROC GetProcAddress(const char *fun_name) const;
00018 };
00020 #endif //_YWIN_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл ywinini.h

  • Файлы
  • Список членов всех файлов

ywinini.h

См. документацию.
00001 #ifndef _YWININI_H
00002 #define _YWININI_H
00004 // file:
00005 // #include "ywinini.h"
00007 #include <string>
00008 #include <iostream>
00009 #include "datastring.h"
00011
00014 //------------------Interfaces to use-------------------------------------------
00015 class WiNode;
00016 class WinIniFile;
00017 //------------------Interfaces to use-------------------------------------------
00018 class WinIniFile
00019 {
00020     std::string fname;
00021 public:
00022     WinIniFile() {}
00023     WinIniFile(std::string filename);
00024     void Load(std::string filename);//connect to new (another) ini file
00025     std::string GetFName() const  {return fname;}
00026     WiNode Root() const;
00027 };
00028 //------------------Interfaces to use-------------------------------------------
00029 class WiNode
00030 {
00031     std::string fname;
00032     std::string name;
00033 private:
00034     class AttrRef;
00035     friend class WinIniFile;
00036     WiNode(const std::string filename,const std::string node) : fname(filename),name(node) {}
00037 public:
00038     WiNode() {}
00039     WiNode(const WiNode& n) : fname(n.fname), name(n.name) {}
00040     WiNode& operator=(const WiNode& n) { fname=n.fname; name=n.name; return *this;}
00059     bool IsNode() const { return !name.empty();}
00060     WiNode GetNode(const std::string node_name);
00061     const WiNode GetNode(const std::string node_name) const;
00062     void SetValue(const DataString data);
00063     DataString GetValue() const;
00064     void SetAttr(const std::string attr_name,const DataString attr_value);
00065     DataString GetAttr(const std::string attr_name) const;
00071     WiNode  operator()(const std::string node_name) {return GetNode(node_name);}
00072     const WiNode  operator()(const std::string node_name) const {return GetNode(node_name);}
00073     AttrRef operator[](const std::string& attr);
00074     const AttrRef operator[](const std::string& attr) const;
00075     WiNode& operator=(const DataString data) { SetValue(data); return *this; }
00076     operator DataString() const { return GetValue();} // end of Common_XML_INI
00079     friend std::ostream& operator<<(std::ostream& s,WiNode& in) { return s<<in.operator DataString();}
00080 };
00081 //------------------Implementation, used indirectly via WiNode operator[] ------
00082 class WiNode::AttrRef
00083 {
00084     friend class WiNode;
00085     WiNode n;
00086     std::string attrib;
00087 private:
00088     AttrRef() {}
00089     AttrRef(const AttrRef& ar)
00090         :n(ar.n),attrib(ar.attrib) {} //Normally should be forbidden< but required by VC7.0
00091     AttrRef operator=(const AttrRef&);
00092     AttrRef(WiNode node,const std::string& attr)
00093         :n(node),attrib(attr) {}
00094 public:
00095 //  operator std::string() const { return n.GetAttr(attrib);}
00096     operator DataString() const { return n.GetAttr(attrib);}
00097     void operator=(const DataString& s) { n.SetAttr(attrib,s);}
00098     friend std::ostream& operator<<(std::ostream& s,WiNode::AttrRef& ir) { return s<<ir.operator DataString();}
00099 };
00100 //------------------Interfaces to use-------------------------------------------
00101 inline const WiNode::AttrRef WiNode::operator[](const std::string& attr) const { return WiNode::AttrRef(*this,attr); }
00102 //inline const DataString WiNode::operator[](const std::string& attr) const { return DataString(WiNode::AttrRef(*this,attr));}
00103 inline WiNode::AttrRef WiNode::operator[](const std::string& attr)  { return WiNode::AttrRef(*this,attr); } // end of XMLandINI_DoxGroup
00106 #endif //_YWININI_H
Laboratory of Mathematical Methods of Image Processing, Chair of Mathematical Physics, Faculty of Computational Mathematics and Cybernetics, Moscow Lomonosov State University, Russia . © 2008 Author: Dmitry V. Yurin [image] http://imaging.cs.msu.su/index.html


Pipe Line Filters: Исходный файл zoomfact.h

  • Файлы
  • Список членов всех файлов

zoomfact.h

См. документацию.
00001 #ifndef _ZOOMFACT_H
00002 #define _ZOOMFACT_H
00004 #include <windows.h>
00006 // function
00007 // ZoomValue() - calculate zoomed value with rounding (upper bound).
00008 // ZoomValueNR() - WITHOUT rounding, (low bound).
00009 class ZoomFactor
00010 {
00011     int zoom;
00012 public:
00013     ZoomFactor(int _zoom=1) {*this=_zoom;}
00014   ~ZoomFactor() {}
00015   int ZoomValue(int value,bool reverse=false) const { return _ZoomValue(value,(reverse)?(-zoom):zoom);}
00016   int ZoomValueNR(int value,bool reverse=false) const { return _ZoomValueNR(value,(reverse)?(-zoom):zoom);}
00017     ZoomFactor& operator=(int _zoom) { if(_zoom==0 || _zoom==-1) zoom=1; else zoom=_zoom; return *this;}
00018   ZoomFactor& operator+=(int dx) {int z=zoom+dx; if(zoom<-1&& z>=-1)zoom=z+2;else if(zoom>=1 && z< 1) zoom=z-2; else zoom=z; return *this;}
00019   ZoomFactor& operator-=(int dx) {return this->operator+=(-dx);}
00020   operator int() const { return zoom;}
00021 private:
00022   static int _ZoomValue(int value,int zm)  { if(zm>0) return value*zm; else return (value-zm-1)/(-zm);}
00023   static int _ZoomValueNR(int value,int zm){ if(zm>0) return value*zm; else return (value)/(-zm);}
00024 };
00025 class ZoomFactor2D
00026 {
00027 public:
00028     ZoomFactor X,Y;
00029   ZoomFactor2D(int zoom_x=1,int zoom_y=1) {X=zoom_x; Y=zoom_y;}
00030   ZoomFactor2D(const SIZE& zoom) {X=zoom.cx; Y=zoom.cy;}
00031   SIZE ZoomValue(const SIZE& val,bool reverse=false)   const
00032                     { SIZE sz; sz.cx=X.ZoomValue(val.cx,reverse); sz.cy=Y.ZoomValue(val.cy,reverse); return sz;}
00033   POINT ZoomValue(const POINT& val,bool reverse=false)   const
00034                     { POINT pt; pt.x=X.ZoomValue(val.x,reverse); pt.y=Y.ZoomValue(val.y,reverse); return pt;}
00035   SIZE ZoomValueNR(const SIZE& val,bool reverse=false) const
00036                     { SIZE sz; sz.cx=X.ZoomValueNR(val.cx,reverse);sz.cy=Y.ZoomValueNR(val.cy,reverse); return sz;}
00037     bool operator==(const ZoomFactor2D & z2) const { return (X==z2.X && Y==z2.Y);}
00038     bool operator!=(const ZoomFactor2D & z2) const { return !(*this==z2);}
00039     bool operator==(int z2) const { return (X==z2 && Y==z2);}
00040     bool operator!=(int z2) const { return (X!=z2 || Y!=z2);}
00041     ZoomFactor2D& operator=(int _zoom) { X=Y=_zoom; return *this;}
00042     ZoomFactor2D& operator=(const ZoomFactor2D& _zoom) { X=_zoom.X; Y=_zoom.Y; return *this;}
00043 };
00045 #endif //_ZOOMFACT_H
00046