3
我是OpenCV的新用户。我正在使用版本2.3.2(来自SVN存储库)。 我有一个特定的三维cv::Mat
结构,它是288 x 384 x 10.这代表一个288 x 384图像,其他10个通道代表视差值。我想找到最小的元素和它的位置。 OpenCV中有一个minMaxElem
函数,它不适用于多维数组。任何想法如何使用OpenCV中的通道拆分功能来执行此操作?OpenCV:如何找到沿特定维度的最小元素?
我是OpenCV的新用户。我正在使用版本2.3.2(来自SVN存储库)。 我有一个特定的三维cv::Mat
结构,它是288 x 384 x 10.这代表一个288 x 384图像,其他10个通道代表视差值。我想找到最小的元素和它的位置。 OpenCV中有一个minMaxElem
函数,它不适用于多维数组。任何想法如何使用OpenCV中的通道拆分功能来执行此操作?OpenCV:如何找到沿特定维度的最小元素?
可以使用minMaxIdx函数查找多维阵列上的最小/最大:
void minMaxIdx(InputArray src, double* minVal, double* maxVal,
int* minIdx=0, int* maxIdx=0, InputArray mask=noArray());
非零minIdx
和maxIdx
应指向足够的长度以存储索引所有维度(3为3-阵列三维垫子)。
minVal
和maxVal
用于返回单个最小值/最大值。如果你不需要这些值,它们可以是0。
非常感谢...非常好。我想现在把它扩展为一个litte ...我想循环遍历矩阵中的每个i,j,并且我只想沿着第三维取得min ... openCV中有什么可以帮助我做到这一点? – Mustafa
@Mustafa您应该能够通过Mat操作符()(const范围*范围)const;设置您的i和j的ROI,然后使用'minMaxIdx'找到min。 –