浮動小数点値のNx1
行列があります。 22nd
からNth
までの値の平均値を取得したいと考えています。 Nx1
のバイナリマスクを作成しました。[0,21]
と1s
の範囲に0s
を入れます。平均を計算中にそのマスクを適用すると(最大速度のための組み込み関数を使用して)エラーが発生します。コードスニペットを以下に示します。OpenCVで浮動小数点イメージをマスクする方法は?
エラーは次のとおりです。入力引数に
サイズがcvSvgに一致していない()」
正しいマスクをする必要があります私は何に浮動ポイントの代わりに、整数を使用してみましたが?マスク、まだ動作しません。
CvMat mask;
int i;
int N = img->width;
IplImage* W = cvCreateImage(cvSize(N, 1), IPL_DEPTH_32F , 1);
IplImage* A = cvCreateImage(cvGetSize(img), IPL_DEPTH_32F , 1);
cvConvertScale(img, A);
int* vals = (int*)malloc(N*sizeof(int));
for(i=0; i<N; i++)
{
if(i<22)
vals[i] = 0;
else
vals[i] = 1;
}
cvInitMatHeader(&mask, N, 1, CV_8U, vals);
cvSVD(A, W, NULL, NULL, CV_SVD_MODIFY_A);
CvScalar mean = cvAvg(W, &mask);