<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          使用 OpenCV 進(jìn)行圖像分割

          共 3073字,需瀏覽 7分鐘

           ·

          2021-10-13 19:04

          點擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時間送達(dá)


          什么是圖像分割?


          圖像分割是將數(shù)字圖像劃分互不相交的區(qū)域的過程,它可以降低圖像的復(fù)雜性,從而使分析圖像變得更簡單。


          分割在實際應(yīng)用中的使用


          在癌細(xì)胞檢測系統(tǒng)中可以看到獨特而著名的應(yīng)用之一,其中圖像分割被證明在從圖像中更快地檢測疾病組織和細(xì)胞方面發(fā)揮了關(guān)鍵作用,從而使醫(yī)生能夠提供及時的治療。


          制造制業(yè)現(xiàn)在高度依賴于圖像識別技術(shù)來檢測人眼所忽略掉的異常,因此增加了產(chǎn)品的效率。


          圖像分割技術(shù)


          我們有以下圖像分割技術(shù):


          1. 閾值法

          2. 基于邊緣的分割

          3. 基于區(qū)域的分割

          4. 基于聚類的分割

          5. 基于分水嶺的方法

          6. 基于人工神經(jīng)網(wǎng)絡(luò)的分割


          不同技術(shù)之間的比較

          在這里,我們選擇了基于聚類的分割。


          基于聚類的分割方法


          與分類算法不同,聚類算法是無監(jiān)督算法。在分類算法中,用戶沒有預(yù)定義的一組特征、類或組。聚類算法有助于從數(shù)據(jù)中獲取潛在的、隱藏的信息,例如從啟發(fā)式的角度來看通常是未知的結(jié)構(gòu)、聚類和分組。


          基于聚類的技術(shù)將圖像分割成具有相似特征的集群或不相交的像素組。憑借基本的數(shù)據(jù)聚類特性,數(shù)據(jù)元素被分割成集群,使得同一集群中的元素與其他集群相比更加相似。一些更有效的聚類算法,如 k 均值、改進(jìn)的 k 均值、模糊 c 均值 (FCM) 和改進(jìn)的模糊 c 均值算法 (IFCM) 被廣泛用于所提出的基于聚類的方法中。


          K 均值聚類算法是一種精選的、流行的方法,因為它的簡單性和計算效率。改進(jìn)的 K 均值算法可以最小化 k 均值算法中通常涉及的迭代次數(shù)。


          由于某些相似性,集群指的是聚合在一起的數(shù)據(jù)點集合。對于圖像分割,這里的集群是不同的圖像顏色。


          代碼實現(xiàn)


          導(dǎo)入庫

          加載輸入圖像并在 OpenCV 上進(jìn)行處理

          執(zhí)行分段的步驟:

          • 將圖像轉(zhuǎn)換為RGB格式

          • 將圖像重塑為由像素和 3 個顏色值 (RGB) 組成的二維數(shù)組

          • cv2.kmeans() 函數(shù)將二維數(shù)組作為輸入,因此我們必須將圖像展平

          • 定義集群形成的停止標(biāo)準(zhǔn)

          • 轉(zhuǎn)換回原始圖像形狀并顯示分割后的圖像


          K均值是最簡單的無監(jiān)督學(xué)習(xí)算法之一,通常可以解決聚類問題。該過程遵循一種簡單易行的方法,通過一定數(shù)量的先驗固定的集群對給定圖像進(jìn)行分類。


          該算法實際上從圖像空間被劃分為 k 個像素的開始,表示 k 個組質(zhì)心。然后根據(jù)每個對象與集群的距離將其分配給該組,當(dāng)所有像素都分配給所有集群時,質(zhì)心現(xiàn)在移動并重新分配。重復(fù)這些步驟,直到質(zhì)心不再移動。


          在該算法收斂時,我們將圖像中的區(qū)域分割為“K”組,其中組成像素顯示出一定程度的相似性。


          了解OpenCV中 K 均值聚類的參數(shù)


          輸入?yún)?shù)

          1. samples:它應(yīng)該是np.float32數(shù)據(jù)類型,每個特征應(yīng)該放在一個列中。

          2. nclusters(K)?:?結(jié)束時所需的集群數(shù)量。

          3. criteria:它是迭代終止標(biāo)準(zhǔn)。當(dāng)滿足此條件時,算法迭代停止。實際上,它應(yīng)該是一個包含 3 個參數(shù)的元組,它們是"( type, max_iter, epsilon )"。


          a.終止標(biāo)準(zhǔn)的類型,它有 3 個標(biāo)志,如下所示:

          • cv.TERM_CRITERIA_EPS — 如果達(dá)到指定的精度epsilon,則停止算法迭代。

          • cv.TERM_CRITERIA_MAX_ITER — 在指定的迭代次數(shù)max_iter后停止算法。

          • cv.TERM_CRITERIA_EPS + cv.TERM_CRITERIA_MAX_ITER — 當(dāng)滿足上述任何條件時停止迭代。


          b.max_iter — 指定最大迭代次數(shù)的整數(shù)。

          c.epsilon - 所需的準(zhǔn)確性。


          1. attempts :標(biāo)記以指定使用不同的初始標(biāo)簽執(zhí)行算法的次數(shù)。該算法返回產(chǎn)生最佳緊湊性的標(biāo)簽,這種緊湊性作為輸出返回。

          2. flags:此標(biāo)志用于指定初始中心的使用方式。通常使用兩個標(biāo)志:cv.KMEANS_PP_CENTERS和cv.KMEANS_RANDOM_CENTERS。


          輸出參數(shù)


          1. compactness :它是每個點到其相應(yīng)中心的距離平方和。

          2. labels :這是標(biāo)簽數(shù)組,其中每個元素都標(biāo)記為“0”、“1”……

          3. centers:這是一系列集群中心。


          在這里,當(dāng)我們看到圖像時,有三種主要顏色(綠色代表樹木,藍(lán)色代表海洋/湖泊,白色到橙色代表天空),所以我們考慮集群的數(shù)量為 3。


          因此,我們將為這張圖片使用三個集群

          • 標(biāo)簽存儲每個像素的集群標(biāo)簽(0/1/2)。

          • 中心存儲到集群的中心點。

          • cv2.KMEANS_RANDOM_CENTERS 只是指示 OpenCV 最初隨機(jī)分配集群的值。


          構(gòu)建分割后的圖像

          • 將所有像素轉(zhuǎn)換為質(zhì)心的顏色

          • 重塑回原始圖像尺寸

          • 顯示圖像

          禁用某些集群以可視化它們所代表的段。

          輸出:

          集群 1 表示綠色,因為禁用集群 1 或?qū)⑵湓O(shè)為黑色在圖像中很明顯

          類似地嘗試將要分割的集群的數(shù)量分割為8并可視化圖像

          輸出:

          與每個集群關(guān)聯(lián)的計數(shù)


          禁用集群 4,為代表段 4 的像素分配黑色

          輸出:


          同樣禁用集群 2


          基于聚類的 ML 算法的巨大價值在于我們可以通過使用多個統(tǒng)計參數(shù)來衡量生成的片段的質(zhì)量,例如:輪廓系數(shù)、蘭德指數(shù) (RI) 等。


          結(jié)論:


          圖像分割是一組很有前景的技能,因為它在醫(yī)學(xué)成像中發(fā)揮著重要作用,并且各種組織正在努力建立一個有效的醫(yī)學(xué)圖像主動診斷系統(tǒng)。


          圖像處理一般以各種編程語言實現(xiàn)——Java、matplotlib、C++ 等。Python 庫像scikit-image、OpenCV、Mahotas、Pillow、matplotlib、SimplelTK 等,被廣泛用于實現(xiàn)圖像處理,尤其是圖像分割。


          使用 Python 實現(xiàn)圖像分割是廣受歡迎的技能,并且有很多相關(guān)的培訓(xùn)可供使用。使用 python 庫是一種更簡單的實現(xiàn)方式,它在使用之前不需要任何復(fù)雜的要求——當(dāng)然除了 Python 編程和 Pandas 的基本知識。



          好消息,小白學(xué)視覺團(tuán)隊的知識星球開通啦,為了感謝大家的支持與厚愛,團(tuán)隊決定將價值149元的知識星球現(xiàn)時免費加入。各位小伙伴們要抓住機(jī)會哦!


          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺」公眾號后臺回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實戰(zhàn)項目52講
          小白學(xué)視覺公眾號后臺回復(fù):Python視覺實戰(zhàn)項目即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數(shù)、添加眼線、車牌識別、字符識別、情緒檢測、文本內(nèi)容提取、面部識別等31個視覺實戰(zhàn)項目,助力快速學(xué)校計算機(jī)視覺。

          下載3:OpenCV實戰(zhàn)項目20講
          小白學(xué)視覺公眾號后臺回復(fù):OpenCV實戰(zhàn)項目20講即可下載含有20個基于OpenCV實現(xiàn)20個實戰(zhàn)項目,實現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫(yī)學(xué)影像、GAN算法競賽等微信群(以后會逐漸細(xì)分),請掃描下面微信號加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會請出群,謝謝理解~


          瀏覽 63
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  韩国久久一级片 | 精品人妻无码一区二区三区竹菊影视 | 久久午夜无码鲁丝片午夜精品 | 天天爽夜夜爽 | 一级内射片在线网站观看 |