《學習opencv》筆記——矩陣和映像操作——cvCalcCovarMatrix,cvCmp and cvCmpS

來源:互聯網
上載者:User

標籤:style   class   blog   code   http   get   


矩陣和映像的操作


(1)cvCalcCovarMatrix函數

其結構


void cvCalcCovarMatrix(計算給定點的均值和共變數矩陣const CvArr** vects,//給定向量int count,//給定向量的組數CvArr* cov_mat,//結果矩陣CvArr* avg,//依據flag得到結果int flags//標記位);


標記位參數值極其意義


標誌參數的詳細標誌值

意義

CV_COVAR_NORMAL

計算均值和共變數

CV_COVAR__SCRAMBLED

高速PCA”Scrambled”共變數

CV_COVAR_USE_AVERAGE

輸入均值而不是計算均值

CV_COVAR_SCALE

又一次縮放輸出的共變數矩陣


執行個體程式


#include <cv.h> #include <stdio.h>  #include <stdlib.h>float Coordinates[ 20 ]={ 1.5 , 2.3 , 3.0 , 1.7 , 1.2 , 2.9 , 2.1 , 2.2 , 3.1 , 3.1 , 1.3 , 2.7 , 2.0 , 1.7 , 1.0 , 2.0 , 0.5 , 0.6 , 1.0 , 0.9 }; int main() { CvMat *Vector[ 1 ]; CvMat *Vector1; CvMat *CovarMatrix; CvMat *avg;  Vector1=cvCreateMat( 10 , 2 ,CV_32FC1); cvSetData(Vector1,Coordinates,Vector1->step); Vector[ 0 ]=Vector1; CovarMatrix=cvCreateMat( 2 , 2 ,CV_32FC1); avg=cvCreateMat( 1 , 2 ,CV_32FC1); cvCalcCovarMatrix(( const CvArr **)Vector, 10 ,CovarMatrix,avg,CV_COVAR_SCALE+CV_COVAR_NORMAL+CV_COVAR_ROWS);for ( int i= 0 ;i< 2 ;i++) { for ( int j= 0 ;j< 2 ;j++) { printf( "%f " ,cvGetReal2D(CovarMatrix,i,j)); } printf( "\n" ); } for ( int i= 0 ;i< 1 ;i++) { for ( int j= 0 ;j< 2 ;j++) { printf( "%f " ,cvGetReal2D(avg,i,j)); } printf( "\n" ); } getchar();return 0;}

輸出結果




(2)cvCmp函數

其結構


void cvCmp(//比較兩幅對應的映像的像素點const CvArr* src1,//映像一const CvArr* src2,//映像二CvArr* dst,//結果矩陣int cmp_op//標記參數);


cmp_op值及其意義


cmp_op的值

比較方法

CV_CMP_EQ

(src1i == src2i)

CV_CMP_GT

(src1i > src2i)

CV_CMP_GE

(src1i >= src2i)

CV_CMP_LT

(src1i < src2i)

CV_CMP_LE

(src1i <= src2i)

CV_CMP_NE

(src1i != src2i)


執行個體程式


#include <cv.h>#include <highgui.h>#include <stdio.h>int main(int argc, char** argv){IplImage *src1, *src2,*src3;src1=cvLoadImage("5.jpg");src2=cvLoadImage("6.jpg");src3=cvLoadImage("5.jpg");cvCmp(src1,src2,src3,CV_CMP_GE);cvShowImage( "測試1", src1);cvShowImage( "測試2", src2);cvShowImage( "測試3", src3);cvWaitKey();return 0;}

輸出結果




(3)cvCmpS函數

其結構


void cvCmpS(//比較映像的像素點與valueconst CvArr* src1,//映像double value,//給定值CvArr* dst,//結果矩陣int cmp_op//標記參數);

當中cmp_op參數的值與上個函數同樣


執行個體程式


#include <cv.h>#include <highgui.h>#include <stdio.h>int main(int argc, char** argv){IplImage *src1,*src2;src1=cvLoadImage("5.jpg");src2=cvLoadImage("5.jpg");cvCmpS(src1,250.2,src2,CV_CMP_GE);cvShowImage( "測試1", src1);cvShowImage( "測試2", src2);cvWaitKey();return 0;}

輸出結果




to be continued






聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.