6

簡単な質問ですが、わかりません。

通常は void minMaxLoc(InputArray src, double* minVal, double* maxVal=0, Point* minLoc=0, Point* maxLoc=0, InputArray mask=noArray()) しかし、マスクはどのように見えるでしょうか?

これは私が欲しいものです:それは1次元のマット(1行のみ)であり、マット(maxRowGChnnl)の間隔(下から上まで)の最小最大位置が必要です。

int lowerBorder,upperBorder;
lowerBorder = 30;
upperBorder = 100;
cv::minMaxLoc(maxRowGChnnl.row(0),&minValue,&maxValue,&minLoc,&maxLoc,(lowerBorder,upperBorder));

これは maxRowGChnnl サイズです。

maxRowGChnnl    {flags=1124024325 dims=2 rows=1 ...}    cv::Mat
flags   1124024325  int
dims    2   int
rows    1   int
cols    293 int

上記のコードは次のように中止します。

OpenCV Error: Assertion failed ((cn == 1 && (mask.empty() || mask.type() == CV_8
U)) || (cn >= 1 && mask.empty() && !minIdx && !maxIdx)) in unknown function, fil
e ..\..\..\src\opencv\modules\core\src\stat.cpp, line 787

ご協力いただきありがとうございます。

4

2 に答える 2

7

mask は axRowGChnnl.row(0) と同じサイズの cv::Mat で、型は CV_8UC1 でなければなりません。有効な要素の値は、1 無効 0 に等しい必要があります。

于 2013-11-25T14:51:43.140 に答える