ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OpenCv 010---图像像素值统计

2019-07-08 09:51:55  阅读:217  来源: 互联网

标签:%. minLoc param 像素 010 OpenCv 2f printf mean


---恢复内容开始---

1 前备知识

(1)标准方差

简单来说,标准差是一组数据平均值分散程度的一种度量。一个较大的标准差,代表大部分数值和其平均值之间差异较大;一个较小的标准差,代表这些数值较接近平均值。

2 所用到的主要OpenCv API

/** @brief Finds the global minimum and maximum in an array.

The function cv::minMaxLoc finds the minimum and maximum element values and their positions. The

@param src input single-channel array.
@param minVal pointer to the returned minimum value; NULL is used if not required.
@param maxVal pointer to the returned maximum value; NULL is used if not required.
@param minLoc pointer to the returned minimum location (in 2D case); NULL is used if not required.
@param maxLoc pointer to the returned maximum location (in 2D case); NULL is used if not required.
@param mask optional mask used to select a sub-array.
@sa max, min, compare, inRange, extractImageCOI, mixChannels, split, Mat::reshape
*/

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

 

/** Calculates a mean and standard deviation of array elements.

@param src input array that should have from 1 to 4 channels so that the results can be stored in
Scalar_ 's.
@param mean output parameter: calculated mean value.
@param stddev output parameter: calculated standard deviation.
@param mask optional operation mask.
@sa countNonZero, mean, norm, minMaxLoc, calcCovarMatrix
*/

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

3 程序代码

#include"opencv2\opencv.hpp"
#include"iostream"

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
    Mat srcGray = imread("G:\\CVworkstudy\\program_wwx\\研习社140课时\\ZhaiZhigang140\\lena.jpg", IMREAD_GRAYSCALE);
    if (srcGray.empty())
    {
        printf("Could not load image...\n");
        return -1;
    }
    namedWindow("grayImg");
    imshow("grayImg", srcGray);
    double minVal, maxVal;
    Point minLoc, maxLoc;
    minMaxLoc(srcGray, &minVal, &maxVal, &minLoc, &maxLoc, Mat());
    printf("MinVal:%.2f,MaxVal:%.2f\n", minVal, maxVal);
    printf("MinLoc:(%d,%d)", minLoc.x, minLoc.y);
    printf("MaxLoc:(%d,%d)\n", maxLoc.x, maxLoc.y);

    Mat srcRgb = imread("G:\\CVworkstudy\\program_wwx\\研习社140课时\\ZhaiZhigang140\\lena.jpg");
    if (srcRgb.empty())
    {
        printf("Could not load Image...\n");
        return -1;
    }
    namedWindow("RgbImg");
    imshow("RgbImg", srcRgb);
    Mat means,stdDevs;
    meanStdDev(srcRgb, means, stdDevs);
    printf("blue channel>>> mean:%.2f,stdDev:%.2f\n", means.at<double>(0, 0), stdDevs.at<double>(0, 0));
    printf("green channel>>>mean:%.2f,stdDev:%.2f\n", means.at<double>(1, 0), stdDevs.at<double>(1, 0));
    printf("red channel>>>mean:%.2f,stdDev:%.2f\n", means.at<double>(2, 0),stdDevs.at<double>(2,0));
    waitKey(0);
    return 0;
}

4 运行结果

 

 

5 扩展及注意事项

NULL

标签:%.,minLoc,param,像素,010,OpenCv,2f,printf,mean
来源: https://www.cnblogs.com/Vince-Wu/p/11149381.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有