一:cvmat* cvinitmatheader( cvmat* mat, int rows, int cols, int type,void* data=null, int step=cv_autostep );
mat 指標指向要被初始化的矩陣頭.
rows 矩陣的行數.
cols 矩陣的列數.
type 矩陣元素型別.
data 可選的,將指向資料指標分配給矩陣頭.
step 排列後的資料的整個行寬,預設狀態下,使用 step 的最小可能值。例如假定矩陣的行與行之間無隙
double a = ;
double b = ;
double c[9];// c 陣列存貯 a(3x4) 和 b(4x3) 矩陣的積
cvmat ma, mb, mc ;
cvinitmatheader( &ma, 3, 4, cv_64fc1, a );//建立矩陣,按行儲存的
cvinitmatheader( &mb, 4, 3, cv_64fc1, b );
cvinitmatheader( &mc, 3, 3, cv_64fc1, c );
cvmatmuladd( &ma, &mb, 0, &mc );
cvreleasemat(&ma);
cvreleasemat(&mb);
cvreleasemat(&mc);
另一種初始化矩陣:
double a = ;
cvmat ma=cvmat(3, 4, cv_64fc1, a);
二: cvmat儲存矩陣的方法
cvgetrealnd();返回單通道陣列的指定元素
double cvgetreal1d( const cvarr* arr, int idx0 );
double cvgetreal2d( const cvarr* arr, int idx0, int idx1 );
double cvgetreal3d( const cvarr* arr, int idx0, int idx1, int idx2 );
double cvgetrealnd( const cvarr* arr, int* idx );
arr輸入陣列,必須是單通道.
idx0
元素下標的第乙個成員,以 0 為基準
idx1
元素下標的第二個成員,以 0 為基準
idx2
元素下標的第三個成員,以 0 為基準
idx元素下標陣列
返回特殊的陣列元素
cvsetrealnd();//
修改指定陣列元素值
void cvsetreal1d( cvarr* arr, int idx0, double value );
void cvsetreal2d( cvarr* arr, int idx0, int idx1, double value );
void cvsetreal3d( cvarr* arr, int idx0, int idx1, int idx2, double value );
void cvsetrealnd( cvarr* arr, int* idx, double value );
arr輸入陣列.
idx0
元素下標的第乙個成員,以 0 為基點
idx1
元素下標的第二個成員,以 0 為基點
idx2
元素下標的第三個成員,以 0 為基點
idx元素下標陣列
value
指派的值
cvge***();//返回特殊的陣列元素 多通道的
cvscalar cvget1d( const cvarr* arr, int idx0 );
cvscalar cvget2d( const cvarr* arr, int idx0, int idx1 );
cvscalar cvget3d( const cvarr* arr, int idx0, int idx1, int idx2 );
cvscalar cvge***( const cvarr* arr, int* idx );
arr輸入陣列.
idx0
元素下標第乙個以 0 為基準的成員
idx1
元素下標第二個以 0 為基準的成員
idx2
元素下標第三個以 0 為基準的成員
idx元素下標陣列
cvse***();//修改指定的陣列?多通道的
void cvset1d( cvarr* arr, int idx0, cvscalar value );
void cvset2d( cvarr* arr, int idx0, int idx1, cvscalar value );
void cvset3d( cvarr* arr, int idx0, int idx1, int idx2, cvscalar value );
void cvse***( cvarr* arr, int* idx, cvscalar value );
arr輸入陣列
idx0
元素下標的第乙個成員,以 0 為基點
idx1
元素下標的第二個成員,以 0 為基點
idx2
元素下標的第三個成員,以 0 為基點
idx元素下標陣列
value
指派的值
voidcvmset( cvmat* mat, int row, int col, double value );//設定單通道浮點矩陣的指定元素
mat矩陣.
row行下標,以 0 為基點.
col列下標,以 0 為基點.
value
矩陣元素的新值
doublecvmget( const cvmat* mat, int row, int col );//返回單通道浮點矩陣指定元素
mat輸入矩陣.
row行下標,以 0 為基點.
col列下標,以 0 為基點
#include "cv.h"
#include "highgui.h"
#include
#include
#include
#pragma comment(lib, "cv.lib")
#pragma comment(lib, "cxcore.lib")
#pragma comment(lib, "highgui.lib")
main()
;double b = ;
double c=;
mc=cvcreatemat(2,2,cv_64fc1);
ma=cvmat(2, 2, cv_64fc1, a);
mb=cvmat(2, 2, cv_64fc1, b);
//cvtranspose(&ma, mc);//ma的轉置儲存在mc中,不能對自己進行轉置
cvmatmul(&ma, &mb, mc);
cvmset(mc,1,1,3);//設定2行2列的值為3
//cvinitmatheader(&ma, 3, 4, cv_64fc1, a,cv_autostep);
for(i=0;i<2;i++)
for(j=0;j<2;j++)
printf("%f ",cvgetreal2d(mc,i,j));
//printf("%f ",cvget2d(mc,i,j));
}
fork 函式的簡單程式
include include 注 自定義的標頭檔案 int main int argc,char argv int main int argc,char argv else 執行結束之後,系統1號程序進行 printf c n return 0 int main int argc,char arg...
Linux和Windows系統下簡單程式的編寫
二 windows系統下編寫簡單程式 1 到ubuntu乙個目錄下,然後滑鼠右擊,在此處開啟終端 2 進入root使用者sudo su 3 輸入sudo vim hello.c 建立hello.c檔案 4 進入vim下,從鍵盤輸入i,左下角出現 插入 表示進入編輯狀態 5 輸入 後,按esc推出編輯...
計算24點的簡單程式
近來家庭作業裡有24點的題目,為了找出所有可能的組合,就寫了個簡單的程式 1.執行程式 2.輸入4個整數,比如 3 3 7 8 3.顯示所有可能的組合 include assert.h include double operate double num1,double num2,int op els...