欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ OpenCV學習之圖像像素值統(tǒng)計

 更新時間:2022年01月23日 16:23:03   作者:寒山拾不得  
在圖像分析的時候,我們經常需要對單通道圖像的像素進行統(tǒng)計。本文將主要介紹利用C++ OpenCV實現(xiàn)的圖像像素值統(tǒng)計的幾種方法,需要的可以參考一下

opencv知識點:

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

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

本課所解決的問題:

如何獲取圖像像素的最小/最大值?

如何獲取圖像像素的均值/標準差?

通過圖像像素統(tǒng)計值我們能干什么?

1.常用的像素值統(tǒng)計

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

最小值(min)

最大值(max)

平均值(mean)

標準差(standard deviation)

要求這4種統(tǒng)計,我們就要用到以下兩個API

  • minMaxLoc
  • meanStdDev

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

2.像素值統(tǒng)計計算

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

首先是最小值,最大值

//函數(shù)定義
void pixel_statistics_demo(Mat& image);
//函數(shù)實現(xiàn)
void QuickDemo::pixel_statistics_demo(Mat& image) {

?? ?double minv, maxv;
?? ?Point minLoc, maxLoc;

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

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

}

然后是,平均值和標準差

void QuickDemo::pixel_statistics_demo(Mat& image) {

?? ?Mat mean, stddev;

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

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

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

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

3.圖像統(tǒng)計值分析

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

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

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

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

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

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

本課所用API查閱

1.minMaxLoc

2.meanStdDev

3.Mat::at

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

1.單維度坐標——i0:沿維度 0 的索引

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

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

4.維度數(shù)組坐標——int數(shù)組

5.維度數(shù)組坐標——vector數(shù)組

6.點的坐標——point類

以上就是C++ OpenCV學習之圖像像素值統(tǒng)計的詳細內容,更多關于OpenCV像素值統(tǒng)計的資料請關注腳本之家其它相關文章!

相關文章

  • C++廣播通信實例

    C++廣播通信實例

    這篇文章主要介紹了C++實現(xiàn)廣播通信的方法,實例講述了C++ socket廣播通信的原理與實現(xiàn)方法,需要的朋友可以參考下
    2014-10-10
  • C語言中qsort函數(shù)用法及用冒泡排序實現(xiàn)

    C語言中qsort函數(shù)用法及用冒泡排序實現(xiàn)

    qsort函數(shù)是由C語言提供的標準庫函數(shù), 它的實現(xiàn)思想是快速排序。這篇文章主要介紹了C語言中qsort函數(shù)用法及用冒泡排序實現(xiàn)qsort函數(shù)功能,需要的可以參考一下
    2022-10-10
  • C++封裝遠程注入類CreateRemoteThreadEx實例

    C++封裝遠程注入類CreateRemoteThreadEx實例

    這篇文章主要介紹了C++封裝遠程注入類CreateRemoteThreadEx實例,詳細講述了注入DLL到指定的地址空間以及從指定的地址空間卸載DLL的方法,需要的朋友可以參考下
    2014-10-10
  • c語言常見圖片格式判斷實例

    c語言常見圖片格式判斷實例

    這篇文章介紹了c語言常見圖片格式判斷實例,有需要的朋友可以參考一下
    2013-09-09
  • C++11顯示類型轉換的優(yōu)點

    C++11顯示類型轉換的優(yōu)點

    這篇文章主要介紹了C++11顯示類型轉換的優(yōu)點,幫助大家更好的理解和學習c++,感興趣的朋友可以了解下
    2020-08-08
  • C++實現(xiàn)LeetCode(198.打家劫舍)

    C++實現(xiàn)LeetCode(198.打家劫舍)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(198.打家劫舍),本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • c++實現(xiàn)md5加密的代碼

    c++實現(xiàn)md5加密的代碼

    這篇文章主要介紹了c++實現(xiàn)md5加密的實例代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 利用C++如何實現(xiàn)一個阻塞隊列詳解

    利用C++如何實現(xiàn)一個阻塞隊列詳解

    這篇文章主要給大家介紹了關于利用C++如何實現(xiàn)一個阻塞隊列的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • QT出現(xiàn)沒有MySQL驅動手動編譯詳細步驟

    QT出現(xiàn)沒有MySQL驅動手動編譯詳細步驟

    這篇文章主要給大家介紹了關于QT出現(xiàn)沒有MySQL驅動手動編譯詳細步驟的相關資料,文中通過圖文介紹的非常詳細,對大家學習或者使用QT具有一定的參考學習價值,需要的朋友可以參考下
    2023-04-04
  • C++菱形繼承和虛繼承的實現(xiàn)

    C++菱形繼承和虛繼承的實現(xiàn)

    本文主要介紹了C++菱形繼承和虛繼承的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06

最新評論