宣告:此**並非原創,參照網路上一位前輩的**,但是測試發現他的**有bug,修改後貼出已做記錄;
#include
#include
#include
#include
#define pi acos(-1)//定義圓周率
using namespace std;
void dct(vector>& ori, vector>& dct, float n);
int main(void)
;//二維陣列的初始值,可以自己任意設定
float start[n][n] = ;//二維陣列的初始值,可以自己任意設定
/*float start[n][n] = ,,,
,,,,
};*/
vector> orimatrix;//原始的二維陣列,用容器的方法來定義,方便除錯
vector> dctmatrix;//用來儲存經過dct變換後的二維陣列
vectortemp;//temp僅僅是為了用來填充orimatrix
//填充orimatrix
for (int i = 0; i < n; i++)
for (int i = 0; i < n; i++)
dctmatrix = orimatrix;//初始化dctmatrix
//初始化orimatrix
for (int i = 0; i < n; i++)
}//輸出orimatrix
cout << "原始二維陣列矩陣:" << endl;
for (int i = 0; i < n; i++)
cout << endl;
}cout << endl;
dct(orimatrix, dctmatrix, n);//呼叫自己定義的函式
//輸出dctmatrix
cout << "經過dct變換後的二維陣列矩陣:" << endl;
for (int i = 0; i < n; i++)
cout << endl;
}getchar();
return 0;
}void dct(vector>& ori, vector>& dct, float n)//第乙個形參是原始二維陣列的引用,第二個形參矩陣是經過dct變換的二維陣列的引用,第三個形參是階數
else if ((k == 0)||(l == 0))
else
dct[k][l] += pd*(2 / n) * (ori[m][n]) * (cos((2 * m + 1) * k * pi / (2 * n))) * (cos((2 * n + 1) * l * pi / (2 * n)));}}}}}
C 實現列印原始碼
列印的原理是 生成mdi檔案,系統碰到mdi的時候會自動以列印的方式處理。所以,不管用什麼模板,什麼方式 能在printpage事件處理中,生成一張要列印內容的就ok了 c 實現列印原始碼如下 region 列印 private void btnprint click object sender,e...
基於的DCT水印演算法實現
上學期幫同校本科的同學做了畢業設計的實驗部分,用matlab實現dct水印演算法,並且包含了攻擊測試。先講乙個大體概念,然後放出具體 dct 離散余弦變換 這裡只以二維dct為例。訊號經過dct後,從空間域變換到頻域。是一種正交變換的方法。是影象處理中應用即為廣泛的傅氏變換中一種特殊的情況 被展開函...
C 實現敏感詞過濾演算法(含原始碼)
將所有敏感詞庫按模組聚合構建成乙個詞樹 所謂聚合,就是將相同字開頭的部分進行聚合,以減少對詞的查詢範圍,相當於建立敏感詞索引,如 他奶奶的 他媽的 他娘的,這三個詞,聚合構建成詞樹時,他 字就是這三個詞的索引,同時每個詞的結尾都有乙個結束標誌和該詞的一些描述,如敏感級別等 然後從頭到尾掃瞄一遍目標文...