簡體   English   中英

OpenCV:使用 findContours 僅獲取二值圖像中的黑色輪廓

[英]OpenCV: Get only black contours in a binary image with findContours

我是 OpenCV 的新手,所以請多多包涵。

目前,我在二值圖像中同時獲得了白色和黑色事物的輪廓。 我只想要黑色輪廓(所以值為0)。 我可以調整某種設置來獲得這個結果嗎? 或者我可以過濾它們嗎?

另外: cv.findContours() 確實返回輪廓和層次結構。 層次結構是做什么用的?

最后:輪廓似乎由一個具有多個坐標的數組組成。 他們的意思是什么?

cv2.findContours 查找圖像中的所有輪廓。 有些是內部的,有些是外部的,有些嵌套在其他輪廓內。

因此,該方法返回多個坐標。 層次結構是一個向量,其中包含有關提取的這些不同級別的輪廓(外部、嵌套、內部等)的信息。

但是,您可以設置一個retrievalMode來根據層次結構過濾輪廓。

在任何情況下,它們都不包含有關顏色的信息,因此您需要以某種方式過濾它們。

我可能會補充一點,您可以做的一件明智的事情是在獲取輪廓之前過濾圖像,因此您只能根據您選擇的顏色或顏色范圍在您創建的蒙版中找到輪廓(請參閱cv2.inRange

暫無
暫無

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

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