我有一个画有图像的画布。
当用户点击图片时,我需要找到用户点击的颜色区域。区域被定义为一组4路连接像素,其颜色与单击的像素相同。
我需要一个可用于在画布上设置剪切路径的形式的区域,这样我就可以用渐变等填充该区域。
是否有找到边界的有效算法?比洪水填充算法更优化(我不需要填充,我只需要在我的区域找到一条路径)。
答案 0 :(得分:4)
我相信Moore Neighborhood跟踪算法会做你想要的。根据定义,Moore Neighborhood关注8连通性,但您应该能够轻松地将其调整为4连通性。如果您测试8连通性,那么您生成的区域很可能会更好,但您的应用程序可能有特定要求。
维基百科对算法here有一个很好的概述。我过去曾经使用过这个并取得了巨大的成功 - 它非常快。