欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

OpenCV?圖像分割實(shí)現(xiàn)Kmean聚類的示例代碼

 更新時(shí)間:2022年03月28日 09:21:03   作者:山居秋暝LS  
本文主要介紹了OpenCV?圖像分割實(shí)現(xiàn)Kmean聚類的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

1 Kmean圖像分割

按照Kmean原理,對圖像像素進(jìn)行聚類。
優(yōu)點(diǎn):此方法原理簡單,效果顯著。
缺點(diǎn):實(shí)踐發(fā)現(xiàn)對于前景和背景顏色相近或者顏色區(qū)分度差的圖像效果不顯著。
本文對圖像進(jìn)行濾波,主要是為了消除樹枝顏色的影響(濾波為非Keman圖像分割的必要操作)。

2 流程

(1)讀入圖片,把圖片轉(zhuǎn)化為二維。
(2)根據(jù)Kmean算法對圖像分割,返回類別標(biāo)簽和各類別中心點(diǎn)。
(3)根據(jù)類別標(biāo)簽復(fù)制各類別中心點(diǎn)得到結(jié)果,在對結(jié)果調(diào)整到原有尺度。

3 實(shí)現(xiàn)

(1)圖像分割前添加濾波,消除噪聲

## 1 圖像分割--Keman聚類
import cv2
import numpy as np
import matplotlib.pyplot as plt

# 1 讀入圖片
img0 = cv2.imread('bird.png', 1)  # (548,727,3)
img0 = cv2.cvtColor(img0, cv2.COLOR_BGR2RGB)
img_ = cv2.GaussianBlur(img0, (13, 13), 10, 10)
h, w, c = img_.shape
img_blur = img_.reshape([-1, 3])
img_blur = np.float32(img_blur)

