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