当前位置: 首页 > news >正文

C++:opencv获取矩阵中的最大最小值--cv::minMaxLoc

cv::minMaxLoc 是 OpenCV 中一个用于计算图像或矩阵中最小值和最大值的函数。它可以用来查找数组中的最小值和最大值及其位置,这在图像处理和计算机视觉任务中非常有用。

函数原型

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()
);

参数解释

  1. src:

    • 类型: cv::InputArray
    • 描述: 输入图像或矩阵。该参数表示需要计算最小值和最大值的源数据。可以是 cv::Mat 类型的图像或矩阵。
  2. minVal:

    • 类型: double*(可选)
    • 描述: 指向存储最小值的变量的指针。如果传递了这个指针,函数将把最小值存储到这个变量中。如果不需要最小值,可以传递 nullptr
  3. maxVal:

    • 类型: double*(可选)
    • 描述: 指向存储最大值的变量的指针。如果传递了这个指针,函数将把最大值存储到这个变量中。如果不需要最大值,可以传递 nullptr
  4. minLoc:

    • 类型: cv::Point*(可选)
    • 描述: 指向存储最小值位置的变量的指针。如果传递了这个指针,函数将把最小值的位置(坐标)存储到这个变量中。如果不需要最小值的位置,可以传递 nullptr
  5. maxLoc:

    • 类型: cv::Point*(可选)
    • 描述: 指向存储最大值位置的变量的指针。如果传递了这个指针,函数将把最大值的位置(坐标)存储到这个变量中。如果不需要最大值的位置,可以传递 nullptr
  6. mask:

    • 类型: cv::InputArray(可选)
    • 描述: 可选的掩模图像,用于指定在计算最小值和最大值时要考虑的区域。掩模图像是一个与源图像相同尺寸的二值图像,其中白色(255)的位置表示要考虑的区域,黑色(0)的位置表示忽略的区域。如果不使用掩模,可以将其设置为 cv::noArray()

函数功能

cv::minMaxLoc 函数计算给定图像或矩阵中的最小值和最大值,并可以选定地返回它们的位置(坐标)。它的主要功能是:

  • 查找最小值和最大值: 计算输入图像或矩阵中像素值的最小和最大值。
  • 确定位置: 计算这些最小值和最大值的位置(坐标),有助于进一步的分析和处理。

示例代码

以下是一个示例,展示如何使用 cv::minMaxLoc 查找图像中的最小值和最大值及其位置:

#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;
}

解释

  1. 创建图像:

    • 使用 cv::Mat 创建一个简单的 3x3 矩阵,作为示例图像。
  2. 计算最小值和最大值:

    • 调用 cv::minMaxLoc 计算图像中的最小值和最大值,并获取它们的位置。
  3. 输出结果:

    • 打印最小值、最大值及其位置。

总结

  • 功能: cv::minMaxLoc 用于计算图像或矩阵中的最小值和最大值,并返回它们的位置。
  • 参数: 输入图像、最小值和最大值的存储变量、最小值和最大值的位置的存储变量、可选掩模。
  • 应用: 用于图像分析、数据统计和处理等任务,特别是在需要了解图像中像素值的范围和分布时。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MySQL——数据库的高级操作(二)用户管理(3)删除普通用户
  • 面试—多线程
  • 7款实用电脑办公软件和网站,工作效率飞跃提升
  • 速响低代码平台:升级营销管理系统,开启高效无忧新体验!
  • 快捷创建MySQL实例与配置数据库
  • 从数据仓库到数据中台再到数据飞轮:社交媒体的数据技术进化史
  • Oracle 数据库部署与实施
  • 双天线+ins
  • linux-安全管理-用户认证
  • 计算机毕业设计汽车选购销售平台管理系统车辆用户分类订单评价购买/springboot/javaWEB/J2EE/MYSQL数据库/vue前后分离小程序
  • Java通配符的作用
  • MDPI期刊为何连年预警?2024中科院预警名单中,为何MDPI最多?本期详解!
  • 【HarmonyOS】鸿蒙头像上传-(编辑个人信息页- 头像上传)+实时数据更新
  • 解决内存8G但是需要读取一个几百G的文件到内存的方法
  • Wordpress右下角表单弹出插件
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • 07.Android之多媒体问题
  • Laravel 中的一个后期静态绑定
  • orm2 中文文档 3.1 模型属性
  • sessionStorage和localStorage
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • spring-boot List转Page
  • SQLServer之索引简介
  • 聊聊directory traversal attack
  • 排序(1):冒泡排序
  • 前端学习笔记之观察者模式
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 通过调用文摘列表API获取文摘
  • ​ssh免密码登录设置及问题总结
  • # Redis 入门到精通(九)-- 主从复制(1)
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • ###STL(标准模板库)
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #LLM入门|Prompt#3.3_存储_Memory
  • $nextTick的使用场景介绍
  • $refs 、$nextTic、动态组件、name的使用
  • (11)MSP430F5529 定时器B
  • (2)Java 简介
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (八十八)VFL语言初步 - 实现布局
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .Net Core和.Net Standard直观理解
  • .Net Winform开发笔记(一)
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况