最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++ OpenCV學(xué)習(xí)之圖像像素值統(tǒng)計(jì)

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

opencv知識(shí)點(diǎn):

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

圖像像素均值/標(biāo)準(zhǔn)差 - meanStdDev

本課所解決的問題:

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

如何獲取圖像像素的均值/標(biāo)準(zhǔn)差?

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

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

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

最小值(min)

最大值(max)

平均值(mean)

標(biāo)準(zhǔn)差(standard deviation)

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

  • minMaxLoc
  • meanStdDev

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

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

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

首先是最小值,最大值

//函數(shù)定義
void pixel_statistics_demo(Mat& image);
//函數(shù)實(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個(gè)參數(shù)
?? ??? ??? ??? ?第1個(gè)參數(shù) 輸入單通道圖像
?? ??? ??? ??? ?第2個(gè)參數(shù) 輸出最小值
?? ??? ??? ??? ?第3個(gè)參數(shù) 輸出最大值
?? ??? ??? ??? ?第4個(gè)參數(shù) 輸出最小值點(diǎn)的坐標(biāo)
?? ??? ??? ??? ?第5個(gè)參數(shù) 輸出最大值點(diǎn)的坐標(biāo)
?? ??? ??? ?
?? ??? ??? ??? ?第6個(gè)參數(shù) 輸入圖像的子數(shù)組(有時(shí)候我們會(huì)求取ROI區(qū)域的最小/最大值,就會(huì)傳入mask圖像)
?? ??? ??? ??? ??? ??? ?(這里的子數(shù)組,是一種圖像掩模,可以實(shí)現(xiàn)加?xùn)|西/扣東西)?
?? ?*/
?? ?for (int i = 0; i < mvt.size(); i++) {
?? ??? ?minMaxLoc(mvt[i], &minv, &maxv, &minLoc, &maxLoc);
?? ??? ?std::cout << "通道:" << i << " 最小值:" << minv << " 最大值:" << maxv << std::endl;
?? ?}

}

然后是,平均值和標(biāo)準(zhǔn)差

void QuickDemo::pixel_statistics_demo(Mat& image) {

?? ?Mat mean, stddev;

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

上圖中,輸出平均值和標(biāo)準(zhǔn)差,是把所有通道的都輸出了,那如果怎么輸出單通道的呢?

很簡(jiǎn)單,只要用到Mat::at

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

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

這里簡(jiǎn)單提一下圖像分析的事情

圖像的平均值和標(biāo)準(zhǔn)差會(huì)給我們帶來一定的信息

比如:當(dāng)平均值恒定,標(biāo)準(zhǔn)差很小時(shí),我們可以想到是基本純色的圖片,也就是低對(duì)比度的圖

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

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

比如,當(dāng)圖像標(biāo)準(zhǔn)差很小時(shí),圖像所攜帶的有效信息會(huì)很少,我們就要對(duì)圖像進(jìn)行篩選,通過一些手段過濾掉一些東西。

本課所用API查閱

1.minMaxLoc

2.meanStdDev

3.Mat::at

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

1.單維度坐標(biāo)——i0:沿維度 0 的索引

2.雙維度坐標(biāo)——row 沿維度 0 的索引 ;col 沿維度 1 的索引

3.三維度坐標(biāo)——i0 沿維度 0 的索引;i1 沿維度 1 的索引;i2 沿維度 2 的索引

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

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

6.點(diǎn)的坐標(biāo)——point類

以上就是C++ OpenCV學(xué)習(xí)之圖像像素值統(tǒng)計(jì)的詳細(xì)內(nèi)容,更多關(guān)于OpenCV像素值統(tǒng)計(jì)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • c語言printf函數(shù)的使用詳解

    c語言printf函數(shù)的使用詳解

    本篇文章是對(duì)c語言中printf函數(shù)的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++深入學(xué)習(xí)之徹底理清重載函數(shù)匹配

    C++深入學(xué)習(xí)之徹底理清重載函數(shù)匹配

    C++ 不允許變量重名,但是允許多個(gè)函數(shù)取相同的名字,只要參數(shù)表不同即可,這叫作函數(shù)的重載,下面這篇文章主要給大家介紹了關(guān)于C++深入學(xué)習(xí)之徹底理清重載函數(shù)匹配的相關(guān)資料,需要的朋友可以參考下
    2019-01-01
  • C++之list容器的解析與實(shí)現(xiàn)教程

    C++之list容器的解析與實(shí)現(xiàn)教程

    文章介紹了C++?STL中l(wèi)ist容器的特性:基于雙向循環(huán)鏈表,插入刪除高效但不支持排序,需用vector排序,迭代器模擬指針行為,刪除導(dǎo)致局部失效,對(duì)比vector,list適合動(dòng)態(tài)數(shù)據(jù),vector適合隨機(jī)訪問
    2025-09-09
  • 如何使用C++獲取指定的重載函數(shù)地址

    如何使用C++獲取指定的重載函數(shù)地址

    重載函數(shù)是完全不同的幾個(gè)函數(shù),有不同的函數(shù)地址,下面這篇文章主要給大家介紹了關(guān)于如何使用C++獲取指定的重載函數(shù)地址的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • C語言如何輸出中文

    C語言如何輸出中文

    這篇文章主要介紹了C語言如何輸出中文問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • opencv實(shí)現(xiàn)三幀差法解析

    opencv實(shí)現(xiàn)三幀差法解析

    這篇文章主要介紹了opencv實(shí)現(xiàn)三幀差法的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C++?QT實(shí)現(xiàn)獲取本機(jī)網(wǎng)卡信息

    C++?QT實(shí)現(xiàn)獲取本機(jī)網(wǎng)卡信息

    這篇文章主要為大家詳細(xì)介紹了如何利用qt自帶的QNetworkInterface接口以及c++Iphlpapi庫(kù),獲取當(dāng)前windows電腦下的網(wǎng)卡信息,需要的可以參考下
    2024-01-01
  • C++ xxx_cast實(shí)現(xiàn)轉(zhuǎn)換代碼實(shí)例解析

    C++ xxx_cast實(shí)現(xiàn)轉(zhuǎn)換代碼實(shí)例解析

    這篇文章主要介紹了C++xxx_cast轉(zhuǎn)換代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 如何基于C語言socket編程實(shí)現(xiàn)TCP通信

    如何基于C語言socket編程實(shí)現(xiàn)TCP通信

    本文介紹了如何基于C語言socket編程實(shí)現(xiàn)TCP通信,下面小編來簡(jiǎn)單介紹下
    2019-05-05
  • c++仿函數(shù)和函數(shù)適配器的使用詳解

    c++仿函數(shù)和函數(shù)適配器的使用詳解

    這篇文章主要介紹了c++仿函數(shù)和函數(shù)適配器的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評(píng)論

斗六市| 茌平县| 张家口市| 怀宁县| 澄迈县| 高安市| 偃师市| 墨玉县| 库车县| 横山县| 福鼎市| 辽阳县| 枣强县| 安康市| 镇雄县| 聊城市| 贵州省| 海丰县| 嘉峪关市| 沁阳市| 万宁市| 淮安市| 西贡区| 淮滨县| 无棣县| 抚松县| 达州市| 巴彦淖尔市| 保定市| 当阳市| 云林县| 霞浦县| 鲁甸县| 镇江市| 揭西县| 宝丰县| 麟游县| 调兵山市| 精河县| 永福县| 兴海县|