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

OpenCV機(jī)器學(xué)習(xí)MeanShift算法筆記分享

 更新時(shí)間:2021年09月01日 16:00:41   作者:liyuanbhu  
這篇文章主要介紹了OpenCV機(jī)器學(xué)習(xí)MeanShift算法筆記分享,有需要的朋友可以借鑒參考下,希望可以對(duì)各位讀者的OpenCV算法學(xué)習(xí)能夠有所幫助

MeanShift算法

Mean shift 是一種機(jī)器學(xué)習(xí)算法,并不僅僅局限于圖像上的應(yīng)用。關(guān)于 Mean shift 算法介紹的書和文章很多,這里就不多介紹了。簡單的說,Meanshift 算法是一種迭代算法,需要給一個(gè)初始的區(qū)域,然后這個(gè)算法會(huì)反復(fù)的調(diào)整這個(gè)區(qū)域,使得這個(gè)區(qū)域最吻合我們期望的特征。

OpenCV 中有兩處用到了 Mean Shift 。分別是:

pyrMeanShiftFiltering

meanShift

這里只介紹第二個(gè)函數(shù)的使用方法。

我們的原始圖像還是上次那個(gè)向日葵的圖像,我們選中其中一朵向日葵來計(jì)算 Histogram,但是這次我們計(jì)算 Hue 通道的 Histogram:

在這里插入圖片描述

之后用這個(gè)直方圖數(shù)據(jù)在另外一個(gè)圖像中用 Meanshift 算法去找向日葵。

下面是代碼,首先加載原始圖像。在原始圖像中找到向日葵,計(jì)算向日葵區(qū)域的 Histogram。

    cv::Mat image = cv::imread("D:\\向日葵.jpg");
    cv::Mat imageROI = image(cv::Rect(130, 250, 75, 75));
    ColorHistogram hist;
    cv::Mat h = hist.getHueHistogram(imageROI, 65);
    cv::imshow("pic", image);
    ContentFinder finder;
    finder.setHistogram(h);
    finder.setThreshold(-1.0f);

之后加載我們要探測(cè)的圖像,做 backproject,得到概率分布圖。

    cv::Mat image2 = cv::imread("D:\\02.jpg");
    cv::Mat hsv;
    cv::cvtColor(image2, hsv, CV_BGR2HSV);
    int ch[1] = {0};
    cv::Mat probImage = finder.find(hsv, 0.0, 180, ch);
    cv::Mat img_color;
    cv::applyColorMap(probImage, img_color, cv::COLORMAP_JET);
    cv::imshow("backproject", img_color);

在這里插入圖片描述

最后 Meanshift 就是在右圖中找出概率最大的那個(gè)區(qū)域。對(duì)于這個(gè)問題來說,其實(shí)做個(gè)遍歷就行。

meanshift 相比遍歷效率更高。但是如果初始區(qū)域選的不好,有可能會(huì)找不到向日葵所在的區(qū)域。

所以meanshift 并不是萬能的。

    cv::Rect rect(100, 100, 200, 200);
    cv::rectangle(image2, rect, cv::Scalar(255,0,0));
//    cv::TermCriteria criteria(cv::TermCriteria::MAX_ITER, 30, 1);
    cv::TermCriteria criteria(cv::TermCriteria::MAX_ITER | cv::TermCriteria::EPS,
                              10,
                              1);
    cv::meanShift(probImage, rect, criteria);
    cv::rectangle(image2, rect, cv::Scalar(0,0,255));
    cv::imshow("image2", image2);

下面是輸出結(jié)果,藍(lán)框是我們隨便選的初始區(qū)域,紅框是得到的結(jié)果??梢钥吹綔?zhǔn)確的找到了向日葵所在區(qū)域。

在這里插入圖片描述

如果我們初始區(qū)域選的不太好,就會(huì)找不到向日葵。比如下面的代碼。

    cv::Rect rect(0, 0, 200, 200);
    cv::rectangle(image2, rect, cv::Scalar(255,0,0));
    cv::TermCriteria criteria(cv::TermCriteria::MAX_ITER | cv::TermCriteria::EPS,
                              10,
                              1);
    cv::meanShift(probImage, rect, criteria);
    cv::rectangle(image2, rect, cv::Scalar(0,0,255));
    cv::imshow("image2", image2);

在這里插入圖片描述

