鉴于以下图片:
我怎样才能找到T
图片中的数量?我不是在使用 matlab 代码,但是我会很感激算法或某种解释如何解决这个问题。
问候
简单的模板匹配可能会做到这一点。您只需剪掉一个 T,然后为模板的每个位移 (T) 找到 RMS 误差信号。
伪代码
for each x-position of T in image
for each y-position of T in image
err(x,y) = sqrt(sum(sum((T - image(x:x+Tsizex, y:y+Tsizey)).^2)))
end end
ErrBinary = err < detectionThreshold
现在,errBinary 中的每个 1 都是一个检测。根据图像的分辨率,对于图像中的每个 T,您可能会在群集中获得多个 1。解决这个问题的一种方法是迭代地选择一个 1,然后清除附近的所有其他值。通过这种方式,您实际上是在定义 T 的接近程度以便被检测为两个单独的 T 的限制。
编辑:
模板对比说明:
基本上,此方法的作用是将参考模板(在本例中为 T 的小图像)与原始图像中的每个可能位置进行比较。对于每个位置,误差计算为两者之差的标量 RMS 值。因此,这两个 for 循环只是简单地从原始图像中挑选出所有可能具有模板大小的子图像,并使用它们来构建错误表面。此表面中的小值将意味着该特定位置的模板和子图像之间的良好匹配。原始图像中匹配的位置对应于误差表面中最小值的位置。
问候