• Mat对象的像素信息统计


    Mat对象的通道信息和长宽信息

     1 Mat src = imread("F:/opencv4.1.0/sources/samples/data/orange.jpg",IMREAD_GRAYSCALE);
     2 if (src.empty())
     3 {
     4   printf("could not find image!");
     5   return -1;
     6 }
     7 namedWindow("input", WINDOW_AUTOSIZE);
     8 imshow("input",src);
     9 int w = src.cols;
    10 int h = src.rows;
    11 int ch = src.channels();

    获取图像的最大最小像素值和所在的位置

    1 double min_val, max_val;
    2 Point minLoc, maxLoc;
    3 minMaxLoc(src, &min_val, &max_val, &minLoc, &maxLoc);
    4 printf("min: %.2f,max: %.2f
    ", min_val, max_val);

    如果使用minMaxLoc,需要使用单通道图像,或者用reshape函数将多通道图像转为单通道。

    参数说明:

    • 参数1 a 输入单通道矩阵.

    • 参数2 minVal 返回最小值的指针; 如果不需要输入NULL.

    • 参数3 maxVal 返回最大值的指针; 如果不需要输入NULL.

    • 参数4 minIdx 返回最小值位置的指针 ((n维情况下); 如果不需要输入NULL. 否则,它必须指向src.dims元素的一个矩阵, 每个维度里最小元素的坐标按顺序存储.

    • 参数5 maxIdx 返回最大值位置的指针 ((n维情况下); 如果不需要输入NULL.

    均值信息使用mean函数,方差使用meanStdDev函数

     1 //均值方差
     2 Scalar s= mean(src1);
     3 printf("value: %.2f %.2f %.2f
    ",s[0],s[1],s[2]);
     4 
     5 Mat mm, mstd;
     6 meanStdDev(src1, mm, mstd);
     7 int rows = mstd.rows;
     8 printf("rows : %d
    ", rows);
     9 printf("stddev : %.2f, %.2f, %.2f
    ", mstd.at<double>(0, 0),
    10 mstd.at<double>(1, 0), mstd.at<double>(2, 0));
  • 相关阅读:
    13.sqoop的安装
    12.Flume的安装
    11.把文本文件的数据导入到Hive表中
    10.hive安装
    9.centos7 安装mysql
    8.时间同步
    7.编写mapreduce案例
    mysql中如何处理字符
    装箱拆箱隐含的问题
    何谓幂等性
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/15416881.html
Copyright © 2020-2023  润新知