簡單的問題,但無法弄清楚。cv :: mask應該如何用於opencv minMaxLoc?
normaly其無效minMaxLoc(InputArray SRC,雙* MINVAL,雙* MAXVAL = 0,點* minLoc = 0,點* MAXLOC = 0,InputArray面膜= noArray()) 但如何面具的樣子?
這就是我想要的:它的一維Mat(只有一行),我想要mat(maxRowGChnnl)的區間(從lower到upperBorder)的minMax位置。
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
以上abborts的代碼:
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
感謝您的幫助。
這是我正在考慮的答案(它被解決的方式)。但實際上它不起作用。打印maxLoc時,我將[-1,-1]重新關閉。打印maxRowGChnnl(cv :: Rect(lower,0,upper-lower,0))時,輸出爲[] - 空。但是mat maxRowGChnnl有值!我究竟做錯了什麼? – user1651460
Oups。我的錯。當然,身高應該是1。不是0.使用maxRowGChnnl(cv :: Rect(lower,0,upper-lower,1)) –
完美。而已!好吧,我現在看到矩形的構造。 – user1651460