我有一個影像處理問題,我正在努力找出影像的解決方案。這是影像。基本上它是在python中使用scikit影像的分割和計數問題。基本上,我必須撰寫一個偽代碼,說明我將如何計算我擁有的源影像中的這些“矩形”物件。矩形被不同形狀和大小的其他不同物件包圍。最近我做了一個類似的初學者問題來計算影像中的硬幣數量。這個要容易得多,因為所有物件都具有相同的性質。
你們中的任何人都可以幫助我了解如何計算剪刀的數量,將它們與影像中的所有其他物件分開。到目前為止,我的思考程序是
- 讀入影像
- 轉換為灰度
- 繪制直方圖
- 從這個閾值首選使用 otsu
- 使用 skimage clear_border 洗掉所有不需要的物件
然而,與簡單且幾乎相同的硬幣不同,我不知道如何隔離矩形物件。skimage 中是否有任何高級分段技術可用于此目的。就像我在考慮 blob 一樣,但我認為這在這里行不通。如果有人可以提供任何見解,請告訴我,我將不勝感激
uj5u.com熱心網友回復:
這取決于您需要解決方案的通用性。在您顯示的影像中,剪刀是唯一有兩個孔的物體。我們可以使用skimage.measure.regionprops屬性euler_number,在檔案中描述為:
非零像素集的歐拉特征。計算為連接組件的數量減去孔的數量(input.ndim 連接)。在 3D 中,連接組件的數量加上孔的數量減去隧道的數量。
所以,對于剪刀,這將是 1-2 = -1,而對于物體物體,它是 1,對于有 1 個孔的物體,它是 1-1 = 0。所以你可以說:
from skimage import measure
objects = measure.label(borders_cleared)
props_list = measure.regionprops(objects)
num_scissors = 0
for props in props_list: # one RegionProps object per region
if props.euler_number == -1:
num_scissors = 1
當分割本身很容易時,如您所展示的影像,那么我的策略將始終是找到一個屬性或屬性組合regionprops,使我能夠將我感興趣的物件與其他物件區分開來。這可能是尺寸、伸長率、圓度……使用extra_properties=關鍵字引數,您甚至可以計算由您可以想象的任何函式定義的其他屬性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/313529.html
