EigenVV,cvdiv,GetDims
来源:互联网 发布:linux运维面试题 编辑:程序博客网 时间:2024/05/16 08:54
EigenVV
计算对称矩阵的特征值和特征向量
void cvEigenVV( CvArr* mat, CvArr* evects, CvArr* evals, double eps=0 );
- mat
- 输入对称方阵。在处理过程中将被改变。
- evects
- 特征向量输出矩阵, 连续按行存储
- evals
- 特征值输出矩阵,按降序存储(当然特征值和特征向量的排序是同步的)。
- eps
- 对角化的精确度 (典型地, DBL_EPSILON=≈10-15 就足够了)。
函数 cvEigenVV 计算矩阵 A 的特征值和特征向量:
mat*evects(i,:)' = evals(i)*evects(i,:)' (在 MATLAB 的记法)
矩阵 A 的数据将会被这个函数修改。
目前这个函数比函数 cvSVD 要慢,精确度要低, 如果已知 A 是正定的,(例如, 它是一个协方差矩阵), 它通常被交给函数cvSVD 来计算其特征值和特征向量,尤其是在不需要计算特征向量的情况下
CvScalar s;
s=cvGet2D(img,i,j); //img就是IplImage指针了
如果图像是单通道的话就是只有s.val[0]有像素值
如果是3通道的就s.val[0]s.val[1]s.val[2]分别对应了像素的B GR这样够明了了吧?不过据说这个方法是比较慢的,但是好理解,你熟悉的话,
img->imageData 就是指向像素数据的指针,喜欢取哪个点就移动指针就OK了
cvMul(Ma, Mb,Mc);
cvDiv(Ma, Mb,Mc);
GetDims,GetDimSize
返回数组维数和他们的大小或者殊维的大小
int cvGetDims( const CvArr* arr, int* sizes=NULL );int cvGetDimSize( const CvArr* arr, int index );
- arr
- 输入数组.
- sizes
- 可选的输出数组维尺寸向量,对于2D数组第一位是数组行数(高),第二位是数组列数(宽)
- index
- 以0为基准的维索引下标(对于矩阵0意味着行数,1意味着列数,对于图象0意味着高,1意味着宽。
函数 cvGetDims返回维数和他们的大小。如果是 IplImage 或 CvMat 总是返回2,不管图像/矩阵行数。函数cvGetDimSize返回特定的维大小(每维的元素数)。例如,接下来的代码使用二种方法计算数组元素总数。
// via cvGetDims()int sizes[CV_MAX_DIM];int i, total = 1;int dims = cvGetDims( arr, size );for( i = 0; i < dims; i++ ) total *= sizes[i];// via cvGetDims() and cvGetDimSize()int i, total = 1;int dims = cvGetDims( arr );for( i = 0; i < dims; i++ ) total *= cvGetDimsSize( arr, i );
- EigenVV,cvdiv,GetDims
- //cvMul(M1, M2, M3); //cvDiv(M1, M2, M3); cvAddS(M1, cvScalar(-10.0), M3);
- 线性最小二乘法
- opencv初步入门编程1
- 数据挖掘10大算法(思维导图)
- kd tree 介绍以及在sift中的应用
- RANSAC算法介绍(转自:http://hi.b…
- EigenVV,cvdiv,GetDims
- Todd.log - a place to keep my thoughts on programming TF-IDF模型的概率解释
- Computer Vision and Androi…
- dodo:人脸识别方法个人见解
- CV会议+领先研究室+专家+代码网址(…
- [转]毕业后的五年拉开大家差…
- 国外人工智能界牛人主页
- image matting
- 领域和单个像素点以及马尔可夫随机…