- •Аннотация
- •Summary
- •Реферат
- •Перечень демонстрационных графических материалов
- •Содержание
- •Введение
- •Анализ технического задания
- •1.1.1 Принцип сканирующего окна
- •1.1.2Интегральное представление изображений
- •1.1.3 Признаки Хаара
- •1.1.5 Бустинг
- •2 Методы дистантного сопоставления с эталоном
- •4.3 Классы и функции используемые в работе
- •4.3.1 Класс VideoCapture
- •4.3.2 Класс CascadeClassifier
- •4.3.3 Класс calcImageHash
- •4.3.4 Класс cFaceBase
- •4.3.5 Функция calcHammingDistance
- •4.3.6 Функция HashWithMinHammDis
- •5.2 Мероприятия по улучшению условий труда
- •5.3 Организационные меры профилактики
- •5.4 Технические меры профилактики
- •5.5 Санитарно-гигиенические меры профилактики
- •5.6 Психологические меры профилактики
- •5.6 Пожарная безопасность
- •5.7 Защита окружающей среды
- •Заключение
- •Список использованных источников
- •Приложение а Код программы cvFaceHash
- •Код подпрограммы cvHashCalc
4.3 Классы и функции используемые в работе
Для представления исходных данных – кадров с камеры будем использовать матричную форму, где каждая точка соответствует одному пикселю изображения. Для матричной обработки нет необходимости хранить все три цветовых компонента RGBформата – логично представлять данные в виде однотонного изображения.
Каждый пиксель кадра с камеры находится в некоторой окрестности окружающих его точек, влияющих на его значение. Такая закономерность характерна как для точек фона, так и для точек объектов препятствий. Некоторые точки могут являться характерными или ключевыми для объектов. Их физическая природа может быть различной: центр массы объекта, его геометрический центр, якорная точка контура и т.п. Эти точки часто используются в некоторых методах анализа изображений или их распознавания. На рисунке 10 показана окрестность характерной точки объекта.
Рисунок 10 – Матричное представление участка кадра с камеры
Если развить матричное представление кадра с камеры в целях визуализации, то целесообразно использовать изображения в серых тонах, где каждому пикселю соответствует точка в матрице исходных данных. Такое представление так же соответствует философии библиотеки компьютерного зрения OpenCV.
Пример представления матрицы кадра с камеры показан на рисунке 11.
Рисунок 11 – Представление кадра с камеры в виде изображения в серых тонах
В библиотеке OpenCVприняты два стандарта представления изображений:
IplImage;
CvMat.
Класс IplImageпредставлен следующим прототипом:
typedef struct _IplImage
{
int nSize;
int ID;
int nChannels;
int alphaChannel;
int depth;
char colorModel[4];
char channelSeq[4];
int dataOrder;
int origin;
int align;
int width;
int height;
struct _IplROI *roi;
struct _IplImage *maskROI;
void *imageId;
struct _IplTileInfo *tileInfo;
int imageSize;
char *imageData;
int widthStep;
int BorderMode[4];
int BorderConst[4];
char *imageDataOrigin;
}
IplImage;
Класс CvMatпредставлен следующим прототипом структуры:
class CV_EXPORTS Mat
{
public:
// ... a lot of methods ...
...
/*! includes several bit-fields:
- the magic signature
- continuity flag
- depth
- number of channels
*/
int flags;
//! the array dimensionality, >= 2
int dims;
//! the number of rows and columns or (-1, -1) when the array has more than 2 dimensions
int rows, cols;
//! pointer to the data
uchar* data;
//! pointer to the reference counter;
// when array points to user-allocated data, the pointer is NULL
int* refcount;
// other members
...
};
Второй класс CvMatимеет основного потомкаMatи считается более современным и универсальным. Кроме того, он плотно ассоциируется с представлением данных в матричной форме в системеMatlab. В общем видеMat– это универсальный класс для матриц действительных или комплексных чисел размерностиnили многоканальных изображений.