找到一条穿过中心质量的线,该线必须在对象区域内

信息处理 图像处理 计算机视觉
2022-01-18 11:38:49

在此处输入图像描述
我有一个对象(橙色对象)并且我知道它的质心/中心质量 C。我希望程序自动找到另一个点(可以是点 1、点 2、点 3 或点 4 等等),这样线就可以连接点 C 和其中一个点(如图 2 中的绿线)必须留在对象内部。此外,绿线长度必须尽可能长,或至少为最大长度的 3/4。图底部的黄色点不合格,因为连接它到中心质量C的紫色线有一部分不在物体内部。

任何想法?我在 Matlab 上做(图像处理)

1个回答

怎么样:

  • 将前景与背景分开,并从背景中保留索引列表或逻辑掩码
  • 将图像转换为 (rho, theta) 坐标空间,这意味着每个像素由从原点到自身的向量的角度和长度编码。您可以沿此矢量扫描以查看是否遇到任何背景像素。看看所谓的Trace Transform

  • 或者,您可以留在原始坐标域中并使用Bresenham 的线算法来获取属于点和中心之间的扫描线的所有像素,然后将它们与背景标记像素列表进行比较。

也许您可以通过从前景形状的边缘开始进行一些优化,向内移动到中心,在遇到背景标记的像素时丢弃任何扫描线。