OpenCV : How do I find the minimum element along a specific dimension?
I'm a new user to OpenCV. I'm using version 2.3.2 (from the SVN repository).
I have a specific 3-dimensional cv::Mat
structure which is 288 x 384 x 10. This represents a 288 x 384 image and the other 10 channels represent a 开发者_运维知识库disparity value. I want to find the minimum element and its location. There is a minMaxElem
function in OpenCV with it doesn't work with multi-dimensional arrays. Any idea how I can use the channel splitting functions in OpenCV to perform this?
You can use minMaxIdx function to find minimum/maximum on multidimensional array:
void minMaxIdx(InputArray src, double* minVal, double* maxVal,
int* minIdx=0, int* maxIdx=0, InputArray mask=noArray());
Non-zero minIdx
and maxIdx
should point to the arrays having enough length to store indexes for all dimensions (3 for 3-dimensional Mat).
minVal
and maxVal
are used to return single minimum/maximum value. They can be 0 if you don't need the values.
精彩评论