我有一个画有图像的画布。
当用户点击图片时,我需要找到用户点击的颜色区域。区域定义为一组 4 路连接的像素,其颜色与单击的像素相同。
我需要一个可以用来在画布上设置剪切路径的表单中的区域,这样我就可以用渐变等填充该区域。
有没有找到边界的有效算法?比洪水填充算法更优化的东西(我不需要填充,我只需要在我的区域周围找到一条路径)。
我有一个画有图像的画布。
当用户点击图片时,我需要找到用户点击的颜色区域。区域定义为一组 4 路连接的像素,其颜色与单击的像素相同。
我需要一个可以用来在画布上设置剪切路径的表单中的区域,这样我就可以用渐变等填充该区域。
有没有找到边界的有效算法?比洪水填充算法更优化的东西(我不需要填充,我只需要在我的区域周围找到一条路径)。
我相信摩尔邻里追踪算法会做你想要的。根据定义,摩尔邻域关注 8 连通性,但您应该能够轻松地将其调整为 4 连通性。如果您测试 8 连通性,您得到的区域很可能会更好,但您的应用程序可能有特定要求。
维基百科在这里有一个很好的算法大纲。我过去曾与此合作并取得了巨大的成功——速度非常快。