roi感兴趣区域像素值统计,求roi感兴趣区域内像素值的最小值、最大值、均值、标准差(标准方差)

news2024/10/6 10:41:49

文章目录

      • 1、求roi感兴趣区域内像素值的最小值、最大值
        • minMaxLoc() 函数原型:
          • (1)原型一:
          • (2)原型二:
          • (3)另外与 `minMaxLoc()`函数原型一,用法相同的函数 `minMaxIdx()`,也可以找出矩阵中的最大值和最小值:
            • minMaxIdx()函数原型:
      • 2、求roi感兴趣区域内像素值的均值、标准差(标准方差)
        • (1)数学概念:
          • 均值 mean:样本集合的平均值;
          • 方差 variance:概率论中**方差**用来度量随机变量和其数学期望(即均值)之间的**偏离程度**;统计中的方差(样本方差)是各个样本数据 与 样本平均值**之差**的 **平方和** 的**平均数**;
          • 标准差 standard deviation:反映一个数据集的离散程度,标准差就是样本**方差**的算术平方根;
        • (2)meanStdDev() 函数原型:
          • 示例:
        • (3)通过函数 `mean()`求roi感兴趣区域内像素值的均值
          • mean() 函数原型:
          • 代码示例:

roi感兴趣区域像素值统计,求roi感兴趣区域内像素值的最小值、最大值、均值、标准差(标准方差)

1、求roi感兴趣区域内像素值的最小值、最大值

  • OpenCV中,函数 minMaxLoc()用于找出矩阵中的最大值和最小值,并且给出它们的坐标;
  • 函数不适用于多通道矩阵,如果需要遍历所有的通道来找到最大和最小值,首先使用函数 Mat::reshape()将矩阵转换为单通道矩阵,或者使用 split()mixChannels(),来提取特定的通道,再使用 minMaxLoc() 函数求矩阵的最大值和最小值;

minMaxLoc() 函数原型:

(1)原型一:
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:输入矩阵中的最小值的坐标(如果不需要返回,置为NULL)
maxLoc:输入矩阵中的最大值的坐标(如果不需要返回,置为NULL)
mask:可选参数,操作掩摸,用以标记求取哪些区域
(2)原型二:
void minMaxLoc( const SparseMat &src, 
                double 		*minVal,
                double 		*maxVal, 
                int 		*minIdx = 0, 
                int 		*maxIdx = 0
);

