2015-03-25 62 views
1

Im最近在这里新增了,我们为我们的学校项目制作了一个单元格检测。该功能在显微镜下运行,并从我们的软件中检测出来自PNG图像的细胞。javascript中的对象检测和跟踪

在这些图像上会有tracking.js完成的颜色检测,然后返回单元格中心图像尺寸的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个不同位置的相同对象。

这就是现在,如果我们有进一步的改善我们的项目,我们随时通知你。

+0

您声明'cells'为_array_,但指定一个对象 – Grundy 2015-03-25 11:33:39

回答

0

我认为问题是:

  • 每一分钟,你会得到细胞的图像,然后对细胞特性进行分析,输出位置在小区A系列(阵列)图像
  • 你想追踪细胞是如何创建/消失

时间段之间/移动有了这些假设,我认为:

  1. 是的,你可以用你的片段中定义的细胞构造函数,尽管通常我们将利用构造函数(以表示他们应该关键字一起使用,如细胞)。进入新创建对象的属性取决于您,现在它们是类型IDxy
  2. 我认为这取决于细胞识别的规则,基于我们的输入(只是位置),我不确定我们在这里有一个好的解决方案。我们可以在每个图像中考虑和提取细胞的其他属性吗?
  3. 它涉及到最后一个问题,但是一旦您可以识别单元格,就可以在时间段之间更新单元格对象,单元格位置的历史记录可以保存在单元格对象本身中,也可以称为位置类型阵列
+0

谢谢,您的意思是我们需要另一种方式来检测图像上的单元格以识别它们?你有没有选择把我们指向正确的方向?随着时间的推移,结构和位置会发生变化,有哪些特性可以用来识别它们? – 2015-03-25 14:52:40

+0

@OliviervdSloot如何识别单元格将是'业务规则',它们应该由您或请求此功能的一方决定:-)根据单元格的属性会让您考虑两张图片中的两个单元格是相同的,从你的域名?如果有,我们可以从图片或其他数据源获取这些属性吗? – 2015-03-25 16:02:34