求np矩阵像素的均值_Android OpenCV(三):图像像素值统计

647e4e0ea251befe0124d5850384dae4.png

图像像素值统计

  • 图像像素最大值、最小值以及位置
  • 图像均值、标准差

查找最大值、最小值

API

public static MinMaxLocResult minMaxLoc(Mat src, Mat mask)
  • 参数src:输入的图像矩阵
  • 参数mask:可选的掩码矩阵
  • 返回值 MinMaxLocResult:记录最小值、最大值及其位置
    public static class MinMaxLocResult {
    public double minVal;
    public double maxVal;
    public Point minLoc;
    public Point maxLoc;
    public MinMaxLocResult() {
    minVal=0; maxVal=0;
    minLoc=new Point();
    maxLoc=new Point();
    }
    }
  • 函数要求输入图像必须是单通道

寻找图像矩阵最大值最小值及其位置

由于只能输入单通道图片,所以先分离后执行计算操作

private fun minMaxLoc(source: Mat) {
    val bgrList = ArrayList<Mat>()
    Core.split(source, bgrList)

    var minLoc = Point()
    var maxLoc = Point()
    var minVal = 255.0
    var maxVal = 0.0
    var minCha = 0
    var maxCha = 0
    for (index in 0 until bgrList.size) {
        val tmp = Core.minMaxLoc(bgrList[index])
        if (tmp.minVal < minVal) {
            minVal = tmp.minVal
            minLoc = tmp.minLoc
            minCha = index
        }
        if (tmp.maxVal > maxVal) {
            maxVal = tmp.maxVal
            maxLoc = tmp.maxLoc
            maxCha = index
        }
    }
    val tmp =
        "最小值 = $minVal, 位于${minCha}通道${minLoc}n最大值 = $maxVal, 位于${maxCha}通道${maxLoc}n"
    message += tmp

    for (current in bgrList) {
        current.release()
    }
}

均值与标准差

概念

  • 均值反映了图像的亮度,均值越大说明图像亮度越大,反之越小;

c0fc23a3c18bd75563939b432705dcb8.png
  • 标准差又常称均方差,是离均差平方的算术平均数的平方根,用σ表示。在概率统计中最常使用作为统计分布程度上的测量。标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。标准差反映了图像像素值与均值的离散程度,标准差越大说明图像的质量越好。

b55f2b2dc22b4f32deb9bd19b2046b8f.png

API

public static void meanStdDev(Mat src, MatOfDouble mean, MatOfDouble stddev, Mat mask)
  • 参数src:输入的图像矩阵
  • 参数mean:输出图像像素均值矩阵
  • 参数stddev:输出的图像像素方差j矩阵
  • 参数mask:可选的掩码矩阵

计算图像矩阵均值和标准差

private fun meanStdDev(source: Mat) {
    val mean = MatOfDouble()
    val stdDev = MatOfDouble()
    Core.meanStdDev(source, mean, stdDev)
    val tmp = "平均值:${mean.toList()}n方差:${stdDev.toList()}n"
    message += tmp
    mean.release()
    stdDev.release()
}

计算结果

26692698b8f9d526b2156d82faf4660b.png

源码

https://github.com/onlyloveyd/LearningAndroidOpenCV​github.com

ed3da203f53776c6d9590cf27ce18ba7.gif
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值