Статистика
Материал из CompVision
Содержание |
cvCountNonZero
Считает ненулевые элементы матрицы (изображения). Для IplImage поддерживается ROI И COI (область интереса и канал интереса)
int cvCountNonZero(const CvArr* arr);
arr - входная матрица или изображение.
cvSum
Возвращает сумму элементов для каждого канала входной матрицы по отдельности. Если определен канал интереса (COI) то обрабатывается именно этот канал, а результат возвращается в первом элементе типа CvScalar.
CvScalar cvSum(const CvArr* arr);
arr - входная матрица или изображение.
cvAvg
Возвращает среднее значение элементов для каждого канала входной матрицы по отдельности. Если определен канал интереса (COI) то обрабатывается именно этот канал, а результат возвращается в первом элементе типа CvScalar.
CvScalar cvAvg(const CvArr* arr, const CvArr* mask=NULL);
arr - входная матрица или изображение.
mask – маска операции (необязательная) (операция проводится над элементами, которым соответствует ненулевое значение элемента маски)
cvAvgSdv
Возвращает среднее значение и среднеквадратическое отклонение для каждого канала входной матрицы по отдельности. Если определен канал интереса (COI) то обрабатывается именно этот канал, а результат возвращается в первом элементе типа CvScalar.
void cvAvgSdv(const CvArr* arr, CvScalar* mean, CvScalar* std_dev, const CvArr* mask=NULL);
arr - входная матрица или изображение.
mask – маска операции (необязательная) (операция проводится над элементами, которым соответствует ненулевое значение элемента маски)
mean – указатель на вектор средних значений, может принимать значение NULL если не задействовано.
std_dev – указатель на вектор значений среднеквадратических отклонений для каждого канала.
cvMinMaxLoc
Находит глобальный максисум матрицы или подматрицы. Есть поддержка области интереса (ROI).
void cvMinMaxLoc(const CvArr* arr, double* min_val, double* max_val, CvPoint* min_loc=NULL, CvPoint* max_loc=NULL, const CvArr* mask=NULL)
arr – исходная матрица, одноканальная или многоканальная с заданным каналом интереса.
min_val – указатель на результат (минимальное значение)
max_val – указатель на результат (максимальное значение)
min_loc – указатель на результат (координаты минимального значения)
max_loc – указатель на результат (координаты максимального значения)
mask – маска операции (необязательная) (операция проводится над элементами, которым соответствует ненулевое значение элемента маски)
В случае многомерных матриц (кол-во измерений больше двух), min_loc->x и max_loc->x будут содержать адреса ячеек экстремумов от начала данных (линейная адресация).
cvNorm
Находит абсолютную норму матрицы, абсолютную дифференциальную норму, или относительную дифференциальную норму.
double cvNorm(const CvArr* arr1, const CvArr* arr2=NULL, int norm_type=CV_L2, const CvArr* mask=NULL);
Параметры:
- arr1 – первая исходная матрица
- arr2 – вторая исходная матрица. Если она равна NULL, вычисляется абсолютная норма arr1 , иначе вычисляется абсолютная или относительная норма arr1-arr2.
- normType – Тип нормы
- mask – необязательная маска операции
Если arr2 - NULL, тогда считается так:
Если arr2 не NULL, то так:
или так:
Многоканальная матрица обрабатывается как одноканальная.
Reduce
Преобразует матрицу в вектор по заданному правилу.
void cvReduce(const CvArr* src, CvArr* dst, int dim = -1, int op=CV_REDUCE_SUM)
Параметры:
- src – входная матрица.
- dst – результирующий вектор-столбец/вектор-строка.
- dim – Индекс измерения матрицы к которому будет применено преобразование. 0 означает что из матрицы будет получен вектор-строка, 1 - будет получен вектор-столбец и -1 означает автоматический выбор измерения, на основе анализа формы результирующего вектора dst.
- op –
Операция редукции может принимать следующие значения:
- CV_REDUCE_SUM - выход - сумма строк/столбцов матрицы.
- CV_REDUCE_AVG - выход - среднее значение строк/столбцов матрицы.
- CV_REDUCE_MAX - выход - максимальные значения по столбцам/строкам матрицы.
- CV_REDUCE_MIN - выход - минимальные значения по столбцам/строкам матрицы.
Функция cvReduce() производит преобразование матрицы в вектор по заданным правилам. Матрица представляется как набор (вектор) векторов-столбцов/строк, к которым и применяются заданные операции. Например, функция может быть использована для получения горизонтальной или вертикальной проекции растрового изображения. В случае CV_REDUCE_SUM и CV_REDUCE_AVG результат может иметь бОльшую битовую глубину чем входные параметры, для предотвращения потери точности. Многоканальные матрицы также поддерживаются в этих двух режимах (CV_REDUCE_SUM и CV_REDUCE_AVG).