91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++怎么用OpenCV獲取圖片中物品的數量

發布時間:2021-08-24 09:57:15 來源:億速云 閱讀:423 作者:chen 欄目:大數據

這篇文章主要講解了“C++怎么用OpenCV獲取圖片中物品的數量”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C++怎么用OpenCV獲取圖片中物品的數量”吧!


實現效果

C++怎么用OpenCV獲取圖片中物品的數量

我們看到上面這張圖片,運用我們學到的OpenCV技術計算出這張圖片里面一共有多少顆棗。

實現思路

  • 二值化圖像分割

  • 形態學操作(腐蝕+膨脹)

  • 距離變換

  • 連通區域計算

  • 尋找輪廓并計算個數

  • 代碼演示

    我們再新建一個項目名為opencv--count,按照配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法.

    C++怎么用OpenCV獲取圖片中物品的數量

    首先加載了圖片顯示出來




    二值化圖像分割

    首先將圖片大小調整一下,方便我們顯示觀看

    C++怎么用OpenCV獲取圖片中物品的數量


    然后對圖像進行高斯模糊,并轉為灰度圖

    C++怎么用OpenCV獲取圖片中物品的數量


    再對圖像進行二值化操作

    C++怎么用OpenCV獲取圖片中物品的數量


    我們這里運行一下看看顯示效果

    C++怎么用OpenCV獲取圖片中物品的數量

    上圖可以看到右邊的圖片我們已經進行過二值化處理后的顯示效果了




    形態學操作

    接下來我們要進行形態學的操作,首先看到上面右圖,我們的每個棗的里面會有白色的點,是光打上后我們二值化變為的白色,所以我們這里要先進行一下腐蝕操作,把棗里面的白點去掉。

    C++怎么用OpenCV獲取圖片中物品的數量


    運行起來看

    C++怎么用OpenCV獲取圖片中物品的數量

    可以看到右圖中的白點已經全部處理掉了


    接下來我們再進行膨脹的操作,用于把黑色區域進行分割,這里的膨脹操作可以連續做幾次,盡量把黑色區域縮小,我的參數里面我做了5次膨脹

    C++怎么用OpenCV獲取圖片中物品的數量


    再看一下效果

    C++怎么用OpenCV獲取圖片中物品的數量

    左圖是經常五次膨脹后把黑色區域都分割的效果




    距離變換

    首先將我們的二值化圖像黑白反轉過來

    C++怎么用OpenCV獲取圖片中物品的數量


    然后開始距離的變換

    C++怎么用OpenCV獲取圖片中物品的數量


    接下來再進行歸一化處理并顯示出來

    C++怎么用OpenCV獲取圖片中物品的數量


    顯示的效果為

    C++怎么用OpenCV獲取圖片中物品的數量




    連通區域計算

    首先我們先建一個8u的圖并轉換過來

    C++怎么用OpenCV獲取圖片中物品的數量


    然后我們根據上面圖里面白點進行局部閾值二值化處理

    C++怎么用OpenCV獲取圖片中物品的數量


    顯示效果為

    C++怎么用OpenCV獲取圖片中物品的數量

    可以看到右邊基本把白色的連接區域都分割開了,只不過各別地方也有一點白點


    然后我們再通過形態學膨脹兩次進行處理

    C++怎么用OpenCV獲取圖片中物品的數量

    把一點白點斷開的區域通過膨脹再連接到一起




    尋找并計算輪廓

    根據上面的圖我們在那個基礎上尋找輪廓,參數用的CV_RETR_EXTERNAL,這里我們只找最外側輪廓即可。

    C++怎么用OpenCV獲取圖片中物品的數量


    根據找到的輪廓畫出新圖并輸出結果,在drawContours里面倒數第二個參數用的-1,這里是代表輪廓畫出來后直接填充滿了。


    C++怎么用OpenCV獲取圖片中物品的數量


    運行效果

    C++怎么用OpenCV獲取圖片中物品的數量


    再看一下輸出的值:

    C++怎么用OpenCV獲取圖片中物品的數量

    回到我們的源圖片一下,確實就是12個棗

    C++怎么用OpenCV獲取圖片中物品的數量



感謝各位的閱讀,以上就是“C++怎么用OpenCV獲取圖片中物品的數量”的內容了,經過本文的學習后,相信大家對C++怎么用OpenCV獲取圖片中物品的數量這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乐陵市| 延庆县| 开远市| 赣州市| 凤山县| 竹山县| 兴国县| 新宁县| 遂昌县| 通州市| 成安县| 永吉县| 河曲县| 炉霍县| 日照市| 辽阳市| 高安市| 柳林县| 雅江县| 绥德县| 凤翔县| 隆德县| 阳山县| 黄冈市| 格尔木市| 无极县| 大庆市| 井陉县| 金沙县| 彭州市| 吉林省| 瓮安县| 鄂尔多斯市| 乌兰察布市| 杭锦旗| 洛南县| 若尔盖县| 延津县| 霍林郭勒市| 陇南市| 余姚市|