gpt4 book ai didi

java - 针对大面积相同颜色优化的图像模糊

转载 作者:太空宇宙 更新时间:2023-11-04 07:11:55 26 4
gpt4 key购买 nike

我正在努力为实体(但不是矩形)对象生成阴影。输入是表示对象不透明度的灰度图像。然后我想对其进行模糊处理、着色并将其绘制在对象后面。

最常见的是,该图像将具有相同阴影的大的连续区域,这意味着如果我执行标准模糊算法,我会浪费图像的绝大多数周期。考虑下面的输入和输出:

input output

所有模糊工作都需要在边缘进行,但大平面区域上的工作只是浪费,并且代表了超过 90% 的像素。

是否有一种通用算法可以比模糊任意输入图像快得多,用于模糊此类图像?最终代码将成为在 GPU 硬件不可用的环境中执行的 Java 应用程序的一部分。

最佳答案

我不认为有特定的算法可用于此。由于图像是单色的,因此在 2 个 channel (水平和垂直)中实现检测过渡的线扫描算法可能相对简单,并且找到过渡后会在该点应用模糊。

例如,您可以每隔三行(和列)扫描一次,并在过渡时应用半径为 3 的模糊。您可以调整间隔/半径以找到最佳平衡。或者,在水平 channel 上仅应用水平模糊,类似地在垂直 channel 上应用垂直模糊。

或者,您可能会完全放弃这种方法,并考虑非高斯模糊,例如 2 channel 一维正交卷积滤波器。根据imagemagick在他们的模糊算子页面上,简单的卷积滤波器的速度可以比基于高斯的滤波器快 10 倍或更多。 2 channel 一维卷积滤波器正在执行与上面的线扫描类似的操作(通过执行水平和垂直 channel ),但它适用于整个图像(甚至是固体区域)。但是将“边缘检测”与正交模糊相结合,您也许能够实现显着的加速。不过,为了不混淆算法,不应就地修改扫描的图像,而应修改第二个“目标”图像。

关于java - 针对大面积相同颜色优化的图像模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20532412/

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