如何检测mm刻度尺上的激光线位置

时间:2017-02-05 15:17:49

标签: opencv aforge

您好我正在尝试确定在距离激光/光学相机几英尺远的毫米刻度尺上捕捉激光标记的最佳方法(静态 - 不动)。我想知道我是否应该:1)使用一个对象(可能是标尺)作为像素大小"参考从"零"中导出长度。标尺边缘到激光标记或2)使用ocr或3)斑点识别(mm线)并在零和激光标记之间计数这些线以解释激光瞄准的位置,例如附图上的85mm线。有没有人可以对哪些更精确或更容易有所了解?任何有关解决这个问题的帮助表示赞赏。 drawing example of laser line on ruler

1 个答案:

答案 0 :(得分:0)

很难你的问题非常普遍我会建议使用一些假设的可能解决方案:

  • 您的相机已固定,您正在使用的标尺/参考区域也是
  • 你的尺子主要是水平对齐的(几度不会伤害太多,使用三角测量来计算数学)
  • 激光指示器足够强大,可以在凸轮图像上显示明亮的对比度
  • 激光束几乎是垂直的。如果是这样的话,那么精确测量标尺标记并不重要(它们实际上会比他们的帮助更多地打扰)

我绝对不鼓励在这里使用OCR-即使上述部分或全部假设都是错误的。很难让它继续工作,而且很可能如果不是一个过度杀伤你的项目的简单杀手。

根据上述假设,我会尝试以下方法:

的制备:将

  • 首先:通过标尺零线所在的像素数(从左到右)校准零。只要标尺没有移动,这只需要进行一次,这个数字甚至可以硬编码。
  • 然后:校准一些已知距离,例如:使用标尺上的最后一个可见数字,计算像素并除以该数字。现在您知道每个数字的像素数。每个数字的像素越多,您就可以采取更好的措施。

测量

  • 只提取图像的一条水平线 - 最佳选择是我们没有令人不安的内容的中心 - 只有激光束和参考区域
  • 删除/删除/忽略所有像素,直到零校准像素
  • 找到具有最高亮度值的像素。如果你能识别线但有一些宽度取平均值(线的中间)。
  • 将像素从零计数到此最高值并除以每位数的像素。
  • 完成