你在上述代码中添加一个类,并将此类设为显示每个单独对象的列表
时间: 2024-10-28 17:06:30 浏览: 6
php实现的RSS生成类
在上述代码中,如果想要显示并追踪每个单独的对象而非仅保存最后一个,可以修改`huodongduixiang`类为一个列表,每个元素代表一个活动对象。以下是修改后的示例:
```python
class TubeList:
def __init__(self):
self.objects = []
class ActivityObject:
def __init__(self, x, y, w, h):
self.x = x
self.y = y
self.w = w
self.h = h
tube_list = TubeList()
...
for contour in contours:
box_info = contour_deal(contour)
if box_info is not None:
min_x, min_y, w, h = box_info
activity_obj = ActivityObject(min_x, min_y, w, h)
tube_list.objects.append(activity_obj)
...
```
在这个版本中,我们新增了一个`TubeList`类,其内部有一个`objects`列表用于存储每个活动对象。每次从轮廓中识别出新对象时,我们会创建一个新的`ActivityObject`实例并加入到`objects`列表中。
现在,`tube_list.objects`将包含所有活动对象的信息,而不是仅保存最后一个。你可以遍历这个列表来查看所有对象的位置,或者根据需要对它们进行进一步的操作。例如:
```python
for obj in tube_list.objects:
cv2.rectangle(image, (obj.x, obj.y), (obj.x + obj.w, obj.y + obj.h), (0, 255, 0), 2)
```
这将在图像上绘制所有活动对象的矩形框。
阅读全文