91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++?OpenCV中如何進行圖像像素值統計

發布時間:2022-01-24 09:13:42 來源:億速云 閱讀:531 作者:柒染 欄目:開發技術

小編今天帶大家了解C++ OpenCV中如何進行圖像像素值統計,文中知識點介紹的非常詳細。覺得有幫助的朋友可以跟著小編一起瀏覽文章的內容,希望能夠幫助更多想解決這個問題的朋友找到問題的答案,下面跟著小編一起深入學習“C++ OpenCV中如何進行圖像像素值統計”的知識吧。

前言

opencv知識點:

圖像像素最小/最大值 - minMaxLoc

圖像像素均值/標準差 - meanStdDev

1.常用的像素值統計

在圖像分析的時候,我們經常需要對單通道圖像的像素進行統計,以下4種是比較常用的

最小值(min)

最大值(max)

平均值(mean)

標準差(standard deviation)

要求這4種統計,我們就要用到以下兩個API

  • minMaxLoc

  • meanStdDev

這兩個API非常有用,日后有很多地方用得到

2.像素值統計計算

接下來,我們來應用兩個API,求取4種像素值統計

首先是最小值,最大值

//函數定義
void pixel_statistics_demo(Mat& image);
//函數實現
void QuickDemo::pixel_statistics_demo(Mat& image) {

    double minv, maxv;
    Point minLoc, maxLoc;

    std::vector<Mat> mvt;
    split(image, mvt);

    /*
    minMaxLoc
        求取單通道圖像像素的最小值,最大值
            共6個參數
                第1個參數 輸入單通道圖像
                第2個參數 輸出最小值
                第3個參數 輸出最大值
                第4個參數 輸出最小值點的坐標
                第5個參數 輸出最大值點的坐標
            
                第6個參數 輸入圖像的子數組(有時候我們會求取ROI區域的最小/最大值,就會傳入mask圖像)
                        (這里的子數組,是一種圖像掩模,可以實現加東西/扣東西) 
    */
    for (int i = 0; i < mvt.size(); i++) {
        minMaxLoc(mvt[i], &minv, &maxv, &minLoc, &maxLoc);
        std::cout << "通道:" << i << " 最小值:" << minv << " 最大值:" << maxv << std::endl;
    }

}

C++?OpenCV中如何進行圖像像素值統計

然后是,平均值和標準差

void QuickDemo::pixel_statistics_demo(Mat& image) {

    Mat mean, stddev;

    meanStdDev(image, mean, stddev);
    /*
    meanStdDev
        求取平均值,標準差
            共4個參數
                第1個參數 輸入
                第2個參數 輸出圖像像素的平均值,每個通道都會輸出一個
                第3個參數 輸出圖像像素的標準差,每個通道都會輸出一個
                
                第4個參數 輸入圖像的子數組(有時候我們會求取ROI區域的平均值/標準差,就會傳入mask圖像)
                        (這里的子數組,是一種圖像掩模,可以實現加東西/扣東西) 
    */
    std::cout << "平均值" << std::endl << mean << std::endl;
    std::cout << "標準差" << std::endl<<stddev << std::endl;
}

C++?OpenCV中如何進行圖像像素值統計

上圖中,輸出平均值和標準差,是把所有通道的都輸出了,那如果怎么輸出單通道的呢?

很簡單,只要用到Mat::at

//opencv為了保證精度,平均值,標準差矩陣的數據類型是double類型
std::cout<<"平均值"<< mean.at<double>(0, 0)<<std::endl;
std::cout << "標準差" << stddev.at<double>(0, 0) << std::endl;

C++?OpenCV中如何進行圖像像素值統計

3.圖像統計值分析

這里簡單提一下圖像分析的事情

圖像的平均值和標準差會給我們帶來一定的信息

比如:當平均值恒定,標準差很小時,我們可以想到是基本純色的圖片,也就是低對比度的圖

在圖像分析的時候,我們關注圖像的有效信息,也就是ROI區域。

通過圖像像素的統計值,我們就可以對圖像的有效信息作出判斷。

比如,當圖像標準差很小時,圖像所攜帶的有效信息會很少,我們就要對圖像進行篩選,通過一些手段過濾掉一些東西。

本課所用API查閱

1.minMaxLoc

C++?OpenCV中如何進行圖像像素值統計

C++?OpenCV中如何進行圖像像素值統計

C++?OpenCV中如何進行圖像像素值統計

C++?OpenCV中如何進行圖像像素值統計

2.meanStdDev

C++?OpenCV中如何進行圖像像素值統計

C++?OpenCV中如何進行圖像像素值統計

3.Mat::at

雖然有12種重載,但只有6種傳參方式

1.單維度坐標&mdash;&mdash;i0:沿維度 0 的索引

C++?OpenCV中如何進行圖像像素值統計

C++?OpenCV中如何進行圖像像素值統計

C++?OpenCV中如何進行圖像像素值統計

2.雙維度坐標&mdash;&mdash;row 沿維度 0 的索引 ;col 沿維度 1 的索引

C++?OpenCV中如何進行圖像像素值統計

3.三維度坐標&mdash;&mdash;i0 沿維度 0 的索引;i1 沿維度 1 的索引;i2 沿維度 2 的索引

C++?OpenCV中如何進行圖像像素值統計

4.維度數組坐標&mdash;&mdash;int數組

C++?OpenCV中如何進行圖像像素值統計

5.維度數組坐標&mdash;&mdash;vector數組

C++?OpenCV中如何進行圖像像素值統計

6.點的坐標&mdash;&mdash;point類

C++?OpenCV中如何進行圖像像素值統計

感謝大家的閱讀,以上就是“C++ OpenCV中如何進行圖像像素值統計”的全部內容了,學會的朋友趕緊操作起來吧。相信億速云小編一定會給大家帶來更優質的文章。謝謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐昌市| 崇左市| 邢台县| 红河县| 昌平区| 延吉市| 洮南市| 江川县| 长丰县| 哈密市| 义乌市| 大关县| 盱眙县| 昌宁县| 晋州市| 烟台市| 兴业县| 宁陕县| 融水| 商丘市| 吴堡县| 天祝| 长治县| 读书| 时尚| 上犹县| 南充市| 宁明县| 长宁区| 文化| 富平县| 电白县| 清流县| 永吉县| 司法| 天全县| 泰顺县| 通州区| 长垣县| 新宾| 寻乌县|