minMaxLoc()函数 是 OpenCV 库中的一个函数,用于找到一个多维数组中的最小值和最大值,以及它们的位置。这个函数对于处理图像和数组非常有用。本文通过参数和示例详解,帮助大家理解和使用该函数。
函数原型:
void minMaxLoc(InputArray src, double* minVal, double* maxVal=0, Point* minLoc=0, Point* maxLoc=0, InputArray mask=noArray());
参数详解:
src:输入数组或者向量,必须包含至少一个元素。 minVal:可选的输出参数,用于存储最小值的实际值。如果不需要这个值,可以设为0。 maxVal:可选的输出参数,用于存储最大值的实际值。如果不需要这个值,可以设为0。 minLoc:可选的输出参数,用于存储最小值的位置。如果不需要这个值,可以设为0。 maxLoc:可选的输出参数,用于存储最大值的位置。如果不需要这个值,可以设为0。 mask:可选的掩码,其大小和类型必须与 src 相同。如果指定了此参数,那么函数只查找具有非零掩码值的元素。
#include#include int main() { // 读取图像 cv::Mat img = cv::imread("image.jpg", cv::IMREAD_GRAYSCALE); if (img.empty()) { std::cout << "无法加载图像" << std::endl; return -1; } // 找到图像中的最小和最大灰度值,以及它们的位置 cv::Point minLoc, maxLoc; double minVal, maxVal; cv::minMaxLoc(img, &minVal, &maxVal, &minLoc, &maxLoc); // 显示结果 std::cout << "最小值:" << minVal << ",位置:" << minLoc << std::endl; std::cout << "最大值:" << maxVal << ",位置:" << maxLoc << std::endl; return 0; }
在这个示例中,我们首先读取一张灰度图像。然后使用 minMaxLoc 函数找到图像中的最小和最大灰度值,以及它们的位置。最后,我们将结果打印到控制台上。
运行输出: