問題:cv2.findContours找到所有的輪廓之后,想取出包含面積最大的輪廓,用cv2.contourArea算一下,但是得到的結(jié)果跟實(shí)際差別相當(dāng)大,最大輪廓面積的計(jì)算成很小的一個值,而其中一個不太起眼的區(qū)域被計(jì)算得倒最大的面積。
findContours() 提取輪廓, contourArea() 計(jì)算輪廓面積。
ContourArea計(jì)算輪廓的面積使用格林公式。格林公式是什么?這不重要。ContourArea()求得得面積居然比真實(shí)面積還要小。這又是怎么回事呢?
重點(diǎn)
原來ContourArea()是取連通域邊界像素中心點(diǎn),連接起來,成為一個輪廓,導(dǎo)致一周得邊界像素點(diǎn)丟失,即求得得面積比真實(shí)得面積少了一圈。
比如下圖,真實(shí)面積4*4=16,而ContourArea()則只是算紅線內(nèi)得面積,只有3*3=9。
?
?
因此,countArea() 函數(shù)也會 ”有中去無“,視而不見,算出來的輪廓面積會出現(xiàn)0。
有輪廓,但是面積為0。
比如有的輪廓厚度只有兩像素,都是邊緣線,那計(jì)算出來的面積就等于0。
文章來源:http://www.zghlxwxcb.cn/news/detail-504275.html
參考:AI大道理文章來源地址http://www.zghlxwxcb.cn/news/detail-504275.html
整理不易,歡迎一鍵三連?。?!
到了這里,關(guān)于cv2.contourArea函數(shù)詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!