返回
错误解决:not enough values to unpack (expected 3, got 2)
人工智能
2023-09-10 22:28:18
not enough values to unpack (expected 3, got 2)错误介绍
在使用OpenCV时,可能会遇到not enough values to unpack (expected 3, got 2)错误。
以下就是会产生错误的代码示例:
import cv2
image = cv2.imread('image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 100, 200)
此代码会导致错误,因为Canny函数在OpenCV 4.0及更高版本中返回两个参数,分别是边缘图和弱边缘图。而在OpenCV 3.0及更低版本中,Canny函数返回三个参数:边缘图、弱边缘图和轮廓图。
因此,在OpenCV 4.0及更高版本中,需要修改代码如下:
import cv2
image = cv2.imread('image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
edges, weak_edges = cv2.Canny(gray, 100, 200)
解决not enough values to unpack (expected 3, got 2)错误的步骤
- 检查OpenCV版本。
- 如果使用的是OpenCV 4.0及更高版本,修改代码,将Canny函数返回的三个参数全部接收。
- 如果使用的是OpenCV 3.0及更低版本,修改代码,只接收Canny函数返回的前两个参数。
示例代码
以下是可以解决not enough values to unpack (expected 3, got 2)错误的代码示例:
import cv2
image = cv2.imread('image.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# OpenCV 4.0及更高版本
edges, weak_edges = cv2.Canny(gray, 100, 200)
# OpenCV 3.0及更低版本
edges = cv2.Canny(gray, 100, 200)[0]
总结
not enough values to unpack (expected 3, got 2)错误是由于OpenCV版本导致的。在OpenCV 4.0及更高版本中,Canny函数返回两个参数,而在OpenCV 3.0及更低版本中,Canny函数返回三个参数。解决此错误的方法是根据OpenCV版本修改代码,接收正确的参数数量。