cv::minMaxLoc
是 OpenCV 中一个用于计算图像或矩阵中最小值和最大值的函数。它可以用来查找数组中的最小值和最大值及其位置,这在图像处理和计算机视觉任务中非常有用。
函数原型
cpp
void cv::minMaxLoc(
const cv::InputArray& src,
double* minVal = nullptr,
double* maxVal = nullptr,
cv::Point* minLoc = nullptr,
cv::Point* maxLoc = nullptr,
const cv::InputArray& mask = cv::noArray()
);
参数解释
-
src
:- 类型 :
cv::InputArray
- 描述 : 输入图像或矩阵。该参数表示需要计算最小值和最大值的源数据。可以是
cv::Mat
类型的图像或矩阵。
- 类型 :
-
minVal
:- 类型 :
double*
(可选) - 描述 : 指向存储最小值的变量的指针。如果传递了这个指针,函数将把最小值存储到这个变量中。如果不需要最小值,可以传递
nullptr
。
- 类型 :
-
maxVal
:- 类型 :
double*
(可选) - 描述 : 指向存储最大值的变量的指针。如果传递了这个指针,函数将把最大值存储到这个变量中。如果不需要最大值,可以传递
nullptr
。
- 类型 :
-
minLoc
:- 类型 :
cv::Point*
(可选) - 描述 : 指向存储最小值位置的变量的指针。如果传递了这个指针,函数将把最小值的位置(坐标)存储到这个变量中。如果不需要最小值的位置,可以传递
nullptr
。
- 类型 :
-
maxLoc
:- 类型 :
cv::Point*
(可选) - 描述 : 指向存储最大值位置的变量的指针。如果传递了这个指针,函数将把最大值的位置(坐标)存储到这个变量中。如果不需要最大值的位置,可以传递
nullptr
。
- 类型 :
-
mask
:- 类型 :
cv::InputArray
(可选) - 描述 : 可选的掩模图像,用于指定在计算最小值和最大值时要考虑的区域。掩模图像是一个与源图像相同尺寸的二值图像,其中白色(255)的位置表示要考虑的区域,黑色(0)的位置表示忽略的区域。如果不使用掩模,可以将其设置为
cv::noArray()
。
- 类型 :
函数功能
cv::minMaxLoc
函数计算给定图像或矩阵中的最小值和最大值,并可以选定地返回它们的位置(坐标)。它的主要功能是:
- 查找最小值和最大值: 计算输入图像或矩阵中像素值的最小和最大值。
- 确定位置: 计算这些最小值和最大值的位置(坐标),有助于进一步的分析和处理。
示例代码
以下是一个示例,展示如何使用 cv::minMaxLoc
查找图像中的最小值和最大值及其位置:
cpp
#include <opencv2/opencv.hpp>
#include <iostream>
int main() {
// 创建一个示例图像
cv::Mat img = (cv::Mat_<uchar>(3, 3) << 10, 20, 30, 40, 50, 60, 70, 80, 90);
// 定义变量存储结果
double minVal, maxVal;
cv::Point minLoc, maxLoc;
// 计算最小值、最大值及其位置
cv::minMaxLoc(img, &minVal, &maxVal, &minLoc, &maxLoc);
// 输出结果
std::cout << "Minimum Value: " << minVal << std::endl;
std::cout << "Maximum Value: " << maxVal << std::endl;
std::cout << "Minimum Location: (" << minLoc.x << ", " << minLoc.y << ")" << std::endl;
std::cout << "Maximum Location: (" << maxLoc.x << ", " << maxLoc.y << ")" << std::endl;
return 0;
}
解释
-
创建图像:
- 使用
cv::Mat
创建一个简单的 3x3 矩阵,作为示例图像。
- 使用
-
计算最小值和最大值:
- 调用
cv::minMaxLoc
计算图像中的最小值和最大值,并获取它们的位置。
- 调用
-
输出结果:
- 打印最小值、最大值及其位置。
总结
- 功能 :
cv::minMaxLoc
用于计算图像或矩阵中的最小值和最大值,并返回它们的位置。 - 参数: 输入图像、最小值和最大值的存储变量、最小值和最大值的位置的存储变量、可选掩模。
- 应用: 用于图像分析、数据统计和处理等任务,特别是在需要了解图像中像素值的范围和分布时。