opencv中封裝了一個專門用于求解cv::Mat均值的函數(shù),即cv::mean(cv::Mat),該函數(shù)會得到Mat中各個通道的均值,若要獲取指定通道的均值,做進(jìn)一步解析即可。
下面給出opencv的官方說明:
Operations on Arrays
Scalar mean(InputArray src, InputArray mask = noArray());
#includeiostream> #includeopencv2/opencv.hpp> #includectime> using namespace std; using namespace cv; int main(void) { cv::Mat src = cv::Mat::zeros(5, 5, CV_32FC1); cv::Mat mask = cv::Mat::zeros(5, 5, CV_8UC1); int rows = src.rows; int cols = src.cols; cv::circle(mask, cv::Point(2, 2), 2, 255, -1); int number = 0; float sum = 0.0f; for (int i = 0; i rows; ++i) { for (int j = 0; j cols; ++j) { if (mask.atuchar>(i, j) == 255) { src.atfloat>(i, j) = rand() % 255+rand()%100/100.0f; sum += src.atfloat>(i, j); number++; } } } float result=cv::mean(src, mask==255)[0]; float mean_ = sum / number; cout "result:" result endl; cout "mean_" mean_ endl; system("pause"); return 0; }
圖1 自定義矩陣數(shù)據(jù)
圖2 掩膜
圖3 計算結(jié)果對比
為了便于對比數(shù)據(jù),創(chuàng)建了一個5*5的矩陣和掩膜,進(jìn)行了平均值的計算和mean函數(shù)的調(diào)用,所得結(jié)果一致,上述測試可供大家了解函數(shù)的使用~
到此這篇關(guān)于OpenCV計算平均值cv::mean的文章就介紹到這了,更多相關(guān)OpenCV計算平均值cv::mean內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:七臺河 辛集 贛州 西安 濰坊 雅安 許昌 渭南
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《OpenCV計算平均值cv::mean實例代碼》,本文關(guān)鍵詞 OpenCV,計算,平均值,mean,實例,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。