解決報(bào)錯(cuò)ValueError: not enough values to unpack (expected 3, got 2)
錯(cuò)誤提示:
Traceback (most recent call last):
File "E:/workspace/code/detect/ShapeDetect.py", line 86, in <module>
ld.analysis(src)
File "E:/workspace/code/detect/ShapeDetect.py", line 18, in analysis
out_binary, contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE) #
ValueError: not enough values to unpack (expected 3, got 2)
進(jìn)程已結(jié)束,退出代碼為 1
在使用opencv進(jìn)行關(guān)鍵點(diǎn)識(shí)別、邊緣輪廓提取的時(shí)候,提示以上錯(cuò)誤,報(bào)錯(cuò)原因是函數(shù)定義的返回值數(shù)量和調(diào)用函數(shù)時(shí)實(shí)際賦予的返回值數(shù)量不一致。導(dǎo)致這個(gè)問(wèn)題,實(shí)際是因?yàn)閛pencv版本不一致引起的,新版opencv(opencv4)在調(diào)用findContours時(shí)只需要兩個(gè)參數(shù),需要?jiǎng)h掉第一個(gè)參數(shù)(本文中錯(cuò)誤行代碼的out_binary),只需要?jiǎng)h除一個(gè)參數(shù)就可以完美解決;opencv3需要三個(gè)參數(shù),修改運(yùn)行環(huán)境,使用opencv3.6也可解決。
解決方法
方法1
刪除第一個(gè)參數(shù),即代碼改為:
contours, hierarchy = cv.findContours(binary, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-504232.html
方法2
修改opencv版本,降至opencv3文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-504232.html
到了這里,關(guān)于解決報(bào)錯(cuò)ValueError: not enough values to unpack (expected 3, got 2)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!