Opencv -- 13像素值统计及平均值和方差的意义
#include <iostream>
#include "13_opencv_mat.h"using namespace std;void QuickDemo::pixel_statistic_demo(Mat &image)
{/** 函数minMaxLoc用来查找最小和最大元素值及其位置。* 在整个图像(数组)中搜索极值,如果mask不是空数组,则在指定的数组区域中搜索极值。* * void 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 - 可选掩码,用于选择子数组,如果不需要就缺省。* * 需要特别注意的是:* 这个函数不能用于多通道图像(数组)。如果需要在所有通道中找到最小或最大元素(像素值),* 请先首先使用Mat::reshape()将图像(数组)转换为单通道。* 或者你可以使用extractImageCOI()、mixChannels()或split()来提取特定的通道。*/std::vector<Mat> mv;/** 函数原型:void split(const Mat& mtx, vector<Mat>& mv)* 函数功能:将一个多通道阵列划分为几个单通道阵列。*/split(image, mv);imshow("蓝色", mv[0]);imshow("绿色", mv[1]);imshow("红色", mv[2]);double minVal, maxVal;//定义两个变量分别用来记录最大像素值和最小像素值Point minLoc, maxLoc;//记录最大像素值和最小像素值的位置//查找图像中的最小值和最大值。for (int i = 0; i < 3; i++){minMaxLoc(mv[i], &minVal, &maxVal, &minLoc, &maxLoc, noArray());std::cout << "minVal = " << minVal << ",maxVal = " << maxVal << std::endl;std::cout << "minLoc = " << minLoc << ",maxLoc = " << maxLoc << std::endl;}/** 函数原型:void meanStdDev(InputArray src, OutputArray mean, OutputArray stddev, InputArray mask=noArray()) ** 函数功能:计算数组元素的平均值和标准偏差。* 参数:* src - 源图像(数组)应该有1到4个通道,以便结果可以存储在Scalar类型的数组中。* mean - 输出参数:计算平均值。* stddev - 输出参数:计算标准偏差。* mask - 可选掩码,用于选择子数组,如果不需要就缺省。* * 函数meanStdDev独立计算每个通道的数组元素的均值和标准差,并通过输出参数返回:*/Mat mean, stddev;meanStdDev(image, mean, stddev);std::cout << "mean = " << mean << std::endl;std::cout << "stddev = " << stddev << std::endl;
}
程序运行结果如下:
方差和均值代表的意义及其应用
均值
我们来看不同亮度的同一张图像。
可见,均值可以反应图片的明亮暗程度。
方差
根据计算出来的均值和方差,可以对图像所携带的信息做出一些判断。
比如方差,方差就是数据的分散程度(偏离均值)。图像中有个人和有辆车,那么他们的灰度值是不同的(颜色不同),你把全图像的灰度值取平均,偏离平均值越大,方差越大。方差越大,说明信息越多,能量越大。
比如下面这张图,方差为0,说明该图片的像素点没有变化,是张纯色图片。纯色的图片的每个通道的像素值都等于它每个通道的均值。再根据均值可以判断出该图片是什么颜色的。
Opencv -- 13像素值统计及平均值和方差的意义相关推荐
- C++ opencv之像素值统计(minMaxLoc,meanStdDev)
一.引言 这篇博客的主要知识点为:像素值统计 最小(min) 最大(max) 均值(mean) 标准方差(standard deviation) API 的知识点为: 最大最小值minMaxLoc 计 ...
- OpenCV 学习笔记-day13 像素值统计 统计计算最大最小值,平均值和标准差 (minMaxLoc()和meanStdDev()函数的使用)
OpenCV 学习笔记 day13 像素值统计 函数 minMaxLoc(); 最大值最小值统计 meanStdDev();平均值和标准方差统计 代码 day13 像素值统计 函数 minMaxLoc ...
- opencv获取图像像素值的坑
我最开始学习OpenCV的时候,网上搜索,获取某个像素点的值,大概是这样的, srcImg.at<uchar>(i, j) 当然这样可以获取,但是效率很低,也就是速度很慢,然后网上搜索了第 ...
- Python+OpenCV 图像处理系列(4)—— 图像像素的读写、算术运算、逻辑运算及像素的统计
1. 像素的读写 可以根据像素的行和列的坐标获取它的像素值.对 BGR 图像而言,返回值为 B,G,R 的值. img.shape 可以获取图像的形状.它的返回值是一个包含行数 h,列数 w,通道数 ...
- opencv(C++) 视频处理,通过三通道像素值平均 将视频分辨率缩小为原来的一半
项目要求: 将一个 1920 * 1080 的视频压缩为 960 * 540 的视频,帧率不变.将每个 2 * 2 相邻像素点的像素值求平均,变成一个新的像素点(即 2 * 2 的平均池化). 程序中 ...
- OpenCV 笔记(06)— Mat 结构、像素值存储方法、创建 Mat 对象各种方法、Mat 对象的运算
数字图像中的每个点都称为像素(对于图像元素),并且每个像素可以存储一个或多个值,这取决于它是否是仅存储一个值的黑白图像(也称为二进制图像,比如只存储0或1),还是存储两个值的灰度图像,或者是存储三个值 ...
- opencv(2)- 处理像素值
opencv中使用Mat数据类型表示图像,这是类似int.float等传统类型的一种opencv中定义的数据类型. opencv常见的数据类型: point:代表二维点,用于图像坐标点.如point( ...
- OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co
OpenCV学习笔记(四十一)--再看基础数据结构core 记得我在OpenCV学习笔记(四)--新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马 ...
- opencv C++ 三重for循环遍历RGB图像像素(逐像素操作、操作像素值、遍历像素遍历)at<typename>(i,j)、灰度图at<uchar>、at<Vec3b>、at<Vec3F>
示例:数组遍历法at<typename>(i,j) -- 其中一种方法(速度可能并不是很快),如果对速度有要求可查看参考文章2里的其他方法 #include <opencv2/ope ...
- opencv获得图片的像素宽度_OpenCV中获取图像某一像素值
Jquery中文网 > 脚本编程 > C语言 > 正文 OpenCV中获取图像某一像素值 OpenCV中获取图像某一像素值 发布时间:2018-12-01 编辑:www.jq ...
最新文章
- Windows 64位下安装Redis详细教程
- 深度学习中常用的误差方法
- Linux工具快速上手,Linux很实用命令
- 用python做一些excel的事情,实现数据自动化
- map for循环_如何用Map、Filter和Reduce替换Python For循环?
- 北邮高级语言设计基于java期末_北邮《高级语言程序设计》第三次阶段作业带答案...
- Elasticsearch架构原理
- Taro+react开发(65):h5全局重置背景样式
- 我们为什么会爱上一个人?
- 信息学奥赛一本通(1056:点和正方形的关系)
- 程序设计基础要用计算机吗,计算机二级公共基础知识|程序设计基础
- 数据库增删改查工具类 以及C3P0开源的JDBC连接池操作
- Python的Turtle绘制纳兹咩的娘口三三
- 基于JAVA的超市库存管理系统
- 流媒体-RTMP协议-librtmp库学习(二)
- 软件测试学习书籍8本【经典推荐】
- 头像框DIY制作小程序源码王者吃鸡等气泡头像框在线生成源码
- 大数据 - MapReduce编程案例 -BH3
- Mininet系列实验(五):Mininet设置带宽之简单性能测试
- 企业级服务器硬盘和,企业级硬盘与nas硬盘区别是什么,性能哪个好