cv2.rectangle:TypeError:由名称('厚度')和位置给出的参数(4)

Sam*_*fer 12 python opencv vision computer-vision

我正在尝试在图像顶部可视化边界框。

我的代码:

color = (255, 255, 0)
thickness = 4
x_min, y_min, x_max, y_max = bbox
cv2.rectangle(img, (x_min, y_min), (x_max, y_max), color, thickness=thickness)
Run Code Online (Sandbox Code Playgroud)

我得到 TypeError: Argument given by name ('thickness') and position (4) 即使我通过厚度位置上,我得到一个不同的回溯:

cv2.rectangle(img, (x_min, y_min), (x_max, y_max), color, thickness)
Run Code Online (Sandbox Code Playgroud)

加注 TypeError: expected a tuple.

Sam*_*fer 16

您需要确保您的边界坐标是整数。

x_min, y_min, x_max, y_max = map(int, bbox)
cv2.rectangle(img, (x_min, y_min), (x_max, y_max), color, thickness)
Run Code Online (Sandbox Code Playgroud)

无论是调用cv2.rectanglewill 工作。


Pab*_*ero 5

当将坐标点作为列表传递时出现此错误,如下所示:

start_point = [0, 0]
end_point = [10, 10]
cv2.rectangle(image, start_point, end_point, color, thickness=1)
Run Code Online (Sandbox Code Playgroud)

将它们作为元组传递解决了问题:

cv2.rectangle(image, tuple(start_point), tuple(end_point), color, thickness=1)
Run Code Online (Sandbox Code Playgroud)