Programming/OpenCV

행렬 관련, 고유벡터 관련 함수

빠릿베짱이 2013. 11. 23. 02:35
반응형

void cvMulTransposed(const CvArr* src, CvArr* dst, int order, const CvArr* delta=NULL, double scale=1.0);

만약 order=0이면

dst = scale(src - delta)(src - delta)T

0이 아니면

dst = scale(src - delta)T(src - delta)

 

void cvEigenVV(CvArr* mat, CvArr* evects, CvArr* evals, double eps=0, int lowindex = -1, int highindex = -1);

lowindex와 highindex는 고유벡터 중에 몇개를 뽑을지 결정하는 것

예를들어 고유값이 큰 상위 10개만 뽑고 싶다면 lowindex =0, highindex  = 9

주의 : evects 메모리는 mat와 같은 크기로 잡아줘야하고, lowindex와 highindex가 정해졌을 경우 나머지 메모리 부분은 초기화 하지 않으므로, cvEigen 함수를 콜하기 전에 evects 메모리를 초기화해야함. 고유값 메모리도 마찬가지임.

void cvGEMM( const CvArr* src1, const CvArr* src2, double alpha, const CvArr* src3, double beta,CvArr* dst, int tABC=0);
#define cvMatMulAdd(src1, src2, src3, dst ) cvGEMM(src1, src2, 1, src3, 1, dst, 0 )
#define cvMatMul(src1, src2, dst ) cvMatMulAdd(src1, src2, 0, dst )

src1 The first source array
src2 The second source array
src3 The third source array (shift). Can be NULL, if there is no shift.
dst The destination array
tABC The operation flags that can be 0 or a combination of the following values
CV GEMM A T transpose src1
CV GEMM B T transpose src2
CV GEMM C T transpose src3

For example, CV GEMM A T+CV GEMM C T corresponds to
    alpha src1T src2 + beta src3T

 

void cvConvertScale(const CvArr* src, CvArr* dst, double scale=1, double shift=0);

예를 들어 소스 데이터가 만약 8비트 데이터이고 dst가 16비트라면 16비트 자료구조로 변환, 값은 변하지 않음.

 

 

 

반응형