参数解释:
src:输入单通道矩阵
minVal:输入矩阵中的最小值(如果不需要返回,置为NULL)
maxVal:输入矩阵中的最大值(如果不需要返回,置为NULL)
minLoc:输入矩阵中的最小值的坐标(如果不需要返回,置为NULL)
maxLoc:输入矩阵中的最大值的坐标(如果不需要返回,置为NULL
(3)另外与 minMaxLoc()函数原型一,用法相同的函数 minMaxIdx(),也可以找出矩阵中的最大值和最小值:
minMaxIdx()函数原型:
void minMaxIdx(	InputArray src,
		double	   *minVal,
		double     *maxVal = 0,
		int        *minIdx = 0,
		int        *maxIdx = 0,
		InputArray mask = noArray()
);

参数解释:
src:输入单通道矩阵
minVal:输入矩阵中的最小值(如果不需要返回,置为NULL)
maxVal:输入矩阵中的最大值(如果不需要返回,置为NULL)
minIdx:输入矩阵中的最小值的坐标(如果不需要返回,置为NULL)
maxIdx:输入矩阵中的最大值的坐标(如果不需要返回,置为NULL)
mask:可选参数,操作掩摸,用以标记求取哪些区域

2、求roi感兴趣区域内像素值的均值、标准差(标准方差)

(1)数学概念:

  • 均值 mean:样本集合的平均值;

请添加图片描述

  • 方差 variance:概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度;统计中的方差(样本方差)是各个样本数据 与 样本平均值之差平方和平均数

请添加图片描述

  • 标准差 standard deviation:反映一个数据集的离散程度,标准差就是样本方差的算术平方根;

在这里插入图片描述

(2)meanStdDev() 函数原型:

opencv中标准差表示一个图像的明暗变化程度,标准差越大,表示明暗变化越明显;

void meanStdDev( InputArray src,
		 OutputArray mean,
		 OutputArray stddev,
                 InputArray mask=noArray()
);

参数解释:
src:输入矩阵,单通道的矩阵/多通道的矩阵;
mean:输出参数,计算出的平均值;
stddev:输出参数,计算出的标准差;
mask:可选参数,操作掩摸,用以标记求取哪些区域;
示例:
#include <opencv2\opencv.hpp>
#include <iostream>
#include <demo.h>

using namespace cv;
using namespace std;

int main() {
	// 读取图像,BGR存储在Mat矩阵里
	Mat src = cv::imread("C:\\cpp\\image\\suzy4.jpg");
	if (src.empty()) {
		printf("could not load image..../n");
		return -1;
	}
	namedWindow("src", WINDOW_NORMAL);
	imshow("src", src);

	// 将矩阵转换为单通道矩阵
	vector<Mat> mv;
	split(src, mv);
	double minv, maxv;
	Point minLoc, maxLoc;
	// 使用函数 minMaxLoc()找出矩阵中的最大值和最小值
	for (int i = 0; i < mv.size(); i++)
	{
		minMaxLoc(mv[i], &minv, &maxv, &minLoc, &maxLoc, Mat());
		cout << "channels:" << i << " min:" << minv << " max:" << maxv << endl;
	}
	// 求roi感兴趣区域内像素值的均值、标准差(标准方差)
	Mat mean, stddev;
	meanStdDev(src, mean, stddev);
	cout << "means:" << mean << endl;
	cout << "stddev:" << stddev << endl;

	waitKey();
	destroyAllWindows();
	return 0;
}

(3)通过函数 mean()求roi感兴趣区域内像素值的均值

mean() 函数原型:
mean( InputArray src,
      InputArray mask=noArray()
)

参数解释:
src:输入矩阵;
mask:可选参数,操作掩摸,用以标记求取哪些区域;
代码示例:
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main()
{

	cv::Mat A1 = (cv::Mat_<uchar>(3, 3) << 1, 2, 3,
		4, 5, 6,
		7, 8, 9);

	cout << "A1中的数据为:\n" << A1 << endl << endl;

	cv::Scalar A1_mean;
	// 通过函数mean()求roi感兴趣区域内像素值的均值 
	A1_mean = mean(A1);

	cout << "通过函数mean计算得到的A1的均值为:" << A1_mean << endl << endl;

	cv::Scalar A1_mean_2, A1_sd;
	meanStdDev(A1, A1_mean_2, A1_sd);

	cout << "通过函数meanStdDev计算得到的A1的均值为:" << A1_mean_2 << endl << endl;
	cout << "通过函数meanStdDev计算得到的A1的标准差为:" << A1_sd << endl << endl;

	return(0);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/857340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mac ssh连接另一台window虚拟机vm

vmware配置端口映射 编辑(E) > 虚拟网络编辑器(N)... > NAT设置(S)... window防火墙&#xff0c;入站规则添加5555端口 控制面板 > 系统和安全 > Windows 防火墙>高级设置>入站规则>新建规则... tips windows查看端口命令&#xff1a;netstat -ano | f…

html实现商品图片放大镜,html图片放大镜预览

效果 实现 复制粘贴&#xff0c;修改图片路径即可使用 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>商品图片放大镜</title></head><style>body {margin: 0;padding: 0;}#app {padding: 10px;posit…

基于Java+SpringBoot+Vue的网吧管理系统设计与实现(源码+LW+部署文档等)

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

CEC2013(MATLAB):遗传算法(Genetic Algorithm,GA)求解CEC2013的28个函数

一、遗传算法GA 遗传算法&#xff08;Genetic Algorithm&#xff0c;GA&#xff09;起源于对生物系统所进行的计算机模拟研究&#xff0c;是一种随机全局搜索优化方法&#xff0c;它模拟了自然选择和遗传中发生的复制、交叉(crossover)和变异(mutation)等现象&#xff0c;从任…

国际货币汇率 API 数据接口

国际货币汇率 API 数据接口 支持多种货币对&#xff0c;每日精准汇率&#xff0c;多币种支持。 1. 产品功能 支持多种货币汇率查询&#xff1b;支持部分加密货币汇率查询&#xff1b;数据为每日更新汇率数据&#xff1b;可一次查询源货币代码对应所有目标货币汇率&#xff1b…

无涯教程-Perl - getppid函数

描述 该函数返回父进程的进程ID。 语法 以下是此函数的简单语法- getppid返回值 该函数返回父进程的进程ID。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perl$ppidgetppid();print "Parent Process ID $ppid\n";执行上述代码后,将产生以下输出- Paren…

多模态模型评价

论文1 【Evaluating Object Hallucination in Large Vision-Language Models】 这篇文章主要是评价视觉-语言模型中出现“幻觉”的评价。论文中是这样定义幻觉的 we find that LVLMs suffer from the hallucination problem, i.e., they tend to generate objects that are in…

哪个类包含clone方法?是Cloneable还是Object?

在Java中&#xff0c;clone方法是定义在Object类中的。所有的Java类都继承自Object类&#xff0c;因此每个Java对象都继承了clone方法。然而&#xff0c;要成功地使用clone方法&#xff0c;需要满足一些条件&#xff0c;其中之一是被克隆的类必须实现Cloneable接口。 虽然clone…

途乐证券-光伏、储能板块拉升 德业股份、固德威等大幅走高

光伏、储能等新能源板块10日盘中震荡上扬&#xff0c;截至发稿&#xff0c;德业股份涨近8%&#xff0c;锦浪科技、固德威、阿特斯等涨逾6%&#xff0c;禾迈股份、昱能科技涨近4%。 消息面上&#xff0c;据中关村储能产业技术联盟计算&#xff0c;2021年至2023年上半年&#xff…

无涯教程-Perl - glob函数

描述 此函数返回与EXPR匹配的文件的列表,这些文件将由标准Bourne shell进行扩展。如果EXPR未指定路径,请使用当前目录。如果省略EXPR,则使用$_的值。 从Perl 5.6开始,扩展是在内部完成的,而不是使用外部脚本。扩展遵循csh(以及任何派生形式,包括tcsh和bash)的扩展方式,其翻译…

【雕爷学编程】Arduino动手做(08)---湿敏电阻传感器模块3

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

示波器带宽和采样率

示波器带宽概念定义&#xff1a; 在示波器的输入端加相同幅值的正弦波&#xff0c;幅度衰减至-3dB&#xff08;70.7%&#xff09;时的频率点就是示波器的带宽。 如果我们用100MHz带宽的示波器测量&#xff1a;幅值为1V &#xff0c;频率为100MHz 的正弦波时&#xff0c;实际得到…

Java基础篇--对象和类

目录 对象&#xff08;Object&#xff09; 类&#xff08;Class&#xff09; 构造方法 创建对象 访问对象的成员 总结 在面向对象中&#xff0c;为了做到让程序对事物的描述与事物在现实中的形态保持一致&#xff0c;面向对象思想中提出了两个概念&#xff0c;即类和对象…

基于jeecg-boot的flowable流程增加部门经理审批功能

因为之前没有在流程设计器里增加部门经理审批,所以这次增加这个功能 界面如下: 同时可以对于多名部门经理可以进行多实例配置,如下图: 一、前端实现 主要修改userTask.vue文件。 <template><div style="margin-top: 16px"><el-row><h4&…

Vue3的自定义指令,项目中的运用

目录 一、什么是自定义指令 1. 定义 2. 什么时候使用自定义指定 二、Vue3中的自定义指令 1.全局自定义指令 2. 组件自定义指令 三、指令钩子 1. 钩子 2. 钩子参数 四、自定义指令的常见用法 1.添加事件监听 2.操作DOM 一、什么是自定义指令 1. 定义 自定义指令是一…

k8s pod启动报错: no route to host

k8s pod kuboard启动报错 查看pod命令 kubectl get pods -A kubectl get pods --all-namespaces查看报错pod日志 命令&#xff1a; kubectl logs -f -n namespace nametime"2023-08-09T13:40:3608:00" levelerror msg"不能获取 AgentEndpointsGet \"http:/…

ssm学院党员管理系统源码和论文PPT

ssm学院党员管理系统源码和论文PPT002 开发工具&#xff1a;idea 数据库mysql5.7(mysql5.7最佳) 数据库链接工具&#xff1a;navcat,小海豚等 开发技术&#xff1a;java ssm tomcat8.5 选题意义、价值和目标&#xff1a; 随着鄂尔多斯应用技术学院招生规模的不断扩大&…

【玩转pandas系列】pandas加载数据,分箱操作和时间序列,绘制图形

知识目录 前言一、加载数据1 - 加载CSV文件2 - 加载Excel文件3 - 加载数据库数据 二、分箱1 - 等宽分箱2 - 等频分箱 三、时间序列1 - Timestamp和Period的创建2 - 索引和切片3 - 属性和移动4 - 频率转换5 - 数据聚合 四、pandas绘制图形1 - 折线图2 - 柱状图3 - 直方图4 - 饼图…

【Mysql】数据库基础与基本操作

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…

仓库出库入库都有哪些流程?详解仓库出入库管理规范

仓库出入库管理是指对仓库中物品的进出情况进行有效管理和跟踪&#xff0c;以确保库存的准确性、安全性和高效性。这是企业供应链管理的重要环节之一&#xff0c;涉及到物流、库存控制、订单处理和数据记录等方面。 阅读本文您将了解&#xff1a;一个完整的仓库出入库管理流程…