我正在嘗試檢測人體面具,但我的演算法有時會出現如下圖的錯誤。我在想,如果我能夠計算出影像中各個形狀的面積(連接的白色像素),我可以只保留最大的一個,我的問題就會得到解決。有什么方法可以做到嗎?
uj5u.com熱心網友回復:
你也可以使用cv2.findContours()來獲得每個白塊的輪廓。
uj5u.com熱心網友回復:
你可以使用OpenCV中的connectedComponents函式來達到這個目的。
retval, labels=cv.connectedComponents(image[, labels[, connectivity[, ltype]])
這個函式的更多細節可以在檔案中找到。輸出的影像是一個有標簽的影像,每個連接部件都有一個標簽。 輸出的retval是標簽的總數(也是連接組件的數量)。
然后你所要做的就是遍歷連接組件,找到擁有最多像素的那個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/328641.html
標籤:


