好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > OpenCV機器學習MeanShift算法筆記分享

OpenCV機器學習MeanShift算法筆記分享

熱門標簽:萊蕪電信外呼系統 企業微信地圖標注 沈陽防封電銷電話卡 地圖標注多個 鶴壁手機自動外呼系統違法嗎 高德地圖標注收入咋樣 怎么辦理400客服電話 銀川電話機器人電話 B52系統電梯外呼顯示E7

MeanShift算法

Mean shift 是一種機器學習算法,并不僅僅局限于圖像上的應用。關于 Mean shift 算法介紹的書和文章很多,這里就不多介紹了。簡單的說,Meanshift 算法是一種迭代算法,需要給一個初始的區域,然后這個算法會反復的調整這個區域,使得這個區域最吻合我們期望的特征。

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

pyrMeanShiftFiltering

meanShift

這里只介紹第二個函數的使用方法。

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

之后用這個直方圖數據在另外一個圖像中用 Meanshift 算法去找向日葵。

下面是代碼,首先加載原始圖像。在原始圖像中找到向日葵,計算向日葵區域的 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);

之后加載我們要探測的圖像,做 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 就是在右圖中找出概率最大的那個區域。對于這個問題來說,其實做個遍歷就行。

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

所以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);

下面是輸出結果,藍框是我們隨便選的初始區域,紅框是得到的結果。可以看到準確的找到了向日葵所在區域。

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

    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次,但是區域一點沒動。一般來說我們可以隨機選擇初始區域,如果一個區域 meanshift失敗了,就再隨機選另一個區域。這樣試幾次就能得到不錯的結果。

以上就是OpenCV機器學習MeanShift算法筆記分享的詳細內容,更多關于OpenCV機器學習的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 在OpenCV里使用Camshift算法的實現
  • python實現mean-shift聚類算法
  • Opencv基于CamShift算法實現目標跟蹤

標簽:湘西 呼倫貝爾 呼倫貝爾 葫蘆島 銀川 安慶 三亞 烏魯木齊

巨人網絡通訊聲明:本文標題《OpenCV機器學習MeanShift算法筆記分享》,本文關鍵詞  OpenCV,機器,學習,MeanShift,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《OpenCV機器學習MeanShift算法筆記分享》相關的同類信息!
  • 本頁收集關于OpenCV機器學習MeanShift算法筆記分享的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 隔着奶罩摸和伸进去摸哪里爽视频| 岳的肥白大粗腿| 婚上荤下| 夫妇当面交换电影完整版| 免费看国产曰批40分钟视频网站99| 月夜影视电影在线| 亚洲午夜在线观看| 被粗大job捣出了白浆gif | 久久夜夜视频| 爽?好大?快?深点影视| 黄污在线看| 人妻精品一区二区三区| jk足控福利国产在线播放| 黑人巨大三根一起进| 我的黑帮恋人电影在线观看| 国产91无套粉嫩白浆在线网站| 亚洲AⅤ欧美AⅤ综合AV鲁丝片| 国产精品网红| videosgrstv欧美| 日本免费一区二区三区dvd| 欧美日韩亚洲一区二区| 免费看扑克又疼又叫长视频| 仙子的修行萧曦月小说笔趣阁| 欧美 videos巨大hd| 美女被羞羞的网站| 免费看男女又大又粗又硬| 附近50岁丰满的妇女| 全黄色电影| 欧美三级一区二区| 国产91精品久久久久久久网曝门| 久久一区二区三区四区| 少妇久久人人爽人人爽人人片欧美 | 我的胸被揉得好爽| 69国产成人综合久久精| 国产99久一区二区三区A片| 亚洲午夜无码av| 被公侵犯电影bd在线播放| 后进极品圆润翘臀在后面玩| 五级床片全部免费放| 上高县| 日韩人妻无码精品一区二区三区电影 |