gpt4 book ai didi

javascript - 使用 NodeJS 的图像像素数组追踪边界

转载 作者:行者123 更新时间:2023-12-03 07:38:54 28 4
gpt4 key购买 nike

我有这个图像,除了中间的白色物体之外,它是全黑的(它可以是任何东西,但它总是全白的)。我想用nodeJs做的是跟踪图像中对象的边界(我想找到黑色旁边的所有白点)(性能是关键!)

pngjs我可以读取一个图像,该图像为我提供了一个数组,其中每个像素都有 4 个值 (RGBA)。它是一个一维数组。因此,假设图像为 1000 x 1000 像素,它会给我一个 1000 x 1000 x 4 = 4000000 个条目的数组。

下面的表达式将 xy 转换为数组索引

 var idx = (1000 * y + x) << 2;

data[idx] = 243;
data[idx + 1] = 16;
data[idx + 2] = 16;

无论如何,我可以遍历整个数组并记录黑色变为白色的点,但正如我所说,性能非常重要。我可以想象存在某种智能迭代搜索算法,可以以某种方式遵循边界:)

也许有人知道一个可以提供帮助的库,或者一篇关于如何做到这一点的文章也很棒!!

最佳答案

查看链码,例如弗里曼码。您需要 1 个轮廓点开始。因此,只需迭代你的线条,直到击中你的物体。然后你绕着你的物体走动,直到到达起点。您将获得一个代码,描述您每一步所采取的方向。此代码可用于计算各种对象特征或仅绘制对象的轮廓。

顺便说一句,如果您的对象始终为白色而背景始终为黑色,则无需处理 4 个 channel 。红色、绿色或蓝色 channel 包含相同的信息。只需使用其中之一即可。

关于javascript - 使用 NodeJS 的图像像素数组追踪边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35493284/

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