javascript中的对象检测和跟踪

Object detection and tracking in javascript

本文关键字:跟踪 检测 对象 javascript      更新时间:2023-09-26

Im最近在这里,我们为我们的学校项目制作了一个细胞检测。它在显微镜下工作,并从我们软件中的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. 如果一个单元格已经移动,我们如何将该单元格链接到具有两个不同位置的同一对象

就目前而言,如果我们的项目有进一步的改进,我们会随时通知您。

我认为问题是:

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

有了这些假设,我认为:

  1. 是的,您可以使用代码段中定义的cell构造函数,但通常我们会将构造函数大写(表示它们应与new关键字一起使用,如cell中所示)。进入新创建对象的属性由您决定,现在它们是typeidxy
  2. 我认为这取决于识别细胞的规则,基于我们的输入(只是位置),我不确定我们是否有一个好的解决方案。我们是否可以在每张图像中考虑并提取细胞的其他特性
  3. 它与最后一个问题有关,但一旦您能够识别单元,您就可以在时间段之间更新单元对象,单元的位置历史记录可以保存在单元对象本身中,可能是一个名为locations的属性,类型为Array