gpt4 book ai didi

c# - 在 Canvas 上查找绘制区域的算法

转载 作者:太空狗 更新时间:2023-10-29 21:52:13 25 4
gpt4 key购买 nike

更新:我试图从这篇文章中剔除一些困惑,并更简洁地总结它。如果需要,请查看原始编辑。

我目前正在尝试在位图 Canvas 上描绘一系列单色 Blob 。

例如我试图跟踪的位图示例如下所示: alt text http://www.refuctored.com/polygons.bmp

在成功追踪图像上 3 个 Blob 的轮廓后,我将拥有一个类,该类将 Blob 的颜色与表示 Blob 轮廓(不是 Blob 内的所有像素)的点列表相关联。

我遇到的问题是在相邻像素除了前一个像素之外没有周围像素的情况下的逻辑。

例如,上面的示例可以很好地跟踪,但第二个示例会失败,因为该像素无处可去,因为之前的像素已被使用。

alt text http://www.refuctored.com/error.jpg

我正在从左到右、从上到下描图,更喜欢对角线而不是直角。我必须能够根据提取的数据重新绘制区域的精确副本,因此列表中的像素必须按正确的顺序排列才能使副本生效。

到目前为止,我的尝试充满了失败,为了解决这个问题,我花了几天时间试图重写算法,每次都稍微不同。到目前为止,我一直没有成功。有没有其他人有像我这样的类似问题谁有一个很好的算法来找到边缘?

最佳答案

避免这些死胡同的一个简单技巧是在跟踪之前使用最近邻缩放算法将要跟踪的图像的大小加倍。这样你就永远不会得到单条。

另一种方法是使用步进方 block 算法——但它似乎仍有一两个失败的案例:http://www.sakri.net/blog/2009/05/28/detecting-edge-pixels-with-marching-squares-algorithm/

关于c# - 在 Canvas 上查找绘制区域的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3112830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com