我想将该图像中的白色像素数量减少到输出图像中的一些候选点或代表点(目标是对不同类型的形状进行建模)
如果您只是将输出图像中的灰点连接在一起,您将拥有相同的路径,但白色像素较少。这条路径应该只有一个起点和一个终点,并且涵盖从起点到终点的所有路径。
我可以使用 CCA(连通分量分析)和一些 if then else 规则来解决它!但似乎很慢。
我需要这个算法来减少描述形状所需的像素数量。
这里最快、最准确的算法是什么?
我也欢迎那些可以通过增加候选点来提高形状建模准确性的方法。
骨架化形状以获得单像素宽的路径(参见https://en.wikipedia.org/wiki/Topological_sculpture https://en.wikipedia.org/wiki/Topological_skeleton)
将路径表示为像素链。
沿着路径选择一定数量的像素,间隔规则。
通过这些点生成基数样条(参见https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Cardinal_spline https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Cardinal_spline)。三次样条也是可能的。
对于样条线的每个部分,估计图像中的路径与曲线之间的偏差。这可以通过沿曲线采样几个点并找到路径部分上最近的点(通过尝试所有像素)来完成。
当偏差太大时,在该部分添加一个或多个像素。
-
重新计算整个样条线并重复,直到不再需要插入点为止。
通过调整偏差阈值,您可以用曲线平滑度来换取匹配精度。
可以避免重新计算未发生点插入的曲线,但这需要小心。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)