矩陣和圖像的操作
(1)cvAbs,cvAbsdiff,cvAbsDiffS
它們的結構為:
void cvAbs( //取src中元素的絕對值,寫到dst中
const CvArr* src,
const dst
);
void cvAbsDiff( //src1減去src2的差的絕對值存入dst
const CvArr* src1,
const CvArr* src2,
const dst
);
void cvAbsDiffs( //src中每一個元素減去value存入dst中
const CvArr* src,
CvScalar value,
const dst
_;
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>
#include <iostream>
using namespace std;
int main( int argc, char** argv ){
CvMat *mat;
mat=cvCreateMat(4,4,CV_32FC1);
float value = 0.0;
int i = 0, j = 0;
cout<<"初始化原始數組"<<endl;
for ( i = 0; i < 4; i ++ ){
for( j = 0; j < 4; j ++ ){
value -= 1.0;
CV_MAT_ELEM( *mat, float, i, j) = value;
}
}
for ( i = 0; i < 4; i ++ ){
for( j = 0; j < 4; j ++ ){
cout<<"\t"<<CV_MAT_ELEM( *mat, float, i, j);
}
cout<<endl;
}
CvMat *matDes;
matDes=cvCreateMat(4,4,CV_32FC1);
cout<<"目標矩陣"<<endl;
for ( i = 0; i < 4; i ++ ){
for( j = 0; j < 4; j ++ ){
cvmSet( matDes, i, j,0);
cout<<"\t"<<CV_MAT_ELEM( *matDes, float, i, j);
}
cout<<endl;
}
cvAbs( mat, matDes );
cout<<"數組的絕對值"<<endl;
for ( i = 0; i < 4; i ++ ){
for( j = 0; j < 4; j ++ ){
cout<<"\t"<<CV_MAT_ELEM( *matDes, float, i, j);
}
cout<<endl;
}
CvMat *matDiff1 = cvCreateMat(4,4,CV_32FC1);
cvAbsDiff( mat,matDes , matDiff1);
cout<<"兩個差的絕對值"<<endl;
for ( i = 0; i < 4; i ++ ){
for( j = 0; j < 4; j ++ ){
cout<<"\t"<<CV_MAT_ELEM( *matDiff1, float, i, j);
}
cout<<endl;
}
CvScalar cs;
cs.val[0] = 2.0;
cs.val[1] = 1.0;
cvAbsDiffS( mat, matDiff1,cs);
cout<<"矩陣減去標準值的絕對值"<<endl;
for ( i = 0; i < 4; i ++ ){
for( j = 0; j < 4; j ++ ){
cout<<"\t"<<CV_MAT_ELEM( *matDiff1, float, i, j);
}
cout<<endl;
}
cvReleaseMat( &mat );
cvReleaseMat( &matDes );
getchar();
return 0;
}
? ?to be continued
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

