Opencv -- 13像素值统计及平均值和方差的意义
生活随笔
收集整理的這篇文章主要介紹了
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像素值统计及平均值和方差的意义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动易百度快照劫持,百度快照被劫持了怎么办
- 下一篇: 金山词霸2010牛津旗舰破解版【最完美的