2011-09-29 41 views
3

我是OpenCV的新用户。我正在使用版本2.3.2(来自SVN存储库)。 我有一个特定的三维cv::Mat结构,它是288 x 384 x 10.这代表一个288 x 384图像,其他10个通道代表视差值。我想找到最小的元素和它的位置。 OpenCV中有一个minMaxElem函数,它不适用于多维数组。任何想法如何使用OpenCV中的通道拆分功能来执行此操作?OpenCV:如何找到沿特定维度的最小元素?

回答

3

可以使用minMaxIdx函数查找多维阵列上的最小/最大:

void minMaxIdx(InputArray src, double* minVal, double* maxVal, 
         int* minIdx=0, int* maxIdx=0, InputArray mask=noArray()); 

非零minIdxmaxIdx应指向足够的长度以存储索引所有维度(3为3-阵列三维垫子)。
minValmaxVal用于返回单个最小值/最大值。如果你不需要这些值,它们可以是0。

+0

非常感谢...非常好。我想现在把它扩展为一个litte ...我想循环遍历矩阵中的每个i,j,并且我只想沿着第三维取得min ... openCV中有什么可以帮助我做到这一点? – Mustafa

+0

@Mustafa您应该能够通过Mat操作符()(const范围*范围)const;设置您的i和j的ROI,然后使用'minMaxIdx'找到min。 –

相关问题