Python3多实例中的单个对象
我试图追踪视频中的水滴。在每一帧中,我都会检测到多个水滴和噪音(使用findcontours) 从帧A中,我生成X个对象,这些对象由以下内容定义:Python3多实例中的单个对象,python,python-3.x,oop,Python,Python 3.x,Oop,我试图追踪视频中的水滴。在每一帧中,我都会检测到多个水滴和噪音(使用findcontours) 从帧A中,我生成X个对象,这些对象由以下内容定义: class Object: 'Creates new object containing the location and its respective pixel frame.' objectCount=0 def __init__(self,position,frame): self.position=p
class Object:
'Creates new object containing the location and its respective pixel frame.'
objectCount=0
def __init__(self,position,frame):
self.position=position
self.pixelframe=frame[position-10:position+10,position-10:position+10]
Object.objectCount+=1
现在,我接下来要做的是比较以A帧和B帧对象的质心(位置)为中心的像素帧。我使用结构相似性指数(SSIM)给出两帧之间的相似性值。如果匹配完美(或接近完美),则对象未移动,并被视为背景对象(不重要)。但是,如果它已移动(不匹配),我需要在帧B中找到它。为此,我将帧A中对象的像素帧与帧B中的像素帧进行比较,直到找到一个好匹配。一旦我有了一个很好的匹配,我想把这两个对象关联为一个单独的对象(水滴)
举个例子来说明我的问题,假设我有10个来自帧A的对象:obj11,obj12,…,obj110
测试后,只有obj1移动(同一位置的匹配不正确)。
帧B有12个对象:obj21、obj22、…、obj212
经过验证,obj11和obj21具有非常好的匹配性,可以作为液滴关联在一起
我想到的是创建一个Droplet类,它将继承obj11和obj21的属性
class Droplet:
def __init__(self,objectA,objectB):
self.data=[objectA,objectB]
def add(self,objectC):
self.data.append(objectC)
我做得对吗?有没有更好的方法来代替创建两个类 您是否有理由需要一个特殊类而不能仅使用嵌套在字典中的列表?@IgnacioVazquez Abrams,您将如何使用嵌套在dic中的列表?我是一个大傻瓜。你为什么需要一个特殊的类而不能只使用嵌套在字典中的列表呢?@IgnacioVazquez Abrams,你会怎么做嵌套在dic中的列表?我是个大傻瓜。