2012-04-04 189 views
0

我正在嘗試查找矩陣的平均值。我創建了一個4800 x 5的矩陣,現在想通過找到矩陣中每一行的平均值,使它成爲一個4800 x 1的矩陣。我知道這意味着我將每行中的所有元素加在一起併除以5.我正在考慮函數cvAvg,但到目前爲止,我找不到它的用法示例。下面是我的代碼,其中我將5幅圖像轉換爲4800 x 1的矩陣,並將它們組合以創建4800 x 5的超級矩陣。下一步是找到超級矩陣的平均值。請,如果有人能幫助我,我將非常感激。查找矩陣的平均值

+0

究竟是什麼阻止你將總和除以5?似乎是一個很快的捷徑... – 2012-04-04 15:57:49

+0

你的意思是將5個單獨的行元素和神聖加起來,而不是使用cvAvg? – 2012-04-04 16:03:23

回答

0

除非我不理解的東西你就不能這樣做:

CvMat* avgMat = cvCreateMat(4800, 1, CV_8UC1); 

for(int i = 0; i < 4800; ++i) 
{ 
    CV_MAT_ELEM(*avgMat , float, i, 0) = (CV_MAT_ELEM(*col0, float, i, 0) + 
              CV_MAT_ELEM(*col1, float, i, 0) + 
              CV_MAT_ELEM(*col2, float, i, 0) + 
              CV_MAT_ELEM(*col3, float, i, 0) + 
              CV_MAT_ELEM(*col4, float, i, 0) 
              )/5; 
} 

如果您使用cvAvg()你需要爲每個平均元素,這似乎像一個真正的周圍的方式自定義掩碼做同樣的事情。

+0

非常感謝!我瞭解你對使用cvAvg的關注。你的代碼工作完美。再次感謝,是的,你明白我想要做的事情。 – 2012-04-04 21:04:46