#include
#include
#include
#include
#include
using
namespace
std;
using
namespace cv;
const
int gray_level = 16;
void getglcm_horison(mat& input, mat& dst)//0度灰度共生矩陣}}
max_gray_level++;//畫素灰度最大值加1即為該矩陣所擁有的灰度級數
if (max_gray_level > 16)//若灰度級數大於16,則將影象的灰度級縮小至16級,減小灰度共生矩陣的大小。
}dst.create(gray_level, gray_level, cv_32sc1);
dst = scalar::all(0);
for (int i = 0; i < height; i++)}}
else
//若灰度級數小於16,則生成相應的灰度共生矩陣}}
}void getglcm_vertical(mat& input, mat& dst)//90度灰度共生矩陣}}
max_gray_level++;
if (max_gray_level > 16)
}dst.create(gray_level, gray_level, cv_32sc1);
dst = scalar::all(0);
for (int i = 0; i < height-1; i++)}}
else}}
}void getglcm_45(mat& input, mat& dst)//45度灰度共生矩陣}}
max_gray_level++;
if (max_gray_level > 16)
}dst.create(gray_level, gray_level, cv_32sc1);
dst = scalar::all(0);
for (int i = 0; i < height - 1; i++)}}
else}}
}void getglcm_135(mat& input, mat& dst)//135度灰度共生矩陣}}
max_gray_level++;
if (max_gray_level > 16)
}dst.create(gray_level, gray_level, cv_32sc1);
dst = scalar::all(0);
for (int i = 0; i < height - 1; i++)}}
else}}
}void feature_computer(mat&src, double& asm, double& eng, double& con, double& idm)//計算特徵值
}mat copy;
copy.create(height, width, cv_64fc1);
for (int i = 0; i < height; i++)
}for (int i = 0; i < height; i++)
}}int main()
mat src_gray;
cv_8uc1);
//src_gray = scalar::all(0);
cvtcolor(src, src_gray, color_bgr2gray);
//src =( mat_(6, 6) << 0, 1, 2, 3, 0, 1, 1, 2, 3, 0, 1, 2, 2, 3, 0, 1, 2, 3, 3, 0, 1, 2, 3, 0, 0, 1, 2, 3, 0, 1, 1, 2, 3, 0, 1, 2 );
//src = (mat_(4, 4) << 1, 17, 0, 3,3,2,20,5,26,50,1,2,81,9,25,1);
getglcm_horison(src_gray, dst_horison);
getglcm_vertical(src_gray, dst_vertical);
getglcm_45(src_gray, dst_45);
getglcm_135(src_gray, dst_135);
double eng_horison=0, con_horison=0, idm_horison=0, asm_horison=0;
feature_computer(dst_horison, asm_horison, eng_horison, con_horison, idm_horison);
cout
<< "asm_horison:"
<< asm_horison << endl;
cout
<< "eng_horison:"
<< eng_horison << endl;
cout
<< "con_horison:"
<< con_horison << endl;
cout
<< "idm_horison:"
<< idm_horison << endl;
/* for (int i = 0; i < dst_horison.rows; i++)
cout << endl;
}cout << endl;
for (int i = 0; i < dst_vertical.rows; i++)
cout << endl;
}cout << endl;
for (int i = 0; i < dst_45.rows; i++)
cout << endl;
}cout << endl;
for (int i = 0; i < dst_135.rows; i++)
cout << endl;
}*/system("pause");
return
0;}
Matlab GPU矩陣求特徵值計算
gpu求特徵值的使用方法 clear all clcm rand 2000,2000 生成乙個隨機矩陣 tic a1,b1 eig m 求該隨機矩陣的特徵值和特徵向量 t1 toc ticm single m 將資料轉換為單精度型 m gpuarray m 將資料從cpu中搬到gpu a2,b2 e...
特徵值 特殊矩陣的特徵值和特徵向量
特徵值與特徵向量 2 前 言 1 今天我們來討論一類特殊矩陣的特徵值和特徵向量。秩1 矩陣的性質希望同學們還沒有完全遺忘,正好通過今天的內容帶著大家複習下。2 i 雖然今天的矩陣不是抽象矩陣,但是想通過定義法求特徵值較為麻煩。這裡我們需要做乙個轉換 ax 0有非零解說明0是a的特徵值。ii 這裡我們...
理解矩陣特徵值及應用
將n階對稱矩陣a分解,用n個特徵向量q和特徵值 來表示,不同特徵值對應的特徵向量是相互正交的。特徵向量和特徵值可以很好的描述原始矩陣,方便實際應用。將矩陣投影在特徵向量上,特徵值即投影長度。特徵值越大,表示矩陣在對應特徵向量上資訊量越大,導數越大。反之,特徵值越小,表示資訊量較少,也可刪除對應特徵向...