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

OpenCV数组的操作

OpenCV计算机视觉开发实践:基于Qt C++ - 商品搜索 - 京东

这里的数组不是普通意义上的数组。核心模块Core专门提供了一些全局函数用于对数组(矩阵)进行操作。常用函数如表3-2所示。

3.2.1  寻找数组中最小值和最大值的位置(minMaxLoc)

全局函数minMaxLoc用于寻找数组中的最大值和最小值及其位置,该极值检测遍历整个矩阵,当掩码部位空时,遍历指定的特殊区域。此函数不适用于多通道阵列。如果需要在所有通道中查找最小元素或最大元素,首先使用Mat::reshape将数组重新解释为单个通道,或者可以使用extractImageCOI、mixChannels或split提取特定通道。函数minMaxLoc声明如下:

void cv::minMaxLoc (InputArray  src, double * minVal, double * maxVal = 0, Point *minLoc = 0,  Point * maxLoc = 0,  InputArray  mask = noArray() );    

其中参数src表示输入的单通道数组(矩阵);参数minVal指向返回的最小值的指针,如果传NULL,就表示不要求最小值;maxVal指向返回的最大值的指针,如果传NULL,就表示不要求最大值;minLoc指向返回最小值的位置(2d情况下),如果传NULL,就表示不要求;maxLoc指向返回最小值的位置(2d情况下),如果传NULL,就表示不要求;mask用于指定下级矩阵的操作掩码。

【例3.13】计算单通道、多通道图像的最大值

(1)打开Qt Creator,新建一个控制台工程,工程名是test。

(2)在IDE中打开main.cpp,输入代码如下:

#include <QDebug>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
using namespace cv;int main()
{Mat image, image_3c;image.create(Size(256, 256), CV_8UC1);image_3c.create(Size(256, 256), CV_8UC3);   //3通道的图像image.setTo(0);image_3c.setTo(0);image.at<uchar>(10, 200) = 255; 	//第10行、第200列处赋值255image_3c.at<uchar>(10, 200) = 255;	//第10行、第300列处赋值double maxVal = 0; //最大值一定要赋初值,否则运行时会报错Point maxLoc;minMaxLoc(image, NULL, &maxVal, NULL, &maxLoc);qDebug() << "单通道图像最大值: " << maxVal;double min_3c, max_3c;minMaxLoc(image_3c, &min_3c, &max_3c, NULL, NULL);qDebug() << "3通道图像最大值: " << max_3c;imshow("image", image);imshow("image_3c", image_3c);waitKey(0);return 0;
}

 

在代码中,我们利用全局函数minMaxLoc查找了单通道和多通道矩阵中的像素最大值。注意,多通道在使用minMaxLoc函数时不能给出其最大值和最小值坐标,因为每个像素点其实有多个坐标,所以无法给出。

(3)保存工程并运行,运行结果如图3-16所示。

图3-16

相关文章:

  • 2023年CCF-C NCA:自适应麻雀搜索算法MASSA,深度解析+性能实测
  • 数据泄露防护系统:全面保护企业信息安全的功能解析
  • 解决 AWS RDS MySQL mysqldump 导入sql SET @@GLOBAL 权限不足问题
  • Doris部署生产集群最低要求的部署方案
  • 【mysql】Mac 通过 brew 安装 mysql 、启动以及密码设置
  • Git完全指南:从入门到精通版本控制 ------- Git标签的认识(9)
  • 用 DeepSeek 精准解析,PDF 一键转电子书!
  • 安卓基础(生命周期)
  • 智绘地籍“一张图”:开启土地管理的数字化新纪元‌
  • Android动态化技术优化
  • UE5 设置物体的位置
  • Android --- SystemUI启动流程
  • 2025年最新版动漫短剧系统开发小程序app教程,源码部署上线
  • HTTP与HTTPS的区别
  • 热烈祝贺“中芯机械”选择使用订单日记
  • 【数据库原理及安全实验】实验三 查询语句
  • STM32江科大-----PWR电源控制
  • 机器学习中的对抗规范化:从问题到解决方案
  • 多模态思维链AI医疗编程:从计算可持续性到开放域推理的系统性解决方案
  • 自然语言处理的进化:BERT模型深度剖析
  • 廊坊网站建设团队/seo快速优化软件网站
  • 西安企业招聘官网/网店seo名词解释
  • 郑州正规网站设计价格/北京seo优化费用
  • 专业vi设计哪家好/seo优化是什么职业
  • 手机端自适应网站布局/自己有域名怎么建网站
  • 做网站哪些方面会侵权/seo是什么服