在本文中,我們將重點討論基于邊緣和基于區域的分割技術。在討論細節之前,我們需要了解細分它們分別是什么以及它們是如何工作的。
圖像分割是一種將數字圖像分割成各種圖像對象的技術。
區域中的每個像素(圖像對象)在某些屬性(如顏色、亮度、位置或紋理)上是相似的,這可以降低圖像的復雜性以便于分析。
在分割的幫助下,還可以從圖像中檢測隱藏信息。
分割算法基于圖像的兩個基本屬性:
在下圖中,我們有一張以椅子、桌子、窗戶等為特征的圖像。我們可以借助分割來分別獲取這些對象。中間的圖像有一張椅子、一張桌子和一個窗戶作為我們的分割圖像對象。在最右邊的圖像中,通過標記圖像對象來使用實例分割。
隨著 Python 機器學習的到來,分割變得非常容易。
將一個圖像分割成不同的圖像對象,從中提取信息,然后進行標記,以訓練各種機器學習模型來解決業務問題。
一個例子是在分割的幫助下自動標記出勤的面部識別系統。
分割的另一個應用是在醫學領域,在檢測到腫瘤、癌癥等嚴重疾病后進行高效和快速的診斷。
圖像分割在機器人等領域也有巨大的應用。
在這種方法中,區域的邊界彼此之間以及與背景之間的差異很大,允許基于強度(灰度級)的局部不連續性進行邊界檢測。
換句話說,它是在圖像中定位邊緣的過程。這是理解圖像特征的非常重要的一步,因為我們知道邊緣由有意義的特征組成并且具有重要的信息。
這種方法包括根據一組特定的標準將圖像劃分為相似的區域。
基于區域的分割技術包括一種通過將圖像分割成具有相似像素特征的不同部分來進行分割的算法。這種技術搜索輸入圖像中的小塊或大塊,以便進行分割。
它將為選定的塊添加更多的像素,或者進一步將塊點縮小為更小的段,并將它們與其他更小的塊點合并。因此,基于這種方法還有兩種基本的技術: 區域生長和區域合并與分裂。
import numpy as npimport matplotlib.pyplot as pltfrom skimage import datacoins = data.coins()hist = np.histogram(coins, bins=np.arange(0, 256))fig, (ax1) = plt.subplots()ax1.imshow(coins, cmap=plt.cm.gray,interpolation='nearest')
from skimage.feature import cannyedges = canny(coins/255.)fig, ax = plt.subplots(figsize=(4, 3))ax.imshow(edges, cmap=plt.cm.gray, interpolation='nearest')ax.axis('off')ax.set_title('Canny detector')Text(0.5, 1.0, 'Canny detector')
在該代碼中,我們使用了 canny 庫,這是一種流行的邊緣檢測算法來檢測輸入圖像的邊緣。
通過設置有效對象的最小大小,可以輕松去除小的虛假對象:
from scipy import ndimage as ndifill_coins = ndi.binary_fill_holes(edges)fig, ax = plt.subplots(figsize=(4, 3))ax.imshow(fill_coins, cmap=plt.cm.gray, interpolation='nearest')ax.axis('off')ax.set_title('Filling the holes')Text(0.5, 1.0, 'Filling the holes')
from skimage.filters import sobelelevation_map = sobel(coins)fig, ax = plt.subplots(figsize=(4, 3))ax.imshow(elevation_map, cmap=plt.cm.gray, interpolation='nearest')ax.axis('off')ax.set_title('elevation_map')Text(0.5, 1.0, 'elevation_map')
這里,我們從 skimage.filters 中導入 sobel 模塊,它用于在輸入圖像中查找邊緣。
Sobel 變換還幫助我們找到輸入圖像中的垂直和水平邊緣。
本文通過 Python 實現,深入闡述了分割及其兩個重要技術(基于邊緣的分割和基于區域的分割)。
本文鏈接:http://www.www897cc.com/showinfo-26-25985-0.html使用 Python 的基于邊緣和基于區域的分割
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: 應用獲取客戶端真實IP
下一篇: C語言結構體用法詳解