寻找算法找到颜色区域的边界

ako*_*nsu 6 javascript canvas image-processing

我有一个画有图像的画布.

当用户点击图像时,我需要找到用户点击的颜色区域.区域被定义为一组4向连接像素,其颜色与单击的像素相同.

我需要一个可以用来在画布上设置剪切路径的形式的区域,这样我就可以用渐变等填充区域.

是否有找到边界的有效算法?比洪水填充算法更优化(我不需要填充,我只需要在我的区域找到一条路径).

Xen*_*hyl 4

我相信摩尔邻域追踪算法会做你想要的。根据定义,摩尔邻域着眼于 8 个连通性,但您应该能够轻松地将其调整为 4 个连通性。如果您测试 8 个连通性,则生成的区域很可能会更好,但您的应用程序可能有特定要求。

维基百科对此算法有一个很好的概述。我过去曾使用过此方法并取得了巨大成功——速度非常快。