1. 程式人生 > >關於解決cv2.findContours返回值too many values to unpack的問題

關於解決cv2.findContours返回值too many values to unpack的問題

<原文地址:http://blog.csdn.net/louzhengzhai/article/details/72802978>

根據網上的 教程,python opencv的輪廓提取函式會返回兩個值,第一個為輪廓的點集,第二個是各層輪廓的索引。但是實際呼叫時我的程式報錯了,錯誤內容如下

 contourr, opt = cv2.findContours(bwimg, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
ValueError: too many values to unpack

其實是接受返回值不符,如果你僅僅使用一個變數a去接受返回值,呼叫len(a),你會發現長度為3,也就是說這個函式實際上返回了三個值

第一個,也是最坑爹的一個,它返回了你所處理的影象

第二個,正是我們要找的,輪廓的點集

第三個,各層輪廓的索引

所以,應該呼叫如下:

 binary, contours, opt = cv2.findContours(bwimg, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)