# 2 分類
criteria = (
cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
num_clusters = 2
_, label, center_color = cv2.kmeans(img_blur, num_clusters,
                                    None, criteria,
                                    num_clusters,
                                    cv2.KMEANS_RANDOM_CENTERS)
center_color = np.uint8(
    center_color)  # img_blur[398396,3],label[398396,1],center[2,3]
res = center_color[label.ravel()]  # [398396,3]
res = res.reshape([h, w, c])  # res[668044,3]--> [548,727,3]

# 3 顯示
plt.subplot(131)
plt.title('origin')
plt.imshow(img0)
plt.subplot(132)
plt.title('img_blur')
plt.imshow(img_)
plt.subplot(133)
plt.title('result')
plt.imshow(res)

plt.show()

在這里插入圖片描述

(2)顏色區(qū)分低的情況
當(dāng)顏色區(qū)分低時(shí),劃分較少的種類,可以達(dá)到滿意效果。

## 1 圖像分割--Keman聚類
import cv2
import numpy as np
import matplotlib.pyplot as plt

# 1 讀入圖片
img = cv2.imread('luna.png', 1)  # (548,727,3)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
h, w, c = img.shape
img0= img.reshape([-1, 3])
img0 = np.float32(img0)

# 3 分類
criteria = (
cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
num_clusters = 2
_, label, center_color = cv2.kmeans(img0, num_clusters,
                                    None, criteria,
                                    num_clusters,
                                    cv2.KMEANS_RANDOM_CENTERS)
center_color = np.uint8(
    center_color)  # img_blur[398396,3],label[398396,1],center[2,3]
res = center_color[label.ravel()]  # [398396,3]

res = res.reshape([h, w, c])  # res[668044,3]--> [548,727,3]

plt.subplot(121)
plt.title('origin')
plt.imshow(img)
plt.subplot(122)
plt.title('result')
plt.imshow(res)

plt.show()

在這里插入圖片描述

注: 可以改變中心點(diǎn)的數(shù)值,調(diào)整分割后圖像的顏色。

center_color = np.uint8(
    center_color)  
## 調(diào)整顯示顏色
center_color[0]=[0,0,255]
center_color[1]=[255,0,0]

res = center_color[label.ravel()] 

在這里插入圖片描述

 到此這篇關(guān)于OpenCV 圖像分割實(shí)現(xiàn)Kmean聚類的示例代碼的文章就介紹到這了,更多相關(guān)OpenCV Kmean聚類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python標(biāo)準(zhǔn)庫pathlib操作目錄和文件

    Python標(biāo)準(zhǔn)庫pathlib操作目錄和文件

    這篇文章主要為大家介紹了Python標(biāo)準(zhǔn)庫pathlib操作目錄和文件的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • python繪制條形圖方法代碼詳解

    python繪制條形圖方法代碼詳解

    這篇文章主要介紹了python繪制條形圖方法代碼詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • python調(diào)用百度AI接口實(shí)現(xiàn)人流量統(tǒng)計(jì)

    python調(diào)用百度AI接口實(shí)現(xiàn)人流量統(tǒng)計(jì)

    這篇文章主要介紹了python調(diào)用百度AI接口實(shí)現(xiàn)人流量統(tǒng)計(jì),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • OpenCV2學(xué)習(xí)筆記之視頻流讀取與處理

    OpenCV2學(xué)習(xí)筆記之視頻流讀取與處理

    為OpenCV是搞計(jì)算機(jī)視覺必須要掌握的基礎(chǔ),這篇文章主要給大家介紹了關(guān)于OpenCV2學(xué)習(xí)筆記之視頻流讀取與處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • Python Dask庫處理大規(guī)模數(shù)據(jù)集的強(qiáng)大功能實(shí)戰(zhàn)

    Python Dask庫處理大規(guī)模數(shù)據(jù)集的強(qiáng)大功能實(shí)戰(zhàn)

    Dask是一個(gè)靈活、開源的Python庫,專為處理大規(guī)模數(shù)據(jù)集而設(shè)計(jì),與傳統(tǒng)的單機(jī)計(jì)算相比,Dask能夠在分布式系統(tǒng)上運(yùn)行,有效利用集群的計(jì)算資源,本文將深入介紹Dask的核心概念、功能和實(shí)際應(yīng)用,通過豐富的示例代碼展示其在大數(shù)據(jù)處理領(lǐng)域的強(qiáng)大能力
    2023-12-12
  • 詳解使用PyInstaller將Pygame庫編寫的小游戲程序打包為exe文件

    詳解使用PyInstaller將Pygame庫編寫的小游戲程序打包為exe文件

    這篇文章主要介紹了詳解使用PyInstaller將Pygame庫編寫的小游戲程序打包為exe文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python實(shí)現(xiàn)將Excel內(nèi)容插入到Word模版中

    Python實(shí)現(xiàn)將Excel內(nèi)容插入到Word模版中

    前段時(shí)間因?yàn)樾枰幚硪淮蠖羊?yàn)收單,都是一些簡單的復(fù)制粘貼替換工作,于是就想到用python進(jìn)行處理。本文分享了用python將excel文件單元格內(nèi)容插入到word模版中并保存為新文件的辦法,希望對大家有所幫助
    2023-03-03
  • Python自動(dòng)化之實(shí)現(xiàn)桌面壁紙下載器

    Python自動(dòng)化之實(shí)現(xiàn)桌面壁紙下載器

    隨著計(jì)算機(jī)性能的提升,人們對計(jì)算機(jī)個(gè)性化的要求也越來越高了,自己使用的計(jì)算機(jī)當(dāng)然要設(shè)置成自己喜歡的風(fēng)格!本文就來用Python做個(gè)桌面壁紙下載器,需要的可以參考一下
    2022-11-11
  • Python判斷字符串是否為空和null方法實(shí)例

    Python判斷字符串是否為空和null方法實(shí)例

    這篇文章主要介紹了Python判斷字符串是否為空和null,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Python中使用aiohttp模擬服務(wù)器出現(xiàn)錯(cuò)誤問題及解決方法

    Python中使用aiohttp模擬服務(wù)器出現(xiàn)錯(cuò)誤問題及解決方法

    這篇文章主要介紹了Python中使用aiohttp模擬服務(wù)器出現(xiàn)錯(cuò)誤,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評論