我正在使用GD库,我正在寻找一种方法来检测中间形状中心的最近像素,以及单色黑白图像中每个形状使用的总面积。 / p>
我很难想出一个有效的算法来做到这一点。如果你在过去做过类似的事情,我会感激任何有用的解决方案。
答案 0 :(得分:1)
查看二进制图像库
基本上,Otsu阈值将前景与背景分开,然后标记连接的组件。该特定图像看起来非常干净,但您可能需要变形操作来清理它并摆脱小孔和其他伪影。
然后你有一个简单的区域(计算组件中的像素数)或几乎是平凡的(使用加权区域函数来惩罚边缘像素)。中心只是意思。
答案 1 :(得分:1)
@MalcolmMcLean是正确的,但仍存在困难(如果你的准确度最高)。
如果您使用Otsu进行阈值处理,则会有几对“接吻”点,这些点将使用连通分量分析形成单个斑点。
此外,Otsu阈值将丢弃部分填充的边缘像素,因此加权平均值将是不准确的。一种治疗方法是增加阈值(最多可达254),但这会加剧接吻点的问题。
解决方法是保持低阈值并单独扩大blob以获得覆盖所有边缘像素的合适掩模。即便如此,轻微的不准确也会导致亲吻的附近。
通过分水岭变换进行Blob分割也是可能的,但需要更加小心处理常见像素。我怀疑是否有一个完美的解决方案。
另一种方法是使用亚像素边缘检测和最小二乘圆拟合(在具有非常低阈值的斑点检测之后分离点)。通过避免两个圆共有的边缘像素,您可以获得优异的结果。