簡體   English   中英

使用 Python 和 OpenCV 的通用填充形狀

[英]Generic fill shapes using Python & OpenCV

我想知道圖像中某些形狀的面積(“白色”像素的數量)。

經過一些圖像處理后,我得到了這樣的二進制圖像: 在此處輸入圖像描述

並想用白色“填充”空白形狀,然后計算白色像素以了解形狀的面積。

為此,我使用以下代碼:

# Filling shapes
kernel = np.ones((1000, 500), np.uint8)
closing = cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel, iterations=1)

這給了我預期的圖像: 在此處輸入圖像描述

比我計算白色像素並獲取形狀的面積(以像素為單位)。

我的問題是形狀總是不同的,我不知道如何讓我的代碼更通用以填充任何其他形狀——例如這個形狀圖像: 在此處輸入圖像描述

使用相同的填充形狀代碼給我這個不需要的結果(在這種情況下在左側): 在此處輸入圖像描述

有什么想法可以為更通用的填充內核(或其他東西..)做些什么?

提前謝謝了!

當輪廓閉合時,種子填充或多邊形填充是標准方法。 如果不是,形態學閉合與輪廓中斷一樣大會有所幫助。

您看到的“左側”效果是由於膨脹到達左邊緣。 如果放大左側的圖像,則不會再產生(只要兩個形狀不接觸)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM