用最接近的非自身像素颜色替换像素颜色的方法

问题描述 投票:0回答:1

例如,假设这是输入:

对于图像中的每个像素,我想用最接近的像素(就距离而言)的颜色替换该像素,而不是它的颜色。

这是我的意思的一个例子:

在考虑可能的方法时,我想到了 BFS,但很快意识到,随着图像尺寸的增大,该过程可能会花费太长时间。当然,我可能是错的,因为我没有太多 BFS 经验。

因此,我想看看是否有替代过程可以达到相同的结果,无论是否有某种图像处理技术来完成这个或其他方法。

python image-processing
1个回答
0
投票

是的,当然你必须在那里使用“BFS”,但实际上在这种情况下它的意义太小了。这里的问题是,这是一个昂贵的搜索,需要您访问每个像素的许多邻居,这些邻居的数量与“点大小”呈二次方增长。 (重新映射每个像素已经是一个与图像区域成比例的二次问题 - 因此如果您的斑点与图像一起生长,则可能会出现第四级问题)。

这个问题要求你在没有“现成的”标准算法的情况下思考它,该算法以书中找到的某个人的名字命名 - 我会尝试定位每个点的中间并远离它 - 如果将螺旋周期间隔开,你将包含应该具有相同邻居的区域。

或者您可以跟踪选定的垂直和水平线的像素,对整个矩形区域进行着色,只要它们具有相同颜色的边界线,然后将这些线之间的距离一分为二,跳过已解析的区域。

此外,对于给定像素到点边界的距离,您可以找到不同的数据,您可以对其进行注释,这样当从其他像素遍历图像时,您可以重用该数据 - 但这并不是一件小事。

您无需想出一种方法并将其编码。 (这里没有人会为你从零开始编写代码。如果你碰巧有一个无法放入代码中的算法,那么你可以放入你拥有的所有代码 - 该代码应该是一个最小的可重现示例:因为它是“Python”,包括导入语句、文件读取调用以获取目标图像以及调用您的函数,以便人们可以修改您的代码并提出修复建议。

© www.soinside.com 2019 - 2024. All rights reserved.