我正在尝试在Raspberry Pi 3上运行Python3代码,但出现了奇怪的错误。
我的电话是:
contours, hier = cv2.findContours(fgmask, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
一旦我在计算机上编译它,它就会很好用,当我在Raspberry Pi上编译它时,我会收到错误消息:
“ valueError:太多值无法解包(预期2)”
当我删除“ cv2.CHAIN_APPROX_SIMPLE”
我遇到了错误:
“ TypeError:找不到必需的参数“方法”(位置3)”
还有其他方法可以使其在Raspberry Pi上运行吗?
谢谢
答案 0 :(得分:1)
我的猜测是,您的计算机和Raspberry Pi上都有不同的OpenCV版本。
4.0.0之前的任何OpenCV版本都具有以下syntax:
image, contours, hierarchy = cv2.findContours(...)
从4.0.0开始的所有OpenCV版本都具有syntax:
contours, hierarchy = cv2.findContours(...)
所以,看来您的计算机上有一些OpenCV 4.x.x,但是在Raspberry Pi上有一些OpenCV 3.x.x甚至是2.x.x。如果是这样,显然您应该尝试在两个设备上同步使用的OpenCV版本。
编辑:正如FlyingTeller在他的comment中指出的那样,实际错误是,对于4.0.0之前的任何OpenCV版本,cv2.findContours(...)
都会生成三个值的元组,您尝试将其解压缩为两个变量,这是不可能的。因此,它与您提供给cv2.findContours(...)
的参数数量无关。
希望有帮助!