【C++】【Opencv】minMaxLoc()函数详解和示例
作者:mmseoamin日期:2024-01-25

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 函数找到图像中的最小和最大灰度值,以及它们的位置。最后,我们将结果打印到控制台上。

运行输出:

【C++】【Opencv】minMaxLoc()函数详解和示例,在这里插入图片描述,第1张