国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenCV minMaxLoc()函數(shù)找出圖像中最小值最大值

這篇具有很好參考價(jià)值的文章主要介紹了OpenCV minMaxLoc()函數(shù)找出圖像中最小值最大值。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

OpenCV 找出圖像中最小值最大值函數(shù)minMaxLoc的使用
功能:從一個(gè)矩陣中找出全局的最大值和最小值。

函數(shù)cv::minMaxLoc找出最大和最小元素的值和他們的位置。極值是遍歷整個(gè)矩陣找到,或者當(dāng)掩碼不是一個(gè)空矩陣時(shí),是通過遍歷指定矩陣區(qū)域找到。

函數(shù)不適用于多通道矩陣,如果需要遍歷所有的通道來找到最大和最小值,首先使用函數(shù)Mat::reshape轉(zhuǎn)換為單通道矩陣。或者你可以使用函數(shù) extractImageCOI ,mixChannels , or split 來提取特定通道。

1 函數(shù)解析

1.1 函數(shù)原型1

CV_EXPORTS_W void minMaxLoc(InputArray src, CV_OUT double* minVal,
                             CV_OUT double* maxVal = 0, CV_OUT Point* minLoc = 0,
                             CV_OUT Point* maxLoc = 0, InputArray mask = noArray());

參數(shù)說明:

參數(shù)1:InputArray類型的src,輸入單通道數(shù)組(圖像)。
參數(shù)2double*類型的minVal,返回最小值的指針。若無須返回,此值置為NULL。
參數(shù)3double*類型的maxVal,返回最大值的指針。若無須返回,此值置為NULL。
參數(shù)4:Point*類型的minLoc,返回最小位置的指針(二維情況下)。若無須返回,此值置為NULL。
參數(shù)5:Point*類型的maxLoc,返回最大位置的指針(二維情況下)。若無須返回,此值置為NULL。
參數(shù)6:InputArray類型的mask,用于選擇子陣列的可選掩膜。

1.2 函數(shù)原型2

 CV_EXPORTS void minMaxIdx(InputArray src, double* minVal, double* maxVal = 0,
                           int* minIdx = 0, int* maxIdx = 0, InputArray mask = noArray());

參數(shù)說明:

參數(shù)1 src 輸入單通道矩陣.

參數(shù)1 minVal 返回最小值的指針; 如果不需要輸入NULL.

參數(shù) maxVal 返回最大值的指針; 如果不需要輸入NULL.

參數(shù) minIdx 返回最小值位置的指針 ((n維情況下); 如果不需要輸入NULL. 否則,它必須指向src.dims元素的一個(gè)矩陣, 每個(gè)維度里最小元素的坐標(biāo)按順序存儲(chǔ).

參數(shù) maxIdx 返回最大值位置的指針 ((n維情況下); 如果不需要輸入NULL.

參數(shù) mask 指定矩陣區(qū)域.

注意:
在稀疏矩陣中,最小值是只能在非零元素中找到。

當(dāng)minIdx 不是NULL的時(shí)候,他必須有至少兩個(gè)元素(同maxIdx),即使src是一個(gè)單行或者單列矩陣。在OpenCV (跟隨MATLAB)中每個(gè)矩陣至少要有兩個(gè)維度。單列矩陣是Mx1 矩陣(因此 minIdx/maxIdx將是(i1,0)/(i2,0)),單行矩陣是 1xN矩陣(因此minIdx/maxIdx 將是(0,j1)/(0,j2))。

1.2 函數(shù)原型3

 CV_EXPORTS void minMaxLoc(const SparseMat& a, double* minVal,
                           double* maxVal, int* minIdx = 0, int* maxIdx = 0);

參數(shù)說明:

參數(shù)1 a 輸入單通道矩陣.

參數(shù)2 minVal 返回最小值的指針; 如果不需要輸入NULL.

參數(shù)3 maxVal 返回最大值的指針; 如果不需要輸入NULL.

參數(shù)4 minIdx 返回最小值位置的指針 ((n維情況下); 如果不需要輸入NULL. 否則,它必須指向src.dims元素的一個(gè)矩陣, 每個(gè)維度里最小元素的坐標(biāo)按順序存儲(chǔ).

參數(shù)5 maxIdx 返回最大值位置的指針 ((n維情況下); 如果不需要輸入NULL.

2 示例

對(duì)"lena.png"圖像進(jìn)行三通道分離,
找出每個(gè)通道顏色的最小值和最大值
minmaxloc,opencv,計(jì)算機(jī)視覺,人工智能,算法

#include<opencv.hpp>
#include<iostream>
#include<string>
using namespace std;
using namespace cv;
int main() {
    Mat src = imread("lena.png");
    imshow("src", src);

    //通道分離
    vector<Mat>images;
    split(src, images);

    //計(jì)算各通道直方圖,并進(jìn)行統(tǒng)計(jì)
    //https://www.cnblogs.com/bjxqmy/p/12378312.html
    vector<Mat>bgr(3);
    int channels[] = { 0,1,2 };
    int histsize[] = { 10,10,10 };
    float r[] = { 0,255 };
    const float* ranges[] = { r,r,r };
    Scalar colors[] = { Scalar(255,0,0),Scalar(0,255,0),Scalar(0,0,255) };
    string names[] = { "藍(lán)色通道","綠色通道","紅色通道" };
    for (int i = 0; i < 3; i++) {
        calcHist(&src, 3, &channels[i], Mat(), bgr[i], 1, &histsize[i], &ranges[i], true);
        normalize(bgr[i], bgr[i], 1, 0, NORM_L1);//https://www.cnblogs.com/bjxqmy/p/12292421.html
        double mx, mn; Point pmx, pmn;
        minMaxLoc(bgr[i], &mn, &mx, &pmn, &pmx);

        double width = 255.0 / histsize[i];
        cout << names[i] << endl;
        cout << "數(shù)量最少的顏色范圍:[" << pmn.y * width << "," << (pmn.y + 1) * width << "] 占比:" << mn * 100 << "%" << endl;
        cout << "數(shù)量最多的顏色范圍:[" << pmx.y * width << "," << (pmx.y + 1) * width << "] 占比:" << mx * 100 << "%" << endl;
        cout << endl;

        imshow(names[i], images[i]);
    }
    waitKey(0);
}

minmaxloc,opencv,計(jì)算機(jī)視覺,人工智能,算法
minmaxloc,opencv,計(jì)算機(jī)視覺,人工智能,算法文章來源地址http://www.zghlxwxcb.cn/news/detail-714543.html

到了這里,關(guān)于OpenCV minMaxLoc()函數(shù)找出圖像中最小值最大值的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包