我正在研究一个Matlab脚本,我在另一个更大的对象(通道或管道)中有一堆对象(粒子)。我可以得到分词的质心和更大物体的边界(存储在矩阵中) 我需要弄清楚粒子是在管的中心还是在边界。管子有不规则的形状(想想像图中的罪恶)。我在图像处理库中找不到可以做到这一点的功能 任何帮助将不胜感激 谢谢!
答案 0 :(得分:0)
你可以使用一些函数来告诉你一个点是否在多边形内部,比如
https://de.mathworks.com/help/matlab/ref/inpolygon.html
或者用给定值填充边界多边形,然后为每个粒子坐标添加另一个值。现在,具有该总和值的每个点都在大对象内。
当然你也可以使用一些布尔逻辑。大对象和粒子都是真的,背景是假的。然后AND链接两个矩阵/图像以获取对象内的任何粒子。
答案 1 :(得分:0)
如果管的边界是多边形,您可以使用以下公式计算它的质心: https://en.wikipedia.org/wiki/Centroid#Centroid_of_a_polygon
迭代遍历所有粒子并计算粒子与管子质心之间的欧氏距离,如果它足够接近你就知道粒子位于中心。