亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

python怎么實現圖像自動閾值分割

發布時間:2022-06-29 09:58:02 來源:億速云 閱讀:344 作者:iii 欄目:開發技術

本文小編為大家詳細介紹“python怎么實現圖像自動閾值分割”,內容詳細,步驟清晰,細節處理妥當,希望這篇“python怎么實現圖像自動閾值分割”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

引言

圖像閾值分割是一種廣泛應用的分割技術,利用圖像中要提取的目標區域與其背景在灰度特性上的差異,把圖像看作具有不同灰度級的兩類區域(目標區域和背景區域)的組合,選取一個比較合理的閾值,以確定圖像中每個像素點應該屬于目標區域還是背景區域,從而產生相應的二值圖像。

在skimage庫中,閾值分割的功能是放在filters模塊中。

我們可以手動指定一個閾值,從而來實現分割。也可以讓系統自動生成一個閾值,下面幾種方法就是用來自動生成閾值。

1、threshold_otsu

基于Otsu的閾值分割方法,函數調用格式:

skimage.filters.threshold_otsu(image, nbins=256)

參數image是指灰度圖像,返回一個閾值。

from skimage import data,filters
import matplotlib.pyplot as plt
image = data.camera()
thresh = filters.threshold_otsu(image)   #返回一個閾值
dst =(image <= thresh)*1.0   #根據閾值進行分割
plt.figure('thresh',figsize=(8,8))
plt.subplot(121)
plt.title('original image')
plt.imshow(image,plt.cm.gray)
plt.subplot(122)
plt.title('binary image')
plt.imshow(dst,plt.cm.gray)
plt.show()

返回閾值為87,根據87進行分割得下圖:

python怎么實現圖像自動閾值分割

2、threshold_yen

使用方法同上:

thresh = filters.threshold_yen(image)

返回閾值為198,分割如下圖:

python怎么實現圖像自動閾值分割

3、threshold_li

使用方法同上:

thresh = filters.threshold_li(image)

返回閾值64.5,分割如下圖:

python怎么實現圖像自動閾值分割

4、threshold_isodata

閾值計算方法:

threshold = (image[image <= threshold].mean() +image[image > threshold].mean()) / 2.0

使用方法同上:

thresh = filters.threshold_isodata(image)

返回閾值為87,因此分割效果和threshold_otsu一樣。

5、threshold_adaptive

調用函數為:

skimage.filters.threshold_adaptive(image, block_size, method='gaussian')

block_size: 塊大小,指當前像素的相鄰區域大小,一般是奇數(如3,5,7。。。)

method: 用來確定自適應閾值的方法,有'mean', 'generic', 'gaussian' 和 'median'。

省略時默認為gaussian

該函數直接訪問一個閾值后的圖像,而不是閾值。

from skimage import data,filters
import matplotlib.pyplot as plt
image = data.camera()
dst =filters.threshold_adaptive(image, 15) #返回一個閾值圖像
plt.figure('thresh',figsize=(8,8))
plt.subplot(121)
plt.title('original image')
plt.imshow(image,plt.cm.gray)
plt.subplot(122)
plt.title('binary image')
plt.imshow(dst,plt.cm.gray)
plt.show()

python怎么實現圖像自動閾值分割

大家可以修改block_size的大小和method值來查看更多的效果。如:

dst1 =filters.threshold_adaptive(image,31,'mean') 
dst2 =filters.threshold_adaptive(image,5,'median')

兩種效果如下:

python怎么實現圖像自動閾值分割

讀到這里,這篇“python怎么實現圖像自動閾值分割”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

乐安县| 本溪| 内丘县| 淳化县| 静乐县| 景德镇市| 沙洋县| 康保县| 枣强县| 河西区| 洛浦县| 永福县| 玉山县| 瓮安县| 辽中县| 固原市| 友谊县| 永寿县| 博爱县| 涡阳县| 永仁县| 霍林郭勒市| 扶绥县| 横山县| 乌拉特中旗| 淮滨县| 安顺市| 南郑县| 湟源县| 策勒县| 喜德县| 泾阳县| 德江县| 洪湖市| 信丰县| 陵川县| 台南市| 双牌县| 尚义县| 黔江区| 丽水市|