OpenCV版本差異所引發(fā)的cv2.findContours()函數(shù)傳參問題

python開發(fā):OpenCV版本差異所引發(fā)的cv2.findContours()函數(shù)傳參問題

一、如遇以下問題:

錯誤信息:
ValueError: not enough values to unpack (expected 3, got 2)
值錯誤:沒有足夠的值解包(應(yīng)為3,得到2)

二、解決問題:

1.降級(或升級)OpenCV:

pip3 install opencv-python==3.V
注釋:接收三參數(shù)(image,contours, hierarchy)

pip3 install opencv-python==4.V
注釋:接收兩參數(shù)(contours, hierarchy)

2.版本差異:

OpenCV2和OpenCV4中:

    findContours這個輪廓提取函數(shù)會返回兩個值:

    1) 輪廓的點集(contours)

    2) 各層輪廓的索引(hierarchy)

OpenCV3中:

  則會返回三個值:

  1) 處理的圖像(image)

  2) 輪廓的點集(contours)

  3) 各層輪廓的索引(hierarchy)

三、cv2.findContours()相關(guān)參數(shù)

  1. 參數(shù):

  1)第一個參數(shù):

       尋找輪廓的圖像

  2)第二個參數(shù)表示輪廓的檢索模式,有四種:

      cv2.RETR_EXTERNAL     只檢測外輪廓

      cv2.RETR_LIST         檢測的輪廓不建立等級關(guān)系

      cv2.RETR_CCOMP        建立兩個等級的輪廓,上面的一層為外邊界,里面的一  層為內(nèi)孔的邊界信息

      cv2.RETR_TREE         建立一個等級樹結(jié)構(gòu)的輪廓


  3)第三個參數(shù)method為輪廓的近似辦法:

      cv2.CHAIN_APPROX_SIMPLE     壓縮水平方向,垂直方向,對角線方向的元素,只保留該方向的終點坐標(biāo)(矩形只需四頂點) 

      cv2.CHAIN_APPROX_TC89_L1    使用teh-Chinl chain 近似算法 

      CV_CHAIN_APPROX_TC89_KCOS   使用teh-Chinl chain 近似算法

      cv2.CHAIN_APPROX_NONE       存儲所有的輪廓點,相鄰的兩個點的像素位置差不超過1 
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容