来自多个实例的Python 3单个对象

时间:2017-07-24 16:50:24

标签: 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=position
        self.pixelframe=frame[position-10:position+10,position-10:position+10]
        Object.objectCount+=1

现在,我接下来要做的是将那个以帧A的对象的质心(位置)为中心的像素与帧B进行比较。我使用结构相似性索引(SSIM)给出两帧之间相似性的值。如果匹配是完美的(或接近),则对象不会移动并被视为背景(不重要)。但是,如果它已经移动(坏匹配),我需要在帧B中找到它。为了做到这一点,我将帧A中的对象的像素帧与帧B中的一个比较,直到找到一个好的匹配。一旦我有一个很好的匹配,我想将这两个对象关联为一个(Droplet)。

作为说明我问题的例子,让我说我有来自A帧的10个物体:obj11,obj12,...,obj110 测试后,只有obj1移动了(同一位置的不匹配)。 帧B有12个对象:obj21,obj22,...,obj212 验证后,obj11和obj21具有非常好的匹配,并且可以作为Droplet关联在一起。

我想到的是创建一个Droplet类,它将继承obj11和obj21的属性。

class Droplet:
    def __init__(self,objectA,objectB):
        self.data=[objectA,objectB]
    def add(self,objectC):
        self.data.append(objectC)

我做得对吗?是否有更好的方法而不是创建两个类?

0 个答案:

没有答案