0

行列の平均を見つけようとしています。4800 x 5 の行列を作成しましたが、行列の各行の平均を求めて 4800 x 1 の行列にしたいと考えています。これは、各行のすべての要素を合計して 5 で除算することを意味することを知っています。関数 cvAvg を検討していますが、これまでのところ、その使用例を見つけることができません。以下は、5 つの画像を 4800 x 1 のマトリックスに変換し、それらを組み合わせて 4800 x 5 のスーパー マトリックスを作成するコードです。次のステップは、スーパー マトリックスの平均を見つけることです。誰かが私を助けてくれれば幸いです。

4

1 に答える 1

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() を使用した場合、平均化された各要素に対してカスタム マスクが必要になります。

于 2012-04-04T16:37:11.753 に答える