javascript中的对象检测和跟踪

时间:2015-03-25 11:30:11

标签: javascript arrays object

我最近新来的,我们已经为我们的学校项目进行了细胞检测。它在显微镜下起作用,并从我们软件中发现的PNG图像中检测细胞。

在这些图像上,将通过tracking.js进行颜色检测,然后返回单元格中心图像尺寸的te X和Y位置。

我们关注的是,我们在显微镜下观察到的细胞在不断变化,所以我们每分钟自动拍摄一张这样的照片。因此,我们有一组10个图像,包括细胞,还有消失和新细胞。什么是将它们识别为新细胞的最佳方法,并且细胞仍然存在于时间范围内以通过ID识别它们,并且消除细胞作为对象移除。

很多文字,让我们看看我们现在有什么。

现在检测工作正常,这很好。对于每个单元格,我们使用以下代码创建一个新对象:

var cells = [];

celltrack = function (x, y) {
    xoutput = (img.offsetLeft + x);
    youtput = (img.offsetTop + y);

    cells = new cell('cell');
    cells.id = count++;
    cells.x = xoutput;
    cells.y = youtput;
}

cell = function (type) {
    this.type = type;
    this.id = 0;
    this.x = "x";
    this.y = "y";
}

关于这个时刻的几个主要问题:

  1. 这是创建包含单元格信息的对象的正确方法吗?
  2. 在创建删除对象之前识别单元格的最佳方法是什么?
  3. 如果单元格已移动,我们如何将单元格链接到具有2个不同位置的同一对象。
  4. 现在就是这样,如果我们的项目得到进一步改进,我们会随时通知您。

1 个答案:

答案 0 :(得分:0)

我认为问题是:

  • 每分钟你都会得到一个细胞图像,然后分析细胞的属性,输出是图像中细胞的一系列(一个阵列)位置
  • 您想跟踪单元格在时间段之间创建/消失/移动的方式

有了这些假设,我想:

  1. 是的,您可以使用代码段中定义的单元格构造函数,但通常我们会将构造函数大写(以表明它们应与 new 关键字一起使用,如在单元格)。进入新创建的对象的属性取决于您,现在它们是类型 id x y
  2. 我认为这取决于识别细胞的规则,基于我们的输入(只是位置),我不确定我们在这里有一个好的解决方案。我们可以在每张图片中考虑并提取其他细胞属性吗?
  3. 它与最后一个问题有关,但是一旦你可以识别单元格,就可以在时间段之间更新单元格对象,单元格的位置历史可以保存在Cell对象本身中,也许是一个名为的属性位置类型数组