可以看到迭代了10次,但是區(qū)域一點(diǎn)沒動(dòng)。一般來說我們可以隨機(jī)選擇初始區(qū)域,如果一個(gè)區(qū)域 meanshift失敗了,就再隨機(jī)選另一個(gè)區(qū)域。這樣試幾次就能得到不錯(cuò)的結(jié)果。

以上就是OpenCV機(jī)器學(xué)習(xí)MeanShift算法筆記分享的詳細(xì)內(nèi)容,更多關(guān)于OpenCV機(jī)器學(xué)習(xí)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解python上傳文件和字符到PHP服務(wù)器

    詳解python上傳文件和字符到PHP服務(wù)器

    本篇內(nèi)容主要給大家介紹了在python中上傳字符或者文件到PHP服務(wù)器的相關(guān)實(shí)現(xiàn)代碼,如果你正好用得到,一起學(xué)習(xí)下。
    2017-11-11
  • python opencv將表格圖片按照表格框線分割和識(shí)別

    python opencv將表格圖片按照表格框線分割和識(shí)別

    這篇文章主要介紹了python opencv將表格圖片按照表格框線分割和識(shí)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Python 中Django安裝和使用教程詳解

    Python 中Django安裝和使用教程詳解

    這篇文章主要介紹了python中Django安裝和使用教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 基于selenium及python實(shí)現(xiàn)下拉選項(xiàng)定位select

    基于selenium及python實(shí)現(xiàn)下拉選項(xiàng)定位select

    這篇文章主要介紹了基于selenium及python實(shí)現(xiàn)下拉選項(xiàng)定位select,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Python 遍歷循環(huán)詳細(xì)

    Python 遍歷循環(huán)詳細(xì)

    這篇文章主要介紹的是Python 遍歷循環(huán),遍歷循環(huán)可理解為從遍歷結(jié)構(gòu)中逐一提取元素,放在循環(huán)變量中,對(duì)于所提取的每個(gè)元素執(zhí)行一次語句塊。由保留字for和in組成,完整遍歷所有元素后結(jié)束每次循環(huán),所獲得元素放入循環(huán)變量,并執(zhí)行一次語句塊,下面就來看文章介紹
    2021-10-10
  • Django ORM 自定義 char 類型字段解析

    Django ORM 自定義 char 類型字段解析

    這篇文章主要介紹了Django ORM 自定義 char 類型字段解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python連接、操作mongodb數(shù)據(jù)庫的方法實(shí)例詳解

    python連接、操作mongodb數(shù)據(jù)庫的方法實(shí)例詳解

    這篇文章主要介紹了python連接、操作mongodb數(shù)據(jù)庫的方法,結(jié)合實(shí)例形式詳細(xì)分析了Python針對(duì)MongoDB數(shù)據(jù)庫的連接、查詢、排序等相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • 對(duì)numpy中數(shù)組元素的統(tǒng)一賦值實(shí)例

    對(duì)numpy中數(shù)組元素的統(tǒng)一賦值實(shí)例

    下面小編就為大家分享一篇對(duì)numpy中數(shù)組元素的統(tǒng)一賦值實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python3之亂碼\xe6\x97\xa0\xe6\xb3\x95處理方式

    Python3之亂碼\xe6\x97\xa0\xe6\xb3\x95處理方式

    這篇文章主要介紹了Python3之亂碼\xe6\x97\xa0\xe6\xb3\x95處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python使用mongodb保存爬取豆瓣電影的數(shù)據(jù)過程解析

    Python使用mongodb保存爬取豆瓣電影的數(shù)據(jù)過程解析

    這篇文章主要介紹了Python使用mongodb保存爬取豆瓣電影的數(shù)據(jù)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

山阳县| 义乌市| 岫岩| 抚宁县| 吉林省| 灌南县| 错那县| 柘荣县| 翼城县| 屯门区| 太仆寺旗| 丰镇市| 从江县| 石台县| 靖远县| 长寿区| 张北县| 夏邑县| 敦煌市| 铁岭市| 珲春市| 佳木斯市| 平南县| 乳源| 来安县| 叙永县| 琼结县| 金华市| 喀喇| 景谷| 彰化市| 南郑县| 乌审旗| 永善县| 易门县| 九江市| 平定县| 大姚县| 上栗县| 汝州市| 平谷区|