亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

绥江县| 桃江县| 东安县| 应城市| 荃湾区| 常宁市| 牡丹江市| 尉氏县| 涿鹿县| 乌鲁木齐市| 荣成市| 广灵县| 林芝县| 涞源县| 绵阳市| 伊吾县| 池州市| 枣庄市| 河池市| 石渠县| 年辖:市辖区| 永寿县| 衢州市| 如皋市| 夏邑县| 稷山县| 东城区| 高台县| 四川省| 望城县| 五大连池市| 嫩江县| 隆德县| 九江县| 乾安县| 迭部县| 安义县| 鸡泽县| 新蔡县| 南华县| 广西|